user-centric software functional completion post ... · runtime variability in domain engineering...

19
Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004 [email protected] Departamento de I&D I2S Informática – Sistemas e Serviços, S.A. Trv. Ribeiro de Sousa, 40, 4250-409 Porto Alexandre Manuel Tavares Bragança [email protected] Departamento de Engenharia Informática Instituto 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] Departamento de Sistemas de Informação / Escola de Engenharia / Universidade do Minho Campus de Azurem, 4800-058 Guimarães

Upload: others

Post on 15-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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

Page 2: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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

Page 3: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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

Page 4: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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...

Page 5: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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.

Page 6: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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]

Page 7: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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]

Page 8: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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!

Page 9: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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].

Page 10: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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]

Page 11: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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”

Page 12: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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]

Page 13: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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.

Page 14: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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

Page 15: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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.

Page 16: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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

Page 17: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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.

Page 18: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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

Page 19: User-Centric Software Functional Completion Post ... · Runtime Variability in Domain Engineering for Post-Deployment of User-Centric Software Functional Completion SEDES April 2004

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.