software architecture recovery: the 5 questions you always asked yourself about,
DESCRIPTION
The first version of my Architecture Recovery lecture that I gave at the University of Lugano.TRANSCRIPT
![Page 1: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/1.jpg)
The 5 questions you always asked yourself about
Software Architecture
Recovery
Mircea LunguFaculty of Informatics, University of Lugano
October 2008
![Page 2: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/2.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
5 Questions about SAR
![Page 3: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/3.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
5 Questions about SAR
• What is it?
![Page 4: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/4.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
5 Questions about SAR
• What is it?
• Why is it important?
![Page 5: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/5.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
5 Questions about SAR
• What is it?
• Why is it important?
• How does it work?
![Page 6: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/6.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
5 Questions about SAR
• What is it?
• Why is it important?
• How does it work?
• Who does it?
![Page 7: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/7.jpg)
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?
![Page 8: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/8.jpg)
What?
• Architecture Recovery
• Architecture
• Viewpoints
![Page 9: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/9.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...
![Page 10: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/10.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...or Architecture Reconstruction,
![Page 11: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/11.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...or Architecture Reconstruction,
or Reverse Architecting
![Page 12: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/12.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...
[...] 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 ]
or Architecture Reconstruction,
or Reverse Architecting
![Page 13: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/13.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Architecture recovery ...
![Page 14: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/14.jpg)
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]
![Page 15: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/15.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
... the techniques and processes used to uncover a system’s architecture from available information.
[Jazayeri’00]
Architecture recovery ...
... the flavor of reverse engineering that concerns all activities for making existing of software architectures explicit.
[Krikhaar’97]
![Page 16: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/16.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Architecture...
![Page 17: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/17.jpg)
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]
![Page 18: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/18.jpg)
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]
[...] the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.
[ANSI/IEEE Std. 1471-2000]
![Page 19: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/19.jpg)
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]
[...] the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.
[ANSI/IEEE Std. 1471-2000]
For many others visit
www.sei.cmu.edu/architecture/definitions.html
![Page 20: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/20.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
What is the difference between architecture and
design?
![Page 21: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/21.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Architectural Styles
Styles. Architectural styles such as pipes and filters, lay- ered system, data flow and blackboard are popular because like design patterns, they represent recurrent architectural situations [11, 59]. They are valuable, expressive, and ac-
cepted abstractions for SAR and more generally for software understanding.
Recognizing them is however a challenge because they span several architectural elements and can be implemented in
various ways [100, 101]. The question that turns up is whether SAR helps reverse engineers specify and extract architectural styles.
• Recurring architectural solutions
• Examples
• Pipes and filters
• Blackboard
• Peer-to-peer
• ... ... still, there are SAR approaches which take it into
consideration.
![Page 22: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/22.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Architectural Styles
Styles. Architectural styles such as pipes and filters, lay- ered system, data flow and blackboard are popular because like design patterns, they represent recurrent architectural situations [11, 59]. They are valuable, expressive, and ac-
cepted abstractions for SAR and more generally for software understanding.
Recognizing them is however a challenge because they span several architectural elements and can be implemented in
various ways [100, 101]. The question that turns up is whether SAR helps reverse engineers specify and extract architectural styles.
• Recurring architectural solutions
• Examples
• Pipes and filters
• Blackboard
• Peer-to-peer
• ... ... still, there are SAR approaches which take it into
consideration.
![Page 23: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/23.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Architectural Styles
Styles. Architectural styles such as pipes and filters, lay- ered system, data flow and blackboard are popular because like design patterns, they represent recurrent architectural situations [11, 59]. They are valuable, expressive, and ac-
cepted abstractions for SAR and more generally for software understanding.
Recognizing them is however a challenge because they span several architectural elements and can be implemented in
various ways [100, 101]. The question that turns up is whether SAR helps reverse engineers specify and extract architectural styles.
• Recurring architectural solutions
• Examples
• Pipes and filters
• Blackboard
• Peer-to-peer
• ... ... still, there are SAR approaches which take it into
consideration.
SAR is not preoccupied with recovering the architectural
style of the system.
![Page 24: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/24.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Viewpoints
• Viewpoints catalogues
• Kruchten’95
• Hofmeister’99
• Ad-hoc viewpoints
• Smolander’01
• Conway’s law
![Page 25: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/25.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Viewpoints
• Viewpoints catalogues
• Kruchten’95
• Hofmeister’99
• Ad-hoc viewpoints
• Smolander’01
• Conway’s lawMost of the SAR processes focus on
recovering component-and-connector viewpoints.
![Page 26: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/26.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
What is the relation between architecture recovery and reverse
engineering?
![Page 27: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/27.jpg)
Why?
• Reasons
• Benefits
• Goals
• Challenges
![Page 28: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/28.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
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
![Page 29: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/29.jpg)
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]
![Page 30: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/30.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Architecture Evolution
• Architectural drift
• Architectural erosion
• Architectural upgrade
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]
![Page 31: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/31.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Conceptual vs. As-is architecture
Software systems must evolve or become obsolete [...]
[Lehmann’80]
![Page 32: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/32.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Conceptual vs. As-is architecture
Architecture
Change In Environment
As-Is
Architecture
CodeEnvironment
Change In Code
Change In Architecture
Change In Code
Software systems must evolve or become obsolete [...]
[Lehmann’80]
![Page 33: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/33.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Conceptual vs. As-is architecture
Architecture
Change In Environment
As-Is
Architecture
CodeEnvironment
Change In Code
Change In Architecture
Change In Code
There is a need for enforcing the
architecture of a system
Software systems must evolve or become obsolete [...]
[Lehmann’80]
![Page 34: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/34.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Conceptual vs. As-is architecture
Architecture
Change In Environment
CodeEnvironment
Change In Code
Change In Architecture
Change In Code
Architectural
Firewall
There is a need for enforcing the
architecture of a system
Software systems must evolve or become obsolete [...]
[Lehmann’80]
![Page 35: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/35.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Consultant’s POV
• Missing architectural specifications
• Support the
• Re-documentation
• Reengineering
[...] Frequently we are asked to analyze a systemʼs software architecture and are given only its code and the (limited) time of a designer.
[Kazman et al.’99]
![Page 36: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/36.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Benefits
• Stepping stone towards reengineering
• Supports detecting components for reuse
![Page 37: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/37.jpg)
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).
![Page 38: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/38.jpg)
How?
• Generic approach
• Processes
• Bottom-up
• Top-down
• Integrated
![Page 39: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/39.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Phases of Reconstruction
Data Extraction Knowledge Organization
Information Exploration
[Tilley et al.’96]
![Page 40: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/40.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Phases of Reconstruction
Data Extraction Knowledge Organization
Information Exploration
The Meta-Architecture of
Architecture Recovery Tools
[Tilley et al.’96]
![Page 41: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/41.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction
![Page 42: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/42.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction
• Source Code (static analysis)
![Page 43: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/43.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction
• Source Code (static analysis)
• Historical Information
![Page 44: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/44.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction
• Source Code (static analysis)
• Historical Information
• Human Expertise
![Page 45: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/45.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction
• Source Code (static analysis)
• Historical Information
• Human Expertise
• Runtime Behavior (dynamic analysis)
![Page 46: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/46.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction
• Source Code (static analysis)
• Historical Information
• Human Expertise
• Runtime Behavior (dynamic analysis)
• Physical Organization
![Page 47: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/47.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Data Extraction
• Source Code (static analysis)
• Historical Information
• Human Expertise
• Runtime Behavior (dynamic analysis)
• Physical Organization
• Social Organization
![Page 48: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/48.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
[Pollet et al.’07]
![Page 49: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/49.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Facts extracted from code
[Guo et al.’99]
![Page 50: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/50.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Knowledge Abstraction
• Get rid of useless information
• Aggregation
• Directory
• Packages
• Clustering
• Filtering
[Lungu et al.’05]
![Page 51: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/51.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Processes
Botto
m-u
p
Top-d
own
Hyb
rid
![Page 52: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/52.jpg)
Software Architecture Recovery - Mircea Lungu, 2008 [Pollet et al.’07]
Processes
Botto
m-u
p
Top-d
own
Hyb
rid
![Page 53: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/53.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
1. Bottom-up Approaches
• Start with low-level fact extraction
• Aggregate the information to higher abstraction levels either manually or automatically
![Page 54: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/54.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Tools 4 bottom-up
• Arch• ArchView• ArcVis• ARMIN• BUNCH• DALI• Gupro• Intensive• Rigi• Softwarenaut
![Page 55: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/55.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Arch
• Developed at Siemens Research
• Mavericks - individual procedures in the wrong modules
• Heuristic modularization advice
[Schwanke’91]
![Page 56: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/56.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Archview
[Pinzger’05]
![Page 57: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/57.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Archview
[Pinzger’05]
![Page 58: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/58.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Dali
Lightweight Source Model Extraction (LSME), Imagix, make, and Perl for extraction of source model information for C and C++,
PostgreSQL (based on POSTGRES) for model storage,
Rigi, IAPR (Interactive Architecture Pattern Recognition) [12], RMTool [14], and Perl for analysis and manipulation.
![Page 59: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/59.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Advertising break!
![Page 60: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/60.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Advertising break!
• Aggregation: based on directory structure, clustering, package structure
![Page 61: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/61.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Advertising break!
• Aggregation: based on directory structure, clustering, package structure
• Filtering: based on evolutionary information, metrics
![Page 62: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/62.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Advertising break!
• Aggregation: based on directory structure, clustering, package structure
• Filtering: based on evolutionary information, metrics
• Visualization: polymetric
![Page 63: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/63.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Softwarenaut
![Page 64: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/64.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Softwarenaut
![Page 65: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/65.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Softwarenaut
![Page 66: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/66.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Softwarenaut
![Page 67: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/67.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
2. Top-down approaches
• Start with previous high-level knowledge about the application domain
• Formulate hypotheses and verify them against the source code
![Page 68: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/68.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Tools 4 top-down
• RMTool
• Pulse
• W4
![Page 69: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/69.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Reflexion Models
Marco...
![Page 70: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/70.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Pulse
• Fraunhofer Institute for ESE
• Architecture- and Domain-Oriented Re-engineering
• Product Line Software Engineering
![Page 71: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/71.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Pulse
![Page 72: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/72.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Pulse
![Page 73: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/73.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Pulse
![Page 74: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/74.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Pulse
![Page 75: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/75.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
W4By 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]
![Page 76: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/76.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
W4
• Which, Who, Why, When
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]
![Page 77: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/77.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
3. Hybrid Approaches
• Combine top-down with bottom-up
• Abstract low-level information
• Refine high-level information
![Page 78: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/78.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
Tools 4 hybrid
• Albortz
• ARM
• Bauhaus
• Cacophony
• DiscoTect
• ManSART
• PBS/SBS
• Symphony / Nimeta
![Page 79: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/79.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
ManSART
• Mitre Corporation
• Used to provide architecture level consulting in multiple military systems
![Page 80: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/80.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
ManSART
[Harris et al.’ 95]
![Page 81: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/81.jpg)
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]
![Page 82: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/82.jpg)
Who?
• SEI at Carnegie Mellon
• Hasso-Plattner Institute
• Nokia Research Center
![Page 83: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/83.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
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
![Page 84: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/84.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#1: Results
![Page 85: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/85.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#1: Results
![Page 86: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/86.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#1: Results
![Page 87: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/87.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#1: Results
![Page 88: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/88.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#1: Results
![Page 89: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/89.jpg)
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
![Page 90: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/90.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#2: Results
www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -
![Page 91: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/91.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#2: Results
www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -
![Page 92: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/92.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#2: Results
www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -
![Page 93: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/93.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#2: Results
www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -
![Page 94: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/94.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#2: Results
www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -
![Page 95: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/95.jpg)
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
![Page 96: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/96.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#3: Results
![Page 97: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/97.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#3: Results
![Page 98: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/98.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#3: Results
![Page 99: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/99.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
#3: Results
![Page 100: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/100.jpg)
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.
![Page 101: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/101.jpg)
Where?
• Future of SAR
• Further Reading
![Page 102: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/102.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
The Future of SARThe Place of Architecture in a Crowdsourced
WorldRick Kazman
http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm
![Page 103: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/103.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
The Future of SAR
• Integrating with forward engineering (continuous supervision, architectural firewalls, etc.)
The Place of Architecture in a Crowdsourced World
Rick Kazman
http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm
![Page 104: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/104.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
The Future of SAR
• Integrating with forward engineering (continuous supervision, architectural firewalls, etc.)
• Collaborative architecture recovery
The Place of Architecture in a Crowdsourced World
Rick Kazman
http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm
![Page 105: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/105.jpg)
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
The Place of Architecture in a Crowdsourced World
Rick Kazman
http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm
![Page 106: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/106.jpg)
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
The Place of Architecture in a Crowdsourced World
Rick Kazman
http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm
![Page 107: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/107.jpg)
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
![Page 108: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,](https://reader033.vdocuments.us/reader033/viewer/2022061300/54c81c874a795971448b457c/html5/thumbnails/108.jpg)
Software Architecture Recovery - Mircea Lungu, 2008
THE END