Hi, everyone.
I've been using UML and BPMN for about 7 months now. What I've found myself doing is using BPMN for modeling strictly mid-to-high-level business processes, and UML Activity Diagrams to model functional solutions and detailed systems logic.
Above I've attached an example of some logic using an Activity diagram for a report that I've been tasked with producing (I'm acting as both the BA and Developer [Programmer, what have you...]). The idea is to be able to translate the actions and logic directly to code. Approaching the construction specification this way allows any developer to analyze the logic that is being used. We think it's far better than explicitly stating, "IF (this), THEN (do this); ELSE (do that)". So far it's helped out a great deal.
Is it typical for Activity Diagrams to be used in this manner? Most that I've seen look more BPM-esque, but that's what I use BPMN for because it just seems like a better suited notation for business process modeling. Are there any other tools that any of you prefer to use to document system logic that could literally be translated to code?
Regards,
vinny
Vinny,
1. If people can code and test from the diagram than its OK. I dont want to scare you, but in my day (showing my vintage) we used a thing called a Nassi-Schneiderman diagram. Google it.
2. Some places I worked at created activity snippets for "do-while", "do until" etc, which helped with transitioning between code and diagrams.
3. Q: How do you envisage the programmer implement your steps 3 and 4 above? It is a parallel process. I also "assume" that the ending date must be greater than beginning date etc.
4. Q. Is it typical for Activity Diagrams to be used in this manner? Yes. Activity diagrams can be used at the high-level for business process (swimlanes etc); and it can be used to articulate operations in classes.
Enjoy!
warm regards,
K
Thanks for the great information, K. In response to your question in bullet point 3, actions 3 and 4 can occur in any order, but both actions must complete in order for that part of the process to continue. The order of the actions could have been arbitrary, I suppose, but I don't want the programmer to think those two actions must be done in that particular order. Your responce in bullet point 4 is precisely what I needed to know, by the way: how method logic can be articulated.
That N-S diagram approach is strange, by the way! Thank God I don't have to use that approach at work!
Again, thanks for the terrific information!
Hi Vinny
You an consider using activity pins for actions and Activity Parameter for Activities as a representation of objectes befor and after particular operation. One Action Pin can be Timeframe object for example with 2 attributes. It can be send between actions.
Apropopo's order of execution - oreder can by determined by using extension regions advanced options.
best regards
ofcourse i meant expansion regions :)
brought to you by enabling practitioners & organizations to achieve their goals using: