kutulu: a domain-specific language for feature-driven product derivation

29
KUTULU: A DOMAIN-SPECIFIC LANGUAGE FOR FEATURE-DRIVEN PRODUCT DERIVATION Orçun Dayıbaş Department of Software Engineering SST-MD Aselsan, Inc. COMPSAC July, 2012 / İzmir, Turkey

Upload: orcun-dayibas

Post on 29-Nov-2014

383 views

Category:

Technology


3 download

DESCRIPTION

This paper describes how to enhance domain design and variation management processes of Software Product Line Engineering (SPLE) with a domain-specific language (DSL), namely "Kutulu". It also introduces novel modeling tools and dependency injection-based realization approach that are well-suited for product derivation in SPL. Our DSL definition, developed tools and their position in the product line context are put forth in this paper.

TRANSCRIPT

Page 1: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

KUTULU: A DOMAIN-SPECIFIC LANGUAGE FOR FEATURE-DRIVEN PRODUCT DERIVATION

Orçun Dayıbaş

Department of Software EngineeringSST-MD Aselsan, Inc.

COMPSAC July, 2012 / İzmir, Turkey

Page 2: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Outline• Introduction• Software Product Line (SPL)• Variability Management• Dependency Injection in DSPL• Kutulu DSL for Modeling• Case Study• Conclusion

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 2 / 23

Page 3: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Introduction• Reuse is still an active area of research.• Three major dimensions [1]

• Individual Factors• Not-invented-here syndrome

• Organizational Factors• Commitment to Reuse

• Technical Factors• Lack of standards• Integration Issues• Consistency, correctness, reliability

IndividualIndividual

OrganizationalOrganizational

TechnicaTechnicall

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 3 / 23

Page 4: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Overview of SPL• What is Software Product Line?

• A software product line is a set of software-intensive systems sharing a common, managed set of futures that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way [2].

• Product lines• Paradigm shift from one of a kind software development

to reusable software architectures. • Pizza analogy

• Pizza base + different toppings

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 4 / 23

Page 5: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Overview of SPL

Development for reuse

Development with reuse

Management of the product

(diagram is adopted from [3])

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 5 / 23

Page 6: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Variability Management• Product line variability describes the variations (differences) between the systems that belong to a SPL in terms of properties and qualities [4].

• Variability exists throughout the whole process of the SPL [5]:• In domain engineering process, variability is identified,

designed and implemented for reuse.• In application engineering process, the variability in

product line is tailored and configured during developing a member of family products.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 6 / 23

Page 7: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Dynamic SPL• Dynamic Software Product Line (DSPL) extends the SPL

with dynamic features.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 7 / 23

Page 8: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Dependency Injection• Dependency Injection (DI) is a style of object configuration

in which an object’s fields are set by an external entity.

Naive style DI style

(diagrams are taken from [6])

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 8 / 23

Page 9: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Dependency Injection and DSPL

DSPL Feature How DI contributes to enable this?

Dynamic variability; configuration and binding at runtime

Assembler can configure and bind the variation points at runtime.

Changes binding several times during its lifetime

Assembler can have an external method which binds variation points and this method can be invoked several times.

Deals with unexpected changes (in some limited way)

In the exceptional cases, assembler can bind the variation point with pre-defined variant.

Deals with changes by users, such as functional or quality requirements

Configuration of the assembler can be visible to user (for instance options screen in GUI) hence; binding scheme can be changed by users.

Autonomic or self-adaptive properties Status information (situation) can be input for the assembler. Therefore it analyzes this input and decides the bindings.Automatic decision making

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 9 / 23

Page 10: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Kutulu DSL for Modeling• Modeling architectural artefacts by defining traceability links to the concerning requirements is not an easy task.

• Supporting modeling process is a wise choice.• Kutulu is a visual DSL to support domain and application design processes.

• The main objective of the Kutulu DSL is to be able to express features and components of the SPL.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 10 / 23

Page 11: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Kutulu DSL for Modeling

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 11 / 23

Page 12: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Meta-models of Kutulu DSL• Domain meta-model of the DSL

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 12 / 23

