Book a Demo

Author Topic: Control Flows on Activity Diagrams?  (Read 12713 times)

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Control Flows on Activity Diagrams?
« Reply #15 on: March 21, 2006, 04:15:19 am »
Jim's points are well taken. If you don't need to differentiate between the flow types, it is likely that you don't need to see a visual difference (at least at this level of abstraction). When you do need to see the difference, the object nodes are there to make this evident; they can also carry additional information that the model can display or query.

Outside of the systems world, I was using EA to model some business processes a while ago (v. 4.1). We needed some means of quickly and simply conveying our understanding of processes to a management community while the processes being finalized. This would allow corrections in the processes as well as helping determine which parts of the processes could be supported by automation. The business processes were unique, involving negotiation between several parties towards a positive end, where previous dealings tended to be settled through legislation and the courts.

By using activity diagrams like flow charts we were able to illustrate the overall processes. Our clients could quickly make sense of things and identify errors. So far so good, and down to the next level. We used swim lanes to show the 'who' dimension and let the activities talk about the 'what.'

By adding object flows we could differentiate between "then we do..." events (the control flows) and "the initialled draft goes to..." transitions (the object flows). The clients, who had no experience with UML were able to quickly pick this up. We initially included notes tied to the object nodes to explain what was happening. Before we could provide a short document to explain the notation they suggested that we remove the notes and forego the help document, as they felt they could clearly see what was happening and understand what was going where (object flow), as well as see the flow of activity supporting the protocols and negotiations (control flow). [Interesting enough, with early experiments using dotted arrows the users complained that the different visual cues were confusing; they were reluctant to continue with that experiment even with a user guide.]

Worked like a charm, even outside of the systems world. When the level of abstraction was low enough that people needed to see the difference the notation is effective. At a higher level it probably won't matter.

Of course these days we might well use BPMN. That was not an option with EA back then. However, my feeling is that at the level of abstraction we were talking about, UML activitiy diagrams did an excellent job, particularly by separating control and object flows. I also think we'd still be giving courses on pi calculus to managers, executives and lawyers to explain how to read the BPMN models, probably using UML activity diagrams as props.
No, you can't have it!

davisford

  • EA User
  • **
  • Posts: 63
  • Karma: +0/-0
    • View Profile
Re: Control Flows on Activity Diagrams?
« Reply #16 on: March 21, 2006, 07:43:23 am »
Hi Jim, I have to disagree.  The fact that the tool may/may not enforce the drawing of one line that looks the same as another between two elements is not visually distinguishable for me, and provides no concrete semantics when reading the diagram.  This problem is exacerbated by the fact that activities and actions are dangerously close to looking the same.  Last time I tried to use this in EA, the object port/node did not automatically fill in; my question was more specific to that scenario.  Even in the case that you're modeling formal petri nets, if the arrows provide no visual distinction, just the fact that an arrow goes from/to an object defines it as an object flow, and if it is to/from an activity to another activity, you have no way to know...well, now it appears you do with the object node/port.  I still find it dangerously ambiguous and only those that are very familiar with the model syntax/semantics will get it.  In my humble opinion, I find it a poorly defined part of the UML spec.

jeshaw2

  • EA User
  • **
  • Posts: 701
  • Karma: +0/-0
  • I'm a Singleton, what pattern are you?
    • View Profile
Re: Control Flows on Activity Diagrams?
« Reply #17 on: March 21, 2006, 09:00:11 am »
Everyone's points are well taken and I'm not feeling compelled to dispute any of those points.  However...

The arrows on the old flow charts were control flows, not object flows.  They showed the ordering of activities, not the flow of data.  In the old days, data locations were static (e.g., COBOL's Working Storage Sectiion)  they did not move.  Now, data (in the form of objects) logically flow also.  

The fact that data flows to a downstream node does not mean, a priori,  that that activity will be the next activity to fire.  At a fork, data references may go in two directions at the same time to different activities and the first of those to fire is indeterminate.  You need control flows to spell that out.  

If you user is not concerned about the order in which activities happen (such as the relative ordering of database record updates), well then, you don't need control flow arrows.  If you user is not concerned about the sequence of data transformations that lead to a result, for example: a+b/c versus (a+b)/c, then you don't need the data object flows.  

It all depends on the subject of discourse.  I don't see this as a level of abstraction, but as a matter of subject selection.
« Last Edit: March 21, 2006, 09:02:15 am by jeshaw2 »
Verbal Use Cases aren't worth the paper they are written upon.