Friday, August 28, 2009

Modeling : from Business Process to Software

What is so special on modeling? Why we often hear : business process modeling and also software modeling?
Before going to far, we must understand that modeling can be interpreted as simplication of real problem or we can say in other words abstraction because we emphasize on most important features than more detail features. It is not meaning that we dispel detail features, but we manage them in different perspectives. It is best recommended that we have many views so we can use them in various purposes.

The special ones about modelings are their functions.
First, they can reduce complexity from business or software complexity. It is related with how human can handle and memorize problems in the same time.
Second, they can increase our understanding on problems that we face. As our understanding increase, we can find many ideas to overcome them.
Lastly, they can be used as communication tool among all related stakeholders. Solving problems mean we need to communicate to our clients, our team and also our stakeholder. We need mean to do that and the model is the answer.

From software engineering perspective there are some questions in using models to help making software :
1. Do we need both business process and software modeling?
2. Can we use only business process modeling?
3. Is software modeling enough to product software without business process modeling?

Here are some of the answers :
1. We can use firstly Business Process Modeling Notation( BPMN, de-facto Business Process Modeling ) and than be integrated with Unified Modeling Language( UML, de-facto Software Engineering Modeling ). The problem is this approach is becoming uncommon, because nowadays, we can use BPEL instead of UML to make software.
2. It means we use BPMN and latter we use BPEL. I believe we have still face so many technical problems on formal and semantics completeness due of business process modeling.
3. We can extend UML to provide more on business process modeling, for example : using business use case model and extend activity diagram notation to model more detail on business process entities.

Ultimately, i believe this is not the end of our problem in modeling because modeling is not capture all aspect in problem domain and it is a nature that changing always happens in our problem domain. But for now, i have to move on other topic in software engineering.

Friday, August 14, 2009

How to make software from Business Process, a modeling perspective

A lite definition of model is a notation to simplify and make formal abstraction about real word system.

From business process view, business process model can be use to model business process complexity into activity entities and its dynamic flow. But the problem is not all business owners can draw this model using standard notation even though that they can describe and model it using free notation. The importance of modeling business process is can be used as an input to software engineering process. One of the standard widely used is Business Process Modeling Notation.

Software engineering in other side needs to model its complexity using different model than business process model. State of the art to model software is using UML. Even though UML can model system behavior using use case and activity diagram, this two diagrams are still in software perspective point of view. Both diagram is strongly related with actors using software and activities relating with computational processes.

It is reasonable that BPMN and UML can not be replaced each other in their use.
My question is can we find another way to make integration between business and software engineering process easier?