BENEVOL'11 - Reverse Engineering Architectural Feature Models

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

Recommended

QPACE QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.) by
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 views14 slides
1 by
11
1srimoorthi
462 views4 slides
Osgi Sun 20080820 by
Osgi Sun 20080820Osgi Sun 20080820
Osgi Sun 20080820Eduardo Pelegri-Llopart
857 views108 slides
Reverse Engineering of Software Architecture by
Reverse Engineering of Software ArchitectureReverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureDharmalingam Ganesan
4.9K views54 slides
From SOA to SCA and FraSCAti by
From SOA to SCA and FraSCAtiFrom SOA to SCA and FraSCAti
From SOA to SCA and FraSCAtiphilippe_merle
1.9K views73 slides
Squash Those IoT Security Bugs with a Hardened System Profile by
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 views20 slides

More Related Content

Similar to BENEVOL'11 - Reverse Engineering Architectural Feature Models

Iris an architecture for cognitive radio networking testbeds by
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 views12 slides
Shopzilla On Concurrency by
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On ConcurrencyRodney Barlow
1.3K views38 slides
43 by
4343
43srimoorthi
270 views6 slides
Introduction to Apache Camel by
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelFuseSource.com
6.5K views33 slides
Shopzilla On Concurrency by
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On ConcurrencyWill Gage
657 views37 slides
What's new in Java 8 by
What's new in Java 8What's new in Java 8
What's new in Java 8jclingan
855 views38 slides

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

Iris an architecture for cognitive radio networking testbeds by 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 views
Shopzilla On Concurrency by Rodney Barlow
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
Rodney Barlow1.3K views
Introduction to Apache Camel by FuseSource.com
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
FuseSource.com6.5K views
Shopzilla On Concurrency by Will Gage
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
Will Gage657 views
What's new in Java 8 by jclingan
What's new in Java 8What's new in Java 8
What's new in Java 8
jclingan855 views
Java 8 by jclingan
Java 8Java 8
Java 8
jclingan694 views
Hazelcast Deep Dive (Paris JUG-2) by Emrah Kocaman
Hazelcast Deep Dive (Paris JUG-2)Hazelcast Deep Dive (Paris JUG-2)
Hazelcast Deep Dive (Paris JUG-2)
Emrah Kocaman474 views
How Java 19 Influences the Future of Your High-Scale Applications .pdf by 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 by 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 views
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007 by Baruch Sadogursky
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Baruch Sadogursky727 views
OSGi-enabled Java EE applications in GlassFish by 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 views
java.util.concurrent for Distributed Coordination, Riga DevDays 2019 by 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 by muayyad alsadi
Introduction to Raft algorithmIntroduction to Raft algorithm
Introduction to Raft algorithm
muayyad alsadi2.1K views
OSGi-enabled Java EE Applications using GlassFish by 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 views
The Open Power ISA: A Summary of Architecture Compliancy Options and the Late... by 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 by 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 views
Mpls conference 2016-data center virtualisation-11-march by 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 views

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

Generative AI for Reengineering Variants into Software Product Lines: An Expe... by
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
57 views28 slides
On anti-cheating in chess, science, reproducibility, and variability by
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 views30 slides
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ... by
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 views68 slides
Mastering Software Variability for Innovation and Science by
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 views73 slides

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

Recently uploaded

"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi by
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi
"AI Startup Growth from Idea to 1M ARR", Oleksandr UspenskyiFwdays
26 views9 slides
Java Platform Approach 1.0 - Picnic Meetup by
Java Platform Approach 1.0 - Picnic MeetupJava Platform Approach 1.0 - Picnic Meetup
Java Platform Approach 1.0 - Picnic MeetupRick Ossendrijver
25 views39 slides
PharoJS - Zürich Smalltalk Group Meetup November 2023 by
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023Noury Bouraqadi
113 views17 slides
"Fast Start to Building on AWS", Igor Ivaniuk by
"Fast Start to Building on AWS", Igor Ivaniuk"Fast Start to Building on AWS", Igor Ivaniuk
"Fast Start to Building on AWS", Igor IvaniukFwdays
36 views76 slides
Five Things You SHOULD Know About Postman by
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About PostmanPostman
25 views43 slides
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...NUS-ISS
28 views35 slides

Recently uploaded(20)

"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi by Fwdays
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi
Fwdays26 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi113 views
"Fast Start to Building on AWS", Igor Ivaniuk by Fwdays
"Fast Start to Building on AWS", Igor Ivaniuk"Fast Start to Building on AWS", Igor Ivaniuk
"Fast Start to Building on AWS", Igor Ivaniuk
Fwdays36 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman25 views
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by NUS-ISS
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
NUS-ISS28 views
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk86 views
Photowave Presentation Slides - 11.8.23.pptx by CXL Forum
Photowave Presentation Slides - 11.8.23.pptxPhotowave Presentation Slides - 11.8.23.pptx
Photowave Presentation Slides - 11.8.23.pptx
CXL Forum126 views
Spesifikasi Lengkap ASUS Vivobook Go 14 by Dot Semarang
Spesifikasi Lengkap ASUS Vivobook Go 14Spesifikasi Lengkap ASUS Vivobook Go 14
Spesifikasi Lengkap ASUS Vivobook Go 14
Dot Semarang35 views
Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet52 views
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen... by NUS-ISS
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
NUS-ISS23 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10165 views
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure by CXL Forum
Astera Labs:  Intelligent Connectivity for Cloud and AI InfrastructureAstera Labs:  Intelligent Connectivity for Cloud and AI Infrastructure
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure
CXL Forum125 views
Samsung: CMM-H Tiered Memory Solution with Built-in DRAM by CXL Forum
Samsung: CMM-H Tiered Memory Solution with Built-in DRAMSamsung: CMM-H Tiered Memory Solution with Built-in DRAM
Samsung: CMM-H Tiered Memory Solution with Built-in DRAM
CXL Forum105 views
JCon Live 2023 - Lice coding some integration problems by Bernd Ruecker
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problems
Bernd Ruecker67 views
Future of Learning - Yap Aye Wee.pdf by NUS-ISS
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdf
NUS-ISS38 views
GigaIO: The March of Composability Onward to Memory with CXL by CXL Forum
GigaIO: The March of Composability Onward to Memory with CXLGigaIO: The March of Composability Onward to Memory with CXL
GigaIO: The March of Composability Onward to Memory with CXL
CXL Forum126 views
Future of Learning - Khoong Chan Meng by NUS-ISS
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan Meng
NUS-ISS31 views
Data-centric AI and the convergence of data and model engineering: opportunit... by Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier29 views

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