SlideShare una empresa de Scribd logo
1 de 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
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
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
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
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])
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.
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.
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])
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.
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.
IEEE COMPSAC 2012 / O.Dayıbaş   Kutulu: A DSL for Feature-driven Product Derivation   11 / 23




Kutulu DSL for Modeling
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
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
IEEE COMPSAC 2012 / O.Dayıbaş   Kutulu: A DSL for Feature-driven Product Derivation   14 / 23




Kutulu Toolchain
• Editors (Domain & Feature-binding)
IEEE COMPSAC 2012 / O.Dayıbaş   Kutulu: A DSL for Feature-driven Product Derivation   15 / 23




Kutulu Toolchain
• Generator (Spring.NET)
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.
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.
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.
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
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.
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
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.
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
IEEE COMPSAC 2012 / O.Dayıbaş     Kutulu: A DSL for Feature-driven Product Derivation   24 / 23




Thank you...
• Questions?




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

Más contenido relacionado

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

Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignRadu_Negulescu
 
Spring Architecture | Advanced Java
Spring Architecture | Advanced JavaSpring Architecture | Advanced Java
Spring Architecture | Advanced JavaVISHAL DONGA
 
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...Heiko Koziolek
 
Web-Based Lighting Automation System
Web-Based Lighting Automation SystemWeb-Based Lighting Automation System
Web-Based Lighting Automation SystemApoorva Chandra
 
Embedded system.pptx
Embedded system.pptxEmbedded system.pptx
Embedded system.pptxSaransh Garg
 
ModelTalk - When Everything is a Domain Specific Language
ModelTalk - When Everything is a Domain Specific LanguageModelTalk - When Everything is a Domain Specific Language
ModelTalk - When Everything is a Domain Specific LanguageAtzmon Hen-Tov
 
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura WiresBuilding IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura WiresEclipse Kura
 
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura WiresBuilding IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura WiresEurotech
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolithAgile integration: Decomposing the monolith
Agile integration: Decomposing the monolithJudy Breedlove
 
COMAPARATIVE ANALYSIS VERILOG ADDERS
COMAPARATIVE ANALYSIS VERILOG ADDERSCOMAPARATIVE ANALYSIS VERILOG ADDERS
COMAPARATIVE ANALYSIS VERILOG ADDERSMarleyKarthik
 
[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigmsIvano Malavolta
 
MCHE 484 Senior Design Final Report Rev_8
MCHE 484 Senior Design Final Report Rev_8MCHE 484 Senior Design Final Report Rev_8
MCHE 484 Senior Design Final Report Rev_8Daniel Newman
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
Final year project ideas for electrical engineering eepowerschool.com
Final year project ideas for electrical engineering   eepowerschool.comFinal year project ideas for electrical engineering   eepowerschool.com
Final year project ideas for electrical engineering eepowerschool.comMuhammad Sarwar
 
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...IRJET Journal
 
Mobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesMobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesQamar Abbas
 
DBD 2414 - Iterative Web-Based Designer for Software Defined Environments (In...
DBD 2414 - Iterative Web-Based Designer for Software Defined Environments (In...DBD 2414 - Iterative Web-Based Designer for Software Defined Environments (In...
DBD 2414 - Iterative Web-Based Designer for Software Defined Environments (In...Michael Elder
 

Similar a Kutulu: A Domain-specific Language for Feature-driven Product Derivation (20)

Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module Design
 
Spring Architecture | Advanced Java
Spring Architecture | Advanced JavaSpring Architecture | Advanced Java
Spring Architecture | Advanced Java
 
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
 
Web-Based Lighting Automation System
Web-Based Lighting Automation SystemWeb-Based Lighting Automation System
Web-Based Lighting Automation System
 
Dcis97
Dcis97Dcis97
Dcis97
 
Embedded system.pptx
Embedded system.pptxEmbedded system.pptx
Embedded system.pptx
 
ModelTalk - When Everything is a Domain Specific Language
ModelTalk - When Everything is a Domain Specific LanguageModelTalk - When Everything is a Domain Specific Language
ModelTalk - When Everything is a Domain Specific Language
 
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura WiresBuilding IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
 
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura WiresBuilding IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolithAgile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
 
COMAPARATIVE ANALYSIS VERILOG ADDERS
COMAPARATIVE ANALYSIS VERILOG ADDERSCOMAPARATIVE ANALYSIS VERILOG ADDERS
COMAPARATIVE ANALYSIS VERILOG ADDERS
 
[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms
 
MCHE 484 Senior Design Final Report Rev_8
MCHE 484 Senior Design Final Report Rev_8MCHE 484 Senior Design Final Report Rev_8
MCHE 484 Senior Design Final Report Rev_8
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Final year project ideas for electrical engineering eepowerschool.com
Final year project ideas for electrical engineering   eepowerschool.comFinal year project ideas for electrical engineering   eepowerschool.com
Final year project ideas for electrical engineering eepowerschool.com
 
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
Limited Budget but Effective End to End MLOps Practices (Machine Learning Mod...
 
Mobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelinesMobile App Architectures & Coding guidelines
Mobile App Architectures & Coding guidelines
 
Software models
Software modelsSoftware models
Software models
 
DBD 2414 - Iterative Web-Based Designer for Software Defined Environments (In...
DBD 2414 - Iterative Web-Based Designer for Software Defined Environments (In...DBD 2414 - Iterative Web-Based Designer for Software Defined Environments (In...
DBD 2414 - Iterative Web-Based Designer for Software Defined Environments (In...
 

Último

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Último (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
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
  • 14. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 14 / 23 Kutulu Toolchain • Editors (Domain & Feature-binding)
  • 15. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 15 / 23 Kutulu Toolchain • Generator (Spring.NET)
  • 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
  • 24. IEEE COMPSAC 2012 / O.Dayıbaş Kutulu: A DSL for Feature-driven Product Derivation 24 / 23 Thank you... • Questions? odayibas
  • 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

  1. COMPSAC 2012 July, 2012 / COMPSAC
  2. 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
  3. 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
  4. Development for reuse Development with reuse Management of the product July, 2012 / COMPSAC
  5. 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
  6. Hollywood principle It is possible to delay variability binding by using DI assembler July, 2012 / COMPSAC
  7. July, 2012 / COMPSAC
  8. 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
  9. July, 2012 / COMPSAC
  10. 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