Book a Demo

Author Topic: UML newbie: documenting existing system  (Read 4456 times)

CJ

  • EA User
  • **
  • Posts: 288
  • Karma: +0/-0
    • View Profile
UML newbie: documenting existing system
« on: September 19, 2002, 07:40:12 am »
G'day folks,

I've read several books on UML, and I think I've got the basic theory of it all.  Now I want to apply the knowledge and turn it into "know-how".

My approach to applying UML is to take a poorly documented system I inherited (maintenance and development), and to document it with UML.

How do I go about it?  Where do I start?  How should I (even just initially) setup packages and models?  I guess I have the equivalent of writer's block ... I know what models I want, know how to do the models, but don't know where to start, and what order I should be doing things in.

Anyone have any incremental steps to follow for this kind of thing?  (From general UML stuff to EA specific stuff?)

Thanks in advance and best regards.
Cheers and best regards.

jaimeglz

  • EA User
  • **
  • Posts: 164
  • Karma: +0/-0
    • View Profile
Re: UML newbie: documenting existing system
« Reply #1 on: September 19, 2002, 08:35:13 am »
Hi, Jason.

I don't have much time, so I'll just outline how I'm doing it:

1. Do a process diagram, using the artifacts in the Analysis tool box. Users understand these processes much better that use cases. This is also the "panoramic" view of your subject area.

2. Create a use case model, so that the all functional requirements are covered (and documented in the use cases).

3. Create (at least) one sequence diagram for every use case. I drag the sequence diagram into its use case element in the project tree, which makes documentation very clear. Be aware, however, that Sparx recommends to maintain the original view structure in your tree. (Follow whatever you find makes more sense for you.)

4. If your use case is complete, you should have discovered practically all your classes in your sequences. You can now change the appropriate "sequence" objects to "class" (right click on them in the diagram, chage object type...). In your tree, move the classes to the appropriate structural package (that is, where you will create your database diagram).

Import all class info you can get from existing models in other packages (ERWin, for instance). Or, oftentimes, you can reverse-engineer classes / tables from existing code. Saves a lot of time, because you do not have to type attributes and so forth...


5. Draw your structural diagram by placing your classes / tables into it, and joining them with appropriate associations.

Also, your structural package can contain a package for the database, and another for user interface classes. This is optional, since there is nothing wrong with having a single class diagram for both.

6. Make diagrams of your technical architecture: see if you can get away with a single diagram that has components and nodes. You will specify here your server and PC types, the components and packages they contain...

7. Complete and check your model by specifying the states of class instances that have non-trivial life-cycles. (See my posting on states in sequence diagrams.)

As you go along, generate interim (RTF or HTML) documents to see if everything is comming out clearly. (Don't worry about document details: all your changes should go into your EA model, not into the interim docs.)

As nice details for your system documentation: "move external" your use case (and other) requirements into requirements in a "Project Definition" package. Make a requirements diagram, and join requirements with appropriate depedencies. I place this at the very beggining of my tree, so it comes out first in my documentation. It is also nice to move all actors to a "Project Organization" package, and make an org chart.

Hope it helps!

Jaime Gonzalez