[Uml-devel] A few questions (long)

BARTKO, Zoltan bartko.zoltan at pobox.sk
Tue Nov 18 11:25:04 UTC 2003


Hello folks,

this message is long. I warned you.

Zoltan

As I have mentionned the other day, I am willing to do a documentation
generator for Umbrello, something like SoDA for Rational Rose (yes, Andy, I
know, you told me SoDA sucked). So I had to review what could be documented
and I have now a few questions/observations:

Before I start: I am using Umbrello (CVS:18.11.2003) on KDE 3.1.93
(CVS:28.10.2003)

- what is an attribute/operation/template stereotype good for?
- Umbrello allows circular dependencies and generalizations (e.g. wishlist:
walk-through the associations to avoid circular associations)
- If I am a package or a class, I can make myself depend on myself, e.g.
draw a dependency to self.
- multiple stereotypes of the same name (class attributes, class operations,
class templates)
- with interfaces it doesn't even suggest a unique name
- datatypes: I can create associations
(dependency/association/uniassociation) but I can't see the list in the
properties
- could the role settings page be disabled for generalizations and show only
"general"? or at least disable the widgets in it?
- could the name of the association be displayed in the respective lists of
associations?
- Offer a few predefined versions of multiplicity:1,0..*, 1..*
- I have a dependency. A - - - > B. Now: I cant set the multiplicity on the
side of RoleA, but I can set the changeability of RoleA. I can set the
multiplicity of RoleB, but I think it should be setable on side A, not B.
However, I may be wrong.
- Having an association connected to a template looks bad (try it yourself)
- If I create associations to myself, something changes in the class, its
dimensions change, but the points where the association line breaks don't
move.

- I could fancy Umbrello giving unique names to states, same with activities
of states.
- It would also be worth a thought to create an activity diagram for a
particular state (and throw all activities defined in the state one after
the other vertically or horizontally (needs no autolayout magic)

- I create a sequence diagram, drag in a few classes, connect with messages.
I want to select an operation, but my class has none. So I create one (in
the listview). Now, I try to tell Umbrello to select an operation from the
existing ones, nothing is in the list.

- What about the lists of associations and actors?
- can anyone explain me the use of the following: Actor < - - - - - Use
Case, e.g. a use case depending on an actor? Umbrello allows this.

- I have a strange window caption. It says
"#\!home\!bartkozoltan\!file:\!bartkozoltan\!umbrello.xml#" (without the
quotes)

- Deployment diagrams: what use is to have objects (a.k.a. classes) in them,
if I can't connect any association type... And the caption seems to be cut
off at both ends a little.

Now, I have a list of what could be documented, on condition we want extra
verbose documentation (sure, there will be switches that would limit the
documentation length). So if anyone finds anything to add or change, here
goes the list:

CLASS DIAGRAM:
* name
* documentation
+ Packages:
  * name
  * stereotype
  * visibility (public/private/protected)
  * documentation
  * associations (dependency)
+ Classes
  * name
  * stereotype (default = class)
  * package name (?)
  * visibility (public/private/protected)
  * documentation
  * abstract class (yes/no)
  + attributes:
    + attribute
      * type
      * name
      * initial value
      * classifier scope e.g. "static" (yes/no)
      * visibility (public/private/protected)
      * documentation
    + stereotypes:
      * documentation
  + operations:
    + stereotypes:
      * documentation
    + operations:
      * name
      * type
      * abstract (yes/no)
      * classifier scope(yes/no)
      * visibility (public/private/protected)
      + parameters:
        * type
        * name
        * initial value
        * documentation
      * documentation
  + templates
    + templates
      * name
      * type (a datatype)
      * documentation
  + associations:
(dependency/association/uniassociation/generalisation/composition/aggregatio
n)
    * object
    * association type
+ Interface
  * name
  * stereotype (interface) (?)
  * package name
  * visibility (public/private/protected)
  * documentation
  + Operations (as with classes)
  + Associations (association/uniassociation/dependency/realisation)
+ Datatype
  * name
  * stereotype (datatype) (?)
  * visibility (public/private/protected)
  * documentation
  * associations (dependency/association/uniassociation)
+ Enum
  * name
  * stereotype (datatype) (?)
  * visibility (public/private/protected)
  * documentation
  + Enum literals
    + enum literals
      * name
      * documentation
    + stereotype
      * name
      * documentation
  * associations (dependency/association/uniassociation)
+ Associations
  * name
  * documentation
  + Roles
    + RoleA
      * name
      * multiplicity
      * visibility
      * changeability
      * documentation
    + RoleB
      * name
      * multiplicity
      * visibility
      * changeability
      * documentation
+ Notes
  * text
  * anchors

STATE DIAGRAMS:
* name
* documentation
+ States:
  * name
  * documentation
  + Activities:
    * name
    * documentation
+ Notes: see in Class Diagrams
+ Associations: see in Class Diagrams

ACTIVITY DIAGRAMS:
* name
* documentation
+ Activities:
  * name
  * documentation
+ Notes: see in Class Diagrams
+ Associations: see in Class Diagrams

SEQUENCE DIAGRAMS:
* name
* documentation
+ Classes:
  * name
  * instance name
  * documentation
  * draw as actor (yes/no)
+ Operations:
  * sequence number
  * operation name

COLLABORATION DIAGRAMS:
* name
* documentation
+ Classes:
  * name
  * instance name
  * documentation
  * draw as actor (yes/no)
  * multiple instances (yes/no)
+ Operations:
  * sequence number
  * operation name

USE CASE DIAGRAMS:
* name
* documentation
+ Actors:
  * name
  * visibility (public/private/protected)
  * documentation
+ Associations: see in Class Diagrams
+ Use Cases:
  * name
  * documentation
  * visibility (public/private/protected)

COMPONENT DIAGRAMS:
* name
* documentation
+ Interface
  * name
  * stereotype (interface)
  * package name
  * visibility (public/private/protected)
  * documentation
  + Operations (as with classes)
  + Associations (association/dependency/realisation)
+ Components:
  * name
  * stereotype (interface)
  * package name
  * visibility (public/private/protected)
  * executable (yes/no)
  * documentation
  + Associations (dependency)
+ Artifacts:
  * name
  * Stereotype name
  * draw as (default/file/library/table)
  * visibility (public/private/protected)
  * documentation
  + Associations (dependency/association)

DEPLOYMENT DIAGRAMS:
* name
* documentation
+ Interface
  * name
  * stereotype (interface)
  * package name
  * visibility (public/private/protected)
  * documentation
  + Operations (as with classes)
  + Associations (association/dependency/realisation)
+ Components:
  * name
  * stereotype (interface)
  * package name
  * visibility (public/private/protected)
  * executable (yes/no)
  * documentation
  + Associations (dependency)
+ Node:
  * name
  * stereotype (interface)
  * instance name
  * documentation
  + Associations (association/dependency)
+ Object:
  * class name
  * instamce
  * actor (yes/no)
  * destruction (yes/no)
  * documentation

Thanks for reading this far.





More information about the umbrello-devel mailing list