On Fri, Mar 30, 2012 at 1:51 PM, Mark Fortner <[email protected]> wrote:
> I've been working on a project with a client recently, and they wanted to
> make some changes to a model that I'd been working on.  I sent them the
> model, and later watched them try to make some changes to the model.  Here
> are some of the observations I made:
>
> Adding Attributes/Operations With the + icon is difficult.  Finding just the
> right position that will cause the + to appear is difficult, and editing the
> attribute underneath the + is made difficult when the + shows up on top of
> the attribute that you want to edit.
>
> Figuring out the associations/aggregations/compositions between classes is
> not really intuitive. This is partly due to a certain amount of naivete
> about UML, but partly due to the fact that we have at least 6 different ways
> of associating classes, and figuring out the right combination of settings
> that will result in the code you want is a bit of a hit-or-miss proposition.
>  Drawing a "UniAssociation" between two classes and a "UniComposition"
> between two classes results in the same code.
>
> When you create associations between classes the variables they create
> within the classes are public by default, and changing their visibility
> doesn't change the resulting code (I've filed an issue on this).
>
> When you create attributes in a class, they are public by default, even
> though most people want them private by default.  You have to explicitly
> type the - prior to entering the attribute name if you want them private.
>
> If you don't remove associations from the model (not just the diagram), you
> end up with unusable code.  Most people assume that if you delete something
> from the diagram, it's removed from the model.  Yes, I know that there are
> separate "Delete From Model", "Delete From Diagram" menu items, but by
> default, when you press the delete key, you're really just deleting from the
> diagram.  And there's no dialog that tells you what's going to happen.
>  Perhaps having shortcut keys for these operations would help.
>
> Creating packages and putting the classes in the packages is not easy.  I've
> filed a couple of issues about this already.
>
> After a few minutes of watching them struggle with the changes, they printed
> out the diagram, scribbled the changes they wanted on it, and gave it back
> to me.
>
> In general, the UML-ishness of the user interface becomes confusing and
> daunting to people who don't use UML that often.  People tend to work within
> a language, and don't spend that much time learning all the details behind
> UML. The results of the model will eventually become code (either manually
> or through code generation).  So closing the gap between UML and the user's
> programming language is really important.
>
> What's confusing is UML terms for things in your language of choice.  For
> example, you have an arrow that creates a Generalization between two
> classes.  If I'm working in Java, I want to know that "Generalization" is
> UMLspeak for "extends".   Similarly, knowing that "Realization" results in
> an "implements" declaration would also be useful.  This might be
> accomplished by changing the stereotype on the diagram from "realizes" to
> "implements" or whatever your language of choice calls it.  I realize these
> are really basic examples, but you get the idea.
>
> Hope this helps,

Feedback through exercises like this informed by watching actual users
is the only way usability improves, so thanks for taking the time to
send it.

Bob kind of glossed over it, but it sounds like you might not be aware
that there are shortcut keys for both forms of Delete already (Del vs
ctr/Del).

Some of the stuff (e.g. fiddly + positioning) just sounds like
straightforward bugs to be fixed.

Some stuff (# of association tools available, visibility defaults,
etc) sounds like it might be amenable to putting in an enhanced
profile that controls GUI setup in addition to modeling stereotypes,
etc.

There is a natural tension here, though, due to the fact that UML is a
lingua franca that is intended to serve multiple communities.  If you
start tailoring things heavily to Java, then it's no longer a common
modeling language that unites those communities.  Of course, there's
also the fact that each language you tailor the modeling environment
for means an additional of tranche of work to be done (on a project
which is already resource-poor).

Support of "UML as sketch" and a lightweight, facile, modeling flow is
something that I'd personally love to see though.  I'd love to be able
to knock out a diagram in UML as fast as I can sketch it on a napkin
(tablet UI anyone?) without the cognitive load of thinking about the
tool, but then by able to take advantage of the machine's ability to
modify the diagram rather than redrawing it from scratch, generate
code from it, and all the other things we associate with using a
modeling tool.

Tom

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=2942968

To unsubscribe from this discussion, e-mail: 
[[email protected]].
To be allowed to post to the list contact the mailing list moderator, email: 
[[email protected]]

Reply via email to