Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 10,575 views
Uploaded on

The first version of my Architecture Recovery lecture that I gave at the University of Lugano.

The first version of my Architecture Recovery lecture that I gave at the University of Lugano.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
10,575
On Slideshare
10,544
From Embeds
31
Number of Embeds
2

Actions

Shares
Downloads
498
Comments
0
Likes
5

Embeds 31

http://www.slideshare.net 30
http://www.inf.unisi.ch 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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
  • 16. Architecture... 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
  • 63. Softwarenaut Software Architecture Recovery - Mircea Lungu, 2008
  • 64. Softwarenaut Software Architecture Recovery - Mircea Lungu, 2008
  • 65. Softwarenaut Software Architecture Recovery - Mircea Lungu, 2008
  • 66. Softwarenaut 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