© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.1 10(b). Tool Integration Why Integrate Tools? Which Tools to Integrate? Tool Integration Issues The “Help.

Slides:



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

Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Win8 on Intel Programming Course Desktop : WPF Cédric Andreolli Intel Software
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
8. Introduction to Denotational Semantics. © O. Nierstrasz PS — Denotational Semantics 8.2 Roadmap Overview:  Syntax and Semantics  Semantics of Expressions.
12. Common Errors, a few Puzzles. © O. Nierstrasz P2 — Common Errors, a few Puzzles 12.2 Common Errors, a few Puzzles Sources  Cay Horstmann, Computing.
ESE Einführung in Software Engineering 6. Modeling Objects and Classes Prof. O. Nierstrasz.
ESE Einführung in Software Engineering 7. Modeling Behaviour Prof. O. Nierstrasz.
OORPT Object-Oriented Reengineering Patterns and Techniques 7. Problem Detection Prof. O. Nierstrasz.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
© 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.
© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.1 8. Tool Integration Why Integrate Tools? Which Tools to Integrate? Tool Integration Issues The “Help yourself”
10. Petri Nets Prof. O. Nierstrasz. Roadmap  Definition: —places, transitions, inputs, outputs —firing enabled transitions  Modelling: —concurrency.
Object-Oriented Reengineering Patterns and Techniques Prof. O. Nierstrasz Prof. S. Ducasse T.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
Lesson-12 Information System Development-2
ESE Einführung in Software Engineering N. XXX Prof. O. Nierstrasz Fall Semester 2009.
© Oscar Nierstrasz ST — Smalltalk Basics 2.1 Change sets  Make sure your changes are logged to a new change set.
The Software Composition Group Prof. O. Nierstrasz
© S. Demeyer, S. Ducasse, O. Nierstrasz Intro.1 1. Introduction Goals Why Reengineering ?  Lehman's Laws  Object-Oriented Legacy Typical Problems  common.
13. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Summary, Trends, Research...  Summary: functional, logic and object-oriented.
ESE Einführung in Software Engineering X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
7. Fixed Points. © O. Nierstrasz PS — Fixed Points 7.2 Roadmap  Representing Numbers  Recursion and the Fixed-Point Combinator  The typed lambda calculus.
CP — Concurrent Programming 12. Petri Nets Prof. O. Nierstrasz Wintersemester 2005 / 2006.
Metamodeling Seminar X. CHAPTER Prof. O. Nierstrasz Spring Semester 2008.
© Oscar Nierstrasz ST — Smalltalk Basics 2.1 Change sets  Make sure your changes are logged to a new change set.
McGraw-Hill/Irwin Copyright © 2008, The McGraw-Hill Companies, Inc. All rights reserved.McGraw-Hill/Irwin Copyright © 2008 The McGraw-Hill Companies, Inc.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
ESE Einführung in Software Engineering X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
N. XXX Prof. O. Nierstrasz Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes.
7. Fixed Points. © O. Nierstrasz PS — Fixed Points 7.2 Roadmap Overview  Representing Numbers  Recursion and the Fixed-Point Combinator  The typed.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
© S. Demeyer, S. Ducasse, O. Nierstrasz Chapter.1 MakeMoney Corp. C*O of MakeMoney Corp. Our Vision  We invest in software  We do not know software 
OORPT Object-Oriented Reengineering Patterns and Techniques X. CHAPTER Prof. O. Nierstrasz.
CP — Concurrent Programming X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
12. eToys. © O. Nierstrasz PS — eToys 12.2 Denotational Semantics Overview:  … References:  …
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.
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.
Win8 on Intel Programming Course The challenge Paul Guermonprez Intel Software
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
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.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
Win8 on Intel Programming Course Modern UI HelloWorld in HTML5/JS Cédric Andreolli Intel.
© S. Demeyer, S. Ducasse, O. Nierstrasz Intro.1 1. Introduction Goals Why Reengineering ?  Lehman's Laws  Object-Oriented Legacy Typical Problems  common.
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.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Object-Oriented Reengineering Patterns 1. Introduction.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
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.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
Institutional Repositories July 2007 Intellectual property management : the DISA experience Dr D Peters DISA: Digital Innovation South Africa.
Open Access and Institutional Repositories. Accra, June 2007 Institutional repositories in SA research institutions: the DISA experience Dr D Peters.
Institutional Repositories July 2007 DIGITAL CURATION creating, managing and preserving digital objects Dr D Peters DISA Digital Innovation South.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Open Access and Institutional Repositories, 10 July 2007, UKZN, Durban,,South Africa Metadata for institutional repositories: an introduction Pat Liebetrau.
Domain Specific Product Description Exchange
Software Architecture & Design
Presentation transcript:

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.1 10(b). 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

© S. Demeyer, S. Ducasse, O, Nierstrasz Tools.24 License Attribution-ShareAlike 2.5 You are free: to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Attribution-ShareAlike 2.5 You are free: to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above.