An esteemed associate of mine asked me recently if I believe that a conceptual information model, created and delivered independently from a process model, can be considered useful when attempting to improve a business. In other words, if you have an conceptual information model, can you use it directly, or do you need to produce a process model as well?
The answer, as is typical of EA answers, is buried in the question. If the goal is to improve a business measurable (like customer satisfaction, or average dollars per order, or customer acquisition cost), then the information model is not useful by itself. A process model that illustrates how the information is generated and managed must also exist.
So we will often need to develop both a conceptual model of a business and a process model for the business… but which comes first? Must they be done in parallel? Or should an architect create one before the other?
Personally, I know of cases where a process model existed long before a conceptual model did, and vice versa, so clearly the efforts are not contingent upon the other. In fact, in the situation I am in right now, the business has defined a rich process model that has grown out of date. I have separately developed a conceptual information model that includes concepts considered important by the stakeholders.
Now comes an interesting question: how do we take an updated conceptual information model and use it to improve an existing (but dated) process model?
I have my ideas, but I’m wondering if you, gentle reader, have specific ideas to share as well? I’ll outline my thinking, but I invite a discussion: is there a better way?
Situation: a project team finds that they have a conceptual information model, and/or business vocabulary, that is not in sync with the processes that the business says they want to standardize upon. How do we use one to improve the other?
OK… that’s a swag. Does anyone have a reference to a well documented and sound methodology for taking a conceptual information model and using it to improve an existing, and potentially out of date, process model?
Yes, this process is also supported by UML.
- Define processes using activity diagrams with activity nodes and flows only (without ObjectNodes).
- Define entity view - class diagrams and corresponding state diagrams for selected classes
- Add ObjectNodes to activity diagrams and CONNECT two separate views in this way - process view (activity diagram) and entity view (classes/states).
As business team responsible for business processes uses different tool than design teams, we do not use this approach very often... We do it as mental exercise only :( It is one of the reasons, why BPMN should be more connected to UML.
Yes, that method allows me to mechanically connect the two, but does it offer me a methodology for improving one from the other?
Not as rich as the one I outlined in the blog post.
I do not understand you entry probably. What does it mean:
- "COMPARE the newly generated “loose” process model to the out of date process model in existence."
These "processes" are TOTALLY different:
- First (existing process model) defines steps to achieve business goal
- Second defines entity lifecycle (entity "state" can be changed by many different business processes and many different business goals can be achieved during lifecycle of one entity)
I cannot COMPARE them as they do not reflect the same view, but I can validate, that process model and entity model are CONSISTENT.
I can validate that business processes (e.g. specified using activity diagrams):
- are fully specified - business processes covers all entity transitions according to specified entity state diagram
- are correct (relating to entity lifecycle) - business processes performs changes of entity, which correspond to state diagram
You seem to have stopped reading half-way through the post.
My post talked about two things: A and B. They are independent. But can we use A to improve B?
I then go on to describe a method where you can use A to create a new B (let's call it B-prime). You would then use B-prime to improve B.
So, to translate back into English, we would use the conceptual model to CREATE A NEW (LOOSE) PROCESS MODEL, and from that, draw observations about the existing process model.
So, my question was not "Can one do this?" Clearly I can. The question is: "Has another method been documented?"
I'm assuming that I'm not the first person to attempt to use A to improve B.
Sorry, can't provide a reference to another method. I can say what you described looks reasonable.
URDAD is a methodology used to ensure analysis at the lowest level of granularity for UML. It takes use case for use case, identifyng the responsibilities at the lowest level depicting the activities, sequence diagrams and object/classes it touches....Have a look at www.solms.co.za, I may be of the boat on this one, but have a look - it may help.