[Uml-devel] Suggestions

Jörg Walter ehrlich at ich.bin.kein.hoschi.de
Mon Oct 28 13:53:06 UTC 2002


Hi!

First of all, let me thank you for this great program. I am using it to do my 
homework for the software engineering course at university.

The purpose of this mail is to give you a list of ideas and suggestions that 
came into my mind while using umbrella for the first time. I am using 
1.1beta2 (compiled using gcc 3.2). I hope an untainted "newbie" review will 
be valuable to you in order to increase usability of Umbrello.
This (first) review is all about class diagrams. If you like, I will provide 
reviews about other diagram types when I first use them.

The literature I use is the course itself, which refers to the official OMG 
specification. It teaches a "reasonable" subset of UML.

I have added a personal rating as well: Issues marked with (*) are the ones I 
would welcome most when they are addressed. Issues marked with (+) are issues 
I would welcome but can live with. All other issues are things I will easily 
adapt to, but would consider problematic for new users in general.


1.) Things not working as expected (but basically working)

- when snap-to-grid is enabled, moving corner points of association lines
  does not snap; but even when snapping users should be able to create
  exactly horizontal/vertical lines (*)
  Suggestions: snap-to-grid as usual, but add virtual snap points aligned to
  the start and end points of an association (different for each assoc)
- often, association lines between two classes can't be made exactly
  horizontal/vertical with snap-to-grid on (*)
  Suggestions: snap "concept" boxes to the grid at all 4 sides so that
  start/end points always lie on grid lines; or make start/end points manually
  movable (with snap-to-grid, of course); there are many other solutions
- selecting control points of associations is sometimes difficult (my screen
  has ~ 96dpi, so it's nothing fancy) (+)
  Suggestions: the "grab-rectangles" should have a bigger clickable area
  (bigger display is not neccessary, IMHO)
- same for selecting association lines themselves (+)
- double-clicking an association line adds a control point instead of
  bringing up the object properties - the latter was expected because
  "concept" objects behave this way and even doubleclicking the text
  of an association behaves this way.
  Suggestion: doubleclick -> properties, Control-doubleclick -> add control
  point
- double-clicking "line of text" objects does nothing (expected properties)
- creating an association is a bit poor in visual feedback - my first assoc
  happened to be a self-referential assoc, so I never saw the line being
  drawn; I didn't know if I was expected to drag or what else
  Suggestion: on click, mark the selected box in some way; make dragging
  instead of clicking not so surprising (set start point on mousedown
  instead of clicked?)
- the "operations" page in the "concept" properties is very confusing -
  there should be "add", "edit" and "remove" buttons as is usual for a
  well-behaved editable list; this applies to other locations as well;
  the context menu is too obscure for new users
- abstract class names should use italic font

2.) Things expected, but missing (or not found)

- can't delete control points for association lines (+)
- no bidirectional associations available (*)
  associations without arrows count as unspecified, while
  assocs with arrows at each end are explicitly bidirectional
- assocs can only incompletely be labeled: Properties allow only one
  "Role" name, each end should be able to have a "Role" label; a
  "Name" label is missing (*)
- stereotype names for dependencies («use», «import») (*)
- alternate form of «realizes»-dependency (dashed line with hollow
  triangle at end)
- package boxes are missing (+)
- Object diagrams are not possible with the current "concept" and
  "association" tools; object and assoc names are underlined, and
  the class name may optionally be specified for objects
- "concept" boxes should have separation lines optional if the
  operations or attributes sections are empty (+)
- static attributes/operations in classes (underlined)
- classes and associations can have constraints (written inside {},
  usually below the association line or above the class) (*)
- derived attibutes and associations (name preceded by a "/")
- Undo! (*)
- in-place editing of labels would be cool - doubleclick and edit in-place

3.) Bugs

- loading a diagram may mess up start/end points of associations (see
  attached screenshot - the lines didn't cross each other at save time)
  (*)
- crash: load the attached .xmi file, grab the class, drag it around a
  while, be sure to move the mouse outside of the umbrello window;
  sometimes "only" the associations are messed up, sometimes it crashes
  with a SIGFPE; the backtrace doesn't show anything useful


4.) Wild ideas

- how about a text field for the implementation of a given method?
- how about autogenerating get/set accessor pairs and other standardized
  methods? (selectable per attrib, and customizable in order to accomodate
  different languages&styles)
- kdevelop integration? (no idea how this could look, though)
- OCL parser (with conversion into target language using some kind of
  assertion mechanism for constraints)?
- textual specification (perhaps implemented as language module, but cooler
  when interchangable, updating the class view automatically)


I hope these remarks are useful to you. This is it for now. Overall I must say 
this is a very promising program and it is well suited for my purposes and 
work is easy most of the time.

Btw, I am pondering a python code generator module. Looks easy enough to write 
one, so I think I will write it when I first use it for programming (as 
opposed to learning/homework). How reusable is the class parser code? Is it 
possible to plug in other languages for import?

Please CC me, I am not on the list.

-- 
CU
  Joerg

PGP Public Key at http://ich.bin.kein.hoschi.de/~trouble/public_key.asc
PGP Key fingerprint = D34F 57C4 99D8 8F16 E16E  7779 CDDC 41A4 4C48 6F94
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mixed_up_startpoints.png
Type: image/png
Size: 3550 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/umbrello-devel/attachments/20021028/1145cafc/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Aufgabe1.xmi
Type: application/x-uml
Size: 4156 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/umbrello-devel/attachments/20021028/1145cafc/attachment.bin>


More information about the umbrello-devel mailing list