SlideShare a Scribd company logo
Reverse Engineering
     Architectural Feature Models
                            Case Study:
      software architect
                             FraSCAti
       Mathieu Acher1, Anthony Cleve1 , Philippe
        Collet2,   Philippe Merle3, Laurence
              Duchien3, Philippe Lahire2
                1 PReCISE   Research Centre, University of Namur, Belgium
2 University of Nice Sophia Antipolis (France), MODALIS team (CNRS, I3S Laboratory)

           3 INRIA Lille-Nord Europe, Univ. Lille 1 - CNRS UMR 8022, France
Case Study: FraSCAti
• Open source implementation of Service Component Architecture (SCA)
    •   An OASIS’s standard programming model for SOA
    •   http://frascati.ow2.org
    •   Large software project with an increasing number of extensions since 2008




           Sec.                    log                              Tran
                                                                     s.
                                                                                    Network




• Technology-agnostic, adaptability, variants
    –   Interface languages (Java, WSDL, OMG IDL, etc.)
    –   Implementation languages (Java, Spring, OSGi, BPEL, C/C++, etc.)
    –   Binding protocols (WS, REST, JSON-RPC, Java RMI, CORBA, etc.)
    –   Non functional aspects, aka SCA intents and policies
    –   Packaging formats and deployment targets (JAR, JBI, WAR, OSGi, etc.)

• FraSCAti architecture is itself implemented in SCA

                                                                                              2
FraSCAti Extensible Architecture in SCA (excerpt)




                                              3
What we want : FraSCAti « à la carte »
• 256Kb   FraSCAti reflective kernel
            • API + membrane controllers

• 2,4Mb   + minimal FraSCAti architecture
            • Around 2Mb for EMF & SCA MM

• 2,9Mb   + capabilities on the fly
            • Using JDK6 compiler

• …       + FraSCAti features you need
• 40Mb    All FraSCAti 1.3 features

                                            4
“the ability of a system to be
  efficiently
  extended, changed, customized
  or configured for use in a
  particular context”
Mikael Svahnberg, Jilles van Gurp, and Jan Bosch (2005)

                                                      5
Managing variability
   of software systems

modeling the variability and
 managing its evolution

        sound basis
    automated techniques
        tool support
                               6
How to reverse engineer the variability
       model of an architecture?




Variability Model          Architecture




                                          7
Defacto standard for modeling variability
Formal semantics, reasoning techniques, tools

                                                                                FraSCAti Architecture
    Feature Model
     FM1
                           FraSCAti



           SCAParser       Assembly Factory        Component Factory


           Metamodel             Binding                  Java Compiler


    MMFrascati MMTuscany     http       rest          JDK6         JDT

                  constraints                                    Alternative-
                                               Optional             Group
             rest requires MMFrascati                            Or-Group
                                               Mandatory
             http requires MMTuscany




  explicit representation of legal
  variants authorized by FraSCati

                                                                                                    8
Feature Model
• Hiearchy of Features + Variability (incl. constraints)
• Compact representation of a set of configurations
  – Scope: restrict legal variants authorized by FraSCati
    FM1
                          FraSCAti



          SCAParser       Assembly Factory        Component Factory


          Metamodel             Binding                  Java Compiler             Set of
                                                                               Configurations
   MMFrascati MMTuscany     http       rest          JDK6         JDT

                 constraints                                    Alternative-
                                              Optional             Group
            rest requires MMFrascati                            Or-Group
                                              Mandatory
            http requires MMTuscany                                                        9
Feature Model                                                             FraSCAti Architecture
 FM1
                         FraSCAti



        SCAParser        Assembly Factory          Component Factory


        Metamodel                Binding                  Java Compiler


 MMFrascati MMTuscany      http         rest            JDK6       JDT

                constraints                                      Alternative-
                                               Optional             Group
           rest requires MMFrascati                              Or-Group
                                               Mandatory
           http requires MMTuscany




       Configuration                                                            Derived FraSCAti Architecture
FM1
                        FraSCAti



       SCAParser        Assembly Factory          Component Factory


       Metamodel              Binding                   Java Compiler


MMFrascati MMTuscany      http        rest          JDK6         JDT

               constraints                                     Alternative-
                                             Optional             Group
         rest requires MMFrascati                               Or-Group
                                             Mandatory
         http requires MMTuscany
                                                                                                         10
