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

296
-1

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
296
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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
  • Kutulu: A Domain-specific Language for Feature-driven Product Derivation

    1. 1. KUTULU: A DOMAIN-SPECIFICLANGUAGE FOR FEATURE-DRIVENPRODUCT DERIVATIONOrçun DayıbaşDepartment of Software EngineeringSST-MD Aselsan, Inc.COMPSAC July, 2012 / İzmir, Turkey
    2. 2. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 2 / 23Outline• Introduction• Software Product Line (SPL)• Variability Management• Dependency Injection in DSPL• Kutulu DSL for Modeling• Case Study• Conclusion
    3. 3. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 3 / 23Introduction• 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. 4. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 4 / 23Overview 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. 5. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 5 / 23Overview of SPLManagement ofthe productDevelopmentfor reuseDevelopmentwith reuse (diagram is adopted from [3])
    6. 6. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 6 / 23Variability 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. 7. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 7 / 23Dynamic SPL• Dynamic Software Product Line (DSPL) extends the SPL with dynamic features.
    8. 8. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 8 / 23Dependency 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. 9. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 9 / 23Dependency 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 bindsChanges 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 userDeals 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 andAutomatic decision making decides the bindings.
    10. 10. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 10 / 23Kutulu 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. 11. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 11 / 23Kutulu DSL for Modeling
    12. 12. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 12 / 23Meta-models of Kutulu DSL• Domain meta-model of the DSL
    13. 13. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 13 / 23Meta-models of Kutulu DSL• Feature-binding meta-model of the DSL
    14. 14. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 14 / 23Kutulu Toolchain• Editors (Domain & Feature-binding)
    15. 15. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 15 / 23Kutulu Toolchain• Generator (Spring.NET)
    16. 16. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 16 / 23Case 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. 17. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 17 / 23Case Study• Step 1: Domain engineer defines domain model in the Kutulu DM editor.
    18. 18. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 18 / 23Case Study• Step 1: Domain engineer, defines the features in the Kutulu FBM Editor.
    19. 19. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 19 / 23Case Study• Step 2: Application engineer activates features according to the specific product
    20. 20. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 20 / 23Case Study• Step 3: Application engineer generates required configuration file by using the Kutulu Generator and deploys the product.
    21. 21. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 21 / 23Case Study MVC & Factory Implementation Kutulu DSL to PC & UMPC Spring.NET Conf. Disp.Features Spring.NET
    22. 22. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 22 / 23Conclusion• 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. 23. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 23 / 23Current 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
    24. 24. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 24 / 23Thank you...• Questions? odayibas
    25. 25. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 25 / 23References[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. 26. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 26 / 23What 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. 27. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 27 / 23Overview 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. 28. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 28 / 23Advantages 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. 29. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 29 / 23What 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)

    ×