[Uml-devel] u2 user interface
Andrew Sutton
ansutton at kent.edu
Mon Mar 24 07:56:35 UTC 2003
jens has asked about a direction for the user interface for u2 so i guess i'll
start describing some assumptions about some preliminary research. this is
probably going to get a little long...
many uml editors (umbrello included) are essentially based on something called
a "4+1 view" of software architecture. the 4+1 view basically describes 5
different aspects of a software project. the views are:
- logical
- process
- development
- physical (deployment)
- scenario (use case)
the thing that makes it 4+1 instead of simply 5 views is the relationship
between the views. the use case view is laid over the top of the others
touching each. the idea is to imply that use case view motivates the
architectures in the other views...
the reason i say that many uml editors are based on this view is because they
have packages in the model view called "Logical View" or "Use Case View" or
"Deployment View". see - even umbrello uses this :) what i'd like to start
the user interface with is a view management system. it has some interesting
properties...
we can say that these 5 views are views of the model, or model views because
they (will eventually) show information contained within the model. one
possibility would be to actually show the 4+1 view in the main window. at
some point i'd like for this to happen. typically, all the views are
organized into a single tree view that contains the entire model. these get
rapidly cluttered - we all know that - and it makes it kind of hard to work
around. i think each of the 4+1 views should only show what's in its own
package - or at least that information should be given precedence.
for example, we could consider metamodel views as well - based on the plugin i
just wrote. we might have pattern views or... i don't know. i can't possibly
list all of them right now. however, it becomes apparent that we need some
system for view management. here's some good views: report views. select it
and see all your classes and some calculated metrics... just guessing :)
the best system that i've seen is the outllook bar. it provides a nice
categorization of view navigation. so, it would be nice if we had a dockable
outlook bar. does KDE have a widget for that that? based on stuff that does
exist or stuff that should exist, we already have two categories for the
outlook bar: model views and metamodel views. not that the metamodel views
are very informative, per se, but we might find something useful inside them.
for example, by clustering all the information within the view in an
interesting way, the uml metamodel view could provide an interesting help
mechanism - good descriptions of what all the options are or something like
that.
because we're talking about view navigation, we have to talk about browser
capabilities too. if, for example, you click on a view in the outlook bar,
one of 3 things could happen.
1. you could replace the main widget with the selected view
2. you could create a new window with the selected view
3. you could create a new browse tab (like konq 3.1) with the new view
all of these are perfectly adequate solutions. we should allow 2 for users
with multihead displays - they might want to have a couple different views
open at the same time.
anyway, this is the basic framework on view management. what's contained
within each view is another story. for starters we have the model view -
basically a tree view with a focus on the package related to the view. then
there's something about a default view that shows all the diagrams and then
there's the diagrams themselves.
so. any feedback on that? otherwise, that's probably the direction i'm
dragging this thing.
andy
More information about the umbrello-devel
mailing list