Reconstructing an Architecture. Why Lost documentation No documentation ever Architectural drift Prove conformance.

Slides:



Advertisements
Similar presentations
CPSC 388 – Compiler Design and Construction
Advertisements

Documentation Generators: Internals of Doxygen John Tully.
Semantic analysis Parsing only verifies that the program consists of tokens arranged in a syntactically-valid combination, we now move on to semantic analysis,
Toward Online Schema Evolution for Non-Stop Systems Amol Deshpande, University of Maryland Michael Hicks, University of Maryland.
Supervised by Prof. LYU, Rung Tsong Michael Department of Computer Science & Engineering The Chinese University of Hong Kong Prepared by: Chan Pik Wah,
Data Flow Analysis Compiler Design October 5, 2004 These slides live on the Web. I obtained them from Jeff Foster and he said that he obtained.
1 Information Retrieval and Extraction 資訊檢索與擷取 Chia-Hui Chang, Assistant Professor Dept. of Computer Science & Information Engineering National Central.
Information Retrieval and Extraction 資訊檢索與擷取 Chia-Hui Chang National Central University
Session-01. Hibernate Framework ? Why we use Hibernate ?
Oracle Developer Tools for Visual Studio.NET Curtis Rempe.
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
Ihr Logo Data Explorer - A data profiling tool. Your Logo Agenda  Introduction  Existing System  Limitations of Existing System  Proposed Solution.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Databases and LINQ Visual Basic 2010 How to Program 1.
Design 2: System Architecture CS406 Tivoli 1. Overview  Refined use cases  Functionality  Components  Classes  System Behavior  Prototype.
Lecture slides prepared for “Computer Security: Principles and Practice”, 3/e, by William Stallings and Lawrie Brown, Chapter 5 “Database and Cloud Security”.
Defining Text Mining Preprocessing Transforming unstructured data stored in document collections into a more explicitly structured intermediate format.
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
Cognos Finance Tips & Techniques Part I Aimee Sousa Cognos.
Creating Dynamic Web Pages Using PHP and MySQL CS 320.
CST320 - Lec 11 Why study compilers? n n Ties lots of things you know together: –Theory (finite automata, grammars) –Data structures –Modularization –Utilization.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Optimization in XSLT and XQuery Michael Kay. 2 Challenges XSLT/XQuery are high-level declarative languages: performance depends on good optimization Performance.
CSCI 6962: Server-side Design and Programming Database Manipulation in ASP.
NET-AUCTION This online auction project Directed by: Mr. Maxim Gurevich Submitted by: Yuri Kipnis Alex Scheotkin Alex Scheotkin.
Ihr Logo Chapter 5 Business Intelligence: Data Warehousing, Data Acquisition, Data Mining, Business Analytics, and Visualization Turban, Aronson, and Liang.
Hands-On Microsoft Windows Server Implementing Microsoft Internet Information Services Microsoft Internet Information Services (IIS) –Software included.
Research Topics CSC Parallel Computing & Compilers CSC 3990.
SEMINAR WEI GUO. Software Visualization in the Large.
Declaratively Producing Data Mash-ups Sudarshan Murthy 1, David Maier 2 1 Applied Research, Wipro Technologies 2 Department of Computer Science, Portland.
Matthew van Cittert Supervisor: Prof. Shaun Bangay A second look at the “glorified text-editor”
Computer Systems & Architecture Lesson 4 8. Reconstructing Software Architectures.
1 Chapter 1 Introduction. 2 Outlines 1.1 Overview and History 1.2 What Do Compilers Do? 1.3 The Structure of a Compiler 1.4 The Syntax and Semantics of.
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
Distributed Data Analysis & Dissemination System (D-DADS ) Special Interest Group on Data Integration June 2000.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
 Fall Chart 2  Translators and Compilers  Textbook o Programming Language Processors in Java, Authors: David A. Watts & Deryck F. Brown, 2000,
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Extracting Sequence.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May.
WonderWeb. Ontology Infrastructure for the Semantic Web. IST Project Review Meeting, 11 th March, WP2: Tools Raphael Volz Universität.
©SoftMoore ConsultingSlide 1 Structure of Compilers.
Presented by : A best website designer company. Chapter 1 Introduction Prof Chung. 1.
DBS201: Data Modeling. Agenda Data Modeling Types of Models Entity Relationship Model.
Preface IIntroduction Course Objectives I-2 Course Content I-3 1Introduction to Oracle Reports Developer Objectives 1-2 Business Intelligence 1-3 Enterprise.
Reactor An ORM framework for ColdFusion Presentation By: Doug Hughes
Database and Cloud Security
Visual Basic 2010 How to Program
Software Architecture in Practice
Chapter 20: Architecture Reconstruction and Conformance
Chapter 1 Introduction.
SOFTWARE DESIGN AND ARCHITECTURE
Chapter 1 Introduction.
EIN 6133 Enterprise Engineering
1z0-320 Exam dumps - Get 1z0-320 PDF With Actual Questions Answers
CAE-SCRUB for Incorporating Static Analysis into Peer Reviews
Course Name: QTP Trainer: Laxmi Duration: 25 Hrs Session: Daily 1 Hr.
Authors: Khaled Abdelsalam Mohamed Amr Kamel
Hands-on Introduction to Visual Basic .NET
Reconstructing an Architecture
Data Flow Analysis Compiler Design
Reconstructing an Architecture
Reconstructing an Architecture
Databases and Information Management
Lec00-outline May 18, 2019 Compiler Design CS416 Compiler Design.
Course Instructor: Supriya Gupta Asstt. Prof
Building pattern  Complete the following tables and write the rule 
Presentation transcript:

Reconstructing an Architecture

Why Lost documentation No documentation ever Architectural drift Prove conformance

Approaches Manual Methods Top down  For example, start with high-level diagrams Bottom up  For example, start with comments in code Opportunistic  Use whatever is available Tools

Tool-Based Reconstruction View Extraction DB Presentation Pattern Recogn. Visualization View Fusion Reconstruction Doc System

Data Source Types Static Dynamic

Tools Parsers Abstract Syntax Tree Analyzers Lexical Analyzer Profilers Code instrumentation tools Ad hoc Workbench

Extracted Data

Guidelines Use least-effort Validate the information extracted Extract dynamic information when needed For example, if the system uses a lot of late binding or runtime configuration

Tool-Based Reconstruction View Extraction DB Presentation Pattern Recogn. Visualization View Fusion Reconstruction Doc System

Database Structure Need a standard format or model Authors use Rigi Standard FormatRigi Standard Format RDF triples are very similar, and OWL reasoning might be useful RDFOWL Efficient queries Support fusion Checkpointing for intermediate results

DB tables Table of relation names Table of elements Table for each relation - triples RelationTable RelationTypeThing1Thing2 IncludesTable File1File2 ContainsTable FileFunction And/Or …

Tool-Based Reconstruction View Extraction DB Presentation Pattern Recogn. Visualization View Fusion Reconstruction Doc System

View Fusion Reconcile Augment Establish connections

Example: fusing static and dynamic views of the “calls” relation Static: calls extracted from source List::length PrimitiveOp::Compute Dynamic: calls detected by profiler List::length List::getnth ArithmeticOp::Compute StringOp::Compute Static analyzer missed this (no reason given) What about these?

Fusing static+dynamic, continued PrimitiveOp +Compute ArithmeticOp +Compute StringOp +Compute Static analyzer saw this Profiler saw these List::length List::getnth PrimitiveOp::Compute Fused list of calls: See examples 10-4, 10-5 p 240

Example: fusing calls from different processes main() { register(); } Server main() { launch(); } GUI Launcher Calls mainregister mainlaunch Calls Server.mainregister Launcher.mainlaunch UnfusedFused

Guidelines for Fusions Fuse when no single view shows needed information Fuse when a view is too ambiguous and ambiguity can be resolved by fusion Use multiple extraction techniques Different kinds of tools Different implementations of tools

Tool-Based Reconstruction View Extraction DB Presentation Pattern Recogn. Visualization View Fusion Reconstruction Doc System

Reconstructions SQL examples for Reconstructions See 10.9 – aggregate local variables Build SQL queries for reconstruction

Yet more guidelines Work with the architect if possible Code segments should be as re-usable as possible A “code segment” is a capability based on DB query + other code, that can identify patterns or create views Code segments can take advantage of Naming conventions Directory structure

Example in text Repeated view fusions and aggregations eventually produce a just- barely-usable view pp 248 – 257