Abstract:nowadays software has become an essential part of many life issues. You can find it easily around you in the everyday life in modern societies. As software plays vital role in any field including huge and large systems so this lead to raising the complexity of the required software, so it became evident that modeling data and application is a must. Before modeling it was difficult to maintain or modify an existing system. At the earliest stages, UML modeling was of little benefit except that this model provide high level view for the application; more work have been done in this area.

This paper will address how to automate software life cycle by transforming from Requirement model to Detailed UML design model that can be used to generate the application source code, with its deployment tasks that can be invoked to deploy the system.

This means expressing the system in requirement model pressing magic button that will generate the system and deploy it.

CIM:stands for Computation Independent Model; PIM:stands for Platform Independent Model; PSM:stands for Platform Specific Model; SRS:Software Requirement Specification which is a complete description of the behavior of the system to be developed. It includes a set of use cases that describe all the interactions the users will have with the software; Element: A generic term referring to a singular object in a model. Some of the common elements include requirements, actors and systems; Model: A representation of a particular system, such as a business process or a database; Diagram: A common way of representing the way in which models and elements interact; Attributes: Data fields containing information within another modeling elements; Dot: Hierarchical or layered drawings of directed graphs. The layout algorithm aims edges in the same direction (top to bottom, or left to right) and then attempts to avoid edge crossings and reduce edge length. [12]; ERP: Enterprise Resource Planning main purpose is to facilitate the flow of information inside the organization and manage the connections to outside stakeholders; SCM: Supply Chain Management mange all movement and storage of raw materials, work-in-Process inventory and finished goods from point of origin to point of consumption [30];

I.INTRODUCTION

A

S the complexity of the required software grows; it became evident that modeling data and application is a must. Before modeling it was difficult to maintain or modify an existing system. At the earliest stages, UML modeling was of little benefit except that this model provides high level view for the application. After UML became the industry De-facto standard, supporting tools start providing features like generating simple prototype from the model “generating class template with functions prototype”.

However, synchronization problems between the model and generated code. Developers have to manually ensure that changes in the code are reflected in the model and vice versa. Further research work in this field allowed current UML tools to generate prototypes as well as auto synchronizing between the code and the model. They typically have proprietary code generation systems with a fixed meta model. Furthermore, the Object Management Group (OMG) devised the Model Driven Architecture (MDA) concepts [1] to allow the definition of data models, automation of generation as well as easy integration, maintenance, testing and simulation of the software system.

Tools and frameworks supporting MDA, such as ANDROMDA [2], employs some parts of MDA that allow the code generation and maintenance from data model. Unfortunately, these frameworks need high technical skills to benefit from.

To overcome this problem, practitioners have developed models for specific application domain; eXecutable Business Process (XBP) is a prominent goal for such an effort. The ultimate objective of the XBP is to develop tools to support business analysts in the same way CAD/CAM tools are used to support engineers [3].

For serving any application domains and not being tied to the already developed application domains models theoretical solutions has been proposed to make use of BPM and MDA in away to provide a powerful support for business users/analysts the same way it’s going to support architectures/designers and developers; but this solutions didn’t provide a methodologies to solve the abstraction gap “to be discussed later” and didn’t provide away to automate the mapping from CIM to PIM.

Our solution automates the full process and make it easy at the initiation of the project as this thesis tries to make the abstraction gap closer; the gap that exists between the PIM models that can be used to generate the software and the CIM models that can be used to express/model the business requirement of software in terms of BPM models.

And this will be done by implementing a higher level above the PIM;

This is a Bottom up approach so we can realize the outcome sooner as illustrated later in this thesis.

II.Background

This chapter would focus on the treatment & the research that has already been done on the topic in addition it address the modules needed to be combined with current ones to formulate the whole picture of the introduced approach. It would contain a review of related literature, which includes past research and writings and their impact on the study.

A.Work done in this area:

  • Business process modeling tool:

In 7, November, 2002 the Business Process Management Initiative (BPMI) [15] published the Business Process Modeling Language (BPML) specification document. The Business Process Modeling Language specification provides an abstract model for expressing business processes and supporting entities. “BPML defines a formal model for expressing abstract and executable processes that address all aspects of enterprise business processes” [16]; adding to this activities, transactions, data management, concurrency, exception handling and operational semantics. BPML grammar form is XML Schema that enable the persistence and interchange of definitions across heterogeneous systems and modeling tools. Business Process Management Notation (BPMN) 0.9 [17] , is a sister specification to BPML 1.0. BPMN aims to be able to generate execution definitions (BPML4WS) [18] that will be used to implement the business processes. BPEL4WS recognizes the need for an independent representation of the interactions between parties.

