SlideShare une entreprise Scribd logo
1  sur  108
Télécharger pour lire hors ligne
The 5 questions you always asked yourself about


 Software
Architecture
 Recovery
             Mircea Lungu
           Faculty of Informatics,
            University of Lugano


                October 2008
5 Questions about SAR




Software Architecture Recovery - Mircea Lungu, 2008
5 Questions about SAR

       • What is it?




Software Architecture Recovery - Mircea Lungu, 2008
5 Questions about SAR

       • What is it?
       • Why is it important?




Software Architecture Recovery - Mircea Lungu, 2008
5 Questions about SAR

       • What is it?
       • Why is it important?
       • How does it work?



Software Architecture Recovery - Mircea Lungu, 2008
5 Questions about SAR

       • What is it?
       • Why is it important?
       • How does it work?
       • Who does it?


Software Architecture Recovery - Mircea Lungu, 2008
5 Questions about SAR

       • What is it?
       • Why is it important?
       • How does it work?
       • Who does it?
       • Where is it headed?

Software Architecture Recovery - Mircea Lungu, 2008
What?


• Architecture Recovery
• Architecture
• Viewpoints
Architecture recovery ...




Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...
                                                      or Architecture Reconstruction,




Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...
                                                      or Architecture Reconstruction,
                                                               or Reverse Architecting




Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...
                                                      or Architecture Reconstruction,
                                                               or Reverse Architecting
       [...] an archaeological activity
       where the analysts must
       unveil all the historical
       design decisions by looking at
       the existing implementation
       and documentation of the
       system.

       [ Riva’00 ]


Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...




Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...

     ... the flavor of reverse
     engineering that
     concerns all activities for
     making existing of software
     architectures explicit.

     [Krikhaar’97]




Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...

     ... the flavor of reverse
     engineering that                                 ... the techniques and
     concerns all activities for                      processes used to uncover
     making existing of software                      a system’s architecture
     architectures explicit.                          from available information.

                                                      [Jazayeri’00]
     [Krikhaar’97]




Software Architecture Recovery - Mircea Lungu, 2008
Architecture...




Software Architecture Recovery - Mircea Lungu, 2008
Architecture...
   [...] the structure or
   structures of the system,
   which comprise software
   elements, the externally
   visible properties of those
   elements, and the
   relationships among them.

   [Bass et al.’03]




Software Architecture Recovery - Mircea Lungu, 2008
Architecture...
   [...] the structure or
   structures of the system,
   which comprise software
   elements, the externally                           [...] the fundamental
   visible properties of those                        organization of a system,
   elements, and the                                  embodied in its components,
   relationships among them.                          their relationships to each
                                                      other and the environment, and the
   [Bass et al.’03]                                   principles governing its design and
                                                      evolution.

                                                      [ANSI/IEEE Std. 1471-2000]
Software Architecture Recovery - Mircea Lungu, 2008
Architecture...                                                  For many others
                                                                       visit
                                                               www.sei.cmu.edu/architecture/
                                                                     definitions.html
   [...] the structure or
   structures of the system,
   which comprise software
   elements, the externally                           [...] the fundamental
   visible properties of those                        organization of a system,
   elements, and the                                  embodied in its components,
   relationships among them.                          their relationships to each
                                                      other and the environment, and the
   [Bass et al.’03]                                   principles governing its design and
                                                      evolution.

                                                      [ANSI/IEEE Std. 1471-2000]
Software Architecture Recovery - Mircea Lungu, 2008
What is the difference
                                               between architecture and
                                                                  design?



Software Architecture Recovery - Mircea Lungu, 2008
Architectural Styles

       • Recurring architectural
             solutions
       • Examples
        • Pipes and filters
        • Blackboard
        • Peer-to-peer
        • ...                                         a
Software Architecture Recovery - Mircea Lungu, 2008
Architectural Styles

       • Recurring architectural
             solutions
       • Examples
        • Pipes and filters
        • Blackboard
        • Peer-to-peer
        • ...                                         a
Software Architecture Recovery - Mircea Lungu, 2008
Architectural Styles

       • Recurring architectural
             solutions
       • Examples
        • Pipes and filters
        • Blackboard                                    SAR is not preoccupied with
        • Peer-to-peer                                recovering the architectural
        • ...                                              style of the system.
                                                                                      a
Software Architecture Recovery - Mircea Lungu, 2008
Viewpoints

       • Viewpoints catalogues
        • Kruchten’95
        • Hofmeister’99
       • Ad-hoc viewpoints
        • Smolander’01
        • Conway’s law
Software Architecture Recovery - Mircea Lungu, 2008
Viewpoints

       • Viewpoints catalogues
        • Kruchten’95
        • Hofmeister’99
       • Ad-hoc viewpoints
        • Smolander’01                                Most of the SAR processes focus on
        • Conway’s law                                   recovering component-and-
                                                            connector viewpoints.

Software Architecture Recovery - Mircea Lungu, 2008
What is the relation between
                            architecture recovery and reverse
                                                 engineering?



Software Architecture Recovery - Mircea Lungu, 2008
Why?


• Reasons
• Benefits
• Goals
• Challenges
Architecture erosion

             [...] the documentation about the internal architecture
             becomes rapidly obsolete. To make changes,
             developers need a clear understanding of the
             underlying architecture of the products.

             C. Riva,
             Software Architecture Group, Nokia Research




Software Architecture Recovery - Mircea Lungu, 2008
Architecture Evolution
                                                      One frequently
                                                      accompanying property of
                                                      evolution is an
                                                      increasing brittleness
                                                      of the system -- that is, an
                                                      increasing resistance
                                                      to change, or at least to
                                                      changing gracefully.

                                                      [Perry & Wolf ’92]


