Software Architecture Reconstruction Symphony Cacophony By Vijaya Datta
Software Architecture Reconstruction Symphony, Cacophony By Vijaya Datta Mayyuri
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.
Basic Steps involved Extract raw data Apply abstraction technique Present/Visualize information Some Sources of input for reconstruction • The system itself • Metamodels • Traces obtained by executing the system Two Software Reconstruction Methodologies 1. Symphony : View-Driven Software architecture reconstruction 2. 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 Conforms To view Viewpoint : Front 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 1. Data Gathering 2. Knowledge Inference 3. 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 1. Metaware domain and asset analysis • • Metaware inventory Metamodel recovery Metamodels integration Metamodel clustering 2. Metaware requirement analysis • • • Meta-level actor identification Meta-level use case identification Metaware assessment and improvement analysis 3. 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
- Slides: 13