Set of Safe

               Scope is                                                              Variants
                                                                                   authorized by
                                                                                     FraSCAti
              too large


Feature Model                                                              FraSCAti Architecture
FM1
                       FraSCAti



      SCAParser        Assembly Factory       Component Factory


      Metamodel             Binding                  Java Compiler


MMFrascati MMTuscany     http      rest          JDK6         JDT

             constraints                                    Alternative-
                                          Optional             Group
        rest requires MMFrascati                            Or-Group
                                          Mandatory
        http requires MMTuscany




                                                                                                   11
Illegal Variant




                  12
Set of Safe
                  Scope is                                                           Variants
                    too                                                            authorized by
                  narrow                                                             FraSCAti




Feature Model                                                              FraSCAti Architecture
FM1
                       FraSCAti



      SCAParser        Assembly Factory       Component Factory


      Metamodel             Binding                  Java Compiler


MMFrascati MMTuscany     http      rest          JDK6         JDT

             constraints                                    Alternative-
                                          Optional             Group
        rest requires MMFrascati                            Or-Group
                                          Mandatory
        http requires MMTuscany




                                                                                                   13
Unused flexibility



                     14
How to obtain the Feature Model
   of FraSCAti Architecture?
            FM1
                                   FraSCAti



                  SCAParser        Assembly Factory       Component Factory


                  Metamodel             Binding                  Java Compiler


            MMFrascati MMTuscany     http      rest          JDK6         JDT

                         constraints                                    Alternative-
                                                      Optional             Group
                    rest requires MMFrascati                            Or-Group
                                                      Mandatory
                    http requires MMTuscany




 Safe composition (Batory et al., 2007, Metzger et al. 2007)
 Lopez et al., On the Need of Safe Software Product Line Architectures. (ECSA’10)      15
Variability Modeling: Pros and Cons

  - Error-prone                     - Documentation of Software Artefacts
  - Time Consuming                  - Reliability of the Procedure?

  + Architecture Knowledge
  + Scoping Decisions               + Automation




       Philippe Merle,
software architect of FraSCAti        Automated Extraction




                                                                      16
Variability Modeling:




Human Vs Machine?
                        17
Extraction Process
                          Software
                          Artefacts



                                      Variability
                                      Modeling
                                                                       1
         Software
       Architect View                      2                    Automatic
                                                                Extraction


                                          ?



       Philippe Merle,
                                                    Automated Extraction
software architect of FraSCAti                                               18
Extraction Process

                 Software
                 Artefacts



                             Variability
                             Modeling             1
  Software
Architect View                   2         Automatic
                                           Extraction


                                 ?
                                                    19
Automated Extraction
150%: rough over                  Software                                    Mapping between
approximation of legal            Artefacts                                   architectural elements
configurations                           1             3                  2   and plugins
        FMArch 150                                                              FMPlug


                                                   Mapping                               <<requires>>

       150% Architectural FM
                                                                                Plugin Dependencies
                                                 Aggregation
                         FMFull
Projection
on                                                         <<requires>>
architectural
elements                                         Projection (Π)
                                        FMArch
                        Enforced
                     Architectural FM

                                                                                                        20
Projection by Example
  FMFull
     FMArch150                            FtAggregation                                FMPlug
                        Arch                                       Plugin

           Ar1                       Ar2                     Pl1         Pl2             Pl3
                                                                       Pl1 => Pl2
     Ar3         Ar4           Ar5          Ar6           Ar3 => Pl1
                                                          Pl2 => Ar5

              Projection (Π) onto Arch, Ar1, …, Ar6
  FMArch                                                                    Optional
                                                                                            Alternative
                                                                                              -Group
                             Arch                                           Mandatory          Or-Group


                 Ar1                      Ar2         Ar3 => Ar5
                                                      Ar4 => Ar6
        Ar3            Ar4          Ar5         Ar6




Formal semantics and automation details in the paper
see also “Acher et al., Slicing Feature Models”, ASE’11
                                                                                                          21
22
Extraction Process

                 Software
                 Artefacts



                             Variability
                             Modeling      1
  Software
Architect View                    2        Automatic
                                           Extraction


                                 ?
                                                    23
Consistency of the Extracted Feature Model?



                              50 features,
                      more than 106 configurations



                   We need
     (1) automated reasoning techniques
(2) to put the Software Architect in the Loop
       Software
                                              Automatic
     Architect View
                                              Extraction

                                                           24
