You are on page 1of 49

Model Driven Product Line Engineering Development For Mobile Context Aware Applications

Presented By: Mr. Ra'Fat A. AL-MsieDeeN

Supervisor:
2/7/2012

Dr. Abdelhak-Djamel Seriai

Model Driven Engineering:

 Model Driven Engineering describes software development approaches that are concerned with reducing the abstraction gap between the problem domain and the software implementation domain. This is achieved through the use of technologies that support systematic transformation of problem-level abstractions to software implementations [1].

2/7/2012

Ra'fat A. AL-Msie'Deen

Transformations:

Model Transformations define Relationships between sets of Models. Transformation is a relationship defined between a Source and a Target Metamodel. When this Transformation is defined, a transformation engine will execute the definition thus creating a model that conforms to the target metamodel, from a model that conforms to the source metamodel [1].
2/7/2012 Ra'fat A. AL-Msie'Deen 3

Basic Concepts of Model Transformations [1]:

2/7/2012

Ra'fat A. AL-Msie'Deen

Software Product Line:


Products

 The Software Product Line [SPL] is a Set of Software


Features

Intensive Systems sharing a common, managed set of

Domain

features that satisfy the specific needs of a particular market segment or mission. A defining characteristic of product lines is that products are developed from a common set of core assets in a prescribed way [3].
2/7/2012 Core Assets Ra'fat A. AL-Msie'Deen 5 Production Plan

SPL Motivations:
Reduction of Development Costs.  Enhancement of Quality. Reduction of Time to Market.  Reduction of Maintenance Effort. Coping with Evolution.  Coping with Complexity. Improving Cost Estimation [3].

2/7/2012

Ra'fat A. AL-Msie'Deen

Software Product Line Engineering:


 The software product line Engineering traditionally involves two separate processes; Domain Engineering and Application Engineering. Domain Engineering: The goal of domain engineering process is to define the Scope, Commonality and Variability of the SPL. Application Engineering: This process is responsible for deriving product line application from the established platform in the domain engineering [1].
2/7/2012 Ra'fat A. AL-Msie'Deen 7

Model Driven Product Line Engineering:


 Model Driven Product Line Engineering is a paradigm for Software Development that combines Model Driven Engineering and Software Product Line Engineering to build families of related models that are then transformed into the desired products. Consequently, Metamodels and Transformations become main core assets. Moreover, Models become a central in the development process and have to cope with Variability [1].
2/7/2012 Ra'fat A. AL-Msie'Deen 8

MDPLE Motivation:
 SPLE reduces the development cost by leveraging on the commonalities of a family of related products, thus increasing reuse. In this setting, it is essential to maintain a relationship between requirements, architecture, design and implementation core assets, as they have to be reusable and evolvable over time. MDE can be used to tackle this problem, being transformations the means to trace those relationships from one model to another. The combination of both results in MDPLE [1].
2/7/2012 Ra'fat A. AL-Msie'Deen 9

Introduction to Android:

Android is a software stack for mobile devices that includes an operating system, middleware and key applications [5].

The first truly open and comprehensive platform for mobile devices, all of the software to run a mobile phone but without the proprietary obstacles that have hindered mobile innovation [6].

2/7/2012

Ra'fat A. AL-Msie'Deen

10

Android Application Components:


Four Basic Components [5]:
Components Activity Service Broadcast Receiver Content Provider Intents Description UI component typically corresponding to one screen. Background process without UI. Component that responds to broadcast Intents / announcements. Component that enables applications to share data. A system messages which allow the application to request functionality from other services or activities.
Ra'fat A. AL-Msie'Deen 11

2/7/2012

Mobile Computing:
 The Mobile computing is the use of mobile devices and notso-mobile devices, taking advantage of wireless means, to create a seamless computing environment enabling access of information, computation and co-operation [7].

2/7/2012

Ra'fat A. AL-Msie'Deen

12

Contextual Services:
 Contextual Mobile Services have a particular behavior. They are available into a well known place when users are outside of this place; the services are not presented and can not be used. when users enter into the place, the infrastructure must show them the services which can be used on their terminals. Finally, when users move outside of the network cover zone, the services can not be used [8].

2/7/2012

Ra'fat A. AL-Msie'Deen

13

Contextual Services [Cont]:

Figure 1_1: The Life Cycle Of Ubiquitous Contextual Services [8].

Context:

 Context is any information that can be used to characterize the situation of an entity. An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves [9].

2/7/2012

Ra'fat A. AL-Msie'Deen

15

