[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Blind software engineers, specifically UML



Well said -- couldn't agree with you more.
>>>>> "Pascal" == Pascal J Bourguignon <pjb@informatimago.com> writes:
    Pascal> Daniel Dalton <d.dalton@iinet.net.au> 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@cs.vassar.edu" 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@cs.vassar.edu" with a
subject of "unsubscribe" or "help".



If you have questions about this archive or had problems using it, please send mail to:

priestdo@cs.vassar.edu No Soliciting!

Emacspeak List Archive | 2010 | 2009 | 2008 | 2007 | 2006 | 2005 | 2004 | 2003 | 2002 | 2001 | 2000 | 1999 | 1998 | Pre 1998

Emacspeak Files | Emacspeak Blog | Search the archive