Previous column

Next column


Aligning IT with the Changes using the Goal-Driven Development for UML and MDA

The Goal-Driven Development Process for increasing your business reactivity with UML and MDA

Birol Berkem, GOObiz / CNAM, Paris - France

space COLUMN

PDF Icon
PDF Version

Abstract

For the last few years, organisations have tried to develop their software systems with use case driven and object-oriented development processes. This practice brings some benefits by allowing them to concentrate their analysis and design efforts on the usage dimension of the system and on its architecture of domain objects.

However, modeling a system only with use case driven UML specifications - without focusing in the GOALS that have to be supported by the system – and its domain objects does not allow to organizations good levels of reactivity in face of changes (1).

Indeed, one of the main issues that we experienced about this lack of reactivity is that in use cases specifications, actor/system interactions are often tightly coupled (mixed) with business goals! In this situation, it is particularly difficult to reorganize use case descriptions in coherence when business rules evolve within these goals. On the other hand, implementing changes as a reaction to new requirements for time-to-market is still very much a challenge due to the orthogonality between functional and object-oriented representations of specifications and their absence of traceability toward the implementation layer.

Within such traceability issues, business experts, analysts, designers and developers ressort to "spaghetti oriented" development that renders the evolution of their system hazardous. In consequence, their business systems are very slow to react to changes!

In order to assist organizations for aligning IT with their changing business environment, a Goal-Driven Development Process should be considered to accompany the OMG’s MDA (2). Using such a methodology, MDA users could enable their organisations in propagating changes they capture through their business processes till their IT applications, thus synchronizing IT with their changing business rules, as a result to better capitalize on their business knowledge, independently of technological changes.

Business Reactivity: Agility offered by a business system that ensures to the corresponding organization swift and coherent adaptation to the changes of its environment.

MDA are registered trademarks of the Object Management Group (OMG) [Ref:www.omg.org].

(*) MDA and UML are both registered trademarks of the OMG (Object Management Group)

1 INTRODUCTION: ABOUT THE GAP BETWEEN BUSINESS AND APPLICATION LAYERS

One of the main factors that causes reactivity issues to IT systems in face of changes of the business rules is due to the lacks of traceability between business and application layers of the organisations. Such a gap causes important delays for adapting IT applications to changes!

As a direct impact of this gap, business analysts are not encouraged to formalize their business behaviors using appropriate business models : both business rules and their usage constraints of the applications are mixed inadvertently within application use cases.

This impacts negatively evolution of business rules and the validation process of use cases. As a result, use cases descriptions are often rendered very long, evolution of business rules they utilize become difficult!

In order to eliminate this gap, thus allowing organizations to align their IT with their changing business environment, changes have to be captured using identifiable goal1 structures at the business layer. Their impacts have to be propagated first within the business layer for aligning underlying structures of the organisation and finally toward the application layer for synchronizing IT structures (applications, actors) with these changes.

To support such a propagation, specifications must be rendered visible and traceable by the use of goals within and between business and application layers.

The example below shows traditional requirement-gathering process by use cases in the business and application system layers. It also highlights needs for propagating changes within the business layer and toward the structures of the application system layer. An activity diagram could be used for illustrating actions that compose the Business Use Case and looking for potential use cases of the application layer. But an important problem arises: in business use cases descriptions, interactions with participants (actors, workers) are tightly coupled with business rules, so rules are hidden by use cases – Sales (Order-to-billing) in the example. As a result, business goals and underlying behaviours are not rendered visible in order to be aligned with the changes!

As a consequence of this “lack of visibility”, at the application layer, business behaviours cannot be traced to be invoked by the actors in order to synchronise applications with changing business rules.

Figure 1: Business Use cases hide rules, so that applications cannot be aligned on changes captured at the business layer

In order to propagate changes coherently within the business and application layers, specifications need to be identified and rendered executable as autonomous and traceable units on the basis of goals rather than domain objects for traceability reason! Thus, changes must be propagated first inside the business layer for aligning underlying structures of the organization. Then, use cases must invoke systematically these updated business behaviours. This is what we present in sections 2 and 3 below through the CIM2 and PIM3 viewpoints (levels) of the OMG’s MDA. Finally in section 4, we zoom in automating adaptation to changes through these levels.

