Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May.

Slides:



Advertisements
Similar presentations
Universität Koblenz-Landau Institut für Softwaretechnik GUPRO WOSEF 2000Limerick, (1) Components of Interchange Formats (Metaschemas and Typed.
Advertisements

Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Combining Static and Dynamic Data in Code Visualization David Eng Sable Research Group, McGill University PASTE 2002 Charleston, South Carolina November.
Executable XML Present by 吳昆澤. Outline  Introduction  Simkin  Jelly  o:XML  Conclusion.
Computers: Tools for an Information Age
An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
HDF 1 NCSA HDF XML Activities Robert E. McGrath Mike Folk National Center for Supercomputing Applications.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Intelligent Workflow Management System(iWMS). Agenda Background Motivation Usage Potential application domains iWMS.
The Center for Advanced Research In Software Engineering (ARISE) The University of Texas at Austin Reengineering of Large-Scale Polylingual Systems Mark.
C++ Object Oriented 1. Class and Object The main purpose of C++ programming is to add object orientation to the C programming language and classes are.
CS 355 – Programming Languages
The role of metadata schema registries XML and Educational Metadata, SBU, London, 10 July 2001 Pete Johnston UKOLN, University of Bath Bath, BA2 7AY UKOLN.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
Chapter 1. Introduction.
Introduction to MDA (Model Driven Architecture) CYT.
Topic S Program Analysis and Transformation SEG 4110: Advanced Software Design and Reengineering.
Interoperability in Information Schemas Ruben Mendes Orientador: Prof. José Borbinha MEIC-Tagus Instituto Superior Técnico.
Session IV Chapter 9 – XML Schemas
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Defining, Transforming, and Exchanging High-Level Schemas A guided journey through the outback Presented by Michael W. Godfrey Software Architecture Group.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Ocean Observatories Initiative Data Management (DM) Subsystem Overview Michael Meisinger September 29, 2009.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
Lecture 1 Introduction Figures from Lewis, “C# Software Solutions”, Addison Wesley Richard Gesick.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Verification of behavioural elements of UML models using B Truong, Ninh-Thuan and Souquieres, Jeanine In Proceedings of the 2005 ACM Symposium on.
Computer Systems & Architecture Lesson 4 8. Reconstructing Software Architectures.
Week III  Recap from Last Week Review Classes Review Domain Model for EU-Bid & EU-Lease Aggregation Example (Reservation) Attribute Properties.
Scaling Heterogeneous Databases and Design of DISCO Anthony Tomasic Louiqa Raschid Patrick Valduriez Presented by: Nazia Khatir Texas A&M University.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Introduction to Code Generation and Intermediate Representations
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Issues in Ontology-based Information integration By Zhan Cui, Dean Jones and Paul O’Brien.
Dictionary based interchanges for iSURF -An Interoperability Service Utility for Collaborative Supply Chain Planning across Multiple Domains David Webber.
Representing data with XML SE-2030 Dr. Mark L. Hornick 1.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
 Programming - the process of creating computer programs.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Registry of MEG-related schemas MEG BECTa, Coventry, 17 July 2001 Pete Johnston UKOLN, University of Bath Bath, BA2 7AY UKOLN is supported by:
RE-ENGINEERING AND DOMAIN ANALYSIS BY- NISHANTH TIRUVAIPATI.
CSER / CASCON 1999 Exchange formats: Some problems, a few results, and a cool name Michael Godfrey Ivan Bowman and others … University of Waterloo.
Semantic Data Extraction for B2B Integration Syntactic-to-Semantic Middleware Bruno Silva 1, Jorge Cardoso 2 1 2
Executive Overview. Software modeling is essential, because it is the map that guides your developers. Additionally: Modeling Software  Visual information.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
2) Database System Concepts and Architecture. Slide 2- 2 Outline Data Models and Their Categories Schemas, Instances, and States Three-Schema Architecture.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
CHAPTER NINE Accessing Data Using XML. McGraw Hill/Irwin ©2002 by The McGraw-Hill Companies, Inc. All rights reserved Introduction The eXtensible.
PROGRAMMING (1) LECTURE # 1 Programming and Languages: Telling the Computer What to Do.
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
XML: Extensible Markup Language
Sharing is fun! Thoughts on open access research
Model-Driven Analysis Frameworks for Embedded Systems
Implementing Language Extensions with Model Transformations
Software Design Lecture : 14.
Database Systems Instructor Name: Lecture-3.
Secrets from the Monster: Extracting Mozilla’s Software Architecture
Metadata The metadata contains
Implementing Language Extensions with Model Transformations
Presentation transcript:

Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May 17, 1999

CoSET Introduction There is a wealth of re-engineering tools Often, we would like to combine these Differences in tool storage formats and semantics makes reuse difficult We defined an exchange format that can be used to combine several tools: –CIAO, Dali, Datrix, PBS, and Rigi Introduction

CoSET Background Recent work within CSER has identified opportunities for re-use between tools We identified two levels of tools: –Code-Level tools provide detailed support –Architecture-Level tools identify high-level abstractions We describe a format for connecting architecture-level tools Introduction

CoSET Architectural Reconstruction Introduction Source Code Executing System Source Control System Artifacts Scanning Parsing Profiling Change Reporting Extractors Extracted Facts RepositoryView Generation Visualization Manipulation Architecture

CoSET Entity-Relational Model Entities represent source code elements such as functions, variables, or types Relations represent associations in source code such as calls or inheritance Attributes such as line-number record additional information A Schema defines the allowed entities, relations, and attributes Model

CoSET Example Schema Model Function line number Variable line number references line number calls line number Module owner contains

CoSET Connection Format Requirements Support multiple source languages Scale to large systems (e.g. 10 MLOC) Provide mapping to source code Support static and dynamic dependencies Incremental approach Must be extensible, allowing new schemes to be defined as needed Requirements

CoSET The Naming Problem Each entity must have unique ID Source languages may allow two code elements to have the same name –typedef int T; –struct T {... }; To combine facts, we need a common naming scheme We have defined a scheme for Java, and we are discussing possible solutions for C,C++ Problems

CoSET The Line-Number Problem We require a mechanism to get from an entity back to source code An obvious solution is to store file + line # –We want same file name on different machines –Some entities are defined on a range of lines, or non-contiguous ranges of lines (for example, namespaces) Problems

CoSET The Resolution Problem For each reference in source code, we can determine the reference target Several resolution strategies are used: –No resolution - each reference is an entity –Resolved to declaration (in a header file) –Resolved to static definition (entity body) –Resolved to dynamic definition (virtual functions, pointers) Problems

CoSET TAXForm Idea: provide converters between tool- specific formats and a common format There are two parts to an exchange format: –Syntax of data (representation in files) –Semantic structure (schemas) We chose TA syntax (others are attractive) We allow tool developers to define their own schemas as needed TAXForm

CoSET Transforming Between Schemas TAXForm Universal High-LevelProcedural PL/IC Object-Oriented C++Java Dali CRigi CPBS C

CoSET Implementing TAXForm We evaluated TAXForm by implementing converters for several existing re- engineering tools The syntactic transformation was trivial We used Tarski relational algebra to specify transformations, and executed them with grok, a relational calculator Evaluation

CoSET Evaluation of TAXForm Writing schema transformations required careful study of semantics used by each tool Tools used different terminology with different underlying assumptions By defining transforms between models, we formally document all of these assumptions and provide a dictionary for terminology Evaluation

CoSET Systems Modeled Evaluation

CoSET Summary and Future Work We defined TAXForm as an exchange format between architecture-level tools We validated our format by implementing converters from existing tool formats We need to further describe the semantics of each model Conclusion