Discussion Locked

UML Activity Diagram

0 helpful
7 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.

Hello everyone.

The past couple of month or so, I am trying to find out if people knows about the UML Activity Diagram, if some use it and what they do with it.

So I thought I'd ask here as well. My researches tend to show that there are 2 big trends there:
- The first one is diagrams to represent business models. How a company, a division, a sector works.
- The second one is for system development. To describe the flow of events in a use case.

I also see that many are using it to "fill the gap" between developers and managers. It looks like an easier language to explain for IT and easier to understand for management.

I would like to know about you here. Are you familiar with it? Do you use it? And for what purpose(s)?

Thank you in advance for any though you would share.

Geo

7 replies

by dr dij

I've been using Visio for flowcharts at work.

Have been looking up and reading about UML in general. I just downloaded two free BPM modeling packages and one free UML modeling package. (see link)

https://www.techrepublic.com.com/5208-6230-0.html?forumID=102&threadID=207298&messageID=2144760

They are by major players like Tibco

The idea is to model the biz in way others can understand and document the repeatable processes.

If you try these, why don't you let us know how they work? I haven't had a chance to use them yet. This is where jobs will be, with biz analysts rather than programmers.

by dr dij

don't want my job skills to become stale.
I'm reading books on the ACM.org site. O'reilly books are available, one was on biz modeling. At some point, I'll have to whip up some diagrams, and try some simulations. The sites for the free sw have some tutorials also.

You have to pay $109/year but this include membership in the ACM, plus some books24x7.com books also and thousands of thomson-netg courses online.

by akramnajjar

I use the Activity diagram to model 2 areas as you say, but I am being more specific.
1) Modeling the event flow of a Use Case or of scenarios in a Use Case. Restrict this to Use Cases and do not model outside the Use Case. It is the Use Cases that are used to describe the Business Processes. It is bad practice to use the Activity Diagram to model the whole process. You would be making the mistake traditional business modelers made of including too much and not knowing where activities start and where they stop.
2) The Activity Diagram can be used to model the behavior of a business object, (modeled in the UML by the Class Diagram). This would help developers code the various methods used for that Class.
3) It can also be used to model specific methods in a Class.

I am not familiar with any other use of the AD.

Remember, it has several major advantages over traditional flowcharting techniques: a) It allows modeling of parallel processes or events through the use of Links and Joins. b) It has a more compact notation for loops using the asterisk. c) In the flow of activities, it allows the insertion of business objects when needed.

Visit the IBM site and look for the Rational Edge monthly paper. Go to the archives, there are some good articles on modeling.
All the best
Akram

by g...

In my researches, I met these 3 cases. Even though description of a Class is not so common. But I do not agree on the "bad practice to use Activity Diagram to model the whole process" under the first point.
It is true that many are making mistakes when they do so but it is actually a very good way to describe in details. The problem is that most people are trying to model with the fewest diagrams possible and THIS is the bad decision. To get a good Activity Diagram you need many levels to give a good description.

Say we start at what I call a top level with very widespread Actions. Then you create a new diagram to model every Action (these are not Action then but Activities). After having your "second level", do the same again to create a third level.

It may be easier with an example:
We have a company producing and selling stuff. We create a very "high level" digram that looks like:
receiving an order -> sending it to production -> sending the finished product AND sending the bill -> finishing when we get paid.

That was a too simple one, but good enough for my example. When this is done, you go to the next level. This means go into every actions and "describe it" with a new diagram. Here in my example, I'll take the "receiving an order":
picking up the phone -> checking what we have in the warehouse -> create an offer to the customer -> sending the order to production.

Then again we could "split" these into smaller Activities to the point where there are only Actions. I define an Action as an Activity where there is only one "process".

Now I hope you understand my point.
I do get that many don't bother. And it is probably easier doing this with other diagrams than only Activity.

Anyway thank you very much for those comments. It helps a lot

Geo

by akramnajjar

The industry practice is to start with the top level view like you said. These are broad core processes for a firm. Then these are broken down into sub-processes. The example you gave is exactly that. This goes on until we reach Use Cases. (Read the symbolism of A Cockburn in "Writing Effective Use Cases"). When describing processes, you do not need to describe actions. (A new term in the industry!). You simply describe the objectives of the process and its scope (what is in and what is out). Like you said, this goes on till you reach Use Case level. That is the heart of UML. You can package Use Cases to show your sub-processes and processes. UML too. You can define the interfaces between packages.
Briefly, what I am avoiding is large scale activities that are really independent and only linked via objects. When receiving an order (a sub-process) I would not want to worry about its distribution (another sub-process).

by akramnajjar

1) Model event flow of a U/Case or its scenarios. Don't model outside U/Case. Processes are modeled by U/Cases: bad practice to use AD to model a whole process.
2) Model the behavior of a business object.
3) Model specific methods in a Class.

The AD has advantages over classic flowcharts: a) Models parallel processes. b) More compact notation for loops. c) Allows insertion of business objects in event flow.

This discussion is closed to new replies.