SlideShare uma empresa Scribd logo
1 de 34
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

Mais conteúdo relacionado

Semelhante a Reverse Engineering FraSCAti's Architectural Variability

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 testbedsPatricia Oniga
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On ConcurrencyRodney Barlow
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelFuseSource.com
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On ConcurrencyWill Gage
 
What's new in Java 8
What's new in Java 8What's new in Java 8
What's new in Java 8jclingan
 
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 .pdfAna-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 Systemsphilippe_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 2007Baruch 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 GlassFishArun Gupta
 
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 2019Ensar Basri Kahveci
 
Introduction to Raft algorithm
Introduction to Raft algorithmIntroduction to Raft algorithm
Introduction to Raft algorithmmuayyad 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 GlassFishArun 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 BoxMarcus 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-marchAricent
 

Semelhante a Reverse Engineering FraSCAti's Architectural Variability (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
 

Mais de University of Rennes, INSA Rennes, Inria/IRISA, CNRS

Mais de University of Rennes, INSA Rennes, Inria/IRISA, CNRS (20)

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
 
Metamorphic Domain-Specific Languages
Metamorphic Domain-Specific LanguagesMetamorphic Domain-Specific Languages
Metamorphic Domain-Specific Languages
 
3D Printing, Customization, and Product Lines
3D Printing, Customization, and Product Lines3D Printing, Customization, and Product Lines
3D Printing, Customization, and Product Lines
 

Último

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 

Último (20)

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 

Reverse Engineering FraSCAti's Architectural Variability

  • 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