[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