Software Architecture Recovery - Mircea Lungu, 2008
Architecture Evolution
                                                      One frequently
                                                      accompanying property of
                                                      evolution is an
            • Architectural drift                     increasing brittleness
                                                      of the system -- that is, an
            • Architectural erosion                   increasing resistance
                                                      to change, or at least to
            • Architectural upgrade                   changing gracefully.

                                                      [Perry & Wolf ’92]


Software Architecture Recovery - Mircea Lungu, 2008
Conceptual vs. As-is
 architecture
                                                      Software systems must
                                                      evolve or become
                                                      obsolete [...]

                                                      [Lehmann’80]




Software Architecture Recovery - Mircea Lungu, 2008
Conceptual vs. As-is
 architecture
                                                               Software systems must
         Change In
        Environment
                                                               evolve or become
                                                               obsolete [...]
                                       Change In
                                         Code
      Environment                                       Code
                                                               [Lehmann’80]
                                                   Change In
                                                     Code

                           Architecture
             Change In
            Architecture

                              As-Is
                           Architecture




Software Architecture Recovery - Mircea Lungu, 2008
Conceptual vs. As-is
 architecture
                                                               Software systems must
         Change In
        Environment
                                                               evolve or become
                                                               obsolete [...]
                                       Change In
                                         Code
      Environment                                       Code
                                                               [Lehmann’80]
                                                   Change In
                                                     Code

             Change In
            Architecture
                           Architecture
                                                               There is a need for
                              As-Is
                           Architecture
                                                                  enforcing the
                                                                architecture of a
                                                                     system
Software Architecture Recovery - Mircea Lungu, 2008
Conceptual vs. As-is
 architecture
                                                                  Software systems must
                                                                  evolve or become
                           Architectural
         Change In           Firewall
        Environment

                                                                  obsolete [...]
                                       Change In
                                         Code
     Environment                                          Code
                                                                  [Lehmann’80]
                                                      Change In
                                                        Code


             Change In
            Architecture
                            Architecture
                                                                  There is a need for
                                                                     enforcing the
                                                                   architecture of a
                                                                        system
Software Architecture Recovery - Mircea Lungu, 2008
Consultant’s POV

                                                      [...] Frequently we
                                                      are asked to analyze
       • Missing architectural                        a systemʼs software
         specifications                                architecture and are
       • Support the                                  given only its code
        • Re-documentation                            and the (limited) time

        • Reengineering                               of a designer.

                                                      [Kazman et al.’99]


Software Architecture Recovery - Mircea Lungu, 2008
Benefits


            • Stepping stone towards reengineering
            • Supports detecting components for reuse


Software Architecture Recovery - Mircea Lungu, 2008
Challenges

              • What process can support uncovering the
                     software architecture within a system?
              • How much can you automate in this process?
              • What are the limits of architecture recovery?
                     (e.g., Recovering all design decisions).



Software Architecture Recovery - Mircea Lungu, 2008
How?

• Generic approach
• Processes
 • Bottom-up
 • Top-down
 • Integrated
Phases of Reconstruction
                                                       Knowledge     Information
        Data Extraction
                                                      Organization   Exploration




                                                                       [Tilley et al.’96]
Software Architecture Recovery - Mircea Lungu, 2008
The Meta-
 Phases of Reconstruction                                              Architecture of
                                                                     Architecture Recovery
                                                                             Tools

                                                       Knowledge         Information
        Data Extraction
                                                      Organization       Exploration




                                                                            [Tilley et al.’96]
Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction




Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction

       • Source Code (static analysis)




Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction

       • Source Code (static analysis)
       • Historical Information




Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction

       • Source Code (static analysis)
       • Historical Information
       • Human Expertise



Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction

       • Source Code (static analysis)
       • Historical Information
       • Human Expertise
       • Runtime Behavior (dynamic analysis)


Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction

       • Source Code (static analysis)
       • Historical Information
       • Human Expertise
       • Runtime Behavior (dynamic analysis)
       • Physical Organization

Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction

       • Source Code (static analysis)
       • Historical Information
       • Human Expertise
       • Runtime Behavior (dynamic analysis)
       • Physical Organization
       • Social Organization
Software Architecture Recovery - Mircea Lungu, 2008
[Pollet et al.’07]
Software Architecture Recovery - Mircea Lungu, 2008
Facts extracted from
 code




                                                      [Guo et al.’99]
Software Architecture Recovery - Mircea Lungu, 2008
Knowledge Abstraction

       • Get rid of useless information
        • Aggregation
          • Directory
          • Packages
          • Clustering
        • Filtering
                                                      [Lungu et al.’05]
Software Architecture Recovery - Mircea Lungu, 2008
p

                                                                       n
                                                                     -u


                                                                     w
                                                       om


                                                                  do


                                                                   d
                                                                ri
                                                               p-
                                                       tt




                                                             yb
                                                      Bo


                                                            To

                                                            H
           Processes




Software Architecture Recovery - Mircea Lungu, 2008
p

                                                                           n
                                                                         -u


                                                                         w
                                                            om


                                                                      do


                                                                       d
                                                                    ri
                                                                   p-
                                                           tt




                                                                 yb
                                                         Bo


                                                                To

                                                                H
           Processes




                                                      [Pollet et al.’07]
Software Architecture Recovery - Mircea Lungu, 2008
• Start with low-level fact
  1. Bottom-up                                          extraction
   Approaches •                                         Aggregate the information
                                                        to higher abstraction
                                                        levels either manually or
                                                        automatically



