Business or Process Modeling
Abstract
Discussion on the RUP forum has had some threads of discussion about business modeling and more particularly on how to model the actors on business processes of a software development process. Examples were asked for and so we try and give some likely diagrams and discuss the merits of each approach.
Introduction
Leslie wrote: "Concerning business use cases. I have a series of business activities to model that are aimed at taking a project through a series of gates (or review points). These are gates are not occurring in sequence and activities will be performed by different groups, often in parallel. Each activity has a stakeholder - the person that validates the artifacts passing through the gate, an owner - the person responsible for those artifacts, developers - the people building the artifacts inputs - the things that are used to drive the activity and outputs - the artifacts that are output from the activity.
My question is, which of these things are shown on the business use case diagram as actors:
Reading between the lines, we want to be able to generate our own RUP like diagrams, using UML and Rose doing Business Modeling.
Example cited
1) Analysis:
2) High level design:
3) Detailed design:
4) etc.
At the end of each development phase there will be a review where the QA manager will recommend a pass or fail. Pass means to go to the next phase and fail means rework followed by another review.
Leslie then asked "Now the question is, how would the business process described above be modelled with a UML business model?
Where do you show workers? How do you indicate inputs and outputs? Who are the initiators? Are there physical systems that you would include in the model?"
Solutions given
Glen Tattersall replied "The answer in theory is straight forward but sorting out the criteria is not always.
Business Actors are those people, organisations etc that are outside of the Business Boundary under investigation. This boundary can take many forms and here are some examples of some boundaries and possible business actors.
So from your list, I would say at best the stakeholder may be shown on the Business UC Diagram but given your definition, they are more of a Business Model Reviewer. If the stakeholder is within the boundary then they are a worker. The question to ask is "Who gets the value outside of the boundary?" It is these folks that are the actors."
Simon Bennett added; "It seems to me that there are two things getting mixed up here. Business use cases and business process modelling using use cases.
My understanding is that business use case modelling is something akin to context diagrams or top-level data flow diagrams (without the data flows or data stores). The actors here are people, organisations and systems outside the scope of the business system being modelled; the use cases deliver something of value to them. So actors are things like Customer, Supplier, Bank Automated Clearing System etc. The people who do the work inside the business are hidden away inside the use cases that represent business processes. When you model the internal system and the use cases are provided by an information system, then the actors are the people who work with that system. Of course some actors will be the same in both types of diagrams (particularly public information systems with business actors who interact directly with the system).
In 'The Object Advantage' (Jacobson, Eriksson and Jacobson, 1995) use cases are used as part of a business process reengineering process, and it sounds to me as though that is closer to what you want, Leslie. I read the book a while back and haven't got it with me here at work, so can't check this out. In this approach use cases are used to model the business processes within the organisation rather than viewed from the outside, but they include processes that are not necessarily part of some information system. (In the days of data flow diagrams, we used to draw logical DFDs that included processes that weren't necessarily going to be computerised, and part of the design process was determining the boundary of the computer system.)
Regardless of the above, I'd say (4) Inputs and (5) Outputs are not shown as actors in a use case diagram.
It seems to me that what you want, Leslie, is to be modelling your business processes in more graphical detail than is provided by use cases. Why not use stereotyped activity diagrams, as are used in the RUP, to model the various participants, the activities and the inputs and outputs?
Hüseyin Angay also replied: "If all these workers are playing
some role in the use case, they are all workers. It sounds like you need to make
them all business workers, but then stereotype them as 'Stakeholder', 'Owner'
and 'Developer' to differentiate them.
Now, from your description, I would consider a second strategy of documenting
this: Write one or more general use cases that describe how a general activity
is performed and the interaction between Stakeholder, Owner and Developer. Use
some placeholder keywords where activity-specific actions happen. Document the
activities separately in a table, say, describing the specifics for each keyword
from the use case.
Simple contrived example:
Use Case:
Review:
- Stakeholder places ~document~ on server.
- Owner assigns a developer to the document.
- Developer reviews document and produces a ~review document~.
- Owner approves and passes the review document to the Stakeholder.
Specifics
~Use case review:~
Document: Describe the use case template here.
Review document: Describe the use case review template here.
- Location: place on R:\Use Cases\
- Assigned to: Peer Analyst
- Describe quality criteria for use case review. Must be done within three days of the assignment.
- Location: place on R:\Use Case Reviews\ Must be done within one day after the review.
~Code review:~
Document: Describe source file here.
Review document: Describe the code review template here.
- Location: place on R:\Source Code\
- Assigned to: Peer Coder
- Describe quality criteria for code review. Must be done within five days of the assignment.
- Location: place on R:\Source Code Reviews\ Must be done within one day after the review.
Richard Howlett added; "Not all stakeholders interact directly with the business. Those that do, such as customers (i.e. those with goals your business helps to realize) and business partners should of course be included. I would consider the owner of the use case artifacts as the Process Owner. No need to show him or her in the model, apart from as a note. I suggest including business workers in Activity Diagrams, equivalent to Alistair Cockburn's White Box Business Use Case concept. The input and outputs can also be shown in the Activity model, as object flows coming in and going out of activities.
Now in the use case description you can have a section that describes how each business use case 'protects the interests' of stakeholders."
Formal Way
Normally one would use the Business Use Cases to model the context and goals of the organisation (in this case the "business of how the IT Process works") See Diagram 1 below.
One could then use the Static models to show the classes of things involved in the process, such as People, Artifacts, etc. See Diagram 2 below
One could then make use of dynamic model diagrams such as Business sequence Diagram 3, Business collaboration Diagram 4 or Business activity diagrams (High level) Diagram 5 and (detailed) Diagram 6 to show the interaction between the various classes.
In the above 'example cited' we have just taken the first bit called "1) Analysis" which was stated as
"1) Analysis:
Tools for diagramming
Tools can be frustrating. Short of creating all the Icons in something like Visio which would be very time consuming for this purpose, we've tried to just pick some of the features in each tool to show a concept.
In most of the diagrams in this essay, we used Rational Rose, but it does not have the ability to draw in boundaries. So the diagram below, we used a tool called Enterprise Architect from Sparxystems to diagram a sample Use Case to highlight the Boundaries one can use. We used this tool because it does boundaries nicely, but it didn't allow us to change the visual icon according to the stereotype of Business Worker. It also did not have the concept of a business Use Case Versus a Systems Use Case.
So apologies for any confusion, but the concept we are trying to show here are the different levels of boundary with which you could choose to model your diagram. We have;
We are not suggesting you use all these boundaries in your model, pick only one set and make your actor stereotypes relative to that set. Inside the boundary use a Business Worker Icon and out side the Boundary use a Business Actor Icon.
Diagram 0. Here we try and show the alternative sets of boundaries one could choose between for your business model.
Assumptions for this Model
In this example, the assumption is that the Business Actors are external to the whole IT department of the business. So the context is inside the IT department we have Business workers and outside the IT department we have Business Actors such as Customer (they could come from some other department within our company or from some other company outside our company.)
We could have had the context line being drawn around each It Department Team, so that each Actor in the team would be a Business Worker and each Actor outside the team would be an Actor. This may be a better way to model the process, just to define the boundaries a little tighter. We haven't chosen to do so here.
Business Use Case View
Diagram 1 above. This diagram shows the goals of the "IT Analysis" process, which is ultimately to create an Analysis Model. It shows the Customer from out side the context boundary (which one cannot draw in Rose like some other tools, unfortunately.)
The Business Use case goal of "Creating an Analysis Model" is derived by two sub-goals of a set of Workshops and a series of Detailing the Analysis Model. We just added this to show the relevance of which Actors and Business Workers are involved with each more detailed part of the process.
The Architects and Systems Analysts are involved in the overall Business Use Case, while the Testers and Customers are only involved in the Workshop Analysis Model included use case.
Business Class Diagram
Diagram 2 above. This diagram shows a class model closest to the RUP type example below. However this is a static diagram and cannot denote the behaviour of the process. For this we need any one of the next three diagrams. This diagram also relates quite closely to Diagram 5 below
Business Dynamic Sequence Diagram
Diagram 3 above. The sequence diagram above shows one view on the dynamic behaviour of the process. These diagrams tend to get rather large (wide) and are not always practical but are nice and easy to read and see chronological sequence of events. Some people don't like using these at a Business Modeling Level but we find them quite useful. Please note this example only includes the one business Use case for doing the Workshop, and not the high level "Create Analysis Model" Business Use Case or second part of the "Detail Analysis Model" Business Use Case.
Business Dynamic Collaboration Diagram
Diagram 4 above. This diagram is the Business Collaboration Diagram and shows another way of modeling the behaviour of the process. Please note this example only includes the one business Use case for doing the Workshop, and not the high level "Create Analysis Model" Business Use Case or second part of the "Detail Analysis Model" Business Use Case.
Business Dynamic High Level Activity Diagram
Diagram 5 above. This simple model represents the high level Process which would relate it to other processes (if we had done any in our example), modeled using an Activity diagram, .
Business Dynamic Detail Activity Diagram
Diagram 6 above. This diagram is probably the most useful after the Business use Case. But while this diagram above does not have the Icons for Business Actors (External) or Business Worker (Internal) on it like a typical RUP diagram below has, it does have the swim lanes attached to Actors which denote who does what:
Diagram 7. A typical example of a RUP view.
This diagram appears to be a mix between Use Case Goals and Activity diagrams that contain Actors / Swim lanes and Input outputs on it.
Restated, this diagram appears to be an activity diagram without start, state transition arrows or end points. Nor and synchronisation or decision diamonds?
Agile way
All of the above diagrams take quite some time to produce. There must be an easier more agile way?
If you look at the RUP definition of a Business use-case instance is:
And bearing in mind the Agile Modeling values state Communication, simplicity while principles state Model with a purpose, Assume simplicity, etc.
If the business use case instance defines a sequence of actions a business performs, then surely this model below, would be simpler and easier to understand than two separate diagrams (Bus Use Case and High level Activity)?
The assumption here is that you show the Business Use Case goals on the same
level as what the rose stereotypes as a Workflow detail
as opposed to Activity
.
This would give you a diagram which looks like this:
Diagram 8 - Agile hybrid. While it is not generally good practise to show input and outputs graphically on any Use Case diagram, we feel in this particular case it is probably acceptable, because it conveys in a very simple diagram the essence of what we are trying to express. It is not a process diagram, rather the Goal diagram we are showing. In text one could read this diagram as:
"The Systems Analysts and the Architects have a goal to create an Analysis Model, with Textual requirements as input and an Analysis Model as output. This Goal is made up of two sub goals each of which contribute towards the main goal. The Customer and Testers are involved with the goal to Workshop the Analysis Model while the Detail Analysis Model is done as a separate goal (by the same actors involved in the overall Goal)"
Conclusion
If one takes the formal route using standard UML diagrams, they do not seem to be as expressive and easily understood as the way RUP has implemented their diagrams.
Rational Process Workbench as an add on to Rose is out there but it probably needs a few more iterations before it will be easy enough to diagram in UML and look like RUP. (More about RPW) (More on SPEM)
Please send feedback if you disagree with any of the content, diagrams, assumptions, etc. This seems to be a dynamic art which we all enhance as we go along. Alternatively refer us to the definitive guide on Business or Process Modeling, we haven't found it yet!
[Please also note this article was developed on the 17th April 2002, and if any further comments have come in on this topic they will not have been included. it will be updated as feedback and comments are raised.]
References
Rational Corporation. Rational Unified Process. Version 2002.05.00.25.
Leslie - Asked the original question. April 2002.
Richard Howlett - email contribution to the RUP forum. April 2002.
Hüseyin Angay - email contribution to the RUP forum. April 2002.
Simon Bennett - email contribution to the RUP forum. April 2002.
Glen Tattersall - email contribution to the RUP forum. April 2002.
Edwards, Charles. www.ProcessWave.com April 2002.