kutulu: a domain-specific language for feature-driven product derivation
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
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
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
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
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
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
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
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
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
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
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
Kutulu DSL for Modeling
Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 11 / 23
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
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
Kutulu Toolchain• Editors (Domain & Feature-binding)
Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 14 / 23
Kutulu Toolchain• Generator (Spring.NET)
Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 15 / 23
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
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
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
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
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
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
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
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
Thank you...• Questions?
odayibas
Kutulu: A DSL for Feature-driven Product DerivationIEEE COMPSAC 2012 / O.Dayıbaş 24 / 23
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
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
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
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
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