SlideShare ist ein Scribd-Unternehmen logo
1 von 108
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software EngineeringFáber D. Giraldo
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture PatternsAssaf Gannon
 
Evolution of Our Software Architecture
Evolution of Our Software ArchitectureEvolution of Our Software Architecture
Evolution of Our Software ArchitecturePaul Lam
 
Domain specific Software Architecture
Domain specific Software Architecture Domain specific Software Architecture
Domain specific Software Architecture DIPEN SAINI
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLAjit Nayak
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software designMr. Swapnil G. Thaware
 
Software Re-Engineering
Software Re-EngineeringSoftware Re-Engineering
Software Re-EngineeringSaqib Raza
 
software process improvement
software process improvementsoftware process improvement
software process improvementMohammad Xaviar
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringMuhammad Chaudhry
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and DesignRa'Fat Al-Msie'deen
 
Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Chandan Thakur
 
A generic view of software engineering
A generic view of software engineeringA generic view of software engineering
A generic view of software engineeringInocentshuja Ahmad
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
software Prototyping model
software Prototyping modelsoftware Prototyping model
software Prototyping modelSankeerthanaS1
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and viewsDr Reeja S R
 

Was ist angesagt? (20)

Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Unit 3
Unit 3Unit 3
Unit 3
 
Evolution of Our Software Architecture
Evolution of Our Software ArchitectureEvolution of Our Software Architecture
Evolution of Our Software Architecture
 
Domain specific Software Architecture
Domain specific Software Architecture Domain specific Software Architecture
Domain specific Software Architecture
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Software Re-Engineering
Software Re-EngineeringSoftware Re-Engineering
Software Re-Engineering
 
software process improvement
software process improvementsoftware process improvement
software process improvement
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward Engineering
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 
Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)
 
A generic view of software engineering
A generic view of software engineeringA generic view of software engineering
A generic view of software engineering
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
software Prototyping model
software Prototyping modelsoftware Prototyping model
software Prototyping model
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 

Andere mochten auch

An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptswweinmeyer79
 
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
 

Andere mochten auch (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
 
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
 
Rencana drainase mrp
Rencana drainase mrpRencana drainase mrp
Rencana drainase mrp
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
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
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
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 Delhikauryashika82
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
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
 
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
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
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...christianmathematics
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 

Kürzlich hochgeladen (20)

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
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
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
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
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
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
 
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
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
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...
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 

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