Computer Systems & Architecture Lesson 4 8. Reconstructing Software Architectures.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

C6 Databases.
Introduction to Databases
Reconstructing an Architecture. Why Lost documentation No documentation ever Architectural drift Prove conformance.
Requirements Specification
File Systems and Databases
Marakas: Decision Support Systems, 2nd Edition © 2003, Prentice-Hall Chapter Chapter 1: Introduction to Decision Support Systems Decision Support.
Living in a Digital World Discovering Computers 2010.
Introduction to Databases Transparencies
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
Your Interactive Guide to the Digital World Discovering Computers 2012.
PHASE 3: SYSTEMS DESIGN Chapter 7 Data Design.
UML - Development Process 1 Software Development Process Using UML (2)
5.1 © 2007 by Prentice Hall 5 Chapter Foundations of Business Intelligence: Databases and Information Management.
Databases and LINQ Visual Basic 2010 How to Program 1.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Objectives Overview Define the term, database, and explain how a database interacts with data and information Define the term, data integrity, and describe.
RUP Implementation and Testing
ITEC224 Database Programming
An Introduction to Software Architecture
Software School of Hunan University Database Systems Design Part III Section 5 Design Methodology.
Chapter 9 Designing Databases Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
9/14/2012ISC329 Isabelle Bichindaritz1 Database System Life Cycle.
Information Systems: Databases Define the role of general information systems Describe the elements of a database management system (DBMS) Describe the.
1 Chapter 15 Methodology Conceptual Databases Design Transparencies Last Updated: April 2011 By M. Arief
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
Objectives Overview Define the term, database, and explain how a database interacts with data and information Describe the qualities of valuable information.
1/26/2004TCSS545A Isabelle Bichindaritz1 Database Management Systems Design Methodology.
1.file. 2.database. 3.entity. 4.record. 5.attribute. When working with a database, a group of related fields comprises a(n)…
C6 Databases. 2 Traditional file environment Data Redundancy and Inconsistency: –Data redundancy: The presence of duplicate data in multiple data files.
Systems Analysis and Design in a Changing World, 3rd Edition
McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 5 Data Resource Management.
SOFTWARE CONFIGURATION MANAGEMENT. Change is inevitable when computer software is built. And change increases the level of confusion among software engineers.
5 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Part4 Methodology of Database Design Chapter 07- Overview of Conceptual Database Design Lu Wei College of Software and Microelectronics Northwestern Polytechnical.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Distributed Data Analysis & Dissemination System (D-DADS ) Special Interest Group on Data Integration June 2000.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
IBM Global Services © 2005 IBM Corporation SAP Legacy System Migration Workbench| March-2005 ALE (Application Link Enabling)
Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Enterprise Architectures. Core Concepts Key Learning Points: This chapter will help you to answer the following questions: What are the ADM phase names.
MANAGEMENT INFORMATION SYSTEM
1 CASE Computer Aided Software Engineering. 2 What is CASE ? A good workshop for any craftsperson has three primary characteristics 1.A collection of.
Visual Basic 2010 How to Program
Chapter 20: Architecture Reconstruction and Conformance
Object-Oriented Techniques
System Design.
Fundamentals of Information Systems
By Dr. Abdulrahman H. Altalhi
Databases and Information Management
Database.
Chapter 5 Data Resource Management.
CLINICAL INFORMATION SYSTEM
Reconstructing an Architecture
University of Houston-Clear Lake
MANAGING DATA RESOURCES
Object oriented analysis and design
Databases and Information Management
An Introduction to Software Architecture
Reconstructing an Architecture
Metadata The metadata contains
Tutorial 7 – Integrating Access With the Web and With Other Programs
Reconstructing an Architecture
Presentation transcript:

Computer Systems & Architecture Lesson 4 8. Reconstructing Software Architectures

8. Reconstructing Software Architecture Objectives Describe why we need to reconstruct the software architecture Explain about the database construction List the importance of information extraction in software architecture

8.1 Introduction Suppose we have a system that already exists, but we do not know its architecture. Perhaps the architecture was never recorded by the original developers. Perhaps it was recorded but the documentation has been lost. Or perhaps it was recorded but the documentation is no longer synchronized with the system after a series of changes. How do we maintain such a system? How do we manage its evolution to maintain the quality attributes that its architecture has provided for us?

Architecture reconstruction requires tool support, but no single tool or tool set is always adequate to carry it out. For one thing, tools tend to be language- specific and we may encounter anu number of languages in the artifacts we examine. A workbench should be open and provide a lightweight integration framework whereby tools added to the tool set do not affect the existing tools or data unnecessarily. The workbench approach

