 Journal of Software Engineering and Applications, 2011, 4, 195-216 doi:10.4236/jsea.2011.44023 Published Online April 2011 (http://www.SciRP.org/journal/jsea) Copyright © 2011 SciRes. J SEA End to End Development Engineering Abdelga ffar Ha med1, Rob ert M. Colomb2 1College of Computer Science and Information Technology, Sudan University of Science and Technology, Khartoum, Sudan; 2Faculty of Computer Science and Information Systems, Universiti Technologi Malaysia, Skudai, Malaysia. Email: abdalgafarhamid@sustech. edu, colomb@siswa.utm.my Received February 22nd, 2011; revised March 10th, 2011; accepted March 13th, 20 11. ABSTRACT Raising software abstraction and re-use levels are key success factors for producing quality software products. Model- driven architecture (MDA) is an OMG initiative following this trend by mapping a conceptual model of application specified in platform independent model (PIM), to one or more platform specific models (PSM) automatically. Because there is little previous work tackling the development problem from specification through to implementation, this paper proposes End to End Development engineering (E2EDE) method using MDA methodology. E2EDE is intended to fill the mapping gap between PIM and PSM in MDA. The notion of variability is utilized from software product line and used to model design decisions in PSM. PIM is equipped with Nonfunctional requirements which borrowed from Design pattern to inform design decisions; thereby guiding the mapping process. In addition we have developed a strategic PSM for messaging systems can be configured to produce different applications such as the helpdesk system which is used as a case study. Keywords: End to End Engineering, MDA, Metamodeling, Domain Engineering 1. Introduction The complexity of producing large-scale software systems is increasing due to the increased complexity of require- ments. Technologies are volatile for many reasons but enhancing the quality of services is among clear reasons justified by software providers. For example, java plat- form versions and Google chrome browser has adopted new browsers technology. The functionality of browsers is already crafted (i.e. Mozilla) but putting it into a new fas hi on is because of security, performance, reliability, and etc. On other hand, service-based system (SOA) has emerged as new engineering discipline encourages orga- nizations to integrate t heir s ystems i n a sea mless manner. These highlight questions like 1) How to extend the tra- ditional methods (Code-based) in a longlived architec- ture to deliver these new businesses? 2) how to provide an effectiv e integration with legac y systems? 3) If a deci- sion is made to change technology (acquiring new qual- ity such as security and performance) is the design easily adaptable? The trend now is proposing model-based en- gineering approach which means separating concerns where software development is driven by a family of high level languages [1]. To this end abstraction level is raised above 3GLs which increases re-using theme and put software artifact into a situation of core asset. More i mportantly formalizin g of these artifacts (i.e. metamodels) leads to realize the benefit of high degree of automatio n. T his me a ns a mac hiner y of spe cifica tion (i.e . UML), s ync hr o niz at i on a nd ma nagement of these models are essential. Thus, software not a program became like an information system itself. Thereby the crafting of code is becoming a manufacturing process not a personal skill. Model Driven Architecture (MDA) is a new software development method following that trend. It raises ab- straction level and maximizes re-use. Using MDA, we will be able to work with software artifacts as assets which from the software engineering perspective is a ma- jor success factor for reliable and fast development. The philosophy of MDA is to do more investment on soft- ware artifacts (models) to increase their efficiency, lead- ing to systematic and more powerful mechanisms for so- ftware re-use. MDA is an aspect of the more general discipline of software reuse. The synergistic relationship among MDA and the longer-established areas of Design pattern and software product line engineering (SPL) [2] has been stu- died as part of the present research [3,4]. The problem of producing a complete solution from specification through to implementation is still a long
 End to End Development Engineering Copyright © 2011 SciRes. JSEA standing research aim, and because of the mapping gap from PIM to PSM, E2EDE has emerged. Most of previ- ous work i n MD A has bee n o n infra st ruct ure and compo- nents. Therefore the major question in this paper is how to write a pro gram in MDA? End to End development engineering (E2EDE) is a new trend to software engineering, proposed to answer that question, which uses MDA methodology and explo- its some experience from Software Product Line (SPL) and lessons from Design Pattern (e.g. nonfunctional re- quirements) to a uto mate the develop ment fro m specifica- tion through to implementation. In doing so, we need to investigate the relationships among MDA, SPL, and de- sign patte rn and how MDA can fit on them. There fore t he contributions of the paper are the following: 1) We present E2EDE to automate the mapping pro- cess as realization to MDA which is intended to produce prod ucts without entirely writing code. 2) We discuss the relationship between MDA, SPL, and d esign p atter n and ho w MD A can fit in the both lo n- ger established re-using approaches . 3) We share some lessons learned and challenges of MDA software engineering in practice. Domain engineering is the key concept utilized from SPL which realizes breeding of a number of products that have similarity and some sort of variability in features. Desig n patter n in the hi stor y of so ftware e ngineer ing has concerned with linking the design with nonfunctional requirements. Therefore, Nonfunctional requirements is borrowed as a concept. The paper is organized as follows: Section 2 describes MDA as a major method used in E2EDE. In Section 3 we explain the problem through example of mappings from QVT specification. The proposed E2EDE methodology is discussed at Section 4. The concepts of E2EDE are validated by case study at Section 5. Sections 6 and 7 describe the relationship among MDA, Design Pattern and SPL. Section 8 draws on the principle of MDA and shows a case of strategic PSM. In Sections 9 and 10 we discuss MDA and E2EDE implementation aspects re- spectively. In Section 11 the realistic value of our ap- proach with existing platforms is investigated. A conclu- sion is presented in Section 12. 2. Model Driven Architecture (MDA) MDA is a new development paradigm initiated by the OMG aimed at software development driven by model [1]. In this case, a Platform Independent Model (PIM) is used to specify application behavior or logic by using MOF or a MOF-complaint modeling language [3]. This step re- presents a problem space in an application-oriented pers- pective. A Platform Specific Model (PSM) is used to rea- lize a PIM. It represents a solution space from an imple- mentation-oriented point of view. Therefore, a transfor- mation from the problem space to the solution space is required. The automation of this process is the ultimate goal of MDA. Thereby, when we need to change the ap- plication, cha nges will be in onl y one par t (PIM) without affecting implementatio n technolo gies (PSM). Converse- ly, when the platform such as SQL Server is changed re- targeting a new platform for example new version (has enhanced feature), we need only to select the appropriate PSM and then regenerate the code not only without mod- ifying PIM but also this time re-using most of the trans- formation. P roductivity becomes higher and c ost is redu- ced due to the increased reuse of models. In addition, maintenance becomes cheaper. It is worthwhile to obser- ve here that MDA is working with models as assets that can be reused once the initial investment is made. MDA depends on a well established code-base. 2.1. MDA Transformation Process The transformation from PIM to PSM is done by a ma p- ing function, which is a collection of mapping rules. In this case some or all of the content of the target model is defined. It is expected that when MDA automates this process, development efficiency and portability would significantly increase. In addition, the mapping function can be repeated many times (re-used) for different appli- cations using the same PIM and PSM metamodels. MD A also helps avoid risks of swamping the application with implementation deta il which causes model divergence [5]. The steps of designing a system is to create a concept- tual model by designers for application requirements and developing anot her implementa tion model to map the fir- st int o the sec ond. B ut this might in volve many sub a cti- vities. Ho wever, we can divide MD A into two majo r pro- cesses [1]: 1) Mode l to Model mappings The mapping in this stage does not consider any speci- fic characteristics or special cases that apply to technolo- gy or platform (called M2M). The result of this phase is still high level model but for code (P SM instances). 2) Bringing i n a Particular Platform The goal of this mapping (sometimes called M2T) is tailoring the conceptual model to specific technology. Different platforms have different features and constrain- ts so step 1 will be refined to conform to features of one of the selected platform. The result in this phas e is expec- ted to be context dependant code expressed in a platform concrete syntax. In fact, we intended to use the word bringing to denote applying the principle of MDA in de- veloping standard PSM. 2.2. Met amodeling The conceptual model of the design language such as
 End to End Development Engineering Copyright © 2011 SciRes. JSEA UML data model (i.e. class diagram) is called a me t a- model, which has concept like a class. A particular design in a desi gn language is called model instance like student class in the student record system. This model instance can be visualized by using UML model instance (i.e. ob- ject diagram) but also MOF has similar model instances metamodel. A metamodel defines a schema for database called a repository. The population of this repository is the model instance. Formation rules of the metamodel are expressed as constraint on the repository [6]. A meta- model represents syntax of a modeling language. If the metamodel tells the designer how to create a model in- stance, it is said to be concrete syntax [6]. If it does not, it is said to be abstract syntax. Therefore, sometimes rendering conventions augmented with abstract syntax to generate concert syntax like MOF instance specification [7]. Model-based design that relies on a repository (tables or data structure) for storing a complex object (design), is the key art behind the MDA app roach. For example QVT mappings are specified as patterns on schemas, or meta- model [8]. In this way, information contained in the mo- dels is separated from the algorithms defining tool be- havior, inste ad of b eing hard -code d into a tool. The algo- rithmic part of tool communicates with models via an abstract program interface (API), which affords the facil- ity to create, modify and access the information in models [9]. Further, MDA tools can transform model instances into various forms. For example, the mappings from PIM to PSM takes PIM metamodel instances from the instan- ce repository and turns it into corresponding instances updating the target repository, moving from proble m sp a- ce to solution space. Thi s mappin g ac tivit y is do ne us ing st anda rd lang uage independent of the source and target. The metamodel of the ma pping fro m end to a nothe r end c an also be r e-used as an asset. 2.3. Query, Views, and Transformations (QVT) Two kinds of transformation are recognized in MDA community: • Horizontal, that does not change the abstraction level, for example from PIM to PIM which is used when a model is enhanced, filtered or specialized (mapping fro m anal ys is to desi gn), • Vertical, that changes the abstraction level, for ex- ample projection to the execution infrastructure. Four types of these transformations are categorized in [10]. There are tools to specify such mappings, such as query-view-transfor m Q VT [8]. QVT is an OMG standard which helps us to specify rules for the transformation function. QVT uses the concept of predicate (expression evaluated to true or false) and pattern (set of expressions) in much similar way a s pro log programming language. The intended scenario of writing a progra m using M DA will be demonstrated first by an example then below in our case study where the mapping task is the major activ- ity. Generally the application development is a process invol ves man y trans format ions so vertical and horizontal or combination of them might be used. 3. MDA Example and Mapping Proble m We will use the QVT specification [8] example of object to relational mappings in order to understand where the problem is in this context. For sake of simplicity we fo- cus on part of the mappings between PIM (object model) and PSM (relational model). This example shows the mappings take place between simplified UML2 metamo - del in Figure 1, the PIM, and the PSM in Figure 2. The mapping between conceptual models and relatio- nal schema is well established in the database. The gen- eral idea is that classes map to tables, packages map to schemas, attributes to columns, and associations to for- eign keys. We will discuss p art o f this mappin g informal- ly then we will show simple QVT rules for that. In Figures 3 and 4 examples we have a relation (use to specify rules of mapping source to target) named Pac- kageToSchema, and ClassToTable. Both have two do- mains that will match elements in uml (our PIM) and rdb ms (our PSM).The relation ClassToTable specifies the map of a class which has attr ibute na me wit h val ue e qua l the variable “cn”. All classes instances in uml repository will populate this variab le one by one. For example if the model i nsta nce o f our P IM is stud ent re cord system, the se will be person, lecturer, student, etc (M1). If the precon- dition is satisfied by this way the enforce clause is very similar to a checkonly clause. If there is an instance in the rdbms repository satisfying the pattern expression, then the enforce clause behaves as a predicate, with the value true. If no such instance exists, then the QVT en- gine will create one. The mapping takes structural patterns in the M1 PIM model (problem domain) instance into in some cases quite different structural patterns in the M1 PSM model (implementation domain). The patterns are described in the M2 metamodel. Thereby that mapping is grasped as a part of the process of specifying and implementing the system. This process in most traditional software engi- neering methods is done manually. The ultimate goal of mapping is having a way to be able relate M0 instances of the PIM to M0 instances of the PSM. But the standard- document of MDA [1] does not s pe cify how to do th at. MOF specification has described how to create instan- ces from MOF-based metamodel. When we talk about MOF we mean M2 level in the OMG hierarchy. Both
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Figure 1 . Simplified UML2 metamodel from QVT [8]. Figure 2. Simplified relational database model from QVT specification [8]. create and destroy methods for objects and links are spe- cified as MOF standard operations for creating and de- leting dynamic objects [7]. So the objects created and destroyed by these methods are of kind M1 objects for M2 metaclasses. By this way an instance model will be created for M2 metamodel elements similar like having student, lecturer, and course, etc., instances. UML stan- dard also specifies methods for creating instance model for M1 objects which are M0.Hence since like the in- stance model of record system is UML instance model then it should be able to create m0 objects using UML model instance inherited capabilities: create and destroy of objects and links. The intended scenario for mapping is that an applica- tion using application terms have a facility to create ob- jects which is PIM instance model. On other hand the implementation model that is PSM creates objects corre- sponding to that objects using PSM concepts and terms which repr esents a design voc abulary. To this end still i n the MDA development (i.e. using MDA to solve prob- lems) the question is how to do this process which re- quires finding concrete technical mapping methods. A general method to approach this problem is needed whereby one could develop application without entirely
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Figure 3 . Mapping package to schema QVT rul e. Figure 4 . Mapping class to table QVT rule. writing code. Here the task for developer/modeler is a function of specificatio n where applica tion requirements, implementation and mapping metamodels are presented usin g desi gn la nguage s suc h as UML/MOF and mapping language such as QVT. In this case mapping and syn- chronization among models are performed by toolset. 4. Proposed E2EDE Design & Implementation This section demonstrates key points of E2EDE and ex- plores most important aspects that should be addressed. 4.1. Introduction End to End development engineering (E2EDE) is a novel paradigm intended to automate software development from the specification end (i.e. object model) to the im- plementation end (i.e. relational model) using the MDA approach. The central issue is filling the mapping gap between PIM and PSM in MDA. Theor etically E2EDE is inspir ed from an investigatio n of the synergistic relationship among MDA, SPL, and de- sign patterns as we will see in Sections 6 and 7.T he r atio- nale behind establis hing this relations hip was from litera- ture SPL and design patterns have long history of re-use software development. So they are longer established re- use methods. MDA is a more recent stream of re-use. E2EDE engineering is going to exploit this relationship to achieve its mapping goal. The key concept in SPL is variability which gives customization or configuration options. Variant feature is a place in the software artifact can be populated by at least one variant at a time from a set of variant. For example, if color is variant feature then Red is one variant. We conceive design decisions a s variation point s and the design choice s as variants popu- lating these po ints. T his comes fro m the obser vation t hat PSM as a design artifact has different structures most properly lead to different architectural qualities. Therefore , to model design decisions we need to represent variabil- ity exp lici tly in t he PSM . The stud y of the desi gn patte rn approach highlights the importance of the relationship between design and requirements, specifically nonfunc- tional requirements, which is proposed to be modeled in the PIM. Still there is a research gap in these areas on how to map nonfunctional requirements with design de- cisions systematically. The problem has been looked at from one dimensio n, for exa mple SPL has concer ned o nly with var ia b ili t y wi tho ut co ns i d e ri ng NF R s uc h a s [ 2 ,3,11, 12] while design pattern has recognized the impact of NFR dimension without variability in an explicit way [13-15]. However, the benefit here is PSM construction could be automated effectively because of consideration of de- sign quality and management of single PSM. Hence, do- cumenting variability in architecture and modeling non- functional requirements explicitly will become major ac- tivities during the development process. This section de- monstrates key issues arising when we tackle E2EDE. Further, these issues have been applied to a selected case study to evaluate the possibility of the proposed enginee- ring approach. The ultimate goa l of E2EDE is to p rovide a method o f generating a solution from one specific source to a spe- cific target like for example, from object-model to rela- tional model. The advantages of E2EDE are reflected in the modeling support for the concepts in the domain and the ability to do more tha n genera l-purpose languages do, in addition to r e duction of cost. 4.2. The Steps of E2EDE Process In this section we will see the main steps of E2EDE. It will be detailed step by step and finally summarized as sho wn in Table 1. 4.2.1. Modeling Variation Points in PSM (Task A) The key concept is to document variability in the PSM, which can be thought of as an abstract data type similar to the logical level in database systems. Usually, a solu- tion is specified firstly at high abstraction level before rendered into a database technology. Variability in this PSM exposes different design decisions from the design space. The design decisions we mean in this context are architectural elements. Since it is possible to create diffe- rent implementations from a generic specification, vari- ability management concepts and techniques from SPL ex-
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Table 1. The steps of E2EDE process. Tasks Technique Specific Solution A- Modeling Variation Points in PSM variability from SPL Profile For PSM B- Analyzing Variability and categorized based on PSM /map ping, and functiona l/non-functional variability concepts + MD A conce p ts + design co ncepts Guidelines and informal steps help categorizing different sorts. C- Developing Profiles for variability &NFRs UML-based extension mechanisms MOF language D-Modeling of Non-functional Requirements in PIM and c lassified in to package/cla ss level nonfunctional require ments c o nc epts Profile for PIM + guid elines for classifying N FRs E- Developing model-model mapping rules. QVT language QVT rules F- Packaging mappings variability rules opaque rule QVT meta ru les G- Implement t he system met amodels UML Package, Profile and relationship program m etamodel s . periences are utilized to document design decision vari- ants explicitly in the architecture. For example we will see in Section 5 two types of connection: Topic (indirect) and Queue (direct) for a messaging system. The variability difference is that in topic multiple subscribers receive a message while in queue only one subscriber is allowed to receive. This variability can be modeled as two different structures at PSM or formally as variants populating the connectionType variation point. Since standard UML does not have a variability conce- pt, modeling vari ability in a PSM we need to use a profile to allow us to specify the varia bility ontology. A profile is a special domain language used as an extension mechan- ism to UML model elements while keeping their syntax and se mantic intact.Proposed metamodels and profiles in the literature such as [2,12]can allo w an archite ct to id en- tify specific variation points, constraints and dependen- cies that indicate different relationships between varia- tion point s (VP ) and variants (V), VP and VP, etc. Because we are using design model (i.e. class diagra m) the proposed profile here is different from these because there is no need for dependency and constraints concepts. They are built-in mechanisms whose semantics is speci- fied with the mapping process and NFRs. Also, there is no need for open and closed concepts which gives the ability to add new variant or variation points because all are closed in this situation (M DA works above 3 GLs). Therefore, developing a suitable variability MOF-pro- file is an essential part for the solution presented by E2EDE.In fact there are alternative ways to model vari- ability and nonfunctional requirements concepts using a profile. The method we have chosen will help produce a working syste m. The variability ontology needed includes the concepts variant indicated by <<V>> stereotype, variation point indicated by <<VP>>, and an ID tag attribute to identify each VP. In Figure 5 the UML metaclass class is extended to represent variant and variation point. A tagged value ex- tension mechanism is used to model identifier and type meta-attributes. Tagged values are additional meta-att- ributes assigned to a stereotype, specified as name-value pairs. They have a name and a type and can be used to attach arbitrary information to model elements.For in- stance, if we need to model ConnectionType (the two kinds of connections in messaging system) variation point we use the stereotype <<VP>> and for its variants Queue and To pic we use two <<V>> at class level. Then the tag for ConnectionType will be VPID =1and default can take the value Direct. The effect tag of va riant sp eci- fies design decision consequences like resource consump- tion. 4.2.2. Variability Analysis (Task B) A taxonomy for variability has emerged from our analy- sis of variability in software architecture artifacts. They could be called Nonfunctional variability, Functional variability and Mapping variability. SPL has been focu- sed mainly on functional variability. An exte nsive anal y- sis of this can be found in [16]. Although our proposed method includes this sort of variability, it highlights the influence of Nonfunctio nal variability in the de sign. Most of the issues discussed in Section 6.3 are of this kind. Mapping variability can be seen in the problem of map- ping superclass/subclass structures from object model in- to relational model. It is not like the others because the variation point s are in the tran sformation, not i n the PSM (i.e. the mappings are parameterized). In this case the mapping is from an object model as a source to the rela- tional model as the target. The former specifies objects and relationships between them which may includes su- perclass-subclass relationship in a class diagram, while the latter spe c ifies relations a nd their structure. The meta- models and mapping using QVT of these are well descri- bed in [8].The target does not include a structure corre- sponding to superclass-subclass in the source. To solve
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Figure 5 . Variability MOF-profiles. this deficiency four options are suggested for this map- ping in the standard database literature [17]. Generally these options can be classified into single- relation and multiple-relation approaches named SR and MR respectively. In the SR approach a table for super- class attributes will be created with subclass attributes included as optional while in MR approach table for each subclass wil l be created. Two implementa tion techniques are available for both. SR can be implemented by intro- ducing one type at trib ute ind icating the subclass to which each tuple belongs (null values will i ntroduced), or multi- ple boolean type attributes can be used (allowing over- lapping subclasses). MR has as one option with super class attributes duplicated in each subclass table and ano- ther o ptio n to sha re a ke y am ong sup ercla ss and subclass tables. For example, the option of one table for the superclass with subclass attribu tes inc lud ed as optio nal is a good d e- sign in terms of performance for SQL navigation, at a cost of increased table space and increased integrity checking. 4.2.3. Modeling of Non-Functional Requirements (Task D) The E2EDE methodology considers NFRs as first class objects which allow a PIM metamodel to be more infor- mative. The separation of concerns (i.e. PIM-PSM) of MDA effectively supports their representation. Functional requirements are functions that the devel- oped software must be capable of performing, while non- functional requirements (NFRs) inform the design choi- ces as to how functional requirements are going to be realized in software products [16]. T here is no one agreed defini tion because of the extr emel y d i ve r se nat ur e of N F R. In fact, practices like in design pattern shows a single NFR can have different semantic interpretations (impact on implementation) within the same application. These can be called impact factors. For example in our case stu- dy, connection types, session types, and message types are impact factors affecting performance positively or nega- tively. There is confusion in term usage where a term so- metimes refers to the nature of the requirement and so- metimes refers to the design decisions. We will be using the term NFR to denote the nature of the require ment so a PIM metamodel is the place where we can define spe- cific NFR types. The difficulty of modeling and integrating explicitly NFRs (addit ional co nstraint s) withi n the cont ext o f func- tional requirements is the fact that NFR affects the system as whole [18]. Non-functional requirements especially related to architecture are called quality attributes [4]. They affect design decisions where different quality of products can be distinguished. These are the decisions that drive the system architecture. The representation and categorization of non-functional requirements are still under research. More than one piece of information con-
 End to End Development Engineering Copyright © 2011 SciRes. JSEA tributes negat ively or positive ly to one NFR. Pre liminary resul ts sho w dive rsit y in ter minol ogy and orie ntation [4]. In addition, there are dependency relationship among non-functional require ments. Fo r example, in some cases maintainability requires portability. More importantly conflicts are fo und such as be tween performance a nd re- liability as shown in our case s tudy below. The field of nonfunctional requirements as a compo- nent in requirements engineering is less developed than functional requirements[19], so there are only a few con- tributions such as [14,20,21].We are going to follow a simple approach that would be compatible with E2EDE. For example, Zuh and Ian [22] proposed a generic UML NFR Profile, but it is not suitable to work under MDA because the assumption was to treat NFR and design de- cision in one place. These are different (separate abstract- tion levels) according to E2EDE’s principles. The 6-ele- ments framework from SEI [21] follows a scenario-based approach that presents a good way to resolve the over- lapping problem between NFRs. Our approach simply prioritizes NFRs to judge on design decisions, promoting automation. Since the types of NFRs differ greatly among classes of application, a NFR Profile is needed as a domain spe- cific language to allow system architecture to specify NFRs easily in a PIM metamodel. According to investi- gation in this track we have seen there is a need to priori- tize NFRs so the toolset can tradeoff between NFRs or resolve conflicts. Most of the current contribution to NFR considers the human factor and does not take account of tool support. For example Zhu and Ian [22] proposed for the relationship between design decision and NFR: sup- port, break, he lp a nd hurt. Daniel and Eric [14] follow the same trend. In order to reach our goal we need to identity NFRs so the identifier concept is used to discriminate NFR instances. The 6-elements framework suggested by [21] could be a useful tool for Non-functional analysis at earlier development phases. Fi g u re 6 shows the e lement s of the NFR pr ofile (Task C) used by an architect to specify NFRs which is spe- cializing a metaclass class with two tag attributes. Below in the anchor is an example of an instance model. It also shows NFRs can be at Package level, which represents global NFRs such as Application Type, while delivery mode is at class level. It also shows that NFRs can act as Packagelevel, which r epre sents gl obal N FRs such a s Ap- plication T ype, while deli very mode is at class level. 4.2.4. Transformation of informative PIM to PSM (Task E) The notion of transformation is hardly a new concept in software engineering. Traditionally, most software engi- neering work is conceived of as mapping, like the trans- formation from software specification to software design. Figure 6 . NFR UML profile.
 End to End Development Engineering Copyright © 2011 SciRes. JSEA But what makes MDA different is considering mappings as first class objects in the effort to formalize this process by using standard la nguages such as QVT where mapping is from one metamodel to another metamodel. This appr- oach is a prerequisite for the automation that MDA is seeking to achieve. The key concept of MDA mapping is to resolve a stru- cture pattern instance from PIM into a PSM correspond- ing structure pattern(s) instance. For example, in case of mapping fro m object model (P IM) to the relational mod- el (PSM), a cla ss instance will map to a table instance. Our work proposes NFRs as major design drivers fee- ding the mapping process. This feature facilitates the ma- pping task where it becomes easier to select the corre- sponding PSM structure. NFRs make the difference be- tween two PSM configurations. For instance, as we will see later there are two types of messages, persistent and nonpersistent, in the messaging system. If performance impact factor(s) are most important, the nonpersistent variant is suitable while i f reli ab ilit y is a design issue, t he persistent varia nt i s the b est o p tion. T he for mer architect- ture will expose performance quality while the latter will expose rel iability based on the additio nal computation the application needs to maintain the message storing process. 4.2.5. Mappings of Class Operations The c lass str ucture in UML includes methods or behavior. Because maintaining different views in one model is com-plex, UML supports capturing dynamic behavior of the system separately by a set of behavioral diagrams such as the activity diagram. This subsection is about highli ght ing mapp ing p ro ble m fro m PI M ins tanc es o f the process model to PSM instances of its process model. In this case a metamodel does not have user-defined opera- tions, the MOF specification has defined default methods: create object, destroy object, and create link in each MOF metaclass [7] . Firstl y, these method s are abstract methods. Secondly, mappings of structural patterns are somehow straightforward but the relationship between PIM be- have- ioral model and PSM behavior is nonlinear. So when mappings for example occurred for attributes which are going to be columns in the relational model, there might be a set of corresponding operations (1 to M relationship) in the PSM behavioral metamodel for a corresponding class’ methods in PIM behavioral model. However, there is no uniquely determined method to do that. Recent attempt for example in this case was sug- gested by [6], one possible MDA program written for medium-sized problem involving organizing a swimming meet according to FINA rules (insert and update native call) utilizin g OCL capability to construct SQL PSM. However, we can use the hierarchy structure of UML activity diagra m to show the implementat ion of PIM me- thod s in P SM as work flo w as in our case stud y in F igure 7: Sendcase mapped to SendingProcess where it is ex- tended into five operations as described in 5.3. We notice here future work is needed to find a method that realizes the operations mapping so we can see how to incorporate variability and N FR concepts. Generally the tasks co mprise E 2EDE pr ocess are sho wn in Table 1. 5. Case Study A set of applications has been analyzed to produce the PSM architecture used by this case study as an imple- mentation end. This family of products which are men- tioned in Table 2 has exposed commonality in most as- pec ts unde r me ssa ging s yste m d omai n. T his ana lysis ste p is in line with the principle o f domain engine erin g where at least three products should expose commonalities to justify the investment in core asset architecture [23]. A Help desk system is one example from this set of produ- cts which is a major component in most c urrent b usiness web-based systems. The idea is to allow a user to raise a case for some aspect which needs a reply from some or- ganization web site party. An employee should consult thro ugh the same web site a list of cases or a specific case that has been presented as a request in order to update it. Then the update is sent back to user, who may be offline, as response. A broker is an intermediate module used to exchange messages between the system and users. Users contacting the system are durable customers. The non- functional requirement for system performance is higher than reliability. 5.1. The Proble m Specificati on The helpdesk software system is needed to service cus- tomer(s) and employee(s) at the same time. A customer will be required to insert identification information such as user name and password after registration—both of which will be sent for validation to the web site system which is located remotely somewhere on the internet. The customer as well as the employee will then be able to perform one or more operations. The helpdesk must be able to provide the following services to the customer: 1) A customer must be able to login using his account information. 2) A customer must be able to submit a case to any employee l i nked to o rgani zati on, b y writing a text messa- ge and submitting it to a broker. 3) A customer must be able to view their case history (feedback), status, and details. 4) A broker needs to maintain a queue in order to sche- dule cases and differentiate between different u s ers’ cases. They also must be able to create a message.
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Figure 7. Behavioral mappings activity f or helpde sk PIM to messaging system PSM. Table 2. Configuratio n for a set of product s from PSM metamodel with pr o file. Appliction domains NFR Profile Prio rity Variation point(Design Decisions) <Message,connection,session,Ack> 1-Email Sys tem App-size = normal Iscritical = yes Delivery = notUrgent P1 P2 +P3 > P1 P3 <per sist en ce,queue,transacted, AutoAck> 2-Chat App -s ize = normal Iscritical = no Delivery = medium P1 >P2 + P3 P2 P3 <NonPersist ence, Topic,nontransacted, DupAck> 3-Forum App -s ize = normal Iscritical = no Delivery = medium P1 >P2 + P3 P2 P3 <NonPersistence,Topic,nontransacted, AutoAck, > 4-Mobile application R el iability = high Iscritical = yes Delivery = high P1= P2= P3= <p er s istence,queue, transacted, FastAck> 5) An employee should be able view cases by individ- ual case or list of cases and look for details. 6) An employee should be able to update a case. This is the functio nality needed to d evelop an applica- tion conceptual model (PIM) as we will see in Figure 8. Figure 8 shows a class diagram for the helpdesk sys- tem. The basic structure of the class diagram includes six major classes: customer, login, broker, case, manager, and Que ue with t he ir r esp onsibiliti es and r elationship s a mong them. I n the ca se o f the ma nager, one o f the re spons ibili- ties is to provide access to a case in the response queue that has received a message from a broker and send the updated version back to broker; thus, Case, Queue, and broker have associations to manager. Case has associa- tion t o t he que ue c la ss. Cas e wil l b e give n uniq ue ID and created so each case will represent uniquely an individual customer case which is stored in a queue either as a re- quest if it ca me from the customer or response if it came from the sys tem. The UI is specified in this PIM but we are not considering this part. It could be possible to cap- ture an entire UI specification from this PIM that could be rendered by an outsourced third-party platform such as a browser. We are using <<NFR>> stereotype to indicate non-
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Cas eKind < <enum >> StatKind < <enum >> Reques ts A ddRespons e( ) Res ponses A ddReques t() DeptKind A dm in UsrName : s tr A dmi n Pass word : s t r Dept : Cas eK ind Login Us rName : String LogID : in t P assword submi t() Cus tomer Us rName : String A ddres s : s t ri ng Em ail : St ring < < NFR> > Cus t omerType : int = {NFRId= 1, P=medui m}11. .* 1+ Loged 1. .* Manager Claasific ation : CaseKind Cas Det ail s : string < < NFR> > A ppType : st ri ng {NFRId = 2, P = l ow} < < NFR> > S ens i t i vi t y : str ing {NFRId = 3, P = m edium } send() rec eive () updat e() + Connected B roker P rocessID : i nt Cas es t ate : S t at K ind P roCont ent : s t ri ng rec ieve () send() 1. .*1. .* Cas e Msg 1+ rec i ver + sender 1 Queue ContentID c ont ent : s t ri ng length : int listCases() 1. .* 1 +case 1. .* 1 1. .* + archive Case ID : Int eger c ont ent : S t ring Dat e : dat e < < NFR> > Deli very M ode : S tr ing {Id = 4, P=normal} < < NFR> > A ppk i nd = {NFRId=5, P = hi gh} create case() createID() S et Status() 1. .* 1 + theCas e 1. .* 1 1. .* 1 + pool 1. .* 1 + owned 1. .* Figure 8. PIM: Helpde sk sys tem wit h NFR documented. functional requirements according to the NFR profile. Tag values are used to denote two pieces of information: ID to identify a NFR and priority (P) which assigns an integer number to indicate a prio rity level of NFR. T hese are the elements of the NFR specific-language used to model NFRs as described in 4.2.3 (Task D). In the PIM shown in Figure 8 there are the following NFRs: Applic ation sens itivity {Hi gh, low, medium}, App- Kind{transactional,nontransactional}, CustomerType {nor- mal, durable}, AppType {normal, critical}, and delivery Mode{normal,guaranteed}. (Task D). The interpretation of these NFRs will make sense when we link to design decisions as we will see later. We now have a helpdesk system conceptual model de- scribing functionality as well as nonfunctional require- ment s . The PSM in Figure 9 s hows a messa ging s yste m which can be a realization of a PIM such as in Figure 8. It de- scribes how data can communicate between two software entities: Producer instance and Consumer instance. A Session instance must be created between the two ends but to do that a Connection instance must be created first with suitable parameters. Session has two types as does Connection, while Transact means the under lying s ystem should treat the data send as a transaction in database so the system should guarantee correct update, consistency, and can rollback a NonTransactional is to treat data not as a transaction. Consumer and data instances can be synchronous (Synch) or Asynchronous (Asynch) which refers to whether it is necessary or not for the consume r
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Figure 9. PSM of messaging system with variability in design decision. to attend at the time of connection. Connection is Direct type or Indirect type transaction in ca se of failure. We can call Queue for the former which allows one recei ver per se nd action and Topic for the later that allo ws multiple receivers per send. Data can be Persistence type which means using backing store, preserving it in the case of any failure, or it can be NonPersistence. (Task B) We notice this abstraction deals with concepts that are from implementation space not like the PIM concepts that are from an application domain. Figure 9 shows the capability to deal with different design decisions configuration that are represented by va- riabilit y (Task A, C). For example Connection is denoted by <<VP>> stereotype which can take Direct or Indirect variants. Likewise session denoted by <<VP>> with its two different variant kinds. The focus on the discussion will be onl y on varia bilit y that is no n-functional wi th re s- pect to the PIM. 5.2. Mappings (Task E) In order to explain how to apply this principle we will describe mappings of this case manually, while it should be automated. The NFR in the PIM of Figure 8 will guide the mapping process to configure a suitable PSM from Figure 9 automatically. For instance, the two data vari- ants: persistence or NonPersistence is selected according to the application need for reliability or performance so delivery mod e will deter mine that. The current case study says Application Sensitivity is not high and a delivery mode is normal hence these two NFRs are not reliability factors which require maximizing performance. The de- livery would use NonPersistence option which does not necessarily insure message delivery by for example stor- ing message until a receiver becomes available. Similarly, the Session variatio n point has t wo var iants: Transacted and Nontransacted. Because the AppType (i.e. size) NFR is normal application in the help desk PIM Nontransacted variant is the most suitable. This factor affects performance directly for example when transacted variant is used performance is impacted negatively compared with the Nontransacted mode. This is because there is additional overhead for resource ma- nipulation needed in the system for transaction mode. Connection variation point has two connection varian- ts: Direct and Indirect which means s ingle r eceiver versus multiple receivers per message. They are selected based on AppKind and CustomerType Non-functional require- ments. A Transactional application, for example banking transactions, requires usually direct connection such as for doing funds transfer. The same is true in our case study where direct connection is selected for request and response messa ges because CustomerType is single user. In contrast, mobile applications such as advertisements prefer broadcasting a message to group of receivers so indirect connection is the most suitable variant. In that case customer Type can be multiple users.
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Generally in terms of performance indirect connection is contributing positively while direct connection is con- tributing negatively. The same message is forwarded to different subscribers which mean lower resource con- sumption. Note that we need one of the variants to be set as de- fault because the PIM and PSM are independent so that the default will be selected in case there is no correspon- ding NFR(s). For instance Figure 10 shows that the de- fault variant is se lected ([2 ]) fo r Conne ctio nV P if there i s no corresponding NFR addressed. We notice also two or more design decisions d ete rmi ned b y singl e NF R suc h as Appkind can be used to decide both connection and ses- sion va riants. Table 2 shows informally part of mappings from Help- desk system PIM to messaging system PSM with NFRs guidance. I t also sho ws how a pplicatio n concepts turn in- to design concepts. For instance the Case from PIM me ta - model which is a unit of work between customers and company holding the necessary infor mation will be map- ped into three objects: Message, Connection and Session. Because we have two kinds of messages and so two different bodies of computations, we need to judge on suitable design by looking into NFRs presented in the PIM according to for example performance or reliability. NFRs can be extracted from system specification by different formats and meaning. For simplicity Iscritical (such as OCL style) is used instead of AppType. The mapping rules that can be used to implement the map- pings specified in Table 1 are shown below. PSMR= PSM repository holding instances Pi=Priority [1] CaseToData IF (Iscritical=Yes) and (delivery=guaranteed) th en If (P1[Is criti cal]>P2[delivery]) Then store in PSMR ([Data,type=Persistence)]) IF (Iscritical = N O ) and (delivery=guran teed) Then store in PSMR ([Data,t yp e=Non Persistence)]) IF (Iscritical = No) and (delivery=normal) Then st o r e in P SMR ([D ata,type=Persis tence]) [2] CaseToConnection Select connection.default-V [Queue in this case] Store in PSMR ([Connecti o n.type=connection. defau lt-V]) [3] CaseToSession IF (AppKin d.value=transactional) Then store in PSMR ([session,type=transacted]) Figure 10. Part of informal mappings rules from helpdesk PIM to messaging system PSM. Figure 10 like pseudo-code shows a sample of map- pings rules to transform PIM instances with existence of priority consideration into PSM instances. For example, [1] describes a conflict situation where if the application Iscritical and at the same time the delivery is guaranteed, the selection of design decision will depends on the hi- ghest priority. In this case persistence (factor of reliabil- ity) is chosen because P1 is greater than P2. Note here pri ority is use d only in t he cas e of NFR va lues cau sing a conflict. We notice by this way an application could be config- ured at the two extremes: reliability and performance using suitable design decisions represented in the design artifact with NFRs guidance. It is also possible to con- figure an application in between these two extremes. Thus our method affords different products with archi- tecture designs at different levels of quality-attributes. Inputs for mappings will be PIM metamodel (holds appli- cation instance s), NFRsrepository (NFR in stances), PSM metamodel, and Variability (d e sig n d e c isio n instances). 5.3. Class Methods Mapping This activity is intend ed to realize the abstrac t operations expressed by one kind of behavior diagram for the help- desk PIM metamodel. We can use an activity diagram to show the control flow and instances creation during the execution of the mappings fro m PIM to P SM a t this stage. For example in the behavior i ns t ances mo del of Figure 8, the sendcase method in broker needs to map into the fol- lowing sequence: createObject (connection), createOb- ject (session), createObject (producer) as in the behavior instances model shown in Figure 7. It sho ws the control flow of mapping activity and relationship occurrences between source (helpdesk behavior model) and target (messaging system model). For example, raise case will be mapped to initialize Connection and sendcase will be mapped to sending process. We can determine PIM (source) and PSM (target) actions from this activity dia- gram. For example PSM activity are, initalizeConnetion, SendingProcess, ReceivingProcess, CreateUniqueRecord, lookupcase, UpdateRecord and createResponse (from 1.1 to 1.7) . But still as we mentioned previously more inves- tigation is needed in this place to map a PIM process model to PSM process model and understand this map- ping completely. 6. MDA in the Context of Design Pattern and SPL It is a claim in this paper that MDA i s a re-use approach. In this section we see how MDA can fit in with other common re-use approaches such as design pattern and software product line (SPL).The investigation of this relationship is the reason behind approaching E2 EDE.
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Varibility and Nonfunctional requirement concepts are borrowed as we have seen in section. MDA is a special case of design pattern techniques as we will argue in Se- ction 6.1, while MDA and SPL have a synergistic rela- tionship according to observations described in Section 6.2. 6.1. MDA and Design Pattern The design pattern concept goes back to Christopher Al- exander [24]. His definition identified a relationship be- tween three parts constituting a pattern: problem, solu- tion and context. In software engineering, a design pat- tern is a general reusable solution to a commonly occur- ring problem in software design [25]. 6.1.1. Limited to Domains with a Well-Established Code Base The nature of solution provided by MDA is more specific to the problem domain than the design pattern which is more general because there are many kinds of design pat- terns [26]. A general purpose pattern perspective in solv- ing problems is more expensive in terms of the estab- lishment of working environment than in MDA, which is characterized by its well-established specific backend. Typically, MD A is used to target platform(s) that have al- ready been crafted. For instance, large scale software RDBMS (a complex proven solution) can be utilized automatically by tools which transform PSM relational model after mappi ng to the SQL language. In contrast, for a pattern to be executed generally involves establishing new tools. For instance, Yacoub, Xue and Ammar [27] proposed their own visual systematic tool. 6.1.2. Separating Concerns Allows Application Logic and Platform to be Variable and Encourages Re-Use It is observed that design pattern tends to integrate the behavior aspects with implementation aspects which re- sult in risks of platform changing or volatility. Further, some implementation details become suppressed as con- sequence of behavioral variation as in the publish-sub- scribe pattern which does not say anything about remote objects design [15]. If this pattern is used in a d istributed environment it becomes necessary to distinguish local from remote objects which is not available as a design decision at de sig n time. 6.1.3. End of Pattern Life Cycle Design Pattern follows a life-cycle as patterns become more mature and quality increases [28]. MDA produces high quality patterns because PSMs are end of the pattern life cycle. Altho ugh the nonfunctio nal requirement e mer- ged first in the design pattern approach, MDA gives a wide opportunity to represent NFR explicitly. It is the critical requirement that discriminates between pattern architecture designs. In fact, it is still a research question how to graft design pattern with recognit ion of NFRs. In Buschmann [15] we can observe the role of NFRs in ba- lancing design forces. 6.2. MDA and Software Product Line (SPL) Software product line engineering is a paradigm to deve- lop software applications (software-intensive systems and software products) using common platforms and mass customizatio n [2]. The intended goal is to avoid re inven- ting the same solution for different applications in order to achieve shorter development time and high quality products (i.e. Nokia mobile applications). There are two distinct development processes adopted by SPL: domain engineering and application engineering. The former is concerned with design for reuse by seeking c ommu nal - ties and variability in the software product line. As a re- sult a reference architecture called product line architect- ture (PLA) is established . The aim of the latter is to drive applications by exploiting the variability of the software prod uct line. 6.2.1. Defining Variation Points and Variants The central concept in SPL is the explicit representation of variability. Variability is a variable item of the real world or a variable property of such an item [16].A vari- ant identifies a single option of a variation point and can be associated with other artifacts corresponding to a par- ticular option (dependency relationship). For example, payment method as a variation point can be realized by variants: payment by credit card or payment by cash, etc. It is necessary in SPL to identify variability by defining variation points and var ia nts, which is used by a selectio n process to produce different products. There are two types of variability: Variability in time, which is different versions of the artifact at different ti mes (i.e. performance), while variability in space refers to an artifact in different shapes at same time. For exam- ple “syste m access b y” var iation p oint in a home sec urit y system can have two variants: web browser and mobile phone. Variability in space is the central challenge faced by SPL, so management of variabilit y is the main issue in this engineering approach [16]. A set of closely related objects, packaged together with a set of defined interfaces, forms a component [28]. Usu- ally a component-based approach is used to realize SPL concepts. SPL tightly couples application and implementation mod els together.MD A a s an approach reduces the SPL to abstract computational processes. It separates the appli- cation from implementation by creating PIM and PSM abstractio n levels.
 End to End Development Engineering Copyright © 2011 SciRes. JSEA 6.3. MDA in the Context o f the Software Product Line Both software product line e ngineeri ng (SP L) and model driven architecture (MDA) are emerging as effective paradigms for developing a family of applications in a cost effective way [3]. SPL through its feature-based mo- dels provides a capability to capture variability in inten- sive systems, while the effectiveness of MDA is primar- ily due to p otential for a uto mation it offers for variability in technology. Generally MDA can fit into SPL as an ef- fective software development method. For instance MDA can tackle implementation variability within a specific plat form. So the synergistic re lationship be tween the two approaches has been studied recently [4,20,29]. The basic differences between the two approaches are as follows: 6.3.1. MDA Decouples Implementation Model from Application Model The PSM is constructed as an API to specify the imple- mentation aspects for an intended target such as rela- tional database model. Similarly a PIM model is built whic h sp ec if ie s t he bus i nes s logi c. T hi s will a d d va lue b y enabling MDA to tackle technology variability which allows the same PIM to be rendered into different plat- for ms or PSMs. Although components raise the reuse level a little bit, they still su ffer from the software e volution pr oblem. For example, any small interface changes will entail finding ever ywhere the interfac e is used, changing it to reflect the new interface, testing new code, reintegrating and retest- ing the s yste m as who le . Ther e for e, a s mall c ha nge i n t he interface can cause enormous changes by following each code part that refers to this component interface. In con- trast, the PSM, an intermediate subsystem, abstracts this tedious task by concentrating the changes in one place. Also, MDA a voids the problem of features explosion that tends to complicate maintenance [9]. In addition, keeping a mapp ing functio n separate avoids swamping the source model (application) with implementation details and re- duces the problem of model divergence because the tar- get (implement ation) is generated [2 9]. Furthermore, MDA increases architecture longevity (ageing) compared to the fact that sometimes PLE suffers from architecture lifespan which may reach end of life [22]. In this case evolving architecture will be expensive or risky. MDA’s potentiality comes where evolving the architecture becomes much cheaper because each of PSMs and PIMs are adapted separately and they do not carry any volatility risks (technology variability). 6.3.2. MDA is Intended to Automate the Craft of Code The po tential of MDA is due to the cap abilit y of automa- tion it offers. It is recognized that if we will be able to forma li ze the mo d el to t he e x t ent t hat it has no a mb i gui t y and the model is machine readable (executable) then the code in principle can be mechanically generated. MOF is a powerful metamodeling language that realizes this trend by allowing tools to interoperate and accurately modeling the conceptual model of a design language such as UML. Crafting code becomes a model driven process wherein a transformation from source model (PIM) to a target mo- del (PSM) can be automated by for example QVT tools. Eventually the PSM can automatically mapped into text (code). MDA works best if the scale of PSM objects is the same as that of PIM. The mapping function is kept separate so that it can generalize some concepts and it can be repeated many times (repeated design decisions) sho- wing a big picture of reuse. The mapping fu nctio n ca n be automated at the instance level because it is an algo- rithmic pro cess in which generic tra nsformation rules are established at the type level. The general feature of auto- mation is the synchronization between the two e nds. 6.3.3. Higher Abstracti on and Systematic Development Methodology The main goal of MDA is to raise the abstraction level higher than traditional middleware and 3 GL/4 GLs pro- gramming languages. This means taking advantage of sof tware-platform independence that enables a specifica- tion to execute on a variety of software platform with a stable software architecture design. The granularity of code re-use will increase to the level of a PSM (ADT) in- stead of compo nent s as in SPL. The PSM is scoped to this level of code reuse. For example relational database PSM is an abstraction for the family of relational databases above any specific technolo gy. Also, there is a difference between MDA and SPL in defining interfaces to compo- nents and fr ame works vi a an API. I n MDA, t he int erfa ce is not concre te but it is meta -interface exported by mark- ing mod els [ 29]. The mappings are externalized and gen- eralized, which ca n be reused in simil ar problems. MDA is standards-based development method which is specified entirely by a nonprofit organization, OMG, since 2001 [1] . It invol ves algorithmic mapping proc esses from model to model (PIM-PSM) and from model to text (PSM-code). The mapping process is rule-driven i n which transformation rules are expressed by a standard language (e.g. QVT). However, different viewpoints could be con- structed for different abstraction levels. Formal mapping functions will often fill the gap between any two differ- ent abstraction levels (consider compilers). Further, hav- ing MOF as metalanguage and other well-established OMG standards (i.e. XMI), it promises industrial-scale systematic re-use and integrat ion capability.
 End to End Development Engineering Copyright © 2011 SciRes. JSEA 7. How Design Pattern and SPL Contribute to E2E2D Engineering The survey of the relationship among MDA, SPL, and Design Patterns has shown a synergistic relationship. MDA improves each approach by supporting these quail- ties: automation, proper management of technology changes or volatility, high granularity of reuse and more important a cap a bility of integration. Design Pattern is not an end to end concept because it is an abstraction for software implementation. Design pattern could be used to construct the architect- ture in E2EDE. It adds value by acting as a proven solu- tion and a documented experience. SPL is an end to end concept but in addition to the pro- blem of coupling application and implementation toge- ther, it does not tackle the variability in the implement a- tion part. In contrast, E2EDE is mainly addressing this cha - llenge. In addition, there is no concrete link as in E2EDE between higher level models and lower detailed models. SPL engineering gives anothe r insight for E2EDE: the concept of explicit variability representation and mana- gement. Introducing variability explicitly in the PSM helps mainly in its construction. This means a PIM can become informed about variation points that are docu- mented explicitly therefore it becomes possible to auto- mate the design decision process. A UML profile for spe- cifying PLA [3] can fill the gap between PSM and the PLA core assets artifact. Metamodeling and MDA are an alternative technique successfully used to organize SPL and feature model concepts as demonstrated by Muthig and Atkinson [11]. Furthermore, unlike orthogonal models, the variability model and original model would not be separated, which increases readability. 8. Strategi c Mess agi n g Syst e m P S M The philosophy of MDA is to do more investment on me- tamodels so as to hopefully obtain payoff at production time by producing larger number of products. It can be conceived as the same scale as where database systems an d X 11 [20] are considered viable. We have looked at PSM in Figure 9 in the previous section as a spe ci fic imple men tation for helpd esk s yste m. In fact this PSM was built from a general messaging sys- tem perspective. The concepts in this PSM form an on- tology. There are many messaging systems which com- mit to that ontolo gy. Examples are: Chat system, Email system, instant me - ssaging syste m, media str eaming s ystem, mobile app lica- tions, etc. As we argued before re-use is a major trend in the soft- ware development community. Important are not only re- usable components but also strategic reusable assets like models and transforms. Table 2 shows a simple configuration for four prod- ucts as a picture of the benefits of re-usi ng the me ssa ging system PSM. Further, it is obvious that the rationale of this specific architecture design does not exhaust the E2EDE approach. An architect can reason about different architecture designs. In Table 3 we see there are number of NFRs common to this set of applications, which are re-used to make a design decisions. The y are App-size (i.e. Application size), Iscritical and De livery. Both App-size and Iscritical are a kind of Package level NFRs while Delivery is a class level NFR because it is about an object class inside the system. Design decisions are: message (data), connection and session, and Acknowledgement mechanisms. In the example of email system two reliability factors are high- er than the other; App-size has lower value than for de- livery and apply-size, therefore message (data) delivery is persistence with Queue type connection and transacted sessio n. T he Ack nowledge ment will be given nor mal va- lue which is AutoAck. All these values makes reliability higher than performance because of the overhead proce- ssing (i.e. store ) which what is said by NFRs. The inverse Table 3. Part of map pings from helpdesk system to messaging system. PIM Relevant NFR PSM Variation Points 1- Case Data needed between producer and consumer and let the system works so it is functional. But there is a quality on its processing based on prior ity and type. 1.1 Message 1.2 connection 1.1 Data [messa g e] Apptype{normal,critical}or sensitivity {low, high} and delivery mo de 1.1.1 persist ence or 1.1.2 nonpersistence 1.2 connectio n customerType and AppKind{transactional, nontrnsact} 1.2.1 queue or 1.2.2 topic 1.2.x.1 session A p pKind an d de liv e ry mo de 1.2.3 transact ed 1.2.4 Nontransa cted 1.3 br oker User or customerType 1.3.1 Consumer::Asynch Or 1.3 .2 c ons u mer : : Synch
 End to End Development Engineering Copyright © 2011 SciRes. JSEA of this situation typically is in Chat and Forum applica- tion where P 1 of app lication size put into highest priorit y than data delivery and Iscritical so the configuretion of parameters is set to increase performance. The mobile application comes in the middle between performance and reliability more oriented to reliability. Note that this is an arbitrary configuration but any other scenarios are possible. The point is by that we can see an example of NFRs and variability reusing among products in mes- sagi ng syst ems. 9. How MDA Works MDA is new trend in software develop ment. This section sketches key po i nts about MDA implementation. The histor y of software engineering sho ws that a soft- ware design model is a complex object that needs to be maintained during a project life cycle and refined over a long period. CASE tool (computer-aided software engi- neering) is used to allow easy model creation, editing, rendering etc. In this case, a tool designer utilizes infor- mation system technology to keep this complex object in a database called a repository. A repository consists of a schema which stores model instances [6]. In fact this re- pository does not need the complete commercial database machinery. There are recently emerging MOF-standards like XMI [30] used as a mechanism not only for persis- tence purpose but also as a mechanism for exchanging models between tools which it was difficult before in a classic CASE tool (i. e. magic draw, rational rose). Many recent MOF-based toolsets support in addition to effi- cient access methods, both system and user- defined API serialization mechanis ms in which develo pers can render a model using an XMI concrete syntax for different pur- poses. There are many tools with different features and capabilities working in this context, extensively studied in [31]. EMF [32] an open platform adopting MDA prin- ciples provides a Java code-generation facility to ac hieve interoperability between applications based on a MOF meta-modeling framework. 10. E2EDE Implementation The implementation of E2EDE need to be considered as there is some limitation in current MDA tools. Our ap- proach in this space is to separate working on the model view from the implementation view the same way UML gives a different views for different purposes such class diagram and activity dia gram. The proposed profiles are useful in terms of readability and explicit showing of the NFRs and VPs but for im- plementation it needs suitable representation to fit the MD A computatio n environment. There are three reasons underlying the solution sug- gested in this section: source, target and mapping meta- models. Firstly, current tools have a limitation of recog- nizing a profile instances in a model annotated by a pro- file elements such as MediniQVT [33]. (Tag values are not visible to QVT pattern expressions.) Therefore we suggest a representation for profiles to resolve this i ssue. Secondly, if we look practically to the mapping the me- talevels concept breaks down when we compare two sys- tems. For instances, if we used UML as PIM metamodel and MOF as PSM metamodel, the mapping is from in- stances of M0 objects to instances of M1 objects. The same is true more generally when we use Profile instan - ces that a re at le ve l hi g her t han i nsta nc e s l evel o f t he me- tamodel. In our specific case, pro file instances are at M1 level while the metamodel instances needed by QVT en- gine are at M0 level. However, OWL-Full [34] can be suggested as an alternative technology to UML which could resolve this solution. OW L has an OW L metaclass class which is itself a class, so we can build a profile mechanism by declaring subclasses of OWL class. Finally there is a need for linking a single VP with a set of NFRs and mapping variability should be conside- red. (Task G) Figure 11 describes the relationship between VP, NFR and a Design Decision. A design decision is one of two kinds: selection which denote s the normal variabilit y exi- sts on P SM, and co mpiled which represents the mapping variability highlighted in the previous sections. This sort of design decision groups related rules that have some common property which is modeled by the attribute rank. An instance of compiled design decision is associated with an instance of NFR because NFR(s) is the reason behind this grouping. For example, consider how the mapping variability discussed in Section 4.2.2 could be represented. Also, more information details about design decisions can be added, for instance to compiled subclasses, like the ef- fects and cost of effect etc. Ho wever, an instance of a de- sign decision is an opaque rule specifying the creation of valid PSM i nstance s when its precondition is satisfied as shown in the following. A program manipulating this metamodel should differentiate between three modes: de- fault, application of a rule, and conflict resolution. A conflict mode needs to refer to NFR’s priority. Seduo- code based in QVT relati on lang uage is s hown in F igure 12 .This part sho wing application of Task F. Figure 12 demonstrates statements describe two dis- joint types of connection that will only be created as PSM instances when certain Preconditions are satisfied. The funct i on of the Guard Predicate class is to collect VP related NFRs which has multiplicity one to many. This means a pattern structure in PIM will be linked with one variant through one or more NFRs. For instance, in the two examples we have two sets of NFR related to Direc t
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Figure 11. PIM to PSM mapping metamodel. Figure 12. Opaque rules for mapping variabilit y rules. and Indirect variants respectively: {importa nt, transactio- nal}, {normal, Nontransactional}. Note that variants in PSM are disjoint and covering because they are alterna- tive design elements. NFR and VP are imported from correspond i ng packages. The metamodel in Figure 13 is a lightweight UML2. 0 metamodel used as an example by the QVT specification. We use this as a base for presentation purposes (Profile). The full wo rk makes u se of UML. The extension or ad aptation to this existing metamodel was special NFR ( SNFR) metaclass, general NFR (GNFR) metaclass and NFR metaclass. Working with this case study shows that there are two kinds of NFR: package level (general) and class level (special). An extension to the same UML simple metamodel could be done for variability model using an extension to the metaclass class to represent variation point, variant and Q uail it yA t tr ib ute . The s ame extension is found in t he literature such as [2,3,12] but there are two problems with this. Firstly, it does not model mapping variability and for example the conflict cases that arise when we link NFRs with varia nts. Seco nd ly, it is i mpossib le to u se the UML toolset to do that modification because it is at the level of UML metamodel. Here the proposed app- roach generally involves Profiles, packages and model manipulation. The meaning of variability in PSM is somehow diffe- rent from traditional variability in SPL. In E2EDE, vari- ants are disjoint and covering which represents only al- ternative design decisions. These decisions can be over- lapp e d and no t c ove r ing in S P L. Va ri ant s in E 2E DE e xi st on a PSM artifact to represent Nonfunctional while SPL traditionally represents only functional variability. There is no dependency such as between VP-VP because it is already inherited from the UML design language. 10.1. Packa ges (Task G) PSM variability needs to be represented in a way access- ible and without ambiguity to the relationship programs.
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Figure 1 3. Simple UML2.0 metamo d el extention from QVT specification as Profil e implementation. The relationship program has end to end functionality. It is intended to link a PSM variant with the relevant NFR(s). The traditional mechanism in literature used to model variability is through a subclass structure of the UML class model like [12]. This is suitable for humans but if the system is scaled up, it would be difficult for a human to comprehe nd that system. The second problem is that some times in these large system names of classes, properties, and association etc, can be ambiguo us. T her e- fore we need a representation mechanism that allows the program to find model elements. MOF and UML support a Package mechanism which has a capability to make names of members unique within the package that owns them. Further it is has a facility to disambiguate names where necessary by adding the package name as prefix. So both human and programs could easily access model elements withou t a mbigui ty. Furt her a pa ckage may need to import or merge another package. Therefore, the semantic operations of incorporating a subclass (variant) in the model will be throu gh le ga l st an- dard package operations. In UML2 infrastructure a package [35] is defined to group elements, and provides a namespace for the grouped elements. A package merge is used as basic re-use me- chanism that allows extension by new features. For ins- tance, UML2.1.2 superstructure builds on the Infrastruc- ture library by re-use of the kernel package. It is defined in UML2.1.2 infrastructure as a direct relationship be- tween two packages that indicates the contents of the two packages are to be combined. Conceptually this means there is a resulting element combining the characteristics of both source and target. Since we modeled VP and V using the generalization concept, a subclass is always an extension for superclass i.e. by adding new structural features. A package merge has these capabilities. Therefore, a PSM super-subclass structure will be modeled using packages. The second value of using a package is that it is a po- werful mechanism for embedding an entire metamodel (sub architecture) to represent a variant that could be re- used in the main model (namespace). It is effective due to its capability to represent PSM implementation varia-
 End to End Development Engineering Copyright © 2011 SciRes. JSEA bility that can scale up as practically used by OMG as a basic building block to develop and reuse a variety of in- frastructure and superstructure constructs. Further the capability of package operations (i.e. import, merge, etc) allows one to build complex structures by combining simple constructs using a systematic rule. This feature in the programming languages concepts is recognized as orthogonality [36]. So now we have the representation of variability in PSM using the p ac kage mec ha nism. In ad diti o n, we ha ve NFRs represented in PIM metamodel which has repre- sentation in Figure 13. They were two kinds: package level NFRs and class level NFRs. To this end we need a relationship program using NFRs to select the suitable variant(s). This will be modeled using model manipula- tion tools. But in order for this relationship program to work we represented elements of the problem in way easier for the programs to find and manipulate (Package). 11. Lessons & Realistic of E2EDE The key point from the step toward strategic PSM like the one presented in section 8 is since there are a group of different products complaint with a standard interface, they are sharing an abstract data type (ADT). It becomes easy for example to replace one by another, for example Dell laptops standard architecture is the reason behind a wide set of products. Another example from our commu- nity is the service-oriented architecture where its stan- dard interface leads to proliferation of applications and what is known as Agility. This scenario even could be applied to situation where there is no standard specifica- tion. Here we need a reengineering process to fill the gap but this time with the lowest reengineering cost, with assumption that the different products have largely simi- lar functionality. T ypically any drift from common func- tionality would be resolved as a mapping from the PIM to the PSM. Any further changes made necessary by use of a particular platform should be relatively minor. Typically it is the case of messaging system PSM there is no standard specification but E2EDE encourage rea- ching agreements on messaging design vocabulary. Our investigation shows us there is similarity even if some- times there are differences in naming. One could see the advantage of what we are taking about if we look at Advanced Message Queuing Protocol (AMQP) [37] practice when it standardized message format (known as a wire-level protocol) which is pro- prietary in JMS [38]. Any tool conforming to this data format can interoperate with any other compliant tool regardless of implementation language. Both JMS and Microsoft's MSMQ [39] comprise alternative candidate platforms for our messaging system PSM. Both have similar capabilities but have differences in performance and int egra tion fe atur es pl us othe rs. O ur messa ging P SM is developed from the standard of JMS which is recog- nized as the best-known standard in the asynchronous messaging world [40]. As we mentioned, a complete ontology of messaging systems needs to be established by a standards body so one could take the advantage of replacing one messaging platform by another. This stan- dard will establish a vendor-neutral protocol by studying different practices of messaging paradigms such publish/ subscribe, point-to-point, request-response, etc. The stan- dard would specify message format, Brokers behaveior scenarios, and others. 12. Conclusions MDA is about mapping PIM instances to PSM instances automatically using a standard mapping language such as QVT as a new trend of developing applications. The MDA standard specification does not show in details how to do the mappings from PIM metamodel (applica- tion-space) to PSM metamodel (implementation-space). This situation raises a question: how to develop End to End applic a tions which is the ulti mate goal of MD A. In the view of that question we have proposed E2EDE, a novel software development approach which bridges the mapping gap between PIM (functional specification) and PSM (implementation specification) using the MD A method. E2EDE approach is based on documenting variability in architecture artifact design on the PSM by utiliz i ng t he variability notion in the software product line approach. Our variability analysis has shown taxonomy for vari- ability including mapping varia bilit y. NFRs is proposed to be documented in PIM to make the PIM more informative thereby guiding the mapping process to select from among design alternatives in order to automatically produce a suitable implementation or PSM instance model. In this scenario the mapping pro- cess is modeled in a configurable way to drive an archi- tecture that can lead to considerable cos t-saving. We have shown that this study has contributed to NFRs knowle- dge b y ident ifyi ng t wo ki nds of NFRs : P acka ge leve l and class level. The former have more re-use potential. E2EDE contributes to the MDA domain by finding concrete mapping methods for generating high quality applications within specific but big enough domains through building explicit links between design decisions and N F Rs. E2EDE implementation models were developed and it was discovered that a profile is good at presentation level but not suitable for implementation level. Generally, we followed Profiles, Packages, and model manipulation ap- proach where metamodels were developed for source, target and relationship program.
 End to End Development Engineering Copyright © 2011 SciRes. JSEA We have invest igated the realistic a pplication of E2EDE and found that there different examples of messaging syste ms without a standard. For use of E2EDE, having a standard PSM would be an advantage. It increases the re- use theme (PIM with NFRs can be like variant feature) and achieves interoperability. The best situation would be gained if PSM is built by standards bodies such as ISO or the OMG. Finall y, thr o u gho ut t his p ap e r we ha ve seen ho w MDA can fit in with SPL and Design pattern under the reuse umbrella which helps explore the research issues that are arose such as Non-functional requirements when we tac- kle E2EDE engineering. A case study was presented to show the possibility of success under this approach. A strategic PSM for messaging systems is developed as an- other potentially valuable product. In addition, the les- sons and the realistic application of the approach are in- vestigated. REFERENCES [1] “MDA Guide Version 1.0.1,” 2001. http://www.omg.org/cgi-bin/doc?omg/03-06-01. [2] K. Pohl, G.Böckle and F. J. van der Linden, “Software Product Line Engineering: Foundations, Principles and Techniques,” Springer, Berlin, 2005, pp. 53 -72. [3] H. Min and S. D. Kim, “A Techniqu e to Represent Prod- uct Line Core Assets in MDA/PIM for Automation,” Proceedings Rapid Integration of Software Engineering Techn iques Second International Workshop (RISE 2005), Minneapolis, V ol. 39 43 , 2006, pp. 66-80. [4] M. Matinlassi, “Quality-Driven Software Architecture Model Transformation,” PhD Dissertation, VTT Techni- cal Resear ch Centr e of Finland, 2006. www.vtt.fi/inf/pdf/publications/2006/P608.pdf [5] S. J. Mellor, K. Scott, A. Uhl and D. Weise, “MDA Dis- tilled: Principles of Model-Driven Archi tectur e,” Addison Wesley, New York, 2004. [6] R. M, Colomb “Metamodelling and Model-Driven Ar- chitect ure,” In Publ is hing. [7] “MOF 2.0 Core Final Adopted Specification,” 2004. http://www.omg.org/cgi-bin/doc?ptc/03-10-04. [8] “OMG MOF QVT Final Adopted Specification,” 2005. http://www.omg.or g/doc s/ptc /05 -11-01.pdf [9] S. Jarzabek, “Effecti ve Software Mai ntenance and Evolu- tion: A Reuse-Based Approach,” Auerbach Publications, Boca Raton, 2007, p p. 68-106. doi:10.1201/9781420013115 [10] D. Ramljak, J. Puksec, D. Huljenic, M. Koncar and D. Simic, “Building Enterprise Information System Using Model Driven Architecture on J2EE Platform,” Proceed- ings IEEE the 7th International Cconference on Tele- communications, Zagreb, June 2003, Vol. 2, pp. 521-526. [11] D. Muthig and C. Atki nson, “Model -Driven Product Line Architectures,” Second International Conference on Soft- ware Product Lines, San Diego, Vol. 2379, August 2002, pp. 79-90. [12] B. Korherr, “A UML2 Profile for Variability Models and Their Dependency to Business Processes,” Proceedings of IEEE Conference Database and Expert Systems Ap- plications, Regensburg, September 2007, pp. 829-834. [13] L. Chung “Representing and Using Non-Functional Re- quirements: A Process-Oriented Approach,” PhD Thesis. University of Toronto, Toronto, 1993. [14] D. Gross and E. Yu, “From Non-Functional Require- ments to Design through Patterns,” Requirements Engi- neerin g, Vol. 6, No. 1, 20 01, pp. 18-36. doi:10.1007/s007660170013 [15] F. Buschmann, K. Henney and D. C. Schmidt, “Pattern Oriented Software Architecture on Patterns and Pattern Languages,” John Wiley & Sons, England, Vol. 5, 2007, pp. 67-74. [16] M. Svahnberg, J. Van Gurp and J. Bosch, “A Taxonomy of Variability Realization Techniques,” ACM Software- Practice & Experience, Vol. 35, No. 8, July 2005, pp. 705-754. [17] R. Elmasri and S. B. Navathe, “Fu ndamentals of Database Systems,” 5th Edito n , Addison-Wesley, Reading, 2007, pp. 232-234. [18] I. Dubielewicz, B. Hnatkowska, Z. Huzar and L. Tuz- inkiewicz, “Feasibility Analysis of MDA-Based Database Design,” IEEE International Conference on Dependabil- ity of Computer Systems, Washington, May 2006, pp. 19-26. doi:10.1109/DEPCOS-RELCOMEX.2006.26 [19] M. Glinz, “On Non-Functional Requirements,” Proceed- ings of the 15th IEEE International Requirements Engi- neering Conference, Delhi, Octobe r 2007, pp . 21-26. [20] Wikipedia, “X Window System (Computer Science),” 2008. http://en.wikipedia.org/wiki/X_window_system. [21] L. Bass, P. Clements and R. Kazman, “Software Archi- tecture in Practice,” 2nd Edition. Addison-Wesley, Mas- sachusetts, 2003, pp. 75-88. [22] L. Zhu and I. Gorton, “UML Profiles for Design Deci- sions and Nonfunctional Requirements,” IEEE Second Workshop on Sharing and Resuing Architectural Knowl- edge, Minneapolis, May 2007, pp. 49- 54. [23] F. J. V. Linden, K. Schmid and E. Rommes, “Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering,” Springer, Berlin Heidelberg, 2007, pp. 43-45. [24] C. Alexander, S. Ishikawa, M. Silverstein, M. Jacobson, I. Fiksdahl-King and S. Angel, “A Pattern Language,” Ox- ford University Pr ess, New York, 1977. [25] Wikipedia, “Design Patterns (Computer Science),” 2008. http://en.wikipedia.org/wiki/Design_pattern_%28comput er_science%29 [26] E. Gamma, R. Helm, R. Johnson and J. Vlissides, “De- sign Patterns: Elements of Reusable Object-Oriented Software, ” Addison-Wesley, New York, 1995, pp. 79- 315. [27] M. Yacoub, H. Xue and H. Ammar, “Automating the
 End to End Development Engineering Copyright © 2011 SciRes. JSEA Developmen t o f Pat tern -Oriented Designs for Application Specific Software Systems,” Proceedings IEEE the 3rd Symposium on Application-Specific Systems and Software Engineering Technology, Washington DC, March 2000, pp. 163-170. [28] S. M. Yacoub, “Pattern-Oriented Analysis and Design (POAD): A Methodology for Software Development,” PhD Thesi s, West Virginia University, Morgantown, De- cembe r 1999. [29] S. J. Mellor, K. Scott, A. Uhl and D. Weise, “MDA Dis- tilled: Principles of Model-Driven Architecture,” Addison Wesley, New York, 2004. [30] “OMG MOF XMI Final Adopted Specification,” July 2010. http://www.omg.org/technology/documents/formal/xmi.ht m. [31] P. Konemann, “The Gap between Design Decisions and Model Transformations,” September 2009. http://www2.imm.dtu.dk/.../the_gap_between_design_dec isions_and_model_transformations.pdf [32] D. Steinberg, F. Budinsky, M. Paternostro and E. Merks, “EMF: Eclipse Modeling Framework,” 2nd Edition, Ad- dison-Wesley Professional, Singapore, December 26 2008. [33] “IKV++ technologies ag.MediniQVT,” 2007. http://projects.ikv.de/qvt/ [34] “W3C OWL Web Ontology Language,” August 2010. http://www.w3.org/TR/owl-ref/ [35] “OMG (2007b) OMG Unified Modeling Language (OMG UML), Superstructure, V2.1.2,” OMG Document Number: Formal/2007-11-02. [36] W. R. Sebesta “Concepts of Programming Languages,” 5th Edition, Addison Wesley, Boston, 2005. [37] “Microsoft Mess agi ng Queue,” August 2010. http://www.microsoft.com/windowsserver2008/en/us/ technologies.aspx. [38] “Advanced Message Queuing Protocol (AMQP),” 2010. http://www.amqp.org/confluence/display/AMQP/Advanc ed+Message+Queuing+Protocol [39] “Java Messaging System Standard,” 2010. http://java.sun.com/products/jms/ [40] S. Vinoski, “Advanced Message Queuing Protocol,” IEEE Internet Computing, Vol. 10, N o. 6, 2006, pp. 87-89. doi:10.1109/MIC.2006.116
|