2 CAPTURING CHANGES WITHIN THE BUSINESS LAYER AT THE CIM AND EARLY TESTING AT THE PIM

For assisting business analysts in capturing changes that arise in the business system and propagating them within the business layer of the organization in order to align its underlying structures, requirements have to be grouped using identifiable goal structures (goal cases) at the CIM level. A goal case is a set of requirements (behaviours for the system) that belong to (or support) a given goal. Goal cases are described by grouping courses of actions (behaviors of the system) that support the corresponding goal. For this reason, goal cases constitute the essence of use cases as they make sense to actor / system interactions that permit to realize a goal.

For example, the courses of actions presented in the figure below describe high-level business goals namely G1,..G6. Increase Rate of Visits (G3.1), Motivate Visitors to Register (G3.2) as well as Turning visitors into buyers (G3.3) correspond to underlying goal cases of the high-level goal case G3- Profitable Website by turning visitors into buyers.

Figure 2: Goal Cases of the system and their description (means)

Underlying goal cases that support the high-level goal case G3- WebSite [Turn Visitor into buyers] are illustrated in the figure below with other ones like Present Company and its Products on the Web (G3.1.1) and (G3.1.2).

 

 

Figure 3: Underlying goal cases of the high-level goal case G3 – Turn visitors into buyers

At the CIM level of the MDA, business experts describe realizations of goal cases using business processes. In order to increase their reactivity by early testing correct understanding of these requirements, the figure 4 shows activities of the business process that realize the goal case Register Visitor (at the left) and transformation of these activities and their guard-conditions respectively as operations and pre-conditions of a Goal-Oriented Object (GOO) at the PIM of the MDA (at the right).

Figure 4: Realization of a goal case by a business process and transformation using a GOO at the PIM

In order to test these operations, a special operation that is called the controller operation of the GOO executes them according to their preconditions and depending on the state of the system which is expressed by the attribute values of the related GOO.

In such a way, Goal-Oriented Objects aim at assisting system analysts and designers by making identifiable units of specifications to test at the PIM, thus ensuring to them good levels of traceability between functional and object-oriented representations of specifications. Such a traceability aims at reducing effort for the maintenance of the system in face of changes.

GOOs also confer easy evolutions to complex system specifications by allowing refinement and traceability of these specifications toward lower refinement levels.

In this perspective, complex operations specified at a given refinement level are considered as goal cases that have to be realised at the immediate lower refinement level. For example, in the figure below operations enter_visitor() and notify_visitor() in Visitor [Registration] are refined using underlying GOOs Visitor[Entry] and Visitor [Notification]. These goal cases have to be realized by actor/system interactions that are necessary respectively for entering and notifying the visitor.

 

Figure 5 : Refinement of complex activities of business processes using underlying GOOs at the PIM. Types of entity objects (the content) that are handled by the operations of the GOOs are illustrated in the bottom part of the figure.

Such PIM level components constitute an evolutive embryon of the architectural backbone of the business processes as the refinement process by goals permit to them to retain their validity independently of futur design decisions in the CIM level. So, such design decisions at the CIM couldn’t alter this architecture when they are mapped at the PIM.

3 PROPAGATING CHANGES TOWARD THE APPLICATION LAYER

In order to align IT with the changes captured at the business layer, changes must be propagated first through appropriate business components of the business layer and finally toward the application layer for allowing actors to use updated software components according to their business responsibility.

As actors of the application layer may be represented at the business layer by business actors and workers, in order to assuring traceability of specifications between business and application layers, responsibilities of these participants must be discovered first at the business layer by considering their support to the interactions between such processes as well as in the realization of their activities.

The business process cartography illustrated in figure 6 presents an overview on the interactions between business processes. For example, the responsibility for turning visitor into buyer is assigned to Sales_Manager using the UML’s object-in-state Sales_Mgr [turn to buyer] in order to ensure communication between the processes Register Visitor and Turn Visitor to buyer once visitor is entered.