FMArch Enforced                                                                 FMSA            Software
      Architectural FM                                                                        Architect View




                                           Reconciling
              renaming,                   Feature Models                        renaming,
              projection,                                                       projection,
                                          (e.g., vocabulary and
               removal                                                           removal
                                          granularity alignment)
      Aligned                                                                      Aligned
  Architectural FM                                                          Software Architect View
FMArch’                                                                         FMSA’


                                           Comparison


                           Refined                                    More
                        Archiectural FM                            refinement

                                                                                                               25
Reconciliation of Feature Models
• Vocabulary differs
  – 32 “common” features automatically detected
  – 5 manual correspondences specified
• Granularity differs (more or less details)
  – Not detected by the automated procedure for 2 features
  – Intentionally forget by the software architect (or not) for
    13 features
• Once reconciled, techniques needed to understand
  differences between the two feature models
                                                           26
Lessons Learned
• The gap between the two feature models is
  manageable but reconciliation is time consuming
• Extraction procedure yields promising results
  – Recovers most of the variability
  – Encourage the software architect to correct his initial
    feature model
• Software Architect knowledge is required
  – To control the accuracy of the automated procedure
  – For scoping decisions

                                                              27
Practical Solution: FAMILIAR
https://nyx.unice.fr/projects/familiar/




                                          28
Summary
• Reverse Engineering the Variability Model of An
  Architecture
   – Reverse Engineering the Feature Model of FraSCAti
• Automated Procedure
   – Extracting and Combining Variability Sources
   (incl. software architect knowledge)
   – Advanced feature modeling techniques have been
      developed (tool supported with FAMILIAR)
• Lessons Learned
   – Extraction procedure yields promising results
   – Essential role of software architect
      • To validate the extracted feature model
      • To integrate knowledge

                                                         29
Current and ongoing work
• Feature Model Differences


• Evolution of Feature Models and FraSCAti


• Applicability to other software projects
  – Eclipse

                                             30
Feature Model Differences
           Submitted to CAiSE’12




     Syntactic differences do not scale
                                          31
Evolution of Feature Models and FraSCAti
                                                                                                                            http://frascati.ow2.org
               FM1
                                         FraSCAti



                      SCAParser          Assembly Factory        Component Factory


                      Metamodel               Binding                   Java Compiler


               MMFrascati MMTuscany

                             constraints
                                           http



                        rest requires MMFrascati
                                                      rest          JDK6


                                                             Optional
                                                                                 JDT

                                                                               Alternative-
                                                                                  Group
                                                                                                              Version 1.3
                                                             Mandatory          Or-Group
                        http requires MMTuscany




                                                                               Diff
      FM1
                             FraSCAti



            SCAParser        Assembly Factory            Component Factory




                                                                                                             Version 1.4
            Metamodel                Binding                    Java Compiler


      MMFrascati MMTuscany        http        rest             JDK6           JDT

                     constraints
              rest requires MMFrascati
                                                     Optional

                                                     Mandatory
                                                                            Alternative-
                                                                               Group
                                                                            Or-Group
                                                                                                             .
              http requires MMTuscany

                                                                                                             .
                                                                           Diff                              .

FM1
                             FraSCAti



      SCAParser              Assembly Factory                             Component Factory


      Metamodel                          Binding
                                                                                                             Version 2.x
                                                                               Java Compiler


MMFrascati MMTuscany              http                rest                    JDK6              JDT

               constraints                                                                    Alternative-
                                                                Optional                         Group
         rest requires MMFrascati                                                             Or-Group
                                                                Mandatory
         http requires MMTuscany

                                                                                                                                                32
Managing variability
   of software systems

modeling the variability and
 managing its evolution

        sound basis
    automated techniques
        tool support
                               33
?
http://frascati.ow2.org
https://nyx.unice.fr/projects/familiar/   34

More Related Content

Similar to BENEVOL'11 - Reverse Engineering Architectural Feature Models

Iris an architecture for cognitive radio networking testbeds
Iris   an architecture for cognitive radio networking testbedsIris   an architecture for cognitive radio networking testbeds
Iris an architecture for cognitive radio networking testbeds
Patricia Oniga
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
Rodney Barlow
 
43
4343
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
FuseSource.com
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
Will Gage
 
Java 8
Java 8Java 8
Java 8
jclingan
 
