Professional Documents
Culture Documents
Supervisor:
2/7/2012
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
2/7/2012
Ra'fat A. AL-Msie'Deen
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
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
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
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
2/7/2012
Ra'fat A. AL-Msie'Deen
17
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
2/7/2012
Ra'fat A. AL-Msie'Deen
19
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
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 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
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
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
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
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
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
2/7/2012
Ra'fat A. AL-Msie'Deen
32
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
2/7/2012
Ra'fat A. AL-Msie'Deen
35
2/7/2012
Ra'fat A. AL-Msie'Deen
37
2/7/2012
Ra'fat A. AL-Msie'Deen
38
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
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
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].
2/7/2012
Ra'fat A. AL-Msie'Deen
41
Designing context-aware mobile application; the context-awareness is a first class feature in mobile application software engineering [14].
2/7/2012
Ra'fat A. AL-Msie'Deen
42
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
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
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.
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