SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
WEB2MEXADL: DISCOVERY AND
MAINTAINABILITY VERIFICATION OF
SOFTWARE SYSTEMS ARCHITECTURE
     Juan Castrejón, Rafael Lozano, Genoveva Vargas-Solar
     ITESM-CCM, LIG-LAFMIA
Outline
2


    ¨  Context and motivation
    ¨  Objectives and contribution

    ¨  Software architecture discovery

          ¤  Classificationfunctions
          ¤  Architecture generation
          ¤  Implementation

    ¨  Maintainability verification
    ¨  Conclusions and future work
Introduction
3

                                                     Architecture view

                                                                                     Architecture view
      Architecture view

      Design            Implementation
                 Use                                                                     doX()
                 Case                                                                            doY()

    Deployment             Process




         Software architecture should guide                         The architecture is documented
       software development and maintenance                      in one ore more architecture views

                                            Architecture patterns are used as
                                         reference models for software solutions
Problem
4


    1                         Development of a traditional web application


                                                                       Controller
    2     Use an architecture pattern as reference model
               (Ex: Model-View-Controller (MVC) )
                                                               Model                View


    3



                                                    Is this a view a model or a controller?




                                                           Is anyone maintaining the
    Are we really following the MVC pattern?                 system documentation?
Related work
5


    ¨    In [Corazza 2010] a probabilistic approach is proposed to
          partition software systems into meaningful sub-systems
          ¤  Analysis of variables, methods and class signatures
          ¤  This is a general approach and does not include historical data to
              train the probabilistic classifier
    ¨    In [Maqbool 2007] a Bayesian method is described to
          recover software systems architecture
          ¤  Use of a Naïve Bayes classifier, based on global variables
          ¤  Our approach considers a wider set of variables for the
              discovery of software architecture
    ¨    Software Architecture verification tools
          ¤  Klocwork Architect (http://www.klocwork.com)
          ¤  Structure 101 (http://www.headwaysoftware.com)

    A. Corazza, S. D. Martino, and G. Scanniello, “A probabilistic based approach towards software system clustering,” CSMR , 2010
    O. Maqbool and H. Babri, “Bayesian learning for software architecture recovery,” ICEE, 2007
Outline
6


    ¨  Context and motivation
    ¨  Objectives and contribution

    ¨  Software architecture discovery

          ¤  Classificationfunctions
          ¤  Architecture views
          ¤  Implementation

    ¨  Maintainability verification
    ¨  Conclusions and future work
Objectives and contribution
7


    ¨    Objectives
          ¤  Recover   software architecture for Java web systems
            n  MVC/Clustered   based architecture
            n  Architecture Description Language (ADL)
            n  Scalable Vectors Graphic (SVG)

          ¤  Help   verify their maintainability intent
    ¨    Contribution
          ¤  Probabilistic
                         approach for the generation of
            architecture documentation based on MexADL
Software Architecture
8
     Architecture definition


                     Architecture                                              Architecture
                        view                                                    discovery                   ADL
                                                                                                           Architectural
                                                                                                          documentation
                 MVC Analyzer                                               Web2MexADL
         http://code.google.com/p/mvc-analyzer                      http://code.google.com/p/web2mexadl

                             1                                                       2

             Architecture verification

                                                                                           Verification
                                                                                             results
                                                           Architecture
             ADL                 +                         verification                    Verification
                                                                                             results
             Architectural
            documentation
                                                            MexADL
                                     Source code   http://code.google.com/p/mexadl         Verification
                                       classes                                               results
                                                                3
MexADL
9

                           MexADL                       Traditional software
                                                              life cycle
      Definition
                                             Valid
                     AOP inter-type                      Requirements
                                         interactions
                      declarations
         ADL
                                        Source code
      description
                                          Expected           Design
                                           metrics



                                             Valid
      Verification                       interactions
                     AOP compile-time                   Implementation
          Valid         weaving
      interactions
      verification                        Source          Verification
                       Source code
                                           code
                         analysis
        Metrics
      verification                                        Maintenance
                                          Expected
                                           metrics
Outline
10


     ¨  Context and motivation
     ¨  Objectives and contribution

     ¨  Software architecture discovery

           ¤  Classificationfunctions
           ¤  Architecture views
           ¤  Implementation

     ¨  Maintainability verification
     ¨  Conclusions and future work
Classification functions
11

        MVC-based architecture

       1     Analyze training data                                          2      Generate a classification function
                   Type             Suffix
                                                                                                                MVC


     ExternalAPI                             MVC Layer
                                                                 +          Weka             =                  Layer


                                                                                                               External
                                                                                                 Type                              Suffix
                                                                                                                 API
                                                                       BayesNet classifier
                                                                        Simple estimator                     87% effectivity,
                619 manually classified components                        TAN search
     17 representative projects (Grails, Spring Roo, Play, Struts 2)                              using the training set as a test option




                            Clustered-based architecture

                           1     Rely on clustering algorithms
                                                                                                 Java-
                                          Type
                                       ExternalAPI
                                                          Suffix
                                                         Cluster ID
                                                                                +                 ML
                                     Without training data                       Expectation-Maximization (EM) algorithm
Outline
12


     ¨  Context and motivation
     ¨  Objectives and contribution

     ¨  Software architecture discovery

           ¤  Classificationfunctions
           ¤  Architecture views
           ¤  Implementation

     ¨  Maintainability verification
     ¨  Conclusions and future work
Architecture views
13

          1 Classify web components

                                                         Type
                                                                                              Weka/Java-ML
                                             {java, jsp, xml, html, none}                                    MVC layers/Clusters

                        ASM                           ExternalAPI
                 +
                                     {springmvc, aspectj, hibernate, jdbc, none}
                                                                                              Expectation-
                                                        Suffix                                Maximization
        Java
      bytecode                                                                                               Classification results
                                       {controller, service, validator, context,
                                  servlet, web, aspect, form, dao, manager, none}


          2      Generate architecture views

      MVC layers/Clusters                                             MVC layers/Clusters
                                                                                                  Cluster
                                                                                                 template
                                                                                                                  MexADL
                              +   Graphviz       =                                        +                  =
                                                                                                   MVC
                                                       SVG file                                  template         ADL document
     Classification results                                          Classification results
Outline
14


     ¨  Context and motivation
     ¨  Objectives and contribution

     ¨  Software architecture discovery

           ¤  Classificationfunctions
           ¤  Architecture views
           ¤  Implementation

     ¨  Maintainability verification
     ¨  Conclusions and future work
Implementation
15


      ¨    Deployed as an open-source Eclipse plugin
            ¤  Context   menu linked to WAR files and Eclipse Projects
      ¨    Sample application: SpringSource Petclinic
      1                                                   2

       SVG
                                                                                                    2


      3

     Quality                                                           MVC-based
     metrics                                                           ADL
                                        Clustered-based
                                        ADL                                Full details in:
                                                              http://code.google.com/p/web2mexadl
Outline
16


     ¨  Context and motivation
     ¨  Objectives and contribution

     ¨  Software architecture discovery

           ¤  Classificationfunctions
           ¤  Architecture views
           ¤  Implementation

     ¨  Maintainability verification
     ¨  Conclusions and future work
Maintainability verification
17

                                  Quality metrics report




       After each
      compilation                 Valid interactions report




          Full details in:
http://code.google.com/p/mexadl
Outline
18


     ¨  Context and motivation
     ¨  Objectives and contribution

     ¨  Software architecture discovery

           ¤  Classificationfunctions
           ¤  Architecture views
           ¤  Implementation

     ¨  Maintainability verification
     ¨  Conclusions and future work
Conclusions
19


     ¨    The effectivity of the probabilistic model is
           promising, though further validation is required
     ¨  The generated architecture can help verify the
         maintainability intent of software systems
     ¨  The approach is open to a variety of machine
         learning algorithms, thanks to the flexibility of the
         Weka and Java-ML projects
     ¨  Our implementation can be easily integrated with

         current development environments
Future work
20


     ¨  To improve the classifier effectiveness, the bayesian
         network should be trained with a wider set of web
         projects
     ¨  Support additional languages and platforms

     ¨  Increased support for systems outside the web

         application domain
References
21


     ¨    Research paper
           ¤  J.
                Castrejón, R. Lozano, and G. Vargas-Solar,
              “Web2MexADL: Discovery and Maintainability
              Verification of Software Systems Architecture,” CSMR
              2012 - Tool Demonstration Track
     ¨    Implementation
           ¤  http://code.google.com/p/web2mexadl
Questions
22

Weitere ähnliche Inhalte

Was ist angesagt?

[2015/2016] AADL (Architecture Analysis and Design Language)
[2015/2016] AADL (Architecture Analysis and Design Language)[2015/2016] AADL (Architecture Analysis and Design Language)
[2015/2016] AADL (Architecture Analysis and Design Language)Ivano Malavolta
 
yuchung Resume LA
yuchung Resume LAyuchung Resume LA
yuchung Resume LATom Chung
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
 
Unleash the power of functional chains with Capella 1.3.1
Unleash the power of functional chains with Capella 1.3.1Unleash the power of functional chains with Capella 1.3.1
Unleash the power of functional chains with Capella 1.3.1Obeo
 
From Model to Implementation II
From Model to Implementation IIFrom Model to Implementation II
From Model to Implementation IIReem Alattas
 
01.egovFrame Training Book I
01.egovFrame Training Book I01.egovFrame Training Book I
01.egovFrame Training Book IChuong Nguyen
 
seanresume15-a
seanresume15-aseanresume15-a
seanresume15-aSean Lynch
 
Software Engineering Practice - Configuration management
Software Engineering Practice - Configuration managementSoftware Engineering Practice - Configuration management
Software Engineering Practice - Configuration managementRadu_Negulescu
 
[2015/2016] Architectural languages
[2015/2016] Architectural languages[2015/2016] Architectural languages
[2015/2016] Architectural languagesIvano Malavolta
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Henry Muccini
 
Cocoa encyclopedia
Cocoa encyclopediaCocoa encyclopedia
Cocoa encyclopediaAlex Ali
 
02.egovFrame Development Environment training book
02.egovFrame Development Environment training book02.egovFrame Development Environment training book
02.egovFrame Development Environment training bookChuong Nguyen
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecturedrewz lin
 
Cbt component based technology architectures
Cbt   component based technology architecturesCbt   component based technology architectures
Cbt component based technology architecturesSaransh Garg
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIvano Malavolta
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issuesPrashant Seth
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book IIChuong Nguyen
 

Was ist angesagt? (20)

[2015/2016] AADL (Architecture Analysis and Design Language)
[2015/2016] AADL (Architecture Analysis and Design Language)[2015/2016] AADL (Architecture Analysis and Design Language)
[2015/2016] AADL (Architecture Analysis and Design Language)
 
yuchung Resume LA
yuchung Resume LAyuchung Resume LA
yuchung Resume LA
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Unleash the power of functional chains with Capella 1.3.1
Unleash the power of functional chains with Capella 1.3.1Unleash the power of functional chains with Capella 1.3.1
Unleash the power of functional chains with Capella 1.3.1
 
From Model to Implementation II
From Model to Implementation IIFrom Model to Implementation II
From Model to Implementation II
 
01.egovFrame Training Book I
01.egovFrame Training Book I01.egovFrame Training Book I
01.egovFrame Training Book I
 
seanresume15-a
seanresume15-aseanresume15-a
seanresume15-a
 
Software Engineering Practice - Configuration management
Software Engineering Practice - Configuration managementSoftware Engineering Practice - Configuration management
Software Engineering Practice - Configuration management
 
Msr17c.ppt
Msr17c.pptMsr17c.ppt
Msr17c.ppt
 
[2015/2016] Architectural languages
[2015/2016] Architectural languages[2015/2016] Architectural languages
[2015/2016] Architectural languages
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013
 
Cocoa encyclopedia
Cocoa encyclopediaCocoa encyclopedia
Cocoa encyclopedia
 
02.egovFrame Development Environment training book
02.egovFrame Development Environment training book02.egovFrame Development Environment training book
02.egovFrame Development Environment training book
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
Cbt component based technology architectures
Cbt   component based technology architecturesCbt   component based technology architectures
Cbt component based technology architectures
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGES
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issues
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book II
 
Open Source Soa
Open Source SoaOpen Source Soa
Open Source Soa
 

Ähnlich wie Web2MexADL - CSMR Presentation

Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web EngineeringCarles Farré
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
 
Data Modeling Lineage | Embarcadero Technoloiges
Data Modeling Lineage | Embarcadero TechnoloigesData Modeling Lineage | Embarcadero Technoloiges
Data Modeling Lineage | Embarcadero TechnoloigesMichael Findling
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsHenry Muccini
 
Obeo thales@md day2011
Obeo thales@md day2011Obeo thales@md day2011
Obeo thales@md day2011MDDAY11
 
ALM for SharePoint projects
ALM for SharePoint projectsALM for SharePoint projects
ALM for SharePoint projectsSpiffy
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsProlifics
 
Project P erts2012
Project P erts2012Project P erts2012
Project P erts2012AdaCore
 
"How to create an infrastructure in .NET", Leonid Chetverikov
"How to create an infrastructure in .NET", Leonid Chetverikov"How to create an infrastructure in .NET", Leonid Chetverikov
"How to create an infrastructure in .NET", Leonid ChetverikovFwdays
 
Piacere general presentation
Piacere general presentationPiacere general presentation
Piacere general presentationPIACERE
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMDebora Di Piano
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework EngineeringYoungSu Son
 

Ähnlich wie Web2MexADL - CSMR Presentation (20)

Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Application Migration & Enhancement
Application Migration & EnhancementApplication Migration & Enhancement
Application Migration & Enhancement
 
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
CodeOps - Trainings List
CodeOps - Trainings ListCodeOps - Trainings List
CodeOps - Trainings List
 
Data Modeling Lineage | Embarcadero Technoloiges
Data Modeling Lineage | Embarcadero TechnoloigesData Modeling Lineage | Embarcadero Technoloiges
Data Modeling Lineage | Embarcadero Technoloiges
 
Coding Naked
Coding NakedCoding Naked
Coding Naked
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of Viewpoints
 
Obeo thales@md day2011
Obeo thales@md day2011Obeo thales@md day2011
Obeo thales@md day2011
 
MEx presentation
MEx presentationMEx presentation
MEx presentation
 
MEx presentation
MEx presentationMEx presentation
MEx presentation
 
ALM for SharePoint projects
ALM for SharePoint projectsALM for SharePoint projects
ALM for SharePoint projects
 
Sa 008 patterns
Sa 008 patternsSa 008 patterns
Sa 008 patterns
 
Selenium Camp 2012
Selenium Camp 2012Selenium Camp 2012
Selenium Camp 2012
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 
Project P erts2012
Project P erts2012Project P erts2012
Project P erts2012
 
"How to create an infrastructure in .NET", Leonid Chetverikov
"How to create an infrastructure in .NET", Leonid Chetverikov"How to create an infrastructure in .NET", Leonid Chetverikov
"How to create an infrastructure in .NET", Leonid Chetverikov
 
Piacere general presentation
Piacere general presentationPiacere general presentation
Piacere general presentation
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALM
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 

Kürzlich hochgeladen

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Kürzlich hochgeladen (20)

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
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
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

Web2MexADL - CSMR Presentation

  • 1. WEB2MEXADL: DISCOVERY AND MAINTAINABILITY VERIFICATION OF SOFTWARE SYSTEMS ARCHITECTURE Juan Castrejón, Rafael Lozano, Genoveva Vargas-Solar ITESM-CCM, LIG-LAFMIA
  • 2. Outline 2 ¨  Context and motivation ¨  Objectives and contribution ¨  Software architecture discovery ¤  Classificationfunctions ¤  Architecture generation ¤  Implementation ¨  Maintainability verification ¨  Conclusions and future work
  • 3. Introduction 3 Architecture view Architecture view Architecture view Design Implementation Use doX() Case doY() Deployment Process Software architecture should guide The architecture is documented software development and maintenance in one ore more architecture views Architecture patterns are used as reference models for software solutions
  • 4. Problem 4 1 Development of a traditional web application Controller 2 Use an architecture pattern as reference model (Ex: Model-View-Controller (MVC) ) Model View 3 Is this a view a model or a controller? Is anyone maintaining the Are we really following the MVC pattern? system documentation?
  • 5. Related work 5 ¨  In [Corazza 2010] a probabilistic approach is proposed to partition software systems into meaningful sub-systems ¤  Analysis of variables, methods and class signatures ¤  This is a general approach and does not include historical data to train the probabilistic classifier ¨  In [Maqbool 2007] a Bayesian method is described to recover software systems architecture ¤  Use of a Naïve Bayes classifier, based on global variables ¤  Our approach considers a wider set of variables for the discovery of software architecture ¨  Software Architecture verification tools ¤  Klocwork Architect (http://www.klocwork.com) ¤  Structure 101 (http://www.headwaysoftware.com) A. Corazza, S. D. Martino, and G. Scanniello, “A probabilistic based approach towards software system clustering,” CSMR , 2010 O. Maqbool and H. Babri, “Bayesian learning for software architecture recovery,” ICEE, 2007
  • 6. Outline 6 ¨  Context and motivation ¨  Objectives and contribution ¨  Software architecture discovery ¤  Classificationfunctions ¤  Architecture views ¤  Implementation ¨  Maintainability verification ¨  Conclusions and future work
  • 7. Objectives and contribution 7 ¨  Objectives ¤  Recover software architecture for Java web systems n  MVC/Clustered based architecture n  Architecture Description Language (ADL) n  Scalable Vectors Graphic (SVG) ¤  Help verify their maintainability intent ¨  Contribution ¤  Probabilistic approach for the generation of architecture documentation based on MexADL
  • 8. Software Architecture 8 Architecture definition Architecture Architecture view discovery ADL Architectural documentation MVC Analyzer Web2MexADL http://code.google.com/p/mvc-analyzer http://code.google.com/p/web2mexadl 1 2 Architecture verification Verification results Architecture ADL + verification Verification results Architectural documentation MexADL Source code http://code.google.com/p/mexadl Verification classes results 3
  • 9. MexADL 9 MexADL Traditional software life cycle Definition Valid AOP inter-type Requirements interactions declarations ADL Source code description Expected Design metrics Valid Verification interactions AOP compile-time Implementation Valid weaving interactions verification Source Verification Source code code analysis Metrics verification Maintenance Expected metrics
  • 10. Outline 10 ¨  Context and motivation ¨  Objectives and contribution ¨  Software architecture discovery ¤  Classificationfunctions ¤  Architecture views ¤  Implementation ¨  Maintainability verification ¨  Conclusions and future work
  • 11. Classification functions 11 MVC-based architecture 1 Analyze training data 2 Generate a classification function Type Suffix MVC ExternalAPI MVC Layer + Weka = Layer External Type Suffix API BayesNet classifier Simple estimator 87% effectivity, 619 manually classified components TAN search 17 representative projects (Grails, Spring Roo, Play, Struts 2) using the training set as a test option Clustered-based architecture 1 Rely on clustering algorithms Java- Type ExternalAPI Suffix Cluster ID + ML Without training data Expectation-Maximization (EM) algorithm
  • 12. Outline 12 ¨  Context and motivation ¨  Objectives and contribution ¨  Software architecture discovery ¤  Classificationfunctions ¤  Architecture views ¤  Implementation ¨  Maintainability verification ¨  Conclusions and future work
  • 13. Architecture views 13 1 Classify web components Type Weka/Java-ML {java, jsp, xml, html, none} MVC layers/Clusters ASM ExternalAPI + {springmvc, aspectj, hibernate, jdbc, none} Expectation- Suffix Maximization Java bytecode Classification results {controller, service, validator, context, servlet, web, aspect, form, dao, manager, none} 2 Generate architecture views MVC layers/Clusters MVC layers/Clusters Cluster template MexADL + Graphviz = + = MVC SVG file template ADL document Classification results Classification results
  • 14. Outline 14 ¨  Context and motivation ¨  Objectives and contribution ¨  Software architecture discovery ¤  Classificationfunctions ¤  Architecture views ¤  Implementation ¨  Maintainability verification ¨  Conclusions and future work
  • 15. Implementation 15 ¨  Deployed as an open-source Eclipse plugin ¤  Context menu linked to WAR files and Eclipse Projects ¨  Sample application: SpringSource Petclinic 1 2 SVG 2 3 Quality MVC-based metrics ADL Clustered-based ADL Full details in: http://code.google.com/p/web2mexadl
  • 16. Outline 16 ¨  Context and motivation ¨  Objectives and contribution ¨  Software architecture discovery ¤  Classificationfunctions ¤  Architecture views ¤  Implementation ¨  Maintainability verification ¨  Conclusions and future work
  • 17. Maintainability verification 17 Quality metrics report After each compilation Valid interactions report Full details in: http://code.google.com/p/mexadl
  • 18. Outline 18 ¨  Context and motivation ¨  Objectives and contribution ¨  Software architecture discovery ¤  Classificationfunctions ¤  Architecture views ¤  Implementation ¨  Maintainability verification ¨  Conclusions and future work
  • 19. Conclusions 19 ¨  The effectivity of the probabilistic model is promising, though further validation is required ¨  The generated architecture can help verify the maintainability intent of software systems ¨  The approach is open to a variety of machine learning algorithms, thanks to the flexibility of the Weka and Java-ML projects ¨  Our implementation can be easily integrated with current development environments
  • 20. Future work 20 ¨  To improve the classifier effectiveness, the bayesian network should be trained with a wider set of web projects ¨  Support additional languages and platforms ¨  Increased support for systems outside the web application domain
  • 21. References 21 ¨  Research paper ¤  J. Castrejón, R. Lozano, and G. Vargas-Solar, “Web2MexADL: Discovery and Maintainability Verification of Software Systems Architecture,” CSMR 2012 - Tool Demonstration Track ¨  Implementation ¤  http://code.google.com/p/web2mexadl

Hinweis der Redaktion

  1. Hello, myname is Juan Carlos Castrejónandtoday I’m going to talk about Web2MexADL, a tool intended to discover and help maintain the architecture of software systems, in particular web applicationsThiswork is part of a collaborationbetweentheTecnológico de Monterrey in Mexicoand a couple of Informaticlaboratories of Grenoble in France
  2. First, I’m going to describe the general context and the motivation of our toolThen, I’ll explain the particular objectives and the contribution of web2mexadlI’ll also describe the discovery process and the details of our current implementation. Then, I’m going to demonstrate its use in a sample scenario, showing how it can help verify the maintainability of web systemsFinally, I’ll present our conclusions and future work
  3. Let’s begin by talking about a common scenario in software engineering [advance!]We can start by developing particular classes (or components) to implement a required logic in oursystem [advance!]. These components are usually grouped into modules, according to the different functionalities of ourapplication [advance!]. As the system grows larger, we usually develop more than one module, and define interactions between them.[advance!] The representation of the system components, and the relations between them, is documented in one or more architecture views. These views can vary according to the development process that weuse [advance!], or in the particular intent that we try to communicate [advance!]. The architecture views can then guide software development and maintenance.We can rely on one or more architecture patterns to identify the types of components that are part of our system. These patterns convey common structures and interactions that are proved to solve particular requirements.In summary, [advance!] software architecture should guide software development and maintenance. For this, the architecture needs be documented in one ore more architecture views. And for the generarion of these views, we can take architecture patterns as reference models.
  4. However, [advance!] when we try to apply this theory to the development of a real-world web application, we may face several problems.First, [advance!] we need to choose an architecture pattern that can serve as reference model for our application. A common choice for web applications is the Model-View-Controller (MVC) pattern, due to its natural separation of business, presentation and control logic.Assuming we rely on the MVC pattern, we are probably going to face the following problems:- [advance!] During system development, how can we be sure that we are really following the MVC pattern?[advance!] For the development of a particular class, how can we know if it’s a model, a view or a controller? [advance!] And finally, can we rely on up-to-date documentation to make this analysis?
  5. Software architecture discovery is a popular topic both in research and industrial environments. In particular, the use of probabilistic models to analyze the source code of software systems is a wide spread technique among reverse engineering tools. These methods differ on the combination of random variables, algorithms, and on the nature of training data. For example, the approach described in [Corazza 2010] builds the probabilistic model based on variables, methods and class signatures. However, this model is intended for general use and is not trained with historical data of any particular domain.In [Maqbool 2007] a similar approach is proposed, based on the analysis of global variables and on the definition of a Naïve Bayes classifier. In comparisson, our tool relies on a wider set of variables for the discovery process and is open to a variety of probabilistic models.To recover software systems architecture, we can also rely on open-source or commercial tools such as Klocwork Architect and Structure 101. These tools deliver a good starting point for the analysis of software systems. However, the advantage of Web2MexADL is that the resulting documentation is based on architecture descriptions, that can later be used to verify the maintainability of the system under analysis.
  6. Let’s talk about the specific objectives and contribution of our tool
  7. Ourtool has two main objectives.The first one, is to recover software architecture for Java web systems, based either on the MVC pattern or on the identification of clusters. The recovered architecture is represented in two architecture views: an Architecture Description Language (ADL) and a Scalable Vectors Graphic (SVG) file. The former includes the system components, their expected interactions and the information required to verify its maintainability intent. The latter includes the classification of each system component, either in MVC layers or Clusters.The second objective of our tool is to help verify the maintainability of the recovered architecture. For this, we rely on the MexADL verification approach. I’ll explain this approach in the following slides.The main contribution of our tool is a probabilistic approach for the generation of architecture documentation based on MexADL.
  8. [advance!] Our tool is not an isolated effort. Web2MexADL is part of an initiative intended to support software development based on architecturenotations, andincludestheparticipation of universities in Mexicoand in France [advance!] This initiative includes tools for software architecture definition, discovery and verification. All of these tools are open-source and can be easily added to current Java developmentenvironments, bymeans of Eclipseplugins
  9. In particular, our tool relies on MexADL to help verify themaintainability of software systems.MexADLis averification approach, based on the ISO/IEC SQuaRE quality model, that relies on architecture documentation (ADL) containing quality metrics and valid relations between system components. These metrics and relations are then verified using Aspect Oriented Programming.Extension of xADL, from the university of california, irvineMaintainability: degree of effectiveness and efficiency with which a software product can be modifiedThe result of the maintainability verification are two HTML reports, generated after each system compilation. These reports contain the quality metrics and interactions analysis.
  10. Now I’ll explain the details of the probabilistic model used by our tool
  11. Remember that the objective of our tool is to recover software architecture based either on the MVC pattern or in a clustered distribution. [advance!] For the recovery of MVC-based architectures, we rely on a technique known as Supervised learning. This technique requires training data from which a classification function can be inferred. The results of this classification are layers of the MVC pattern.[advance!] To obtain the training data, we analyzed popular Java web development frameworks and representative applications developed with them. In particular, we relied on the Grails, Spring Roo, Play and Struts 2 frameworks, and on 17 sample applications included in their distributions. In total, we analyzed 619 source code artifacts, including java classes, jsp, css, and html files.[advance!] The analysis was conducted using the following 4 variables : ExternalAPI, Type, Suffix and MVC Layer. We classified the 619 source code artifacts by conducting a manual analysis of each artifact and by chosing appropriate values for their 4 associated variables.[advance!] The generation of the classification function was conducted using the Weka project, which is a tool that provides a collection of machine learning algorithms . For the current implementation, we chose the following configuration for the classification function: BayesNet classifier, Simple estimator and TAN search algorithm. [advance!] With this configuration, the following bayesian network is generated. It has a 87% effectivity, using the training set as a test option.However, our tool doesn’t depend on this particular classification function. Using Weka, we could create another probabilistic model based on the same training data. This provides a great flexibility to our tool.[advance!] The recovery of a Clustered-based architecture is simpler in comparisson to the MVC approach. [advance!] [advance!] We use the same 4 variables, but we don’t require a training set. [advance!] We rely on the execution of clustering algorithms through the Java-ML project, which is an open-source tool that includes the implementation of machine learning algorithms. In the current implementation, we rely on the Expectation-Maximization algorithm to identify clusters, but as with the MVC approach, we are not tied to this particular algorithm. We can change to other clustering algorithms using the Java-ML interface.
  12. Now I’ll explain the details of the probabilistic model used by our tool
  13. [advance!][advance!] To recover the architecture of a particular web system, its compiled artifacts are analyzed using the ASM framework, which is a library that allows the analysis of Java bytecode. [advance!] Each artifact is analyzed in order to assign values to the Type, ExternalAPI and Suffix variables. [advance!] Once they are assigned a value, this information is sent either to the Bayesian network or to the EM algorithm, [advance!] in order to classify into a MVC or Clustered-based architecture, respectively. The classification is executed using Weka and Java-ML. [advance!] Our tool uses the classification results to generate two architecture views. [advance!] The first one is a SVG file that depicts the classification of each artifact, using a color notation. [advance!] To generate this file we rely on the Graphviz project, which is an open source graph visualization project. [advance!] The second architecture view is an ADL document that contains the system components (that is MVC layers or clusters) and their proposed interactions. [advance!] This document is generated using templates included in our tool. These templates also include a set of proposed values for the quality metrics that are required by MexADL.
  14. Now it’s time to demonstrate the implementation of our tool by using a sample scenario
  15. Our tool is deployed as an open-source Eclipse plugin, that associates a context-menu to WAR files and Eclipse projects.[advance!] To demonstrate its use, I’m going to rely on the SpringSource Petclinic application, a classic example of Java web developmentIn particular, wearegoing to seehow to generatethe [advance!] SVG and [advance!] [advance!] ADL architectureviews[Tool demonstration, according to the following video steps: - Summary of {Develop web application – Generate WAR file} - Discover MVC architecture - Discover Cluster architecture - Generate MexADL artifacts][advance!] You can findmoreinformation in theprojectwebsite
  16. I’m going to describe how the recovered architecture can help verify the maintainability of web systems.
  17. [advance!] After each system compilation, two HTML reports are generated.[advance!] The first report contains the analysis of the quality metrics associated to the system components.[advance!] The second one, depicts violations to the expected interactions between system components.[Tool demonstration, according to the following video steps: - Configure project - Generate MexADL reports]
  18. Conclusions and Future work
  19. Conclusions
  20. Future work
  21. Research paperImplementation