What's new in Java 8
What's new in Java 8What's new in Java 8
What's new in Java 8
jclingan
 
Java8 - Under the hood
Java8 - Under the hoodJava8 - Under the hood
Java8 - Under the hood
Lakshmi Narasimhan
 
Hazelcast Deep Dive (Paris JUG-2)
Hazelcast Deep Dive (Paris JUG-2)Hazelcast Deep Dive (Paris JUG-2)
Hazelcast Deep Dive (Paris JUG-2)
Emrah Kocaman
 
How Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdfHow Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdf
Ana-Maria Mihalceanu
 
A Reflective Platform for Highly Adaptable Multi-Cloud Systems
A Reflective Platform for Highly Adaptable Multi-Cloud SystemsA Reflective Platform for Highly Adaptable Multi-Cloud Systems
A Reflective Platform for Highly Adaptable Multi-Cloud Systems
philippe_merle
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Baruch Sadogursky
 
OSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishOSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFish
Arun Gupta
 
What's wrong with web
What's wrong with webWhat's wrong with web
What's wrong with web
Sergey Rubanov
 
java.util.concurrent for Distributed Coordination, Riga DevDays 2019
java.util.concurrent for Distributed Coordination, Riga DevDays 2019java.util.concurrent for Distributed Coordination, Riga DevDays 2019
java.util.concurrent for Distributed Coordination, Riga DevDays 2019
Ensar Basri Kahveci
 
Introduction to Raft algorithm
Introduction to Raft algorithmIntroduction to Raft algorithm
Introduction to Raft algorithm
muayyad alsadi
 
OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFish
Arun Gupta
 
The Open Power ISA: A Summary of Architecture Compliancy Options and the Late...
The Open Power ISA: A Summary of Architecture Compliancy Options and the Late...The Open Power ISA: A Summary of Architecture Compliancy Options and the Late...
The Open Power ISA: A Summary of Architecture Compliancy Options and the Late...
Ganesan Narayanasamy
 
Production Time Profiling Out of the Box
Production Time Profiling Out of the BoxProduction Time Profiling Out of the Box
Production Time Profiling Out of the Box
Marcus Hirt
 
Mpls conference 2016-data center virtualisation-11-march
Mpls conference 2016-data center virtualisation-11-marchMpls conference 2016-data center virtualisation-11-march
Mpls conference 2016-data center virtualisation-11-march
Aricent
 

Similar to BENEVOL'11 - Reverse Engineering Architectural Feature Models (20)

Iris an architecture for cognitive radio networking testbeds
Iris   an architecture for cognitive radio networking testbedsIris   an architecture for cognitive radio networking testbeds
Iris an architecture for cognitive radio networking testbeds
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
 
43
4343
43
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
 
Java 8
Java 8Java 8
Java 8
 
What's new in Java 8
What's new in Java 8What's new in Java 8
What's new in Java 8
 
Java8 - Under the hood
Java8 - Under the hoodJava8 - Under the hood
Java8 - Under the hood
 
Hazelcast Deep Dive (Paris JUG-2)
Hazelcast Deep Dive (Paris JUG-2)Hazelcast Deep Dive (Paris JUG-2)
Hazelcast Deep Dive (Paris JUG-2)
 
How Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdfHow Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdf
 
A Reflective Platform for Highly Adaptable Multi-Cloud Systems
A Reflective Platform for Highly Adaptable Multi-Cloud SystemsA Reflective Platform for Highly Adaptable Multi-Cloud Systems
A Reflective Platform for Highly Adaptable Multi-Cloud Systems
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
 
OSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishOSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFish
 
What's wrong with web
What's wrong with webWhat's wrong with web
What's wrong with web
 
java.util.concurrent for Distributed Coordination, Riga DevDays 2019
java.util.concurrent for Distributed Coordination, Riga DevDays 2019java.util.concurrent for Distributed Coordination, Riga DevDays 2019
java.util.concurrent for Distributed Coordination, Riga DevDays 2019
 
Introduction to Raft algorithm
Introduction to Raft algorithmIntroduction to Raft algorithm
Introduction to Raft algorithm
 
OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFish
 
The Open Power ISA: A Summary of Architecture Compliancy Options and the Late...
The Open Power ISA: A Summary of Architecture Compliancy Options and the Late...The Open Power ISA: A Summary of Architecture Compliancy Options and the Late...
The Open Power ISA: A Summary of Architecture Compliancy Options and the Late...
 