Software Architecture Recovery - Mircea Lungu, 2008
Tools 4 bottom-up
       • Arch
       • ArchView
       • ArcVis
       • ARMIN
       • BUNCH
       • DALI
       • Gupro
       • Intensive
       • Rigi
       • Softwarenaut
Software Architecture Recovery - Mircea Lungu, 2008
Arch


       • Developed at Siemens Research
       • Mavericks - individual procedures in the wrong
             modules
       • Heuristic modularization advice

                                                      [Schwanke’91]
Software Architecture Recovery - Mircea Lungu, 2008
Archview




                                                      [Pinzger’05]
Software Architecture Recovery - Mircea Lungu, 2008
Archview




                                                      [Pinzger’05]
Software Architecture Recovery - Mircea Lungu, 2008
Dali
                                                                          Rigi, IAPR (Interactive
                                                                          Architecture Pattern
                                                                          Recognition) [12], RMTool [14],
                                                                          and Perl
                                                                          for analysis and manipulation.




             Lightweight Source Model Extraction      PostgreSQL (based
             (LSME), Imagix, make, and Perl           on POSTGRES) for
             for extraction of source model           model storage,
             information for C and C++,


Software Architecture Recovery - Mircea Lungu, 2008
Advertising break!




Software Architecture Recovery - Mircea Lungu, 2008
Advertising break!

                                                      • Aggregation: based on
                                                        directory structure,
                                                        clustering, package structure




Software Architecture Recovery - Mircea Lungu, 2008
Advertising break!

                                                      • Aggregation: based on
                                                        directory structure,
                                                        clustering, package structure
                                                      • Filtering: based on
                                                        evolutionary information,
                                                        metrics



Software Architecture Recovery - Mircea Lungu, 2008
Advertising break!

                                                      • Aggregation: based on
                                                        directory structure,
                                                        clustering, package structure
                                                      • Filtering: based on
                                                        evolutionary information,
                                                        metrics
                                                      • Visualization: polymetric
Software Architecture Recovery - Mircea Lungu, 2008
Softwarenaut




Software Architecture Recovery - Mircea Lungu, 2008
Softwarenaut




Software Architecture Recovery - Mircea Lungu, 2008
Softwarenaut




Software Architecture Recovery - Mircea Lungu, 2008
Softwarenaut




Software Architecture Recovery - Mircea Lungu, 2008
• Start with previous high-
     2. Top-down                                        level knowledge about the
                                                        application domain
      approaches
                                                      • Formulate hypotheses and
                                                        verify them against the
                                                        source code



Software Architecture Recovery - Mircea Lungu, 2008
Tools 4 top-down


       • RMTool
       • Pulse
       • W4


Software Architecture Recovery - Mircea Lungu, 2008
Reflexion Models


                                                      Marco...




Software Architecture Recovery - Mircea Lungu, 2008
Pulse


       • Fraunhofer Institute for ESE
       • Architecture- and Domain-Oriented Re-engineering
       • Product Line Software Engineering


Software Architecture Recovery - Mircea Lungu, 2008
Pulse




Software Architecture Recovery - Mircea Lungu, 2008
Pulse




Software Architecture Recovery - Mircea Lungu, 2008
Pulse




Software Architecture Recovery - Mircea Lungu, 2008
Pulse




Software Architecture Recovery - Mircea Lungu, 2008
W4
                                                      By distilling pearls of
                                                      wisdom stored deep inside
                                                      source control systems, we
                                                      can assist developers to
                                                      understand the state of
                                                      their project and plan
                                                      confidently for its future

                                                      [Hassan & Holt’04]




Software Architecture Recovery - Mircea Lungu, 2008
W4
                                                      By distilling pearls of
                                                      wisdom stored deep inside
                                                      source control systems, we
                                                      can assist developers to
                                                      understand the state of
                                                      their project and plan
       • Which,Who,Why,When                           confidently for its future

                                                      [Hassan & Holt’04]




Software Architecture Recovery - Mircea Lungu, 2008
• Combine top-down with
       3. Hybrid                                        bottom-up

      Approaches                                      • Abstract low-level
                                                        information
                                                      • Refine high-level
                                                        information


Software Architecture Recovery - Mircea Lungu, 2008
Tools 4 hybrid
       • Albortz
       • ARM
       • Bauhaus
       • Cacophony
       • DiscoTect
       • ManSART
       • PBS/SBS
       • Symphony / Nimeta
Software Architecture Recovery - Mircea Lungu, 2008
ManSART


       • Mitre Corporation
       • Used to provide architecture
             level consulting in multiple
             military systems




Software Architecture Recovery - Mircea Lungu, 2008
ManSART




                                                      [Harris et al.’ 95]
Software Architecture Recovery - Mircea Lungu, 2008
Discotect


       • Examine runtime behavior
       • Big problem: abstraction gap
       • State machines to map between implementation-
             level events and architectural operations



                                                         [Yan et al.’04]
Software Architecture Recovery - Mircea Lungu, 2008
Who?


• SEI at Carnegie Mellon
• Hasso-Plattner Institute
• Nokia Research Center
Case Study #1

       •     Author: CMU Software Engineering Institute

       •     Subject: VANISH, 50KLOC

       •     Tools: Dali, ARMIN

       •     Goals

            •     generate several architectural views

            •     determine if strict layering is in place

       •     Assumptions: little documentation, no developers available



Software Architecture Recovery - Mircea Lungu, 2008
#1: Results




Software Architecture Recovery - Mircea Lungu, 2008
#1: Results




Software Architecture Recovery - Mircea Lungu, 2008
#1: Results




