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
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
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
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
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
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
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
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
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
70. Pulse
• Fraunhofer Institute for ESE
• Architecture- and Domain-Oriented Re-engineering
• Product Line Software Engineering
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
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
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
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
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
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