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.
08448380779 Call Girls In Friends Colony Women Seeking Men
Kutulu: A Domain-specific Language for Feature-driven Product Derivation
1. 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
2. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 2 / 23
Outline
• Introduction
• Software Product Line (SPL)
• Variability Management
• Dependency Injection in DSPL
• Kutulu DSL for Modeling
• Case Study
• Conclusion
3. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 3 / 23
Introduction
• Reuse is still an active area of research.
• Three major dimensions [1]
• Individual Factors
• Not-invented-here syndrome Organizational
• Organizational Factors
• Commitment to Reuse
• Technical Factors
• Lack of standards Technical
• Integration Issues
Individual
• Consistency, correctness, reliability
4. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 4 / 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
5. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 5 / 23
Overview of SPL
Management of
the product
Development
for reuse
Development
with reuse
(diagram is adopted from [3])
6. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 6 / 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.
7. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 7 / 23
Dynamic SPL
• Dynamic Software Product Line (DSPL) extends the SPL
with dynamic features.
8. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 8 / 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])
9. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 9 / 23
Dependency Injection and DSPL
DSPL Feature How DI contributes to enable this?
Dynamic variability; configuration and Assembler can configure and bind the variation points
binding at runtime at runtime.
Assembler can have an external method which binds
Changes binding several times during its
variation points and this method can be invoked
lifetime
several times.
Deals with unexpected changes (in some In the exceptional cases, assembler can bind the
limited way) variation point with pre-defined variant.
Configuration of the assembler can be visible to user
Deals with changes by users, such as
(for instance options screen in GUI) hence;
functional or quality requirements
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
Automatic decision making decides the bindings.
10. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 10 / 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.
11. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 11 / 23
Kutulu DSL for Modeling
12. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 12 / 23
Meta-models of Kutulu DSL
• Domain meta-model of the DSL
13. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 13 / 23
Meta-models of Kutulu DSL
• Feature-binding meta-model of the DSL
16. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 16 / 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.
17. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 17 / 23
Case Study
• Step 1: Domain engineer defines domain model in the
Kutulu DM editor.
18. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 18 / 23
Case Study
• Step 1: Domain engineer, defines the features in the
Kutulu FBM Editor.
19. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 19 / 23
Case Study
• Step 2: Application engineer activates features according
to the specific product
20. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 20 / 23
Case Study
• Step 3: Application engineer generates required
configuration file by using the Kutulu Generator and
deploys the product.
21. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 21 / 23
Case Study
MVC & Factory
Implementation
Kutulu DSL to
PC & UMPC Spring.NET Conf.
Disp.Features
Spring.NET
22. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 22 / 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.
23. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 23 / 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
25. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 25 / 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.
26. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 26 / 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.
27. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 27 / 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.
pertain to
Domain
is satisfied by
share an
Architecture
Products
guides development of
are built from
Components
(diagram is taken from [1])
28. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 28 / 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.
29. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 29 / 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)
Notas del editor
COMPSAC 2012 July, 2012 / COMPSAC
The product line is a product suite sharing a common, managed set of features that satisfy specific needs of a selected domain. July, 2012 / COMPSAC
First touted as early as 1976 by David L . Parnas The product line is a product suite sharing a common, managed set of features that satisfy specific needs of a selected domain. July, 2012 / COMPSAC
Development for reuse Development with reuse Management of the product July, 2012 / COMPSAC
Commonality is a list of assumptions that are true for all product line applications [4] . Ex: Payment. Product Line Variability describes the variation (differences) between the systems that belong to a product line in terms of properties and qualities (like features that are provided or requirements that are fulfilled) [ 5 ]. Ex: Credit Card, Bank Account, Invoice. Managing differences between products of the SPL is main purpose of the variability management and this objective is one of the aspects that differs the SPL from the single software development process. July, 2012 / COMPSAC
Hollywood principle It is possible to delay variability binding by using DI assembler July, 2012 / COMPSAC
July, 2012 / COMPSAC
Whether its dynamic or not DI makes the SPL more configurable. Domain model dependencies can be extracted from UML diagrams or legacy codes. Textual DSL implementation is also possible. Different generators and DI assemblers can be used. July, 2012 / COMPSAC
July, 2012 / COMPSAC
The product line is a product suite sharing a common, managed set of features that satisfy specific needs of a selected domain. July, 2012 / COMPSAC