Runtime Variability in Domain Engineering for Post-Deployment of
User-Centric Software Functional CompletionSEDES
April 2004
[email protected] de I&D
I2S Informática – Sistemas e Serviços, S.A.Trv. Ribeiro de Sousa, 40, 4250-409 Porto
Alexandre Manuel Tavares Braganç[email protected]
Departamento de Engenharia InformáticaInstituto Superior de Engenharia do Porto / Instituto Politécnico do Porto
Rua Dr. António Bernardino de Almeida, 431, 4200-072 Porto
Thesis supervisor:Ricardo Jorge Silvério de Magalhães Machado
[email protected] de Sistemas de Informação / Escola de Engenharia / Universidade do Minho
Campus de Azurem, 4800-058 Guimarães
Contents
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 2
• Introduction
• Context and Problem
• Related Work
• Proposed Approach
• Future Work and Conclusions
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 3
• Background research field is domain engineering
• Researcher is integrated in enterprise organization.
• Action research [Baskerville 2001].• I2S Informática – Sistemas e Serviços, S.A.
Introduction
Context
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 4
Problem space Solution space
Application Engineering
There is almost no reuse. Each time we need to start from fresh...
Context
Domain spaceDomain space
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 5
Problem space Solution space
Domain Engineering
Commonalities enable reuse.
Variability enable differentiation of applications in a domain.
Context
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 6
It is then necessary to identify, represent and implement variability.
Variability in software is achieved fundamentally by pre-deployment techniques. [Svahnberg and Bosch 2000]
Context: Variability Implementation
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 7
• Conditional execution of code (e.g. if … then …);
• Inheritance;• Parameterization (e.g. C++ templates);• Runtime loading of variation implementation(e.g. ODBC driver);
• Component connection based on interfaces(e.g. COM and XPCOM);
• Reflection in programming languages (e.g. Java). [Gurp 2003]
Context: The Problem
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 8
Some vertical domains are very dynamic,e.g., the insurance domain.
For instance in insurance companies:- the need to market new products is high and time-to-market is normally very low;- insurance products are very complex; each new product has new software requirements.
10 Companies * 20 Products = 200 Variations!
Related Work: Variability Representation
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 9
Feature diagram is a major tool used to represent variability [Kang et al. 1998; Griss et al. 1998; Deursen et al. 2002; Gurp 2003].
“A feature is a logical unit of behavior that is specified by a set of functional and quality requirements” [Bosch 2000].
Related Work: Variability Representation
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 10
Car
Transmission Horsepower Air conditioning
Manual Automatic
Mandatory Features Optional
Feature
Alternative Features
Composition Rule:Air Conditioning requires Horsepower > 100
Rationale:Manual more fuel efficient
Example of feature diagram [Kang et al. 1990]
Related Work: Variability Implementation
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 11
One of the most interesting variability technique is layer component composition. One example of such technique is GenVoca[Batory and O’Malley 1992].
A component can be easily expressed, e.g.,
bag[concurrent[sizeof[unbounded[managed[heap]]]]]
“A feature maps well to a component layer”
Related Work: Domain-Specific Languages
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 12
A domain-specific language regards a programming language with syntax and semantics specialized for a particular application domain or type of problem [Hudak 1998].
Specialization
Abstraction
Horizontal
VerticalScope
• DJ (horizontal)[Lopes 1997]
• RISLA (vertical)[Deursen et al. 1996]
Proposed Approach
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 13
Thesis statement
The adoption of domain-specific languages (with runtime framework) in domain software engineering can significantly improve product line variability and flexibility by (a) enabling an effective technique for implementing runtime variability; (b) enabling the possibility of a post-deployment kind of software engineering; and (c) enabling variability in a technically heterogeneous product line.
Proposed Approach
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 14
DomainReference Architectures
Application Architecture
Component Composition
Repository of Component Implementations
(1) Selecting existing components to implement a feature(2) Specifying/programming component implementations
Application Domain Specialist: Domain expert playing the role of post-deployment application specialist
Proposed Approach
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 15
Our approach to the runtime variability aspects:
(1) how to combine features at runtime, i.e., how do Application Domain Specialists select features at runtime
(static runtime variability).- Our approach will be based on pre-deployment techniques like GenVoca component composition applied at runtime.
(2) how to enable behavior specification holes in the applications for the Application Domain Specialists to fill at runtime
(dynamic runtime variability). - Our approach will be based on runtime component implementation based on domain-specific languages.
Future Work and Conclusions
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 16
First Year State-of-the-art
Static Runtime Variability
Domain Analysis and Design
Dynamic Runtime Variability
WorkSynthesis
3. Domain-Specific Languages
2. Domain Engineering Methodologies
4. Runtime Variability Support in Domain
Methodologies
6. Conclusion and Future Work
1. Introduction
Runtime Variability
Specification
5. Runtime Variability Specification and
Realization
Activities Ph.D. Thesis Chapters Work Publication
First YearPh.D. Report2003
2004
2005
Second YearPh.D. Report
Runtime Variability
Techniques
Runtime Features in
Methodologies
Runtime Variability
Realization
Future Work and Conclusions
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 17
Expected contributions to the research field:
• Methodology contribution;
• Notation contribution;
• Technology contribution.
SEDESApril 2004
[email protected] de I&D
I2S Informática – Sistemas e Serviços, S.A.Trv. Ribeiro de Sousa, 40, 4250-409 Porto
Alexandre Manuel Tavares Braganç[email protected]
Departamento de Engenharia InformáticaInstituto Superior de Engenharia do Porto / Instituto Politécnico do Porto
Rua Dr. António Bernardino de Almeida, 431, 4200-072 Porto
Further information regarding this work can be found at http://www.dei.isep.ipp.pt/~alex
Runtime Variability in Domain Engineering for Post-Deployment of
User-Centric Software Functional Completion
References
Run-Time Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion 19
[Batory and O’Malley 1992] D. Batory and S. O’Malley, The Design and Implementation of Hierarchical Software Systems with Reusable Components, ACM Transactions on Software Engineering and Methodology, vol. 1, no. 4, pp. 355-398, October 1992.[Baskerville 2001] Richard Baskerville, Conducting Action Research: High Risk and High Rewardin Theory and Practice, Qualitative Research in Information Systems, pp. 192-218, Idea Group Publishing, 2001.[Bosch 2000] Jan Bosch, Design and Use of Software Architectures Adopting and Evolving a Product-Line Approach, Addison-Wesley, 2000.[Czarnecki 1998] Krzysztof Czarnecki, Generative Programming Principles and Techniques of Software Engineering Based on Automated Configuration and Fragment-Based Component Models, Ph.D. Thesis, Department of Computer Science and Automation, Technical University of Ilmenau, 1998.[Deursen et al. 1996] A. van Deursen, J. Heering and P. Klint, Language Prototyping: An Algebraic Specification Approach, AMAST Series in Computing, vol. 5, World Scientific Publishing Co., 1996.[Deursen et al. 2002] Arie van Deursen, Merijn de Jonge and Tobias Kuipers, Feature-Based Product Line Instantiation using source-level packages, Proceedings of the Second Software Product Line Conference (SPLC2), Lecture Notes in Computer Science, vol. 2379, pp. 217-234, Springer-Verlag, 2002.[Gurp 2003] Jilles van Gurp, On the Design & Preservation of Software Systems, Ph.D. Thesis, Computer Science Department, University of Groningen, 2003.[Griss et al. 1998] M. L. Griss, J. Favaro, and M. d’Alessandro, Integrating Feature Modeling with the RSEB, Proceedings of the Fifth International Conference on Software Reuse (Victoria, Canada, June 1998), IEEE Computer Society Press, pp. 76-85, 1998.[Hudak 1998] P. Hudak, Modular Domain Specific Languages and Tools, Proceedings of the Fifth International Conference on Software Reuse, IEEE Computer Society Press, pp. 134-142, Victoria, Canada, June 1998.[Kang et al. 1990] Kyo C. Kang, Sholom G. Cohen, James A. Hess, William, E. Novak and A. Spencer Peterson, Feature-Oriented Domain Analysis (FODA) Feasibility Study Technical Report, CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, November 1990.[Lopes 1997] Cristina Lopes, D: A language Framework For Distributed Programming, Ph.D. Thesis, College of Computer Science, Northeastern University, 1997.[Svahnberg and Bosch 2000] Mikael Svahnberg and Jan Bosch, Issues Concerning Variability in Software Product Line, Proceedings of the Third International Workshop on Software Architectures for Product Families, Springer Verlag, 2000.
Top Related