Production Time Profiling Out of the Box
Production Time Profiling Out of the BoxProduction Time Profiling Out of the Box
Production Time Profiling Out of the Box
 
Mpls conference 2016-data center virtualisation-11-march
Mpls conference 2016-data center virtualisation-11-marchMpls conference 2016-data center virtualisation-11-march
Mpls conference 2016-data center virtualisation-11-march
 

More from University of Rennes, INSA Rennes, Inria/IRISA, CNRS

Embracing Deep Variability For Reproducibility and Replicability
Embracing Deep Variability For Reproducibility and ReplicabilityEmbracing Deep Variability For Reproducibility and Replicability
Embracing Deep Variability For Reproducibility and Replicability
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Deep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless ReproducibilityDeep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless Reproducibility
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
A Demonstration of End-User Code Customization Using Generative AI
A Demonstration of End-User Code Customization Using Generative AIA Demonstration of End-User Code Customization Using Generative AI
A Demonstration of End-User Code Customization Using Generative AI
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
On Programming Variability with Large Language Model-based Assistant
On Programming Variability with Large Language Model-based AssistantOn Programming Variability with Large Language Model-based Assistant
On Programming Variability with Large Language Model-based Assistant
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Generative AI for Reengineering Variants into Software Product Lines: An Expe...
Generative AI for Reengineering Variants into Software Product Lines: An Expe...Generative AI for Reengineering Variants into Software Product Lines: An Expe...
Generative AI for Reengineering Variants into Software Product Lines: An Expe...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Tackling Deep Software Variability Together
Tackling Deep Software Variability TogetherTackling Deep Software Variability Together
Tackling Deep Software Variability Together
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
On anti-cheating in chess, science, reproducibility, and variability
On anti-cheating in chess, science, reproducibility, and variabilityOn anti-cheating in chess, science, reproducibility, and variability
On anti-cheating in chess, science, reproducibility, and variability
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Machine Learning and Deep Software Variability
Machine Learning and Deep Software VariabilityMachine Learning and Deep Software Variability
Machine Learning and Deep Software Variability
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Mastering Software Variability for Innovation and Science
Mastering Software Variability for Innovation and ScienceMastering Software Variability for Innovation and Science
Mastering Software Variability for Innovation and Science
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size
Transfer Learning Across Variants and Versions: The Case of Linux Kernel SizeTransfer Learning Across Variants and Versions: The Case of Linux Kernel Size
Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Reproducible Science and Deep Software Variability
Reproducible Science and Deep Software VariabilityReproducible Science and Deep Software Variability
Reproducible Science and Deep Software Variability
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Software Variability and Artificial Intelligence
Software Variability and Artificial IntelligenceSoftware Variability and Artificial Intelligence
Software Variability and Artificial Intelligence
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
Teaching Software Product Lines: A Snapshot of Current Practices and ChallengesTeaching Software Product Lines: A Snapshot of Current Practices and Challenges
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Synthesis of Attributed Feature Models From Product Descriptions
Synthesis of Attributed Feature Models From Product DescriptionsSynthesis of Attributed Feature Models From Product Descriptions
Synthesis of Attributed Feature Models From Product Descriptions
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
From Basic Variability Models to OpenCompare.org
From Basic Variability Models to OpenCompare.orgFrom Basic Variability Models to OpenCompare.org
From Basic Variability Models to OpenCompare.org
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Pandoc: a universal document converter
Pandoc: a universal document converterPandoc: a universal document converter
Pandoc: a universal document converter
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 

More from University of Rennes, INSA Rennes, Inria/IRISA, CNRS (20)

Embracing Deep Variability For Reproducibility and Replicability
Embracing Deep Variability For Reproducibility and ReplicabilityEmbracing Deep Variability For Reproducibility and Replicability
Embracing Deep Variability For Reproducibility and Replicability
 
Deep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless ReproducibilityDeep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless Reproducibility
 
A Demonstration of End-User Code Customization Using Generative AI
A Demonstration of End-User Code Customization Using Generative AIA Demonstration of End-User Code Customization Using Generative AI
A Demonstration of End-User Code Customization Using Generative AI
 
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
 
On Programming Variability with Large Language Model-based Assistant
On Programming Variability with Large Language Model-based AssistantOn Programming Variability with Large Language Model-based Assistant
On Programming Variability with Large Language Model-based Assistant
 