Software Architecture Recovery - Mircea Lungu, 2008
#1: Results




Software Architecture Recovery - Mircea Lungu, 2008
#1: Results




Software Architecture Recovery - Mircea Lungu, 2008
Case Study #2
       •     Author: Hasso-Plattner Institute

       •     Subject: Apache, 100KLOC C code

       •     Participants: 60 4th semester students

       •     32 topics assigned

       •     Sources

            •     documentation (well written, little info about the conceptual architecture)

            •     “Writing Apache modules with Perl”

       •     Results: overview analysis, detailed state diagrams, memory management

       •     Time:: half a semester for getting accustomed with the domain and half for analyzing the
             implementation


Software Architecture Recovery - Mircea Lungu, 2008
#2: Results




           www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -
Software Architecture Recovery - Mircea Lungu, 2008
#2: Results




           www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -
Software Architecture Recovery - Mircea Lungu, 2008
#2: Results




           www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -
Software Architecture Recovery - Mircea Lungu, 2008
#2: Results




           www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -
Software Architecture Recovery - Mircea Lungu, 2008
#2: Results




           www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -
Software Architecture Recovery - Mircea Lungu, 2008
Case Study #3

       • Author: Nokia Research
       • System: Embedded Software Written in C
       • Existing Reference Architecture
       • Scripts that extract information about messages

Software Architecture Recovery - Mircea Lungu, 2008
#3: Results




Software Architecture Recovery - Mircea Lungu, 2008
#3: Results




Software Architecture Recovery - Mircea Lungu, 2008
#3: Results




Software Architecture Recovery - Mircea Lungu, 2008
#3: Results




Software Architecture Recovery - Mircea Lungu, 2008
Others


       • “Linux as a Case Study, it’s Extracted Architecture”,
             Bowman et al.
       • “Static evaluation of Software Architectures”, Knodel et
             al.




Software Architecture Recovery - Mircea Lungu, 2008
Where?



• Future of SAR
• Further Reading
The Future of SAR




Software Architecture Recovery - Mircea Lungu, 2008
The Future of SAR

       • Integrating with forward engineering (continuous
             supervision, architectural firewalls, etc.)




Software Architecture Recovery - Mircea Lungu, 2008
The Future of SAR

       • Integrating with forward engineering (continuous
             supervision, architectural firewalls, etc.)
       • Collaborative architecture recovery



Software Architecture Recovery - Mircea Lungu, 2008
The Future of SAR

       • Integrating with forward engineering (continuous
             supervision, architectural firewalls, etc.)
       • Collaborative architecture recovery
       • Product family architecture


Software Architecture Recovery - Mircea Lungu, 2008
The Future of SAR

       • Integrating with forward engineering (continuous
             supervision, architectural firewalls, etc.)
       • Collaborative architecture recovery
       • Product family architecture
       • Ecosystem architecture

Software Architecture Recovery - Mircea Lungu, 2008
Further Reading
       • Annotated Bibliography
                       www.inf.unisi.ch/phd/lungu/recovery

       • Essays on Architecture
                       http://www.sei.cmu.edu/architecture/essays.html

       • PhD Theses: Pinzger’05, Krikhaar’99
       • Survey Articles: Pollet’07

Software Architecture Recovery - Mircea Lungu, 2008
THE END



Software Architecture Recovery - Mircea Lungu, 2008

Contenu connexe

Tendances

Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
Hayim Makabee
 

Tendances (20)

Algorithmic Software Cost Modeling
Algorithmic Software Cost ModelingAlgorithmic Software Cost Modeling
Algorithmic Software Cost Modeling
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse Engineering
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Class notes
Class notesClass notes
Class notes
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Ch 3 software quality factor
Ch 3 software quality factorCh 3 software quality factor
Ch 3 software quality factor
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
 
Software design
Software designSoftware design
Software design
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Software Architecture Styles
Software Architecture StylesSoftware Architecture Styles
Software Architecture Styles
 
Software evolution and maintenance
Software evolution and maintenanceSoftware evolution and maintenance
Software evolution and maintenance
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineering
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
 
Ch15 software reuse
Ch15 software reuseCh15 software reuse
Ch15 software reuse
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
 
Improving software economics
Improving software economicsImproving software economics
Improving software economics
 
Lect4 software economics
Lect4 software economicsLect4 software economics
Lect4 software economics
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
 

En vedette

Sysmax Risk Management Pptx
Sysmax Risk Management PptxSysmax Risk Management Pptx
Sysmax Risk Management Pptx
chrissim
 
Permen2012 ttg pendaftaran ormas di kemendagri
Permen2012 ttg pendaftaran ormas di kemendagriPermen2012 ttg pendaftaran ormas di kemendagri
Permen2012 ttg pendaftaran ormas di kemendagri
Rederika
 
The Value-Based Musculoskeletal Service Line
The Value-Based Musculoskeletal Service LineThe Value-Based Musculoskeletal Service Line
The Value-Based Musculoskeletal Service Line
Wellbe
 
Cluster Tutorial
Cluster TutorialCluster Tutorial
Cluster Tutorial
cybercbm
 
Formulir Pendaftaran
Formulir PendaftaranFormulir Pendaftaran
Formulir Pendaftaran
myazhari24
 
blackboard architecture
blackboard architectureblackboard architecture
blackboard architecture
Nguyễn Ngân
 

En vedette (20)

An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture concepts
 
5 Type Of Architecture Design Process
5 Type Of Architecture Design Process 5 Type Of Architecture Design Process
5 Type Of Architecture Design Process
 
Dali
DaliDali
Dali
 