Figure 6: Business process cartography with responsibilities assigned to participants

The responsibility about turning visitor into buyer assigned to the Sales_Mgr in the figure 6 may be realized at the design level of the CIM by a couple of use case and goal case components where the use case component describes actor/system interactions whereas the goal case component describes behaviours of the system as illustrated in figure 7 below.

Figure 7: The realization relationship between analysis and design level descriptions at the CIM

Similarly, activities of business processes are realized by underlying actions at the immediate refinement level.

The figure 8 shows behavioral description of use case and goal case components that realize the activity Enter Visitor of the process Register Visitor described in the process cartography of the figure 6.

Figure 8: Description of actor / system interactions for realizing the activity Enter Visitor

In order to plug these behaviours into the architectural backbone of the business process components at the PIM, goal cases and use cases components are reified using corresponding types of GOO. Operations and their pre-conditions for the use case and goal case components are discovered from the activity diagram as illustrated in the figure 9 below.

Figure 9: Operations and their pre-conditions for the use case and goal case components at the PIM are discovered from CIM level specifications provided by the activity diagram

The component diagram of the figure 10 shows the architectural backbone of the business components where the previous goal cases and use cases components are plugged.

Figure 10: Components of the architectural backbone are directly obtained from the Cartography of Business Processes (figure 6). Based on actor/system interactions, related use case and goal case behaviors are plugged into their appropriate parent components

Separate description of the goals of the system from actor/system interactions ensures for use cases the ability to focus only on actor / system interactions for realizing required goals. This way, goal cases descriptions can evolve independently of use cases and are able to guide and govern use cases to let actors of the application layer use the system for realizing “the right business goals”!

Using business behaviours at the application layer

At the application layer, according to responsibilities assigned to the participants of business processes, actors of the application system may invoke business behaviours depending on their application choices, but in respect to the constraints that have been specified at the business layer.

Application choices of the actors of the application system are specified using application goal cases that are constituted by a set of requirements that belong (or support) the goal of an actor. These choices may be applied before, during or at the end of the execution of business goal cases. For example, during his registration on the website system, the visitor may decide to look for available promotions or take a look on products of his interest.

Thus, depending on the needs, an actor may require from an application use case to invoke:

Scenario 1- One or more business processes of his/her choices without any complementary application process

Scenario 2- An application process before or after using a business process

Scenario 3- An application process during the execution of a business process

In scenario 1, the application use case of the actor invokes behaviors defined in the corresponding business use case(s). This is materialized by the “invocation” relationship between use cases in the figure 11.

In scenario 2, the application use case invokes additional behaviors from application goal cases before or after invoking those from business use case(s).

Finally, in scenario 3, the application use case and goal case specialize respectively behaviors defined in the business use case and business goal case according to their constraints of pre-condition and post-condition that have to be respected. In other terms, these application components are “conform” to their corresponding business components.

The figure below illustrates an overview on these scenarios.

Figure 11: Behaviors stored in business goal case components are invoked by the actors of the application layer depending on their choices

The next section presents a summary of the Goal-Driven Development Process that illustrates how to bridge the related UML artifacts to confer good levels of reactivity to the resulting system using the CIM, PIM and PSM levels of the MDA.

4 STEPS OF THE GOAL-DRIVEN DEVELOPMENT PROCESS FOR AUTOMATING ADAPTATION TO CHANGES THROUGH THE MDA’S CIM/PIM/PSM LEVELS

Solutions described above do help analysts and designers in rendering their system and software specifications identifiable, flexible, executable and traceable, based on the requirements of non-technical business experts.