Business Activity Monitoring (BAM) tools can provide real time views of executing business processes.

Most of the existing BPM tools are specialized or much stronger if used for a specific industry.

BPM tools have a predefined functional set that it can be employed in; such as (Business rules and controls, Compliance with government regulatory standards, Events, Form formatting, form Tables, Monitoring and management, Process analytics, Process collaboration, Process modeling, Report design and generation, Security management, Task allocation, Versioning control and management, Visualization tools and presentation, Workflow and business process management, Workflow design, Workflow portal, Workflow reporting, Document management, Form management).

The following BPM tools can satisfy Business rules and controls, process modeling, and workflow design requirement:

  • Chordiant Enterprise Platform [4]
/
  • Savvion BusinessManager [5]
/
  • Kinnosa Workflow [6]

  • TIBCO BPM [7]
/
  • Synergy [8]

There are also some powerful BPM tools that fail in satisfying one or more of the Business rules and controls, process modeling, and workflow design functional requirement and this list contains:

  • Automate BPM [9]
/
  • Metastorm BPM [10]
/
  • Spagic [11]

  • Interstage BPMS [12]
/
  • Living Systems Process Suite [13]
/
  • ProVision

Business process modeling is usually not done with an IT focus as stakeholders are business people, not IT folks this guarantees that the business models are independent of any particular technology.

Business process models are used to drive BPM engines and can be used for documentation purposes, and as Strategic planning.

The main purpose of BPM is to enable computer-assisted management of business processes. BPM models describe business processes, and the main purpose of MDA, on the other hand, is to enable computer-assisted generation of applications, components, and integration solutions.

Business Process models and MDA models are not exactly the same thing; But BPM models can be seen as the CIM models and hence it is part of the MDA stack as seen by (Miguel A. Sánchez Vidales 12, Ana Mª Fermoso García 1, Luís Joyanes Aguilar) [19], and (Paul Harmon) [20]

The Business Process Definition Metamodel is a semantic description of the logical relationships among the various elements of any possible business process description.
Once the BPM tools vendors maps its specific metamodel to the OMG’s metamodel, at this point XMI can be used to transport information about developed models in that tool to any other tool that is also mapped to the OMG metamodel.
This mapping will enable the movement from CIM models created in this proprietary business process tools to the Business Process Definition Metamodel then this can be used to complete the MDA development sequence as illustrated in Figure 1.
Transformation from BPM models (CIM) to any other UML metamodels (PIM). /
Figure 1. MDA Development Sequence

The OMG worked on defining Process Definition Metamodel; to overcome the problem of different BPM tools that prevent exchanging the BPM models from one tool to another, also this problem prevents the

  • MDA framework:

In 2001 OMG adopted MDA framework, the Model Driven Architecture or MDA is an approach to using models in software development. “The Model-Driven Architecture starts with the well-known and long established idea of separating the specification of the operation of a system from the details of the way that system uses the capabilities of its platform”.[21]

There exist good MDA frameworks one of them is ANDROMDA. ANDROMDA will be our MDA framework. AndroMDA is an open source MDA framework - it takes any number of models (usually UML models stored in XMI produced from case-tools) combined with any number of AndroMDA plug-ins (cartridge and translation-libraries) and produces any number of custom components. You can generate components for any language you want, Java, .Net, HTML, PHP, anything, just write (or customize an existing) plug-ins to support it.

The following are some names of other MDA frameworks:

  • ArcStyler, OptimalJ, OpenArchitectureWare, KennedyCarter, Xcoder, Iqgen, and Home brewn.

Another problem still left unresolved the CIM to PIM Mapping and it is not mentioned in the MDA guide.
Existing MDA Frameworks has already implemented the MDA specs starting from the PIM models passing thru the transition to PSM Models and then generating the Database scripts and software code; So the software architecture can start modeling the PIM models for the software under development then generate the source code, database scripts and build it and package it into a package that is ready for deployment. /
- Figure 2. The Abstraction Gap -
So supposing that Business Process Definition Metamodel has been finished and matured, and all/most BPM vendors maps its proprietary metamodels to the OMG’s Process Definition Metamodel;
Or in other words the coordination between BPM and MDA;
MDA’s move up the abstraction ladder carries the development paradigm inexorably away from the computing platform and toward business processes.
A key issue is how to treat the remaining gap which some have called the abstraction gap between the business process specification language and the software specification language. (See Figure 2.) [14]
  • Work flow management engine:

In 1990 Business Process Management (BPM) was an interesting topic. In 2001 BPM came back. “The principle of BPM is to provide business and technical users with a common framework to model, implement, deploy, execute, measure and improve business processes”.[22]

There exist many work flow and BPM products in the market but all are expensive; JBOSS delivered a professional open source work flow/BPM engine called JBPM [23].

JBoss JBPM provides a high level view of applications and accomplishes several things:

-It facilitates more agile implementation of the processes required by business people.

-It describes business processes in a common dialect that lets business people and developers speak the same language.

-It organizes embedded logic of applications into separate and easily changed “state machines” to allow a new level of processes within businesses.

  • A reverse engineering module:

The main functionality of this module is to extract information from existing system to be used in modeling the integration with other systems as well as how this system well interact with other systems and how this system functionalities will be used. there are existing some Reverse engineering modules found in AndroMDA that is called Schema2XMI which takes as input Database Schema and it generates XMI representing this system.

a proof of concept for this module has been done and more work done to build over it; I have used Scheam2XMI to generate XMI UML from an existing database schema and the generated XMI contains all the objects but with no class diagrams being created for expressing those objects so I have used another open source API to visualize the generated XMI.

This module has been addressed in more details later in thesis.

  • Enterprise Service Bus (ESB):

“ESB is not a new software product — it's a new way of looking at how to integrate applications, coordinate resources and manipulate information” [24]. Unlike other approaches for connecting distributed applications, for example Remote Procedure Call (RPC), the ESB pattern enables the connection of software running in parallel on different platforms, written in different programming languages and using different programming models. ESB solves one of the current biggest challenges which is application integration.

The following are some of the existing ESB:

-Project Open ESB, Mule, Apache ServiceMix, Celtix, PetALS (JBI), IBM WebSphere Message Broker, IBM WebSphere ESB.

-ESB UML meta model:

ESB UML meta model is a description that defines the structure of the ESB UML models as well as

how the systems that are involved in the integration will talk to each other and to the ESB.

  • Transformation engine:

This engine will be responsible for:

-Generating Skeletal MDA models from the requirement Models.

-Keeping the requirement Models and the MDA Models in synchronization.

-May generate the ESB xml configuration file depending on the way this engine will be implemented by.

-This engine will be covered in more details in the following chapter.

  • MOF (Meta Object Facility):

-The OMG has defined mappings of MOF to XML and to CORBA. The Java Community Process has defined a mapping of MOF to Java. A model compiler based on these mappings reads the MOF model of a language and produces XML schemas for the language, which support encoding models expressed in that language.

-The MOF-XML mapping is named XML Metadata Interchange (XMI®) and the MOF-Java mapping is named Java Metadata Interface (JMI).

A manual approach has been presented on 2008 to make use of BPM fundamentals to create CIM models, and to create the PIM models manually then it uses SOA to facilitate the use of software services connected to business tasks [25].

This thesis tries to make the abstraction gap closer; the gap that exists between the PIM models that can be used to generate the software and the CIM models that can be used to express/model the business requirement of software in terms of BPM models.

B.MDA Big Picture:

In 2001 Object Management Group (OMG) introduced the Model Driven Architecture (MDA) framework which defines standards for how software systems can be developed and work together.

MDA define standards for separating out the famous questions "what" from the "how".

To separate what we want to do in the system from how we will do it;

MDA provides a methodology for:

-Specifying a system independently of the platform that supports it,

-Specifying platforms,

-Choosing a particular platform for the system,

-Transforming the system specification into one for a particular platform.

The three primary goals of MDA are portability, interoperability and reusability through architectural separation of concerns.

-MDA presents its concepts in terms of existing or planned system.

-Model Driven Architecture name comes from the features MDA provide which are driving the design, construction, operation and maintenance from the architecture models.

-MDA use viewpoints for abstraction –establishing simplified model by suppressing selected details- and this is done by using a selected set of architectural concepts and structuring rules, to concentrate on particular parts in the system.