Presentation on theme: "Software Architecture Reconstruction By Elizabeth Griffith Derived from a report done by Vijaya Datta Mayyuri."— Presentation transcript:
Software Architecture Reconstruction By Elizabeth Griffith Derived from a report done by Vijaya Datta Mayyuri
Introduction 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 architecture reconstruction is a process of obtaining the documented architecture of an existing system.” - Deursen, Hofmeister,, Moonen, Riva. - Deursen, Hofmeister, Koschke, Moonen, Riva.
There are several methods or techniques for reconstructing the architecture of a specific piece of software. 1.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. Software Reconstruction Methodologies
Some sources of input for reconstruction Some sources of input for reconstruction The system itself Metamodels Traces obtained by executing the system Basic steps involved Extract raw dataApply abstraction technique Present/Visualize information
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 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. Source View: The view of the system derived from the artifacts of the system, like source code, documentation, and traces
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. 1)Problem Elicitation 2)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 Reconstruction Execution: produces the architectural description 1. Data Gathering 2. Knowledge Inference 3. 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.