Business Process Modeling With Object Technology

Business Process Modeling with Object Technology
This is essentially an outline for a larger article. I put it together to help explain some of the resource pointers I've collected here. -- Peter Kaminski, 2002-01-11

Business Process Modeling
Creating a model of the core processes in a business allows communication between business analysts, employees and management about how a business works. Modeling helps us examine existing processes to understand how they work or don't work, and helps us explore new processes to see if they might work better.

Object Modeling
Object-oriented design and analysis grew out of the need for software systems to model objects that exist in the real world. When applied to business process modeling, an "object" is just a self-contained entity that interacts with other objects within the model.

Financial analysts use spreadsheets extensively to build detailed models of the flow of finances through organizations. Graphical object modeling tools, however, allow non-specialists to see the relationships between objects in the model much better than they could see them in a spreadsheet model.

The Unified Modeling Language (UML)
Why UML? Not because it's pretty, but because it's the standard. UML pulls together much of the various object-oriented design and analysis (OOA&D) methods of the late 1980s and early 1990s, particularly those of Grady Booch, Jim Rumbaugh, and Ivar Jacobson (the "Three Amigos"), who came together at Rational Software in the mid-1990s. By the late 1990s, Rational's proposal for the UML was merged with other proposals, and blessed by the Object Management Group as a standard.

Standardization has driven a great deal more documentation and tool development for OOA&D, chiefly for software development, but this work has also started to be used, and useful for, business process engineering.

Simulation
When we iterate a process through a model, we create a simulation. Simulations add the dimension of time to models, and allow modelers and others to see the ramifications of a process as they unfold.

Development
In the ultimate extension of OOA&D into business engineering, the same objects and models that are used to elucidate business processes can also be used to build the software systems that implement the processes.

However, this sort of perfect world does not happen often. Even in an imperfect world, though, object-oriented business process engineering is still a valuable tool.

Resources -- Books
I've reviewed many books to find these gems. None is perfect, but I recommend each of them highly.

The Object Advantage: Business Process Reengineering With Object Technology, by Ivar Jacobson - ISBN: 0201422891

Business Engineering With Object Technology, by David A. Taylor - ISBN: 0471045217

Jacobson and Taylor both provide excellent introductions and justifications for business (re-)engineering and object-oriented business analysis. Both are written to be easily read by non-technical business managers, and introduce object technology in a simple and easy-to-understand way.

Business Modeling With UML: Business Patterns at Work, by Magnus Penker and Hans-Erik Eriksson - ISBN: 0471295515

"Patterns" is a new software buzzword for a standard configuration that recurs in different settings. This book provides a good introduction to UML-oriented business modeling and a "cookbook" of common sub-models and who originated them. Seeing these sub-models and their explanations helps the reader understand the application of object technology to business modeling better.

UML Distilled: Second Edition: A Brief Guide to the Standard Object Modeling Language, by Martin Fowler - ISBN: 020165783X

I value Fowler's clear, concise explanations of the topics, the UML history he provides, and the abundant pointers to other sources of information. There are longer books, but Fowler provides the meat -- and UML doesn't get prettier just because you talk about it longer, anyway.

Resources - Diagramming Software
With the exception of Dia, the tools below all provide UML shapes to help you create model diagrams. This isn't the same thing as creating models themselves, but it makes the task easier and helps you produce attractive diagrams for better communication.

Microsoft Visio: http://www.microsoft.com/office/visio/

The standard tool, recently acquired by Microsoft.

SmartDraw : http://www.smartdraw.com/

A capable competitor, about half the price and easier to use in some ways.

ConceptDraw : http://www.conceptdraw.com/en/

A full-featured competitor, with both Windows and Macintosh versions.

Dia: http://www.lysator.liu.se/~alla/dia/

An open source alternative for Unix/GNOME. Written under GTK+, so there is a possibility it could be ported to other platforms.

Cadifra UML Editor: http://www.cadifra.com

A fast and lightweight diagram editor for Windows 2000 and XP. Same precision and integration with Windows as Visio, but faster and easier to use. -- Adrian Buehlmann

Business Process Visual ARCHITECT: http://www.visual-paradigm.com/product/bpva/

Business Process Visual ARCHITECT (BP-VA) is a full-featured business process modeler seriously supporting latest OMG's Business Process Modeling Notation (BPMN). BP-VA provides the most easy-to-use diagramming environment for you to model your business process. -- Visual Paradigm

Resources - OOA&D Software
These tools are generally focused more on computer-aided software engineering (CASE), but may have some applicability to business process engineering.

ArgoUML : http://argouml.tigris.org/

An open source alternative.

Popkin Software System Architect: http://www.popkin.com/products/sa2001/systemarchitect.htm

Computer Associates Paradigm Plus: http://www.cai.com/products/alm/paradigm_plus.htm

MagicDraw : http://www.magicdraw.com/

Visual Paradigm for UML: http://www.visual-paradigm.com/vpuml.php -- an easy-to-use visual UML Tool.

SDE for Eclipse: http://www.visual-paradigm.com/sdeec.php -- a powerful UML Modeling plugin for Eclipse.

Resources - Simulation Software
By their nature, these tools are object-oriented modeling tools, in that they allow you to describe entities and the relationships between them. The tools can then be run interactively, creating the simulation. I don't think any of them are specifically UML-oriented, though.

High Performance Systems ithink: http://www.hps-inc.com/Business/New_ithink.htm

Vensim: http://www.vensim.com/software.html

PowerSim Studio: http://www.powersim.no/technology/smallbusiness.asp

Resources - Related Books
Systemantics: The Underground Text of Systems Lore: How Systems Really Work and How They Fail, by John Gall - ISBN: 0961825103

A business big enough to be analyzed is really a "system." "Systemantics" is a humorous but all-too-true compilation of the general principles underlying the orneriness of systems and attempts to control them. It's like a compendium of "Murphy's Laws" for systems.

The Timeless Way of Building, by Christopher Alexander - ISBN: 0195024028

A Pattern Language: Towns, Buildings, Construction, by Christopher Alexander, Sara Ishikawa, and Murray Silverstein - ISBN: 0195019199

To my knowledge, the software design community's concept of "patterns" is ultimately inherited from these dense, contemplative, late 1970s books about architecture. I find it very valuable to go back to Alexander's work to get the "pattern language" idea full strength -- and also to see his careful and incredibly detailed analysis of architecture as a system, expressible in his pattern language.