A development process is necessary for using these solutions inside the Goal-Driven Development Process where specifications of the business experts are captured first at the CIM being grouped by business goals (step 1). Realization of these specifications are then formalized using the UML’s activity diagram at the CIM (step 2). These may be transformed at this stage for getting a preview of the architectural backbone of the system at the PIM. At the next step responsibilities of the business participants (actors and workers) while realizing activities of the process are specified at the CIM (step 4) and the resulting PIM level components are plugged to the architecture (step 5). Finally, in the last step of the process, application choices of the actors are integrated in the architecture for allowing them to invoke business behaviours via their application use cases (step 6). An overview of these steps are described schematically in the figure below.

Figure 12: An overview of the UML diagrams partitioned between the CIM, PIM and PSM levels of the MDA with the bridges required by the Goal-Driven Development Process

The Goal-Driven Development Framework shows distribution of these artefacts and bridges through the CIM/PIM/PSM levels of the MDA along the model transformation.

Figure 13: An overview of the UML diagrams partitioned between the CIM, PIM and PSM levels of the MDA with the bridges required by the Goal-Driven Development Process

The development framework allows traceability of specifications from requirement analysis (at the CIM) till implementation of related business and application behaviors on the PIM. On the basis of generic architectural layers of the PIM, it does also assist transformation of these PIM level specifications into appropriate components of the Platform Specific Model (PSM) such as Servlets/JSPs, Session and Entity Beans in J2EE, WebServices, etc...

5 CONCLUSION

Solutions presented above as part of the Goal-Driven Development Process aim at aligning IT applications with the business needs in order to guide actors of the application systems to use the system according to its business goals whatever changes that may arise on these goals, their supporting strategies as well as on the business processes that realize them.

In this direction, these solutions represent key factors for increasing reactivity of business systems developed with UML in the sprit of the OMG's Model Driven Architecture (MDA).

As a support to these solutions, the methodological framework of the Goal-Driven Development Process acts as a catalysor by ensuring traceability between related UML artifacts through the CIM, PIM, and PSM levels of the MDA, contributing so directly to the reactivity of the resulting system in face of changes.


Footnotes

1 In the OMG's Business Motivation Model [OMG], a goal is defined as a statement about a state or condition of the enterprise to be brought or sustained through appropriate means. A goal amplifies a vision (an overall image of what the organization wants to be or become) - that is, it indicates what must be satisfied on a continuing basis to effectively attain the vision.

2 CIM: Computation Independent Business Model (a specification platform dedicated to the language of non technical business experts).

3 PIM: Platform Independent Model (a specification platform dedicated to the language of the system analysts and designers) PSM: Platform Specific Model (a specification platform dedicated to the languages of the specialists of target technologic platforms)

 

REFERENCES

[Kend98] Elizabeth Kendall, 3 Goals and Roles http://www.ibissoft/se/events/oocontr/kendall.htm

[OMG] The business governance in a volatile world. Business Motivation Model http://www.businessrulesgroup.org/second_paper/BRG-BRMM.pdf

[MDA] http://www.omg.org/cgi-bin/doc?mda-guide

[Berk05] Birol Berkem, Goal Driven Development for MDA –OMG’s Technical Meeting in Athens http://www.omg.org/cgi-bin/doc?omg/2005-04-05, April 2005

[Berk03] Birol Berkem, “How to increase your business reactivity with UML/MDA”, in Journal of Object Technology, vol. 2, no. 6, November-December 2003 http://www.jot.fm/issues/issue_2003_11/article4

[Berk99] Birol Berkem, Traceability Management with UML - Journal Of Object Oriented Programming (JOOP), September 1999

[Goobiz] How to increase your business reactivity with UML and MDA? (Patterns and processes) http://www.goobiz.com/GOObizWP/GOObizWP.htm


About the author



space Birol Berkem is a consultant and trainer in the areas of business and application system analysis and design with the object technology. He is the author of the Goal-Driven Development Patterns and Frameworks for the traceability of specifications with MDA/UML. His e-mail address is birol.berkem@goobiz.com

Cite this column as follows: Birol Berkem “Aligning IT with the Changes using the Goal-Driven Development for UML and MDA", in Journal of Object Technology, vol. 4, no. 5, July-August 2005, pp. 49-65 http://www.jot.fm/issues/issue_2005_07/column5


Previous column

Next column