150 likes | 596 Views
By Elizabeth Griffith Derived from a report done by Vijaya Datta Mayyuri Software Architecture Reconstruction Introduction “Software architecture reconstruction is a process of obtaining the documented architecture of an existing system.”
E N D
By Elizabeth Griffith Derived from a report done by Vijaya Datta Mayyuri Software Architecture Reconstruction
Introduction “Software architecture reconstruction is a process of obtaining the documented architecture of an existing system.” - Deursen, Hofmeister, Koschke, Moonen, Riva. • Ideal World: Architectural information is documented during the Architectural design phase and is updated regularly to reflect the current system architecture. • Real World: Architectural information is outdated and does not reflect the current architecture of the system.
Software Reconstruction Methodologies • There are several methods or techniques for reconstructing the architecture of a specific piece of software. • Symphony – view-driven • Symphony: View-Driven Software Architecture Reconstruction • 2. Cacophony – metamodel-driven • CacOphoNy: Metamodel-Driven Software Architecture Reconstruction • 3. ARM (Architecture Reconstruction Method) – uses reverse-engineering to perform software architecture reconstruction • A Software Architecture Reconstruction Method • 4. Plus many others… This presentation will focus on the Symphony Software Reconstruction Methodology.
Some sources of input for reconstruction Basic steps involved Extract raw data Apply abstraction technique Present/Visualize information • The system itself • Metamodels • Traces obtained by executing the system
Why Symphony? While the typical reconstruction technique describes how to apply it, they fail to answer the following basic questions: • What problems require architecture reconstruction? • What are typical views that should be recovered? • Which techniques are suitable for reconstructing particular views? • How can different views be presented so that they actually help to deal with the problem at hand? Symphony attempts to answer these questions.
Symphony As we have learned in class, software architecture is usually described in terms of models and the associated rationales. Symphony tries to reconstruct these models using viewpoints and presents them using views. “A Viewpoint on a system is a technique for abstraction using a selected set of architectural concepts and structuring rules, in order to focus on particular concerns within that system.” “A View of a system is a representation of that system from the perspective of a chosen viewpoint.”
Main Views In Symphony Source View: The view of the system derived from the artifacts of the system, like source code, documentation, and traces Hypothetical View: This view reflects the current understanding of the architecture, but it is usually not accurate Target View: This is the final view that we need. This view describes the “as-implemented architecture” and contains the information needed to perform the tasks of the system.
Library of Viewpoints • Module viewpoint – identifies the layers, subsystems, system modules, and the relationships among them. • Code architecture viewpoint - describes the structure of the directory and the build relationships • Execution viewpoint - describes the mapping of the runtime entities to their physical resources. • Conceptual viewpoint – uses components and connectors to describe the system’s functionality. • …
Symphony Steps Reconstruction Design: defines the procedure for reconstructing the architecture. • Problem Elicitation • Concept Determination • Identify Potential Viewpoints • Define Target Viewpoints • Define Source Viewpoints • Define Mapping Rules • Determine Role and Viewpoint of Hypothetical Views.
Symphony Steps Reconstruction Execution: produces the architectural description • Data Gathering • Knowledge Inference • Information Interpretation
Conclusion • There are several processes/techniques for software reconstruction. • Symphony is a generic process for architecture reconstruction. • In Symphony we concentrate on a collection of views. • Symphony starts from the scratch and takes an incremental approach to software architecture reconstruction.
References References [1] Symphony . View-based software architecture reconstruction Arie van Deursen Christine Hofmeister Rainer Koschke Leon Moonen Claudio Riva [2] Cacophony. Metamodel-driven software architecture reconstruction, Jean-Marie Favre. [3] Software architecture reconstruction L.O’Brien,C.Stoermer,C.Verhoef [4] OMG, “MDA: the OMG model driven Architecture” www.omg.org/mda/ [5] OMG, “Meta Object Facility (MOF) Specification” Version 1.4 ,April 2002 [1] Symphony . View-based software architecture reconstruction Arie van Deursen Christine Hofmeister Rainer Koschke Leon Moonen Claudio Riva [2] Cacophony. Metamodel-driven software architecture reconstruction, Jean-Marie Favre. [3] Software architecture reconstruction L.O’Brien,C.Stoermer,C.Verhoef [4] OMG, “MDA: the OMG model driven Architecture” www.omg.org/mda/ [5] OMG, “Meta Object Facility (MOF) Specification” Version 1.4 ,April 2002