Generative AI for Reengineering Variants into Software Product Lines: An Expe...
Generative AI for Reengineering Variants into Software Product Lines: An Expe...Generative AI for Reengineering Variants into Software Product Lines: An Expe...
Generative AI for Reengineering Variants into Software Product Lines: An Expe...
 
Tackling Deep Software Variability Together
Tackling Deep Software Variability TogetherTackling Deep Software Variability Together
Tackling Deep Software Variability Together
 
On anti-cheating in chess, science, reproducibility, and variability
On anti-cheating in chess, science, reproducibility, and variabilityOn anti-cheating in chess, science, reproducibility, and variability
On anti-cheating in chess, science, reproducibility, and variability
 
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
 
Machine Learning and Deep Software Variability
Machine Learning and Deep Software VariabilityMachine Learning and Deep Software Variability
Machine Learning and Deep Software Variability
 
Mastering Software Variability for Innovation and Science
Mastering Software Variability for Innovation and ScienceMastering Software Variability for Innovation and Science
Mastering Software Variability for Innovation and Science
 
Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size
Transfer Learning Across Variants and Versions: The Case of Linux Kernel SizeTransfer Learning Across Variants and Versions: The Case of Linux Kernel Size
Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size
 
Reproducible Science and Deep Software Variability
Reproducible Science and Deep Software VariabilityReproducible Science and Deep Software Variability
Reproducible Science and Deep Software Variability
 
Software Variability and Artificial Intelligence
Software Variability and Artificial IntelligenceSoftware Variability and Artificial Intelligence
Software Variability and Artificial Intelligence
 
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
Teaching Software Product Lines: A Snapshot of Current Practices and ChallengesTeaching Software Product Lines: A Snapshot of Current Practices and Challenges
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
 
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
 
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
 
Synthesis of Attributed Feature Models From Product Descriptions
Synthesis of Attributed Feature Models From Product DescriptionsSynthesis of Attributed Feature Models From Product Descriptions
Synthesis of Attributed Feature Models From Product Descriptions
 
From Basic Variability Models to OpenCompare.org
From Basic Variability Models to OpenCompare.orgFrom Basic Variability Models to OpenCompare.org
From Basic Variability Models to OpenCompare.org
 
Pandoc: a universal document converter
Pandoc: a universal document converterPandoc: a universal document converter
Pandoc: a universal document converter
 

Recently uploaded

