160 likes | 451 Views
By Vijaya Datta Mayyuri. Software Architecture Reconstruction. Symphony, C a c oph o ny. Introduction. A good understanding of the software architecture is needed in order to make any significant changes to the system.
E N D
By Vijaya Datta Mayyuri Software Architecture Reconstruction Symphony, Cacophony
Introduction • A good understanding of the software architecture is needed in order to make any significant changes to the system. • 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 doesn't reflect the current architecture of the system. • “Software architecture reconstruction is a process of obtaining the documented architecture of an existing system.” - Deursen, Hofmeister, Koschke, Moonen, Riva.
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 Two Software Reconstruction Methodologies • Symphony : View-Driven Software architecture reconstruction • Cacophony: Metamodel-Driven Software architecture reconstruction
Symphony • Software architecture is usually described in terms of models and the associated rationales. • Symphony tries to reconstruct these models • Symphony makes use of viewpoints and views to construct and present these models. “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 form the perspective of a chosen viewpoint.” • A View conforms to a Viewpoint.
Viewpoint view Conforms To Viewpoint : Front View View : • A Viewpoint is more generic, a view is with respect to a given entity
Main Views In Symphony • Source View: The view of the system derived from the artifacts of the system ,like source code, documentation, build files • Target View: This is the final view that we need . This describes the “as-implemented architecture” and contains the information needed to solve the problem. • Hypothetical View: This reflects the current understanding of the architecture – usually not accurate
Symphony Steps Reconstruction Design: defines the procedure for reconstructing the architecture. • Problem Elicitation • Concept Determination - Identify potential useful Viewpoints - Define/Refine Target Viewpoints - Define/Refine Source Viewpoints - Define/Refine Mapping rules Reconstruction Execution: produces the final architecture description • Data Gathering • Knowledge Inference • Information Interpretation
Cacophony- metamodel driven architecture reconstruction Model : “ A model is a simplification of a system with an intended goal in mind. This model should be able to answer questions in the place of the actual system” examples of entities at the model level: data, view, instance… Metamodel: “A metamodel is a model that defines the language for expressing a model” examples of metamodels: schema, viewpoint, class… - [OMG, “Meta Object Facility (MOF) Specification” Version 1.4,April 2002]
Cacophony- (continued) Appliware: “It is the set of software applications developed by a given Company” Metaware: “ it is the software to develop appliware and to control its Evolution” - [ cacophony ,Jean-Marie Favre]
Cacophony- Steps • Metaware domain and asset analysis • Metaware inventory • Metamodel recovery • Metamodels integration • Metamodel clustering • Metaware requirement analysis • Meta-level actor identification • Meta-level use case identification • Metaware assessment and improvement analysis • Metaware specification • Meta-model filtering and extension • Presentation specification
Conclusion • Symphony and Cacophony both are pretty generic processes of architecture reconstruction. • Cacophony and Symphony are pretty similar. • In Symphony we concentrate on a collection of views whereas in cacophony the focus is on metamodels. • Symphony starts from the scratch and takes an incremental approach to software architecture reconstruction whereas cacophony focuses on reusing the existing metaware.
Thank you Hope this presentation was more of a Symphony than Cacophony, and hope that the industry changes its ways of work - silence is equally sweet
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