© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.1 8. Tool Integration Why Integrate Tools? Which Tools to Integrate? Tool Integration Issues The “Help yourself”

Slides:



Advertisements
Similar presentations
Major Influences on the Design of ODM Dan Chang (IBM) Elisa Kendall (Sandpiper) MDSW 2004.
Advertisements

1 Copyright ©2007 Sandpiper Software, Inc. Vocabulary, Ontology & Specification Management at OMG Elisa Kendall Sandpiper Software
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
Meng Tian Extension in Domain Specific Code Generation with Ontology Based Aspect Weaving Supervisor: Julian Rathke
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
© S. Demeyer, S. Ducasse, O. Nierstrasz Reverse Engineering.1 2. Reverse Engineering What and Why Setting Direction  Most Valuable First First Contact.
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
1 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu NOREX A Distributed Reengineering Environment Radu.
Lesson-12 Information System Development-2
© S. Demeyer, S. Ducasse, O. Nierstrasz Duplication.1 7. Problem Detection Metrics  Software quality  Analyzing trends Duplicated Code  Detection techniques.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Object-Oriented Reengineering Oscar Nierstrasz Software Composition Group University of Bern.
© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.1 10(b). Tool Integration Why Integrate Tools? Which Tools to Integrate? Tool Integration Issues The “Help.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 Info 1409 Systems Analysis & Design Module Lecture 8 – Modelling tools and techniques HND Year /9 De Montfort University.
Object-Oriented Reengineering Patterns and Techniques Prof. O. Nierstrasz Prof. S. Ducasse T.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
® Eurostep.ESUKPC v0.1©Copyright Eurostep Limited An Introduction to ISO STEP Part 25 David Price.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
HL7 UK 2003 (c) Abies Ltd Modelling Clinical Information Using UML Tim Benson Abies Ltd
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
UML Tools ● UML is a language, not a tool ● UML tools make use of UML possible ● Choice of tools, for individual or group use, has a large affect on acceptance.
Xactium xDSLs Run Models Not Code Tony Clark
Model Transformations
Requirements Analysis
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
UML2 Package Merge Usage scenarios and their effect on XMI and Java API interoperability Bran Selic, Jim Amsden, Kenn Hussey Oct, 2003.
Metadata Tools and Methods Chris Nelson Metanet Conference 2 April 2001.
© S. Demeyer, S. Ducasse, O. Nierstrasz Intro.1 1. Introduction Goals Why Reengineering ?  Lehman's Laws  Object-Oriented Legacy Typical Problems  common.
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
Introduction to MDA (Model Driven Architecture) CYT.
Tools for Diagrammatic Specifications Stian Skjerveggen Supervisors: Yngve Lamo, Adrian Rutle, Uwe Egbert Wolter.
Workshop 16: An upward shift in abstraction leads to a corresponding increase in productivity. In the past this has occurred when programming languages.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Introduction to Server-Side Web Development Introduction to Server-Side Web Development using JSP and Web Services JSP and Web Services 18 th March 2005.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
ISO/TC 211 WG4 WI 18 Encoding Foil no. 1 Annex C XML and XMI David Skogan SINTEF Telecom and Informatics
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Issues in Ontology-based Information integration By Zhan Cui, Dean Jones and Paul O’Brien.
All Presentation Material Copyright Eurostep Group AB ® A Meta-model of EXPRESS in UML for MOF and UML to EXPRESS David Price April 2002.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
ModTransf A Simple Model to Model Transformation Engine Cédric Dumoulin.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
Requirements Analysis
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.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: UML 2 Metamodel Note to Instructor: The material in this.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
The Dagstuhl Middle Model: An Overview Timothy C. Lethbridge SITE, University. of Ottawa
November 2001, Slide 1 P.Habela, K.Subieta: Standard Metamodel for Object Databases (2) Standard Metamodel for Object Databases (2): Proposed Improvements.
Model Driven Architecture MDA SE-548 Lale Doğan
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.
Discussion Topics for Exploring OMG UPDM Way-ahead
Object Management Group Information Management Metamodel
SysML v2 Formalism: Requirements & Benefits
Object-Oriented Database Management System (ODBMS)
Seminar 1 Design of Informatics Systems
Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel
Implementing Language Extensions with Model Transformations
Modelling Clinical Information Using UML
Domain Specific Product Description Exchange
Implementing Language Extensions with Model Transformations
Software Architecture & Design
Presentation transcript:

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.1 8. Tool Integration Why Integrate Tools? Which Tools to Integrate? Tool Integration Issues The “Help yourself” approach  How to Obtain Data?  API Examples (Java, Rational/Rose) Exchange Standards  MOF & XMI  UML shortcomings

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.2 The Reengineering Life-Cycle Requirements Designs Code (0) requirement analysis (1) model capture (2a) problem detection (3) problem resolution (4) Code Transformation (1) Model Capture (2) Code transformation issues Different tools Model exchange (2b) Reverse Engineering

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.3 Why Integrate Tools? Tool Adage  Tools are necessary to improve productivity. Tool Principle  Give Software Tools to Good Engineers. “Bad” engineers should produce less, not more, poor-quality software [Davi95a]. Towards CARE  CAD/CAM: Computer Aided Design / Manufacturing – Late 70’s Create and validate design diagrams & steer manufacturing processes  CASE: Computer Aided Software Engineering — Late 80’s Support (parts of) the Software Engineering Process  CARE: Computer Aided Reengineering — Mid 90’s Support Software Reengineering Activities Y2K tools Round-trip engineering

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.4 Tool Integration Issues Reengineering vs. forward engineering  Forward engineering tools are chosen deliberately.  Reengineering tools must integrate with what’s already in place.  Tool integration in reengineering is harder ... but we can rely on forward engineering experience  “Help yourself” approach Tools must work together  share data  repository  synchronize activities  API  different vendors  interoperability standards

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.5 TraditionalTool Architecture “Most tools for reverse engineering, restructuring and reengineering use the same basic architecture.” [Chik90a], [Chik90b]

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.6 RoadMap Why Integrate Tools? Which Tools to Integrate? Tool Integration Issues The “Help yourself” approach  How to Obtain Data?  API Examples (Java, Rational/Rose) Exchange Standards  MOF & XMI  UML shortcomings

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.7 Help Yourself — Parser Technique: Use parser generator to build a parser for the language Advantage  Full control (dialects, pre-compilers) Disadvantage  Experts only (formal syntax grammars)  Costly  Uncertain about reliability and scalability  Build your own = Maintain your own  Tools to integrate with require source code or API Remarks  C++ requires full control (lots of dialects + pre-compiling tricks)  Extremely complex

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.8 Help Yourself - File Formats Technique: Build gateways between existing tools by translating import/export file formats Advantage  Relatively cheap (assuming formats are documented)  Offers reasonable integration  Reasonable scalability (limited by file system) Disadvantage  Faith in external tools  Maintenance is difficult (future releases change file-formats)  Effort to be duplicated for every tool Remarks  Works only when few gateways must be build  Standardization efforts are under way (CDIF, MOF)  tackles “maintenance” and “duplication of efforts” problems  improves scalability and allows multiple tools

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.9 Help Yourself - API Technique: Build gateways between existing tools using wrappers that extract info via APIs Advantage  Cheap  Good integration  Good scale-up (limited by wrapping tool)  Maintenance effort is reasonable (API’s don’t change that frequently) Disadvantage  Faith in external tools  Effort to be duplicated for every tool  Robustness Remarks  Works only when few gateways must be build  May be combined with “Translate between file-formats”

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.10 API Example - Java A piece of Java-code using the reflection facilities to inspect class elements import java.lang.reflect.*; public class ClassInspector {... /* definition of auxiliary methods Print... */ public static void Inspect (Class c) { System.out.println(“Contents of class “ + c.getName()); PrintFields (c.getFields()); PrintConstructors(c.getConstructors()); PrintMethods(c.getMethods()); }

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.11 API Example — Rational/Rose Pieces of VisualBasic-code to generate elements into the Rational/Rose repository Sub GenerateClassIn (theClassName As String, theCategory As Category) Dim theClass As Class Set theClass = theCategory.AddClass(theClassName) End Sub Sub GenerateInheritanceIn (theSubclassName As String, theSuperclassName As String, theCategory As Category) Dim theSub As Class Dim theInherit As InheritRelation Set theSub = theCategory.GetAllClasses().GetFirst(_ theSubclassName) Set theInherit = theSubclass.AddInheritRel("", _ theSuperclassName) End Sub

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.12 RoadMap Why Integrate Tools? Which Tools to Integrate? Tool Integration Issues The “Help yourself” approach  How to Obtain Data?  API Examples (Java, Rational/Rose) Exchange Standards  MOF & XMI  UML shortcomings

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.13 Exchange Standards Standardization Efforts  CDIF (CASE data interchange format) - see Mature standard (was approved by ISO) Death influenced by XMI  MOF (Meta-Object Facility) from OMG - see Approved by OMG late 1997 Major commitment from tool vendors to be expected Builds on UML and CORBA/IDL XMI :=XML + MOF eMOF

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.14 Exchange Standards — Reference Format How can tools exchange information without being aware of each other? Answer:  Tools agree on a single reference model reference model = meta model Analogy  How can French, German and Italian exchange documents? They agree to write their documents in Esperanto.

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.15 Exchange Standards — Reference Format (ii) Advantage:  Only need for one translation dictionary Disadvantage  Centralised reference models do not work in practice  Need for specialised constructs (i.e., jargon)  Cannot predict future specialization  Tools must negotiate about their reference model (meta model)

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.16 Exchange Standards — Openness How can tools extend the meta model with specialised constructs? Answer:  Each tool includes an extra glossary, explaining the specialised constructs in terms of a core reference model. core reference model = meta meta model Multiple Standards  How can tools deal with future extensions? Answer:  All glossaries (=meta model extensions) define mapping with the core reference model (= meta meta model)

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.17 Meta Models Exchange standards community cultivated specialized terminology: the Four Layer Metamodeling Architecture LayerDescriptionExample Meta Meta Model Defines the core ingredients sufficient for defining languages for specifying meta-models (CDIF) MetaEntity, MetaAttribute (MOF) Class, MofAttribute Meta Model Defines a language for specifying Models (UML) Class, Attribute, Association (Database) Table, Column, Row Model Defines a language to describe an information domain. Student, Course, enrolledin User Objects Describes a specific situation in an information domain. Student#3, Course#5, Student#3.enrolledin.Course# 5

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.18 MOF Sample (XML syntax)

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.19 CDIF (Old) Meta-Meta-Model: ER Syntax: ( ) + -TRUE- Example: (Class FM567 (name “Button”) (belongsTo “UIPackage”))

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.20 Be careful XML is standard but heavy, Not really readable by human Either you have a tool  XMI  Else be careful (MOF, eMOF, + XML + DTD + Validating rules + …)

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.21 UML 1.3 Shortcomings Current standardization efforts are geared towards UML.  not enough for reengineering (UML 1.3)  need “Invocation” & “Access” Use extension mechanisms on the meta-model  how standard is standard?(See [Deme99d] in UML’99)

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.22 Moose Our own reengineering platform -- as open source CDIF/XMI FAMIX meta-model for code representation  Metrics engine,  Evolution analysis  Program Visualization (CodeCrawler)

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.23 Conclusion Reengineering requires Tools  Much in common with forward engineering  Must integrate with what’s already in place “Help yourself” approach  Don’t build your own parser  Translate between file-formats  Communicate via APIs Standardization Efforts  MOF & XMI  Extensibility via Meta models (4 layer architecture)  UML has shortcomings