(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
Priyanka Aash
 
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptxMAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
janagijoythi
 
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
sunilverma7884
 
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
BrainSell Technologies
 
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
Priyanka Aash
 
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
Priyanka Aash
 
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and CitiesThe Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
Arpan Buwa
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Torry Harris
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
Zilliz
 
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
Priyanka Aash
 
Zaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdfZaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdf
AmandaCheung15
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
aslasdfmkhan4750
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
SynapseIndia
 
Types of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technologyTypes of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technology
ldtexsolbl
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Muhammad Ali
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
Steven Carlson
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
Ivanti
 
Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17
Bhajan Mehta
 
The Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF GuideThe Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF Guide
Shiv Technolabs
 

Recently uploaded (20)

(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
 
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptxMAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
MAKE MONEY ONLINE Unlock Your Income Potential Today.pptx
 
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
 
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
 
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
 
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
 
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and CitiesThe Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
 
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
 
Zaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdfZaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdf
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
 
Types of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technologyTypes of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technology
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
 
Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17
 
The Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF GuideThe Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF Guide
 

BENEVOL'11 - Reverse Engineering Architectural Feature Models

  • 1. Reverse Engineering Architectural Feature Models Case Study: software architect FraSCAti Mathieu Acher1, Anthony Cleve1 , Philippe Collet2, Philippe Merle3, Laurence Duchien3, Philippe Lahire2 1 PReCISE Research Centre, University of Namur, Belgium 2 University of Nice Sophia Antipolis (France), MODALIS team (CNRS, I3S Laboratory) 3 INRIA Lille-Nord Europe, Univ. Lille 1 - CNRS UMR 8022, France
  • 2. Case Study: FraSCAti • Open source implementation of Service Component Architecture (SCA) • An OASIS’s standard programming model for SOA • http://frascati.ow2.org • Large software project with an increasing number of extensions since 2008 Sec. log Tran s. Network • Technology-agnostic, adaptability, variants – Interface languages (Java, WSDL, OMG IDL, etc.) – Implementation languages (Java, Spring, OSGi, BPEL, C/C++, etc.) – Binding protocols (WS, REST, JSON-RPC, Java RMI, CORBA, etc.) – Non functional aspects, aka SCA intents and policies – Packaging formats and deployment targets (JAR, JBI, WAR, OSGi, etc.) • FraSCAti architecture is itself implemented in SCA 2
  • 3. FraSCAti Extensible Architecture in SCA (excerpt) 3
  • 4. What we want : FraSCAti « à la carte » • 256Kb FraSCAti reflective kernel • API + membrane controllers • 2,4Mb + minimal FraSCAti architecture • Around 2Mb for EMF & SCA MM • 2,9Mb + capabilities on the fly • Using JDK6 compiler • … + FraSCAti features you need • 40Mb All FraSCAti 1.3 features 4
  • 5. “the ability of a system to be efficiently extended, changed, customized or configured for use in a particular context” Mikael Svahnberg, Jilles van Gurp, and Jan Bosch (2005) 5
  • 6. Managing variability of software systems modeling the variability and managing its evolution sound basis automated techniques tool support 6
  • 7. How to reverse engineer the variability model of an architecture? Variability Model Architecture 7
  • 8. Defacto standard for modeling variability Formal semantics, reasoning techniques, tools FraSCAti Architecture Feature Model FM1 FraSCAti SCAParser Assembly Factory Component Factory Metamodel Binding Java Compiler MMFrascati MMTuscany http rest JDK6 JDT constraints Alternative- Optional Group rest requires MMFrascati Or-Group Mandatory http requires MMTuscany explicit representation of legal variants authorized by FraSCati 8
  • 9. Feature Model • Hiearchy of Features + Variability (incl. constraints) • Compact representation of a set of configurations – Scope: restrict legal variants authorized by FraSCati FM1 FraSCAti SCAParser Assembly Factory Component Factory Metamodel Binding Java Compiler Set of Configurations MMFrascati MMTuscany http rest JDK6 JDT constraints Alternative- Optional Group rest requires MMFrascati Or-Group Mandatory http requires MMTuscany 9
  • 10. Feature Model FraSCAti Architecture FM1 FraSCAti SCAParser Assembly Factory Component Factory Metamodel Binding Java Compiler MMFrascati MMTuscany http rest JDK6 JDT constraints Alternative- Optional Group rest requires MMFrascati Or-Group Mandatory http requires MMTuscany Configuration Derived FraSCAti Architecture FM1 FraSCAti SCAParser Assembly Factory Component Factory Metamodel Binding Java Compiler MMFrascati MMTuscany http rest JDK6 JDT constraints Alternative- Optional Group rest requires MMFrascati Or-Group Mandatory http requires MMTuscany 10
  • 11. Set of Safe Scope is Variants authorized by FraSCAti too large Feature Model FraSCAti Architecture FM1 FraSCAti SCAParser Assembly Factory Component Factory Metamodel Binding Java Compiler MMFrascati MMTuscany http rest JDK6 JDT constraints Alternative- Optional Group rest requires MMFrascati Or-Group Mandatory http requires MMTuscany 11
  • 13. Set of Safe Scope is Variants too authorized by narrow FraSCAti Feature Model FraSCAti Architecture FM1 FraSCAti SCAParser Assembly Factory Component Factory Metamodel Binding Java Compiler MMFrascati MMTuscany http rest JDK6 JDT constraints Alternative- Optional Group rest requires MMFrascati Or-Group Mandatory http requires MMTuscany 13
  • 15. How to obtain the Feature Model of FraSCAti Architecture? FM1 FraSCAti SCAParser Assembly Factory Component Factory Metamodel Binding Java Compiler MMFrascati MMTuscany http rest JDK6 JDT constraints Alternative- Optional Group rest requires MMFrascati Or-Group Mandatory http requires MMTuscany Safe composition (Batory et al., 2007, Metzger et al. 2007) Lopez et al., On the Need of Safe Software Product Line Architectures. (ECSA’10) 15
  • 16. Variability Modeling: Pros and Cons - Error-prone - Documentation of Software Artefacts - Time Consuming - Reliability of the Procedure? + Architecture Knowledge + Scoping Decisions + Automation Philippe Merle, software architect of FraSCAti Automated Extraction 16
  • 18. Extraction Process Software Artefacts Variability Modeling 1 Software Architect View 2 Automatic Extraction ? Philippe Merle, Automated Extraction software architect of FraSCAti 18
  • 19. Extraction Process Software Artefacts Variability Modeling 1 Software Architect View 2 Automatic Extraction ? 19
  • 20. Automated Extraction 150%: rough over Software Mapping between approximation of legal Artefacts architectural elements configurations 1 3 2 and plugins FMArch 150 FMPlug Mapping <<requires>> 150% Architectural FM Plugin Dependencies Aggregation FMFull Projection on <<requires>> architectural elements Projection (Π) FMArch Enforced Architectural FM 20
  • 21. Projection by Example FMFull FMArch150 FtAggregation FMPlug Arch Plugin Ar1 Ar2 Pl1 Pl2 Pl3 Pl1 => Pl2 Ar3 Ar4 Ar5 Ar6 Ar3 => Pl1 Pl2 => Ar5 Projection (Π) onto Arch, Ar1, …, Ar6 FMArch Optional Alternative -Group Arch Mandatory Or-Group Ar1 Ar2 Ar3 => Ar5 Ar4 => Ar6 Ar3 Ar4 Ar5 Ar6 Formal semantics and automation details in the paper see also “Acher et al., Slicing Feature Models”, ASE’11 21
  • 22. 22
  • 23. Extraction Process Software Artefacts Variability Modeling 1 Software Architect View 2 Automatic Extraction ? 23
  • 24. Consistency of the Extracted Feature Model? 50 features, more than 106 configurations We need (1) automated reasoning techniques (2) to put the Software Architect in the Loop Software Automatic Architect View Extraction 24
  • 25. FMArch Enforced FMSA Software Architectural FM Architect View Reconciling renaming, Feature Models renaming, projection, projection, (e.g., vocabulary and removal removal granularity alignment) Aligned Aligned Architectural FM Software Architect View FMArch’ FMSA’ Comparison Refined More Archiectural FM refinement 25
  • 26. Reconciliation of Feature Models • Vocabulary differs – 32 “common” features automatically detected – 5 manual correspondences specified • Granularity differs (more or less details) – Not detected by the automated procedure for 2 features – Intentionally forget by the software architect (or not) for 13 features • Once reconciled, techniques needed to understand differences between the two feature models 26
  • 27. Lessons Learned • The gap between the two feature models is manageable but reconciliation is time consuming • Extraction procedure yields promising results – Recovers most of the variability – Encourage the software architect to correct his initial feature model • Software Architect knowledge is required – To control the accuracy of the automated procedure – For scoping decisions 27
  • 29. Summary • Reverse Engineering the Variability Model of An Architecture – Reverse Engineering the Feature Model of FraSCAti • Automated Procedure – Extracting and Combining Variability Sources (incl. software architect knowledge) – Advanced feature modeling techniques have been developed (tool supported with FAMILIAR) • Lessons Learned – Extraction procedure yields promising results – Essential role of software architect • To validate the extracted feature model • To integrate knowledge 29
  • 30. Current and ongoing work • Feature Model Differences • Evolution of Feature Models and FraSCAti • Applicability to other software projects – Eclipse 30
  • 31. Feature Model Differences Submitted to CAiSE’12 Syntactic differences do not scale 31
  • 32. Evolution of Feature Models and FraSCAti http://frascati.ow2.org FM1 FraSCAti SCAParser Assembly Factory Component Factory Metamodel Binding Java Compiler MMFrascati MMTuscany constraints http rest requires MMFrascati rest JDK6 Optional JDT Alternative- Group Version 1.3 Mandatory Or-Group http requires MMTuscany Diff FM1 FraSCAti SCAParser Assembly Factory Component Factory Version 1.4 Metamodel Binding Java Compiler MMFrascati MMTuscany http rest JDK6 JDT constraints rest requires MMFrascati Optional Mandatory Alternative- Group Or-Group . http requires MMTuscany . Diff . FM1 FraSCAti SCAParser Assembly Factory Component Factory Metamodel Binding Version 2.x Java Compiler MMFrascati MMTuscany http rest JDK6 JDT constraints Alternative- Optional Group rest requires MMFrascati Or-Group Mandatory http requires MMTuscany 32
  • 33. Managing variability of software systems modeling the variability and managing its evolution sound basis automated techniques tool support 33