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

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

on

  • 10,390 views

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.

Statistics

Views

Total Views
10,390
Views on SlideShare
10,359
Embed Views
31

Actions

Likes
4
Downloads
496
Comments
0

2 Embeds 31

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

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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