Context Aware:

 A system is context aware if it uses context to provide relevant information and / or services to the user, where relevancy depends on the users task [9].

2/7/2012

Ra'fat A. AL-Msie'Deen

16

Context Aware [Cont]:


The Following Figure Illustrates The Context Aware [10]:

2/7/2012

Ra'fat A. AL-Msie'Deen

17

Mobile PLA Design Rules:


Maximize Variant Selection Result Caching; if a product-line is designed carefully, a provisioning server can cache the results of variant selection requests to greatly improve the performance of provisioning.

Limit the Situations Where Resource Constraints Must be Considered; resource constraint also can limit what the server can cache and are the most time consuming component of variant selection [14].

2/7/2012

Ra'fat A. AL-Msie'Deen

18

Mobile PLA Design Rules:


Filter out Non-Essential Resource Consumptive Components; due to the increased cost of finding a variant for small devices where resources are more limited, to decrease the difficulty of finding a deployment on small devices, PLA developers should provide non local functional constraints to immediately filter out unessential resource consumptive components [14].

2/7/2012

Ra'fat A. AL-Msie'Deen

19

Mobile PLA Design Rules:


Exploit Non-Functional Requirements; non-functional requirements can be used to further increase the performance of product-line.

Prune using low-granularity requirements.

Create Service Classes; another effective mechanism for pruning the solution space with non functional requirements is to provide various classes of service that divide the components into broad categories [14].
2/7/2012 Ra'fat A. AL-Msie'Deen 20

Variability In Software Product Line:


Variability Definition: The ability or the tendency to change [20].

 What is the Exact Goal of Variability in Software Product Line?  To maximize the return on investment for building and maintaining products over a specified period of time or number of products [21]. The Variability is a key for PL development [23].

2/7/2012

Ra'fat A. AL-Msie'Deen

21

Variability In Software Product Line:

Variability Classification [22]:

 Variability in Time: different versions of an artefact, valid at different times.  Variability in Space: existence of an artefact in different shapes at the same time.  External Variability: is visible to the customers.  Internal Variability: is hidden from customers [artefacts domain].  Feature, Hardware Platform, Performances and Attributes Variability.

2/7/2012

Ra'fat A. AL-Msie'Deen

22

Variability In Software Product Line:

Using Features To Model Variability [22]:

 The Central of the SPL paradigm is Modelling and Management of variability, the commonalities and differences in the applications in terms of requirements, architecture, components and test artefacts.  The popular way to model variability is through Feature Diagrams (FD).

2/7/2012

Ra'fat A. AL-Msie'Deen

23

Variability In Software Product Line:

Using Features To Model Variability:

 Feature Definition:  The system property relevant to some stakeholder used to capture commonalities or discriminate among systems in a family / The Quality or Characteristic of a Systems [24].

2/7/2012

Ra'fat A. AL-Msie'Deen

24

Variability In Software Product Line:

Using Features To Model Variability:

Feature Model:

 Feature Model consists of a Feature Diagram and other associated information: Constraints and Dependency Rules [25].

2/7/2012

Ra'fat A. AL-Msie'Deen

25

Variability In Software Product Line:


Feature Diagram:  Feature diagrams provide a graphical tree-like notation depicting the hierarchical organization of high level product functionalities represented as features.  The root of the tree refers to the complete system and is progressively decomposed into more refined features (tree nodes).  Presence or absence of a feature from a product is modelled using mandatory or optional features.  Features can be organized into feature groups.  Boolean operators (XOR, OR, ..etc) are used to select one, several or all the features from a feature group [25].

Variability In Software Product Line:


The Major Disadvantage of The FDs are:  The lack of explicit representation of variability points and variants.  FD only provide a hierarchical structuring of high level product functionalities.  FDs are limited in the quantitative and qualitative information that can express.  FDs only allow the SPL engineer to make a simple configuration of products through a feature selection.  FDs they tell very little about how the features are combined into an actual product.

Variability In Software Product Line:


Feature Diagram Example: Mandatory Vending Machine Optional Variation point: An area of a software system affected by variability.

Payment Option Variant: The alternatives defined for each particular VP.

Payment Option

Payment Option

2/7/2012

Ra'fat A. AL-Msie'Deen

28

Classification of FDs:

 Feature Oriented Domain Analysis (FODA) Method: Its main purpose was to capture commonalities and variabilities at requirements level [25].  Feature Oriented Reuse (FORM) Method: It proposes a four-layer decomposition structure, corresponding to different stakeholder viewpoints [26 ,20].  FODA and the Reuse-Driven Software Engineering Business (RSEB) method: The novelties proposed are introduction of UML-like notational constructs for creating FDs [27, 20].  Product Line Use Case modelling for System and Software engineering (PLUSS) Method: based on FeatuRSEB and combines FD and use cases [28, 20].

