BENEVOL'11 - Reverse Engineering Architectural Feature Models

University of Rennes, INSA Rennes, Inria/IRISA, CNRS
University of Rennes, INSA Rennes, Inria/IRISA, CNRSProfessor à University of Rennes, INSA Rennes, Inria/IRISA, CNRS
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
1 sur 34

Recommandé

QPACE QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.) par
QPACE QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)QPACE QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)
QPACE QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)Heiko Joerg Schick
926 vues14 diapositives
1 par
11
1srimoorthi
462 vues4 diapositives
Osgi Sun 20080820 par
Osgi Sun 20080820Osgi Sun 20080820
Osgi Sun 20080820Eduardo Pelegri-Llopart
857 vues108 diapositives
Reverse Engineering of Software Architecture par
Reverse Engineering of Software ArchitectureReverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureDharmalingam Ganesan
4.9K vues54 diapositives
From SOA to SCA and FraSCAti par
From SOA to SCA and FraSCAtiFrom SOA to SCA and FraSCAti
From SOA to SCA and FraSCAtiphilippe_merle
1.9K vues73 diapositives
Squash Those IoT Security Bugs with a Hardened System Profile par
Squash Those IoT Security Bugs with a Hardened System ProfileSquash Those IoT Security Bugs with a Hardened System Profile
Squash Those IoT Security Bugs with a Hardened System ProfileSteve Arnold
515 vues20 diapositives

Contenu connexe

Similaire à BENEVOL'11 - Reverse Engineering Architectural Feature Models

Iris an architecture for cognitive radio networking testbeds par
Iris   an architecture for cognitive radio networking testbedsIris   an architecture for cognitive radio networking testbeds
Iris an architecture for cognitive radio networking testbedsPatricia Oniga
332 vues12 diapositives
Shopzilla On Concurrency par
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On ConcurrencyRodney Barlow
1.3K vues38 diapositives
43 par
4343
43srimoorthi
270 vues6 diapositives
Introduction to Apache Camel par
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelFuseSource.com
6.5K vues33 diapositives
Shopzilla On Concurrency par
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On ConcurrencyWill Gage
657 vues37 diapositives
Java 8 par
Java 8Java 8
Java 8jclingan
694 vues38 diapositives

Similaire à BENEVOL'11 - Reverse Engineering Architectural Feature Models(20)

Iris an architecture for cognitive radio networking testbeds par Patricia Oniga
Iris   an architecture for cognitive radio networking testbedsIris   an architecture for cognitive radio networking testbeds
Iris an architecture for cognitive radio networking testbeds
Patricia Oniga332 vues
Shopzilla On Concurrency par Will Gage
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
Will Gage657 vues
What's new in Java 8 par jclingan
What's new in Java 8What's new in Java 8
What's new in Java 8
jclingan855 vues
Hazelcast Deep Dive (Paris JUG-2) par Emrah Kocaman
Hazelcast Deep Dive (Paris JUG-2)Hazelcast Deep Dive (Paris JUG-2)
Hazelcast Deep Dive (Paris JUG-2)
Emrah Kocaman474 vues
How Java 19 Influences the Future of Your High-Scale Applications .pdf par Ana-Maria Mihalceanu
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 par philippe_merle
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_merle993 vues
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007 par Baruch Sadogursky
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 par Arun Gupta
OSGi-enabled Java EE applications in GlassFishOSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFish
Arun Gupta3.2K vues
java.util.concurrent for Distributed Coordination, Riga DevDays 2019 par Ensar Basri Kahveci
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 par muayyad alsadi
Introduction to Raft algorithmIntroduction to Raft algorithm
Introduction to Raft algorithm
muayyad alsadi2.1K vues
OSGi-enabled Java EE Applications using GlassFish par Arun Gupta
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFish
Arun Gupta1.5K vues
The Open Power ISA: A Summary of Architecture Compliancy Options and the Late... par Ganesan Narayanasamy
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 par Marcus Hirt
Production Time Profiling Out of the BoxProduction Time Profiling Out of the Box
Production Time Profiling Out of the Box
Marcus Hirt1.6K vues
Mpls conference 2016-data center virtualisation-11-march par Aricent
Mpls conference 2016-data center virtualisation-11-marchMpls conference 2016-data center virtualisation-11-march
Mpls conference 2016-data center virtualisation-11-march
Aricent308 vues

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

Generative AI for Reengineering Variants into Software Product Lines: An Expe... par
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
58 vues28 diapositives
Tackling Deep Software Variability Together par
Tackling Deep Software Variability TogetherTackling Deep Software Variability Together
Tackling Deep Software Variability TogetherUniversity of Rennes, INSA Rennes, Inria/IRISA, CNRS
37 vues46 diapositives
On anti-cheating in chess, science, reproducibility, and variability par
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 variabilityUniversity of Rennes, INSA Rennes, Inria/IRISA, CNRS
110 vues30 diapositives
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ... par
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
44 vues68 diapositives
Machine Learning and Deep Software Variability par
Machine Learning and Deep Software VariabilityMachine Learning and Deep Software Variability
Machine Learning and Deep Software VariabilityUniversity of Rennes, INSA Rennes, Inria/IRISA, CNRS
40 vues75 diapositives
Mastering Software Variability for Innovation and Science par
Mastering Software Variability for Innovation and ScienceMastering Software Variability for Innovation and Science
Mastering Software Variability for Innovation and ScienceUniversity of Rennes, INSA Rennes, Inria/IRISA, CNRS
45 vues73 diapositives

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

Dernier

CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue par
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueShapeBlue
46 vues13 diapositives
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue par
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueShapeBlue
96 vues20 diapositives
NTGapps NTG LowCode Platform par
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform Mustafa Kuğu
141 vues30 diapositives
20231123_Camunda Meetup Vienna.pdf par
20231123_Camunda Meetup Vienna.pdf20231123_Camunda Meetup Vienna.pdf
20231123_Camunda Meetup Vienna.pdfPhactum Softwareentwicklung GmbH
46 vues73 diapositives
DRBD Deep Dive - Philipp Reisner - LINBIT par
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBITShapeBlue
62 vues21 diapositives
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... par
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...ShapeBlue
48 vues17 diapositives

Dernier(20)

CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue par ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue46 vues
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue par ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue96 vues
NTGapps NTG LowCode Platform par Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu141 vues
DRBD Deep Dive - Philipp Reisner - LINBIT par ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue62 vues
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... par ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue48 vues
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... par ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue57 vues
Why and How CloudStack at weSystems - Stephan Bienek - weSystems par ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue111 vues
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... par ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue74 vues
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT par ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue91 vues
Business Analyst Series 2023 - Week 4 Session 7 par DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray1080 vues
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue par ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue131 vues
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue par ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue96 vues
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... par TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc77 vues
"Surviving highload with Node.js", Andrii Shumada par Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays40 vues
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... par ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue83 vues
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... par ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue77 vues
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... par ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue54 vues
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates par ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue119 vues

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