Page 13: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Meta-models of Kutulu DSL• Feature-binding meta-model of the DSL

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 13 / 23

Page 14: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Kutulu Toolchain• Editors (Domain & Feature-binding)

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 14 / 23

Page 15: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Kutulu Toolchain• Generator (Spring.NET)

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 15 / 23

Page 16: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Case Study• Constraints

• MVC and Factory design patterns are used in reference architecture.

• Two display options (PC & UMPC) must be supported by SPL as variability.

• Dynamic run-time binding for this display variability.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 16 / 23

Page 17: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Case Study• Step 1: Domain engineer defines domain model in the

Kutulu DM editor.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 17 / 23

Page 18: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Case Study• Step 1: Domain engineer, defines the features in the

Kutulu FBM Editor.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 18 / 23

Page 19: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Case Study• Step 2: Application engineer activates features according

to the specific product

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 19 / 23

Page 20: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Case Study• Step 3: Application engineer generates required

configuration file by using the Kutulu Generator and deploys the product.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 20 / 23

Page 21: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Case StudyMVC & FactoryImplementation

PC & UMPCDisp.Features

Kutulu DSL toSpring.NET Conf.

Spring.NET

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 21 / 23

Page 22: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Conclusion• SPL is one of the most promising approaches in software reuse area.

• DI is very appropriate style to implement a Dynamic SPL infrastructure.

• Domain and feature-component binding models can be used to expose the dependencies.

• DSL-based declerative way to configure the DI assembler is also wise choice.

• Kutulu DSL and its CASE tools are only a proof of concept.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 22 / 23

Page 23: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Current Work• Semantics of feature modeling

• Feature attributes

• Software Product Lines Engineering in the domain of Naval Defence Systems• Modeling variability of a SPL in the context of naval defence

applications• Runtime variability management

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 23 / 23

Page 24: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Thank you...• Questions?

odayibas

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 24 / 23

Page 25: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

References[1] V. Sugumaran, "Overview of Software Reuse and Software Product

Line", 2000.[2] P. Clements, L. Northrop, “Software Product Lines: Practices and

Patterns”, 2001.[3] K. Pohl, G. Böckle, F. Van Der Linden, “Software Product Line

Engineering”, 2005.[4] A. Metzger et al., “Disambiguating the documentation of variability in

software product lines: A separation of concerns, formalization and automated analysis”, 2007.

[5] Jianhong Ma, Runhua Tan, "Handling Variability in Mass Customization of Software Family", 2006.

[6] M. Fowler, “Inversion of Control Containers and the Dependency Injection pattern”, 2004.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 25 / 23

Page 26: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

What is NOT SPL?• Opportunistic small-grained reuse.

• Reuse is comprehensive and planned.• Single-sytem development with reuse.

• SPL uses assets that were designed explicitly for reuse.• SPL is treated as a whole not as multiple products.

• Releases & versions of single product.• Product evolves with its SPL together.

• Just a Component-based development.• Product is assembled in a prescribed way.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 26 / 23

Page 27: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Overview of SPL • The product line is a product suite sharing a common,

managed set of features that satisfy specific needs of a selected domain.

Domain

Architecture

Components

pertain to

share an

are built from

is satisfied by

guides development ofProducts

(diagram is taken from [1])

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 27 / 23

Page 28: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

Advantages of SPL• F. Van der Linden et al. stated below results from several case studies about SPL.• Reduction to less than 50% time to market.• Reduction of code size by more than 70%.• Significantly reduced cost of quality.• Product defect density reduced to 50% of original rate• Reduction of calibration and maintenance efforts (up to

20%).• Reduction of resource consumption (20–30%).• Common look-and-feel.

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 28 / 23

Page 29: Kutulu: A Domain-specific Language for Feature-driven Product Derivation

What does “Kutulu” mean?

• “Cthulhu” is a fictional cosmic creature created by horror author H. P. Lovecraft in 1926, first appearing in the short story "The Call of Cthulhu" when it was published in Weird Tales in 1928.

• “Kutulu” means “boxed” in Turkish. That also refers to the visual elements of the DSL.

(image is taken from Wikipedia)

Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 29 / 23