2/7/2012

Ra'fat A. AL-Msie'Deen

29

Classification And Presentation of Variability Modelling Methods:

 SPL are usually characterized by two distinct concepts [20]: a set of core assets or reusable components used for the development of new products (Assets Model); a means to represent the commonality and variability between product line members (Variability Model).

2/7/2012

Ra'fat A. AL-Msie'Deen

30

This Table briefly describes what happens at meta-model and model level for the identified classes and sub-classes of variability modelling techniques. mix of variability and product line assets concepts into a unique model.

Techniques in this category have separate representations for the variability and for the assets model. Elements from the variability model relate to asset model elements by referencing or by other techniques. clear separation of concerns. This separation applies at both meta-model and model level.
2/7/2012 Ra'fat A. AL-Msie'Deen 31

Annotating UML with stereotypes synthesis:

2/7/2012

Ra'fat A. AL-Msie'Deen

32

Annotating UML with stereotypes - supported diagrams [20]:

2/7/2012

Ra'fat A. AL-Msie'Deen

33

Comparison of Orthogonal Variability Modelling Approaches: Pohl et al. and Metzger et al.

2/7/2012

Ra'fat A. AL-Msie'Deen

34

OVM Method - Synthesis of Concepts:

2/7/2012

Ra'fat A. AL-Msie'Deen

35

ConIPF Variability Modeling Framework (COVAMOF):

Summary of COVAMOF Concepts [20].


2/7/2012 Ra'fat A. AL-Msie'Deen 36

Decision model based approaches: DOLPER Metamodel:

2/7/2012

Ra'fat A. AL-Msie'Deen

37

Combine a Common Variability Language with Different Base Languages:

Steps for Applying CVL [20].

2/7/2012

Ra'fat A. AL-Msie'Deen

38

Evaluation of Variability Modelling Methods:

Degree of support offered for evaluation criteria: no support ? weak support. + medium/satisfactory support. ++ good support. +++ high/very good support.

2/7/2012

Ra'fat A. AL-Msie'Deen

39

Challenges of Automated Variant Selection For Mobile Devices:

There is no clear architecture for automatically discovering and mapping device capabilities to product-line models. There is no documented architecture for handling incomplete context information and unknown device types. There is no method for incorporating resource constraints in variant selection. It is unclear if automated variant selection can be performed fast enough to support on demand software reuse. There are no documented design rules for facilitating variant selection automation [14].
Ra'fat A. AL-Msie'Deen 40

Research Challenges for Mobile Application Software Engineering:

Creating universal user interface: each mobile platform has a unique guide
to address developer user interface requirements. A significant consideration for mobile UI development relates to screen size and resolution [14].

Enabling software reuse across mobile platforms: mobile applications


currently span several different operating system platforms, different hardware makers, delivery methods, and computing platforms [14].

2/7/2012

Ra'fat A. AL-Msie'Deen

41

Research Challenges for Mobile Application Software Engineering:

Designing context-aware mobile application; the context-awareness is a first class feature in mobile application software engineering [14].

Balancing agility and uncertainty in requirements.

2/7/2012

Ra'fat A. AL-Msie'Deen

42

Research Directions for Mobile Application Software Engineering:

 User Interfaces for the Differently- Abled.  Mobile application software product-lines.  Context-Aware Applications.  Self-adaptive requirements [15].

2/7/2012

Ra'fat A. AL-Msie'Deen

43

The Main Challenges For Development a Mobile Software Platform:

Definition of appropriate abstraction for each development layer. Definition of synthesis processes capable of transforming the semantics of the end-user application into cost-effective runtime code. Support for application testing and fault-tolerance mechanisms. Capture some hardware-related issues that have deep impact on the software development process. Support for system evolution in several aspects; execution platform, requirements, programming language, and so on [15].

2/7/2012

Ra'fat A. AL-Msie'Deen

44

The Main Challenges For Development a Mobile Software Platform:

A research plan towards such a powerful development platform includes the following topics [15]: Quality metrics applied to embedded software. On-line and off-line monitoring strategies for verification and optimization. Model-driven specification and management of platforms. Co-synthesis of fault-tolerant systems, combining hardware and software techniques. Definition of a formal basis for the different models to enable verification and transformation processes.

Mobile Application Development Survey:


