SlideShare una empresa de Scribd logo
1 de 108
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software EngineeringManish Kumar
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTmalathijanapati1
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overviewalessio_ferrari
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringAli Raza
 
Agile software development methodology
Agile software development methodologyAgile software development methodology
Agile software development methodologyjustinleague0819
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleSlideshare
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software ReengineeringAbdul Wahid
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software ArchitectureRahimLotfi
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01Abdul Basit
 

La actualidad más candente (20)

Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
 
Software resuse
Software  resuseSoftware  resuse
Software resuse
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overview
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse Engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Agile software development methodology
Agile software development methodologyAgile software development methodology
Agile software development methodology
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
software characteristics
software characteristicssoftware characteristics
software characteristics
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
ATAM
ATAMATAM
ATAM
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
 

Destacado

An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptswweinmeyer79
 
Domain specific Software Architecture
Domain specific Software Architecture Domain specific Software Architecture
Domain specific Software Architecture DIPEN SAINI
 
Sysmax Risk Management Pptx
Sysmax Risk Management PptxSysmax Risk Management Pptx
Sysmax Risk Management Pptxchrissim
 
Permen2012 ttg pendaftaran ormas di kemendagri
Permen2012 ttg pendaftaran ormas di kemendagriPermen2012 ttg pendaftaran ormas di kemendagri
Permen2012 ttg pendaftaran ormas di kemendagriRederika
 
The Value-Based Musculoskeletal Service Line
The Value-Based Musculoskeletal Service LineThe Value-Based Musculoskeletal Service Line
The Value-Based Musculoskeletal Service LineWellbe
 
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 & ValidationYogindernath Gupta
 
Cluster Tutorial
Cluster TutorialCluster Tutorial
Cluster Tutorialcybercbm
 
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 informationWorld Information Architecture Day 2016
 
Formulir Pendaftaran
Formulir PendaftaranFormulir Pendaftaran
Formulir Pendaftaranmyazhari24
 
[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]shrdcinfo
 
blackboard architecture
blackboard architectureblackboard architecture
blackboard architectureNguyễn Ngân
 
[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 presentationshrdcinfo
 
Sejarah Perkembangan Arsitektur Indonesia: Keraton Jogjakarta
Sejarah Perkembangan Arsitektur Indonesia: Keraton JogjakartaSejarah Perkembangan Arsitektur Indonesia: Keraton Jogjakarta
Sejarah Perkembangan Arsitektur Indonesia: Keraton JogjakartaAlvin Karama
 

Destacado (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
 

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

Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorakNASAPMC
 
Daniel.dvorak
Daniel.dvorakDaniel.dvorak
Daniel.dvorakNASAPMC
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong 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_SurveyZainab Nayyar
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureVikas Dhyani
 
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
 
Introdução à Arquitetura de Software
Introdução à Arquitetura de SoftwareIntrodução à Arquitetura de Software
Introdução à Arquitetura de SoftwareRodrigo Veiga
 
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...Alexander Decker
 
Pragmatic Architecture
Pragmatic ArchitecturePragmatic Architecture
Pragmatic Architectureguestedb3ee
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2bmercer
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionHenry Muccini
 
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
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
Service-Oriented Architecture for Libraries
Service-Oriented Architecture for LibrariesService-Oriented Architecture for Libraries
Service-Oriented Architecture for LibrariesRichard Akerman
 
Software architecture
Software architectureSoftware architecture
Software architectureUdayna
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsGanesh Samarthyam
 

Similar a 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
 

Último

Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
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.pptxMaritesTamaniVerdade
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701bronxfugly43
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docxPoojaSen20
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIFood Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIShubhangi Sonawane
 
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 FellowsMebane Rash
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxnegromaestrong
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
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.pptxheathfieldcps1
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 

Último (20)

Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
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
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIFood Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
 
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
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
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
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 

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