Software Architecture Reconstruction By Elizabeth Griffith Derived from a report done by Vijaya Datta Mayyuri.

Slides:



Advertisements
Similar presentations
Presentation by Prabhjot Singh
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Design Concepts and Principles
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University Version 1.0 IWPC page 1 Pittsburgh, PA Architectural.
Amit, Keyur, Sabhay and Saleh Model Driven Architecture in the Enterprise.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 11 Prof. Crista Lopes.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
1 SWE Introduction to Software Engineering Lecture 5.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.
An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University.
SE 555 – Software Requirements & Specifications Introduction
Course Instructor: Aisha Azeem
Software Process Activities. Process activities Real software processes are inter-leaved sequences of technical, collaborative and managerial activities.
Software Life Cycle Model
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Developing Enterprise Architecture
MDA Guide Version CYT. 2 Outline OMG Vision and Process Introduction to MDA How is MDA Used? MDA Transformations Other MDA Capabilities Using the.
SDLC: System Development Life Cycle Dr. Bilal IS 582 Spring 2006.
Introduction to SDLC: System Development Life Cycle Dr. Dania Bilal IS 582 Spring 2009.
1 Introduction to Modeling Languages Striving for Engineering Precision in Information Systems Jim Carpenter Bureau of Labor Statistics, and President,
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
ITEC224 Database Programming
Introduction to MDA (Model Driven Architecture) CYT.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
SDLC: System Development Life Cycle Dr. Dania Bilal IS 582 Spring 2007.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Modelling Class T16: Conceptual Modelling – Architecture Image from
1 Introduction to Software Engineering Lecture 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Software Architecture Reconstruction By Vijaya Datta Mayyuri Symphony, Cacophony.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Database Environment Chapter 2. Data Independence Sometimes the way data are physically organized depends on the requirements of the application. Result:
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
1 ECCF Training 2.0 Introduction ECCF Training Working Group January 2011.
PRJ566 Project Planning & Management Software Architecture.
SQL Based Knowledge Representation And Knowledge Editor UMAIR ABDULLAH AFTAB AHMED MOHAMMAD JAMIL SAWAR (Presented by Lei Jiang)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Introduction to Design. 2 Outline Basics of design Design approaches.
310414IMPLEMENTATION1 IMPLEMENTATIONIMPLEMENTATION SOFTWARE ENGINEERING SOFTWARE ENGINEERING.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Information Systems in Organisations Module Introduction.
Systems Architectures System Integration & Architecture.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Page 1 Hitachi Ltd. – FhI FOKUS TTCN-3 User Conference, June 2005 MDA based approach for generation of TTCN-3 test specifications Hideto Ogawa, Hitachi.
CompSci 280 S Introduction to Software Development
Software Architecture in Practice
CS 389 – Software Engineering
Object-Oriented Software Engineering Using UML, Patterns, and Java,
SDLC: System Development Life Cycle
Lecture 9- Design Concepts and Principles
IEEE Std 1074: Standard for Software Lifecycle
Architecture Components
UNIFIED PROCESS.
Chapter 2 – Software Processes
Lecture 09:Software Testing
Lecture 9- Design Concepts and Principles
Metadata Framework as the basis for Metadata-driven Architecture
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Software Architecture & Design
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. ……

Viewpoints and Views in Symphony

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.

Any Questions?

[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” [5] OMG, “Meta Object Facility (MOF) Specification” Version 1.4,April 2002 ReferencesReferences [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” [5] OMG, “Meta Object Facility (MOF) Specification” Version 1.4,April 2002