Mobile application developers will most likely support both iOS and Android, with BlackBerry and WP7 getting significantly less attention from developers [16]. The majority of companies are measuring mobile application success by the number of downloads. The most challenging in the Mobile Application process are the marketing and distribution across multiple platforms [17].

2/7/2012

Ra'fat A. AL-Msie'Deen

46

References:
[1] M. A. Ses, "Model Driven Product Line Engineering: Core Asset and Process Implications.," 2011. [2] R. France and B. Rumpe, "Model-Driven Development of Complex Software: A Research Roadmap.," 2007. [3] K. Pohl, G. Bckle, and F. v. d. Linden, "Software Product Line Engineering Foundations, Principles, and Techniques.," 2005. [4] C. Cares, X. Franch, and E. Mayol, "Perspectives about Paradigms in Software Engineering.," 2006. [5] R. Meier, "Professional Android Application Development.," 2009. [6] Google, http://googleblog.blogspot.com/2007/11/wheres-my-gphone.html ,2010. [7] B. N. Moti, "A Component-Based Software System with Functionality Adaptation for Mobile Computing,". 2002. [8] A. Flissi, C. Gransart, and P. Merle, "A Component-based Software Infrastructure for Ubiquitous Computing". 2005. [9] A. K. Dey and G. D. Abowd, "Towards a Better Understanding of Context and Context-Awareness,". 1999. [10] G. Chen and D. Kotz, "A Survey of Context-Aware Mobile Computing Research:,". 2005. [11] J. White, D. Schmidt, E. Wuchner, and A. Nechypurenko, "Automatically Composing Reusable Software Components for Mobile Devices,". 2007. [12] B. N. Moti, "A Component-Based Software System with Functionality Adaptation for Mobile Computing". The University of Hong Kong. 2002. [13] J. White, D. Schmidt, E. Wuchner, and A. Nechypurenko, "Automatically Composing Reusable Software Components for Mobile Devices". 2007. [14] J. Dehlinger and J. Dixon, "Mobile Application Software Engineering: Challenges and Research Directions". 2009. [15] . Cota, L. Carro, L. Duarte, L. Ribeiro, and F. Wagner, "XModel: an Unified Effort Towards the Development of High-Quality Mobile Applications". 2011. [16] Urban Airship, "Urban Airship 2010 Mobile Application Developer Survey". 2010. [17] ComboApp, "Mobile Application Development Survey". 2011. [18] S. Roychoudhury and V. Kulkarni, "Mobile-Enabling Enterprise Business Applications using Model-Driven Engineering Techniques". 2009. [19] A. I. Wasserman, "Software Engineering Issues for Mobile Application Development". 2010. 2/7/2012 Ra'fat A. AL-Msie'Deen 47

References:
[20] P. Istoan, J. Klein, G. Perrouin, and J.-M. Jezequel, Survey and Classification of Software Product Line Variability Modelling Techniques.," 2011. [21] F. Bachmann and P. Clements, Variability in software product lines, Software Engineering Institute, Pittsburgh, USA, Technical Report CMU/SEI-2005-TR-012, 2005. [22] K. Pohl, G. Bockle, and F. J. van der Linden, Software Product Line Engineering: Foundations, Principles and Techniques, Secaucus, NJ, USA: Springer-Verlag New York, Inc., 2005. [23] R. Capilla, A. Snchez, and J. C. Dueas, "An Analysis of Variability Modeling and Management Tools for Product Line Development," 2006. [24] K. Czarnecki and U. W. Eisenecker, Generative programming: methods, tools, and applications. New York, NY, USA: ACM Press/Addison-Wesley Publishing Co., 2000. [25] K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Peterson, Feature-oriented domain analysis (FODA) feasibility study, Carnegie-Mellon University Software Engineering Institute, Tech. Rep., November 1990. [26] K. C. Kang, S. Kim, J. Lee, K. Kim, E. Shin, and M. Huh, Form: A feature-oriented reuse method with domain-specific reference architectures, Ann. Softw. Eng., vol. 5, pp. 143168, 1998. [27] M. L. Griss, J. Favaro, and M. d. Alessandro, Integrating feature modeling with the rseb, in ICSR 98: Proceedings of the 5th International Conference on Software Reuse. Washington, DC, USA: IEEE Computer Society, 1998, p. 76. [28] M. Eriksson, J. B orstler, and K. Borg, The pluss approach - domain modeling with features, use cases and use case realizations, in SPLC, 2005, pp. 3344.

2/7/2012

Ra'fat A. AL-Msie'Deen

48

2/7/2012

Ra'fat A. AL-Msie'Deen

49

You might also like