Official UML definition: Activity Diagrams are a special case of a State Diagrams in which all, or most of the states, are action states and in which all, or most of the transitions are triggered by completion of actions in the source states.-- Steven Black
Activity Diagrams tutorial
I have found Activity diagrams to be useful when rewriting an existing app, and/or when restarting an unfinished or abandoned project. Especially in the situation where the client or project manager says "I want the new app to do everything this one does, plus a few minor extras". (insert "where's spec?" question here) "Written requirements? Why should I write it down, just look at how the existing thing works".
In those types of situations, Activity Diagrams are a great means of exploring the black box. They help me lay out exactly what happens now, and they help the domain expert realize the extent of the apps requirements. Plus, they always inadvertently make the client or project manager realize that the existing functionality seemed to work just fine, when really there was some major problems or gaps.
Once the client or project manager (aka domain expert) sees the visual representation of the existing app in Activity Diagrams and signs off on it, documenting the project's requirements list yourself is a piece of cake.
One thing I struggled with at first was where or when to put a synchronization symbol. I felt this aspect of these diagrams left a little to be interpreted by the analyst. The interpretation that seemingly works well for me is that the synchronization represents a major step or steps that happen internally or behind-the-scenes if you will, between activities. Typically the type of step that only makes sense to the programmer, like error trapping or determining the right aggregate to add to my composite object, and not something the domain expert will be able to easily follow in verifying the proper flow of activities. Roxanne Seibert
Contributors: Roxanne Seibert Steven Black
Category UML, Category Modeling
( Topic last updated: 2004.01.22 11:47:30 AM )