Cluster computing
Cluster computingCluster computing
Cluster computing
 
Domain specific Software Architecture
Domain specific Software Architecture Domain specific Software Architecture
Domain specific Software Architecture
 
WTO AND Saudi Arabia (pptx)
WTO AND Saudi Arabia (pptx)WTO AND Saudi Arabia (pptx)
WTO AND Saudi Arabia (pptx)
 
Sysmax Risk Management Pptx
Sysmax Risk Management PptxSysmax Risk Management Pptx
Sysmax Risk Management Pptx
 
Permen2012 ttg pendaftaran ormas di kemendagri
Permen2012 ttg pendaftaran ormas di kemendagriPermen2012 ttg pendaftaran ormas di kemendagri
Permen2012 ttg pendaftaran ormas di kemendagri
 
The Value-Based Musculoskeletal Service Line
The Value-Based Musculoskeletal Service LineThe Value-Based Musculoskeletal Service Line
The Value-Based Musculoskeletal Service Line
 
UU RI Tentang Yayasan
UU RI Tentang YayasanUU RI Tentang Yayasan
UU RI Tentang Yayasan
 
What Exactly are the Techniques of Software Verification & Validation
What Exactly are the Techniques of Software Verification & ValidationWhat Exactly are the Techniques of Software Verification & Validation
What Exactly are the Techniques of Software Verification & Validation
 
Cluster Tutorial
Cluster TutorialCluster Tutorial
Cluster Tutorial
 
Librarianship and Information Architecture: a new way to manage information
Librarianship and Information Architecture: a new way to manage informationLibrarianship and Information Architecture: a new way to manage information
Librarianship and Information Architecture: a new way to manage information
 
Kuliah a
Kuliah aKuliah a
Kuliah a
 
Formulir Pendaftaran
Formulir PendaftaranFormulir Pendaftaran
Formulir Pendaftaran
 
[Urban Management Program City Paper : Mexico City, Mexico]
[Urban Management Program City Paper : Mexico City, Mexico][Urban Management Program City Paper : Mexico City, Mexico]
[Urban Management Program City Paper : Mexico City, Mexico]
 
blackboard architecture
blackboard architectureblackboard architecture
blackboard architecture
 
[Urban management policy training] hanoi city presentation
[Urban management policy training] hanoi city presentation[Urban management policy training] hanoi city presentation
[Urban management policy training] hanoi city presentation
 
Sejarah Perkembangan Arsitektur Indonesia: Keraton Jogjakarta
Sejarah Perkembangan Arsitektur Indonesia: Keraton JogjakartaSejarah Perkembangan Arsitektur Indonesia: Keraton Jogjakarta
Sejarah Perkembangan Arsitektur Indonesia: Keraton Jogjakarta
 
Pertumbuhan kota kota dan pola penyediaan tanah
Pertumbuhan kota kota dan pola penyediaan tanahPertumbuhan kota kota dan pola penyediaan tanah
Pertumbuhan kota kota dan pola penyediaan tanah
 

Similaire à Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
NASAPMC
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
NASAPMC
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
Majong DevJfu
 
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_SurveyPaper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Zainab Nayyar
 
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
Radu Marinescu
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
bmercer
 
Abstract Improving software architecture evaluation method based on outsourci...
Abstract Improving software architecture evaluation method based on outsourci...Abstract Improving software architecture evaluation method based on outsourci...
Abstract Improving software architecture evaluation method based on outsourci...
Arash Bande Khoda
 

Similaire à Software Architecture Recovery: The 5 Questions You Always Asked Yourself About, (20)

Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorak
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_SurveyPaper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
 
software architecture
software architecturesoftware architecture
software architecture
 
Introdução à Arquitetura de Software
Introdução à Arquitetura de SoftwareIntrodução à Arquitetura de Software
Introdução à Arquitetura de Software
 
The critical need for software architecture practices in software development...
The critical need for software architecture practices in software development...The critical need for software architecture practices in software development...
The critical need for software architecture practices in software development...
 
Pragmatic Architecture
Pragmatic ArchitecturePragmatic Architecture
Pragmatic Architecture
 
Sda 1
Sda   1Sda   1
Sda 1
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
Abstract Improving software architecture evaluation method based on outsourci...
Abstract Improving software architecture evaluation method based on outsourci...Abstract Improving software architecture evaluation method based on outsourci...
Abstract Improving software architecture evaluation method based on outsourci...
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Adm Workshop Program
Adm Workshop ProgramAdm Workshop Program
Adm Workshop Program
 
Service-Oriented Architecture for Libraries
Service-Oriented Architecture for LibrariesService-Oriented Architecture for Libraries
Service-Oriented Architecture for Libraries
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture Smells
 

Dernier

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 