Reconstruction activities Software architecture reconstruction comprises the following activities, carried out iteratively: 1.Information extraction 2.Database construction 3.View fusion 4.Reconstruction

8.2 Information extraction Information extraction involves analyzing a system’s existing design and implementation artifacts to construct a model of it. The result is a set of information placed in a database, which is used in the view fusion activity to construct a view of the system. Information extraction is a blend of the ideal – what information do you want to discover about the architecture that will most help you meet the goals of your reconstruction effort – and the practical – what information can your available tools actually extract and present.

From the source artifacts and other artifacts, you can identify and capture the elements of interest within the system and their relationships to obtain several base system views. Guidelines The following are some practical considerations in applying this step of the method. –Use the ‘least effort’ extraction. –Validate the information you have extracted. –Extract dynamic information where required.

8.3 Database construction The extracted information is converted into standard format for storage in a database during database construction. It is necessary to choose a database model. When doing so, consider the following: –It should be well-known model, to make replacing one database implementation with another relatively simple. –It should allow for efficient queries, which is important given that source models can be quite large.

-It should support remote access of the database from one or more geographically distributed user interfaces. -It supports view fusion by combining information from various tables. -It supports query languages that can express architectural patterns. -Checkpointing should be supported by implementations, which means that intermediate results can be saved.

SQL CodeExtracted View Rigi Standard Form Conversion of the extracted information to SQL format

The Dali workbench, for example, uses a relational database model. It converts the extracted views into Rigi Standard Form. This format is then read in by a perl script and output in a format that includes the necessary SQL code to build the relational tables and populate them with the extracted information. The above diagram shows an outline of this process.

Guidelines When constructing the database, consider the following. –Build database tables from the extracted relations to make processing of the data views easier during view fusion. –As with any database contraction, carefully consider the database design before you get started. –Use simple lexical tools like perl and awk to change the format of data that was extracted using any tools into a format that can be used by the workbench.

View fusion involves defining and manipulating extracted information to reconcile, augment and establish connections between the elements. Different forms of extraction should provide complementary information. Fusion is illustrated using the examples given in the following sections. 8.4 View fusion

Improving a view Consider the two excerpts shown in the below figure, which are from the sets of methods extracted from a system implemented in C++. These tables include static and dynamic information about an object-oriented segment of code. We can see from the dynamic information that, for example, list::getnth is called. However, this method is not included in the static analysis because the static extractor tool missed it.

Static and dynamic data information about the class-contains-method relation InputValue::GetValue InputValue::SetValue List::() List::length List::attachr List::detachr PrimitiveOp::Compute InputValue::GetValue InputValue::SetValue InputValue::-InputValue InputValue::InputValue List::() List::length List::getnth List::list Arithmeticop::Compute

Also, the calls to the constructor and destructor methods of Inputvalue and List are not included in the static information and need to be added to the class/method table that reconciles both source of information. In addition, the static extraction in this example shows that the PrimitiveOP class has a method called Compute. The dynamic extraction results show no such class, but they do show classes, such as ArithmeticOp, which has a Compute method and is in fact a subclass of PrimitiveOp.

Disambiguating function calls In a multi-process application, name clashes are likely to occur. For example, several processes might have a procedure called main. It is important that clashes be identified and disambiguated within the extracted views. Once again, by fusing information that can be easily extracted, we can remove this potential ambiguity.

Guidelines The following are some practical considerations in applying this step of the method. –Fuse tables when no single extracted table provides the needed information. –Fuse table when there is ambiguity within one of them, and it is not possible to disambiguate using a single table. –Consider different extraction techniques to extract different information: for example you can use dynamic and static extraction.

8.5 Reconstruction At this point, the view information has been extracted, stored and refined or augmented to improve its quality. The reconstruction operates on views to reveal broad, coarse-grained insights into the architecture. Reconstruction consists of two primary activities: visualization and interaction and pattern definition and recognition. –Visualization and interaction provides a mechanism by which the user may interactively visualize, explore and manipulate views.

–Pattern definition and recognition provides facilities for architectural reconstruction: the definition and recognition of the code manifestation of architectural patterns. Guidelines The following are some practical considerations in applying this step of the method. Be prepared to work with the architect closely and to iterate several times on the architectural abstractions that you create.

When developing code segments, try to build ones that are succinct and that do not list every source element. Code segments can be based on naming conventions, if the naming conventions are used consistently throughout the system. Code segments can be used on the directory structure where files and functions are located. Architecture reconstruction is the effort of redetermining architectural decisions, given only the result of these decisions in the actual artifacts.