Well said -- couldn't agree with you more.
>>>>> "Pascal" == Pascal J Bourguignon <pjb@xxxxxxxxxxx> writes:
Pascal> Daniel Dalton <d.dalton@xxxxxxxxxxx> writes:
>> Hi everyone,
>>
>> Firstly apologies if this is slightly OT - feel free to
>> respond off list if you think that's better, but I know
>> there are a lot of very knowledgeable people on here so
>> thought it was a good starting point.
>>
>> At University I'm studying computer science. I'm looking
>> to take a software engineering subject called
>> "Introduction to software engineering".
>>
>> The problem: UML diagrams are heavily used throughout this
>> subject especially for assessment purposes. Specifically,
>> UML class diagrams and UML state active and sequence
>> diagrams. We'll need to both read and create these
>> diagrams. I also believe we may need to work in small
>> groups with fellow students (who obviously aren't vision
>> impaired). Apparently the UML is the language of the
>> subject and it's not really avoidable. So does anyone have
>> any ideas about how to handle this sort of thing? I'd be
>> interested to hear what other blind software engineers may
>> do to get around these problems.
>>
>> Finally, just a bit of a general sort of question. I'm
>> currently studying bachelor of computer science, but have
>> considered changing into bachelor of software
>> engineering. I've been told software engineering is much
>> more visual - with more of this UML stuff coming up. Has
>> anyone else taken a modern software engineering degree
>> opposed to computer science - and how did you find it?
Pascal>
Pascal>
Pascal> UML means Unified Modeling Language. Little scribbles
Pascal> are not necessarily what comes to mind first when you
Pascal> hear the word "language".
Pascal>
Pascal> And indeed, while UML specifies a graphical syntax,
Pascal> the same information can be conveyed textually.
Pascal>
Pascal> UML CASE tools save UML models as XML files. There's
Pascal> a standard DTD for UML. I guess that XML is as hard
Pascal> to read for you than for me, but you can write a
Pascal> program to translate the model read from the XML
Pascal> files into some readable form. And vice versa.
Pascal>
Pascal> The notion of diagram corresponds only to a subset of
Pascal> the model, composed in a way to present it in an
Pascal> easily understandable chunk.
Pascal>
Pascal>
Pascal> For example, here is a model and a few diagrams:
Pascal>
Pascal>
Pascal> (defmodel "Windows and Views"
Pascal>
Pascal> (defclass window () ((frame :accessor view-frame
Pascal> :type rectangle) (title :accessor window-title :type
Pascal> string)))
Pascal>
Pascal> (defclass view () ((frame :accessor view-frame
Pascal> :type rectangle)))
Pascal>
Pascal> (defassociation window-content-view ((window
Pascal> :accessor view-window :type window :multiplicity (0
Pascal> 1)) (content-view :accessor window-content-view :type
Pascal> view :multiplicity (0 1))))
Pascal>
Pascal> (defassociation view-subviews ((superview :accessor
Pascal> view-superview :type view :multiplicity (0 1))
Pascal> (subviews :accessor view-subviews :type list
Pascal> :multiplicity (0 *)))))
Pascal>
Pascal>
Pascal> (defdiagram :class-diagram "window class diagram"
Pascal> (class window (attributes frame title) (methods))
Pascal> (class view (attributes) (methods)) (association
Pascal> window-content-view))
Pascal>
Pascal> (defdiagram :class-diagram "view hierarchy diagram"
Pascal> (class view (attributes frame) (methods))
Pascal> (association view-subviews))
Pascal>
Pascal> (defdiagram :sequence-diagram "window redraw"
Pascal> (instances (win-1 window) (content-view-1 view)
Pascal> (subview-1 view)) (events (redraw (from win-1) (to
Pascal> content-view-1)) (redraw (from content-view-1) (to
Pascal> subview-1)) (view-frame (from subview-1) (to
Pascal> content-view-1)) (window-frame (from content-view-1)
Pascal> (to win-1)) (did-redraw (from subview-1) (to
Pascal> content-view-1)) (did-redraw (from content-view-1)
Pascal> (to win-1))))
Pascal>
Pascal>
Pascal>
Pascal> I'm not sure coordinates and graphics add much. Well,
Pascal> a little in taking advantage of the parallel
Pascal> processing of the visual cortext, for more complex
Pascal> diagrams. But since anyways the brains have
Pascal> short-term memories limited to about 7 elements,
Pascal> there's little point in overloading the visual
Pascal> cortex. Well it's not entirely right: actually eyes
Pascal> are more an external memory input device than an
Pascal> internal "GPU": it let the brain leave data in the
Pascal> world, and allows to retrieve it, by focusing on an
Pascal> element selected in 2D more-or-less-random access,
Pascal> thus overcoming the limits of short-term memory. In
Pascal> the case of UML, this is useful only in limited
Pascal> circumstances, and only helps while learning about a
Pascal> system. And notably, static diagrams as provided by
Pascal> most CASE tools are too limited. What would be
Pascal> needed, is an automatic generation of diagrams
Pascal> according to the browsing you want to do of the
Pascal> model. And once you know it, you can browse the model
Pascal> more directly with a textual interface. And notably,
Pascal> a sexp-form as above, is much more useful, since you
Pascal> can easily process it (in emacs or other lisp ;-)).
Pascal>
Pascal>
Pascal> While graphviz can be used to produce "UML" diagrams,
Pascal> it would be quite a lot of work to fine tune its
Pascal> usage to get graphically correct UML diagrams. It
Pascal> would probably be easier to write the lisp code to
Pascal> generate a UML XML from a sexp OO model definition as
Pascal> above.
Pascal>
Pascal> -- __Pascal Bourguignon__
Pascal> http://www.informatimago.com/ A bad day in () is
Pascal> better than a good day in {}. You know you've been
Pascal> lisping too long when you see a recent picture of
Pascal> George Lucas and think "Wait, I thought John McCarthy
Pascal> was dead!" -- Dalek_Baldwin
Pascal>
Pascal> -----------------------------------------------------------------------------
Pascal> To unsubscribe from the emacspeak list or change your
Pascal> address on the emacspeak list send mail to
Pascal> "emacspeak-request@xxxxxxxxxxx" with a subject of
Pascal> "unsubscribe" or "help".
--
Best Regards,
--raman
-----------------------------------------------------------------------------
To unsubscribe from the emacspeak list or change your address on the
emacspeak list send mail to "emacspeak-request@xxxxxxxxxxx" with a
subject of "unsubscribe" or "help".
If you have questions about this archive or had problems using it, please send mail to:
priestdo@xxxxxxxxxxx No Soliciting!Emacspeak List Archive | 2010 | 2009 | 2008 | 2007 | 2006 | 2005 | 2004 | 2003 | 2002 | 2001 | 2000 | 1999 | 1998 | Pre 1998