Dernier (20)

Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 

Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

  • 1. The 5 questions you always asked yourself about Software Architecture Recovery Mircea Lungu Faculty of Informatics, University of Lugano October 2008
  • 2. 5 Questions about SAR Software Architecture Recovery - Mircea Lungu, 2008
  • 3. 5 Questions about SAR • What is it? Software Architecture Recovery - Mircea Lungu, 2008
  • 4. 5 Questions about SAR • What is it? • Why is it important? Software Architecture Recovery - Mircea Lungu, 2008
  • 5. 5 Questions about SAR • What is it? • Why is it important? • How does it work? Software Architecture Recovery - Mircea Lungu, 2008
  • 6. 5 Questions about SAR • What is it? • Why is it important? • How does it work? • Who does it? Software Architecture Recovery - Mircea Lungu, 2008
  • 7. 5 Questions about SAR • What is it? • Why is it important? • How does it work? • Who does it? • Where is it headed? Software Architecture Recovery - Mircea Lungu, 2008
  • 8. What? • Architecture Recovery • Architecture • Viewpoints
  • 9. Architecture recovery ... Software Architecture Recovery - Mircea Lungu, 2008
  • 10. Architecture recovery ... or Architecture Reconstruction, Software Architecture Recovery - Mircea Lungu, 2008
  • 11. Architecture recovery ... or Architecture Reconstruction, or Reverse Architecting Software Architecture Recovery - Mircea Lungu, 2008
  • 12. Architecture recovery ... or Architecture Reconstruction, or Reverse Architecting [...] an archaeological activity where the analysts must unveil all the historical design decisions by looking at the existing implementation and documentation of the system. [ Riva’00 ] Software Architecture Recovery - Mircea Lungu, 2008
  • 13. Architecture recovery ... Software Architecture Recovery - Mircea Lungu, 2008
  • 14. Architecture recovery ... ... the flavor of reverse engineering that concerns all activities for making existing of software architectures explicit. [Krikhaar’97] Software Architecture Recovery - Mircea Lungu, 2008
  • 15. Architecture recovery ... ... the flavor of reverse engineering that ... the techniques and concerns all activities for processes used to uncover making existing of software a system’s architecture architectures explicit. from available information. [Jazayeri’00] [Krikhaar’97] Software Architecture Recovery - Mircea Lungu, 2008
  • 17. Architecture... [...] the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. [Bass et al.’03] Software Architecture Recovery - Mircea Lungu, 2008
  • 18. Architecture... [...] the structure or structures of the system, which comprise software elements, the externally [...] the fundamental visible properties of those organization of a system, elements, and the embodied in its components, relationships among them. their relationships to each other and the environment, and the [Bass et al.’03] principles governing its design and evolution. [ANSI/IEEE Std. 1471-2000] Software Architecture Recovery - Mircea Lungu, 2008
  • 19. Architecture... For many others visit www.sei.cmu.edu/architecture/ definitions.html [...] the structure or structures of the system, which comprise software elements, the externally [...] the fundamental visible properties of those organization of a system, elements, and the embodied in its components, relationships among them. their relationships to each other and the environment, and the [Bass et al.’03] principles governing its design and evolution. [ANSI/IEEE Std. 1471-2000] Software Architecture Recovery - Mircea Lungu, 2008
  • 20. What is the difference between architecture and design? Software Architecture Recovery - Mircea Lungu, 2008
  • 21. Architectural Styles • Recurring architectural solutions • Examples • Pipes and filters • Blackboard • Peer-to-peer • ... a Software Architecture Recovery - Mircea Lungu, 2008
  • 22. Architectural Styles • Recurring architectural solutions • Examples • Pipes and filters • Blackboard • Peer-to-peer • ... a Software Architecture Recovery - Mircea Lungu, 2008
  • 23. Architectural Styles • Recurring architectural solutions • Examples • Pipes and filters • Blackboard SAR is not preoccupied with • Peer-to-peer recovering the architectural • ... style of the system. a Software Architecture Recovery - Mircea Lungu, 2008
  • 24. Viewpoints • Viewpoints catalogues • Kruchten’95 • Hofmeister’99 • Ad-hoc viewpoints • Smolander’01 • Conway’s law Software Architecture Recovery - Mircea Lungu, 2008
  • 25. Viewpoints • Viewpoints catalogues • Kruchten’95 • Hofmeister’99 • Ad-hoc viewpoints • Smolander’01 Most of the SAR processes focus on • Conway’s law recovering component-and- connector viewpoints. Software Architecture Recovery - Mircea Lungu, 2008
  • 26. What is the relation between architecture recovery and reverse engineering? Software Architecture Recovery - Mircea Lungu, 2008
  • 27. Why? • Reasons • Benefits • Goals • Challenges
  • 28. Architecture erosion [...] the documentation about the internal architecture becomes rapidly obsolete. To make changes, developers need a clear understanding of the underlying architecture of the products. C. Riva, Software Architecture Group, Nokia Research Software Architecture Recovery - Mircea Lungu, 2008
  • 29. Architecture Evolution One frequently accompanying property of evolution is an increasing brittleness of the system -- that is, an increasing resistance to change, or at least to changing gracefully. [Perry & Wolf ’92] Software Architecture Recovery - Mircea Lungu, 2008
  • 30. Architecture Evolution One frequently accompanying property of evolution is an • Architectural drift increasing brittleness of the system -- that is, an • Architectural erosion increasing resistance to change, or at least to • Architectural upgrade changing gracefully. [Perry & Wolf ’92] Software Architecture Recovery - Mircea Lungu, 2008
  • 31. Conceptual vs. As-is architecture Software systems must evolve or become obsolete [...] [Lehmann’80] Software Architecture Recovery - Mircea Lungu, 2008
  • 32. Conceptual vs. As-is architecture Software systems must Change In Environment evolve or become obsolete [...] Change In Code Environment Code [Lehmann’80] Change In Code Architecture Change In Architecture As-Is Architecture Software Architecture Recovery - Mircea Lungu, 2008
  • 33. Conceptual vs. As-is architecture Software systems must Change In Environment evolve or become obsolete [...] Change In Code Environment Code [Lehmann’80] Change In Code Change In Architecture Architecture There is a need for As-Is Architecture enforcing the architecture of a system Software Architecture Recovery - Mircea Lungu, 2008
  • 34. Conceptual vs. As-is architecture Software systems must evolve or become Architectural Change In Firewall Environment obsolete [...] Change In Code Environment Code [Lehmann’80] Change In Code Change In Architecture Architecture There is a need for enforcing the architecture of a system Software Architecture Recovery - Mircea Lungu, 2008
  • 35. Consultant’s POV [...] Frequently we are asked to analyze • Missing architectural a systemʼs software specifications architecture and are • Support the given only its code • Re-documentation and the (limited) time • Reengineering of a designer. [Kazman et al.’99] Software Architecture Recovery - Mircea Lungu, 2008
  • 36. Benefits • Stepping stone towards reengineering • Supports detecting components for reuse Software Architecture Recovery - Mircea Lungu, 2008
  • 37. Challenges • What process can support uncovering the software architecture within a system? • How much can you automate in this process? • What are the limits of architecture recovery? (e.g., Recovering all design decisions). Software Architecture Recovery - Mircea Lungu, 2008
  • 38. How? • Generic approach • Processes • Bottom-up • Top-down • Integrated
  • 39. Phases of Reconstruction Knowledge Information Data Extraction Organization Exploration [Tilley et al.’96] Software Architecture Recovery - Mircea Lungu, 2008
  • 40. The Meta- Phases of Reconstruction Architecture of Architecture Recovery Tools Knowledge Information Data Extraction Organization Exploration [Tilley et al.’96] Software Architecture Recovery - Mircea Lungu, 2008
  • 41. Data Extraction Software Architecture Recovery - Mircea Lungu, 2008
  • 42. Data Extraction • Source Code (static analysis) Software Architecture Recovery - Mircea Lungu, 2008
  • 43. Data Extraction • Source Code (static analysis) • Historical Information Software Architecture Recovery - Mircea Lungu, 2008
  • 44. Data Extraction • Source Code (static analysis) • Historical Information • Human Expertise Software Architecture Recovery - Mircea Lungu, 2008
  • 45. Data Extraction • Source Code (static analysis) • Historical Information • Human Expertise • Runtime Behavior (dynamic analysis) Software Architecture Recovery - Mircea Lungu, 2008
  • 46. Data Extraction • Source Code (static analysis) • Historical Information • Human Expertise • Runtime Behavior (dynamic analysis) • Physical Organization Software Architecture Recovery - Mircea Lungu, 2008
  • 47. Data Extraction • Source Code (static analysis) • Historical Information • Human Expertise • Runtime Behavior (dynamic analysis) • Physical Organization • Social Organization Software Architecture Recovery - Mircea Lungu, 2008
  • 48. [Pollet et al.’07] Software Architecture Recovery - Mircea Lungu, 2008
  • 49. Facts extracted from code [Guo et al.’99] Software Architecture Recovery - Mircea Lungu, 2008
  • 50. Knowledge Abstraction • Get rid of useless information • Aggregation • Directory • Packages • Clustering • Filtering [Lungu et al.’05] Software Architecture Recovery - Mircea Lungu, 2008
  • 51. p n -u w om do d ri p- tt yb Bo To H Processes Software Architecture Recovery - Mircea Lungu, 2008
  • 52. p n -u w om do d ri p- tt yb Bo To H Processes [Pollet et al.’07] Software Architecture Recovery - Mircea Lungu, 2008
  • 53. • Start with low-level fact 1. Bottom-up extraction Approaches • Aggregate the information to higher abstraction levels either manually or automatically Software Architecture Recovery - Mircea Lungu, 2008
  • 54. Tools 4 bottom-up • Arch • ArchView • ArcVis • ARMIN • BUNCH • DALI • Gupro • Intensive • Rigi • Softwarenaut Software Architecture Recovery - Mircea Lungu, 2008
  • 55. Arch • Developed at Siemens Research • Mavericks - individual procedures in the wrong modules • Heuristic modularization advice [Schwanke’91] Software Architecture Recovery - Mircea Lungu, 2008
  • 56. Archview [Pinzger’05] Software Architecture Recovery - Mircea Lungu, 2008
  • 57. Archview [Pinzger’05] Software Architecture Recovery - Mircea Lungu, 2008
  • 58. Dali Rigi, IAPR (Interactive Architecture Pattern Recognition) [12], RMTool [14], and Perl for analysis and manipulation. Lightweight Source Model Extraction PostgreSQL (based (LSME), Imagix, make, and Perl on POSTGRES) for for extraction of source model model storage, information for C and C++, Software Architecture Recovery - Mircea Lungu, 2008
  • 59. Advertising break! Software Architecture Recovery - Mircea Lungu, 2008
  • 60. Advertising break! • Aggregation: based on directory structure, clustering, package structure Software Architecture Recovery - Mircea Lungu, 2008
  • 61. Advertising break! • Aggregation: based on directory structure, clustering, package structure • Filtering: based on evolutionary information, metrics Software Architecture Recovery - Mircea Lungu, 2008
  • 62. Advertising break! • Aggregation: based on directory structure, clustering, package structure • Filtering: based on evolutionary information, metrics • Visualization: polymetric Software Architecture Recovery - Mircea Lungu, 2008
  • 67. • Start with previous high- 2. Top-down level knowledge about the application domain approaches • Formulate hypotheses and verify them against the source code Software Architecture Recovery - Mircea Lungu, 2008
  • 68. Tools 4 top-down • RMTool • Pulse • W4 Software Architecture Recovery - Mircea Lungu, 2008
  • 69. Reflexion Models Marco... Software Architecture Recovery - Mircea Lungu, 2008
  • 70. Pulse • Fraunhofer Institute for ESE • Architecture- and Domain-Oriented Re-engineering • Product Line Software Engineering Software Architecture Recovery - Mircea Lungu, 2008
  • 71. Pulse Software Architecture Recovery - Mircea Lungu, 2008
  • 72. Pulse Software Architecture Recovery - Mircea Lungu, 2008
  • 73. Pulse Software Architecture Recovery - Mircea Lungu, 2008
  • 74. Pulse Software Architecture Recovery - Mircea Lungu, 2008
  • 75. W4 By distilling pearls of wisdom stored deep inside source control systems, we can assist developers to understand the state of their project and plan confidently for its future [Hassan & Holt’04] Software Architecture Recovery - Mircea Lungu, 2008
  • 76. W4 By distilling pearls of wisdom stored deep inside source control systems, we can assist developers to understand the state of their project and plan • Which,Who,Why,When confidently for its future [Hassan & Holt’04] Software Architecture Recovery - Mircea Lungu, 2008
  • 77. • Combine top-down with 3. Hybrid bottom-up Approaches • Abstract low-level information • Refine high-level information Software Architecture Recovery - Mircea Lungu, 2008
  • 78. Tools 4 hybrid • Albortz • ARM • Bauhaus • Cacophony • DiscoTect • ManSART • PBS/SBS • Symphony / Nimeta Software Architecture Recovery - Mircea Lungu, 2008
  • 79. ManSART • Mitre Corporation • Used to provide architecture level consulting in multiple military systems Software Architecture Recovery - Mircea Lungu, 2008
  • 80. ManSART [Harris et al.’ 95] Software Architecture Recovery - Mircea Lungu, 2008
  • 81. Discotect • Examine runtime behavior • Big problem: abstraction gap • State machines to map between implementation- level events and architectural operations [Yan et al.’04] Software Architecture Recovery - Mircea Lungu, 2008
  • 82. Who? • SEI at Carnegie Mellon • Hasso-Plattner Institute • Nokia Research Center
  • 83. Case Study #1 • Author: CMU Software Engineering Institute • Subject: VANISH, 50KLOC • Tools: Dali, ARMIN • Goals • generate several architectural views • determine if strict layering is in place • Assumptions: little documentation, no developers available Software Architecture Recovery - Mircea Lungu, 2008
  • 84. #1: Results Software Architecture Recovery - Mircea Lungu, 2008
  • 85. #1: Results Software Architecture Recovery - Mircea Lungu, 2008
  • 86. #1: Results Software Architecture Recovery - Mircea Lungu, 2008
  • 87. #1: Results Software Architecture Recovery - Mircea Lungu, 2008
  • 88. #1: Results Software Architecture Recovery - Mircea Lungu, 2008
  • 89. Case Study #2 • Author: Hasso-Plattner Institute • Subject: Apache, 100KLOC C code • Participants: 60 4th semester students • 32 topics assigned • Sources • documentation (well written, little info about the conceptual architecture) • “Writing Apache modules with Perl” • Results: overview analysis, detailed state diagrams, memory management • Time:: half a semester for getting accustomed with the domain and half for analyzing the implementation Software Architecture Recovery - Mircea Lungu, 2008
  • 90. #2: Results www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html - Software Architecture Recovery - Mircea Lungu, 2008
  • 91. #2: Results www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html - Software Architecture Recovery - Mircea Lungu, 2008
  • 92. #2: Results www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html - Software Architecture Recovery - Mircea Lungu, 2008
  • 93. #2: Results www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html - Software Architecture Recovery - Mircea Lungu, 2008
  • 94. #2: Results www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html - Software Architecture Recovery - Mircea Lungu, 2008
  • 95. Case Study #3 • Author: Nokia Research • System: Embedded Software Written in C • Existing Reference Architecture • Scripts that extract information about messages Software Architecture Recovery - Mircea Lungu, 2008
  • 96. #3: Results Software Architecture Recovery - Mircea Lungu, 2008
  • 97. #3: Results Software Architecture Recovery - Mircea Lungu, 2008
  • 98. #3: Results Software Architecture Recovery - Mircea Lungu, 2008
  • 99. #3: Results Software Architecture Recovery - Mircea Lungu, 2008
  • 100. Others • “Linux as a Case Study, it’s Extracted Architecture”, Bowman et al. • “Static evaluation of Software Architectures”, Knodel et al. Software Architecture Recovery - Mircea Lungu, 2008
  • 101. Where? • Future of SAR • Further Reading
  • 102. The Future of SAR Software Architecture Recovery - Mircea Lungu, 2008
  • 103. The Future of SAR • Integrating with forward engineering (continuous supervision, architectural firewalls, etc.) Software Architecture Recovery - Mircea Lungu, 2008
  • 104. The Future of SAR • Integrating with forward engineering (continuous supervision, architectural firewalls, etc.) • Collaborative architecture recovery Software Architecture Recovery - Mircea Lungu, 2008
  • 105. The Future of SAR • Integrating with forward engineering (continuous supervision, architectural firewalls, etc.) • Collaborative architecture recovery • Product family architecture Software Architecture Recovery - Mircea Lungu, 2008
  • 106. The Future of SAR • Integrating with forward engineering (continuous supervision, architectural firewalls, etc.) • Collaborative architecture recovery • Product family architecture • Ecosystem architecture Software Architecture Recovery - Mircea Lungu, 2008
  • 107. Further Reading • Annotated Bibliography www.inf.unisi.ch/phd/lungu/recovery • Essays on Architecture http://www.sei.cmu.edu/architecture/essays.html • PhD Theses: Pinzger’05, Krikhaar’99 • Survey Articles: Pollet’07 Software Architecture Recovery - Mircea Lungu, 2008
  • 108. THE END Software Architecture Recovery - Mircea Lungu, 2008