Reconstructing an Architecture

Slides:



Advertisements
Similar presentations
CPSC 388 – Compiler Design and Construction
Advertisements

C6 Databases.
Reconstructing an Architecture. Why Lost documentation No documentation ever Architectural drift Prove conformance.
Motif Space Database Design Kiranjit Sidhu. 2 Outline  Schema Design  Content of Database  Functionality  Future Plans.
Toward Online Schema Evolution for Non-Stop Systems Amol Deshpande, University of Maryland Michael Hicks, University of Maryland.
1 Information Retrieval and Extraction 資訊檢索與擷取 Chia-Hui Chang, Assistant Professor Dept. of Computer Science & Information Engineering National Central.
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
CS2032 DATA WAREHOUSING AND DATA MINING
Lecture-8/ T. Nouf Almujally
Session-01. Hibernate Framework ? Why we use Hibernate ?
Oracle Developer Tools for Visual Studio.NET Curtis Rempe.
Module 2: Using Transact-SQL Querying Tools. Overview SQL Query Analyzer Using the Object Browser Tool in SQL Query Analyzer Using Templates in SQL Query.
Ihr Logo Data Explorer - A data profiling tool. Your Logo Agenda  Introduction  Existing System  Limitations of Existing System  Proposed Solution.
Dr. Zhen Jiang Computer Science Department West Chester University
Design 2: System Architecture CS406 Tivoli 1. Overview  Refined use cases  Functionality  Components  Classes  System Behavior  Prototype.
XML as a Boxwood Data Structure Feng Zhou, John MacCormick, Lidong Zhou, Nick Murphy, Chandu Thekkath 8/20/04.
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.
Creating Dynamic Web Pages Using PHP and MySQL CS 320.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
CSCI 6962: Server-side Design and Programming Database Manipulation in ASP.
Data Mining By Dave Maung.
Ihr Logo Chapter 5 Business Intelligence: Data Warehousing, Data Acquisition, Data Mining, Business Analytics, and Visualization Turban, Aronson, and Liang.
SEMINAR WEI GUO. Software Visualization in the Large.
ABSTRACT The JDBC (Java Database Connectivity) API is the industry standard for database- independent connectivity between the Java programming language.
Computer Systems & Architecture Lesson 4 8. Reconstructing Software Architectures.
Compiler design Lecture 1: Compiler Overview Sulaimany University 2 Oct
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
Chapter 1 Introduction Major Data Structures in Compiler
SIMO Python/XML Simulator Current situation 28/10/2005 SIMO Seminar Antti Mäkinen Dept. of Forest Resource Management / University of Helsinki.
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.
Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May.
Ontolica Fusion 4.0 The easy Automation Tool for SharePoint Steen Jakobsen Fusion Principal Architect
Preface IIntroduction Course Objectives I-2 Course Content I-3 1Introduction to Oracle Reports Developer Objectives 1-2 Business Intelligence 1-3 Enterprise.
1 CASE Computer Aided Software Engineering. 2 What is CASE ? A good workshop for any craftsperson has three primary characteristics 1.A collection of.
Database and Cloud Security
Tool Support for Testing
Software Architecture in Practice
Compiler Design (40-414) Main Text Book:
Chapter 20: Architecture Reconstruction and Conformance
Chapter 1 Introduction.
The Basics of Dashboards
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
CS416 Compiler Design lec00-outline September 19, 2018
Authors: Khaled Abdelsalam Mohamed Amr Kamel
Introduction CI612 Compiler Design CI612 Compiler Design.
CPSC 388 – Compiler Design and Construction
CMPE 152: Compiler Design August 23 Class Meeting
CMPE 152: Compiler Design August 21/23 Lab
UmbrellaDB v0.5 Project Report #3
Subject: Language Processor
Reconstructing an Architecture
5 × 7 = × 7 = 70 9 × 7 = CONNECTIONS IN 7 × TABLE
CS416 Compiler Design lec00-outline February 23, 2019
5 × 8 = 40 4 × 8 = 32 9 × 8 = CONNECTIONS IN 8 × TABLE
4 × 6 = 24 8 × 6 = 48 7 × 6 = CONNECTIONS IN 6 × TABLE
5 × 6 = 30 2 × 6 = 12 7 × 6 = CONNECTIONS IN 6 × TABLE
CMPE 152: Compiler Design January 29 Class Meeting
Reconstructing an Architecture
Lec00-outline May 18, 2019 Compiler Design CS416 Compiler Design.
Database SQL.
Course Instructor: Supriya Gupta Asstt. Prof
Information Services Claudio Cherubino INFN Catania Bologna
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 Bottom up Opportunistic Tools

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

Data Source Types Static Dynamic

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

Extracted Data <includes file file> <contains file function> <defines_var file variable> <contains directory directory> <contains directory file> <calls function function> <access_read function variable> <access_write function variable>

Guidelines Use least-effort Validate the information extracted Extract dynamic information when needed

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

Database Structure Need a standard format or model Efficient queries Authors use Rigi Standard Format Efficient queries Support fusion Checkpointing for intermediate results

DB tables Table of relation names Table of elements Table for each relation - triples RelationTable RelationType Thing1 Thing2 And/Or IncludesTable File1 File2 ContainsTable File Function …

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

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::getnth ArithmeticOp::Compute StringOp::Compute What about these? Static analyzer missed this (no reason given)

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

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

Guidelines for Fusions When no single view shows needed information 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 System Tool-Based Reconstruction Reconstruction Pattern Recogn. View Extraction Visualization DB Doc Presentation View Fusion

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

Guidelines Work with the architect if possible Code segments should be effective at producing new and useful view Naming conventions Directory structure

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