Integrating Legacy Code / Models with Model Based Development Using Rhapsody



Similar documents
System Behaviour Analysis with UML and Ptolemy. Scope and goals

Model-driven development solutions To support your business objectives. IBM Rational Rhapsody edition comparison matrix

Integration, testing and debugging of C code together with UML-generated sources

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Model-Driven Software Development for Robotics: an overview

SCADE Suite in Space Applications

Getting Embedded C Applications to Market Faster using the Model-Driven Development Technologies of Modeling, Simulation and Code Generation

Cyclic Architectures in UML

Auditing UML Models. This booklet explains the Auditing feature of Enterprise Architect. Copyright Sparx Systems Pty Ltd

Introduction to MATLAB Gergely Somlay Application Engineer

Model based testing tools. Olli Pekka Puolitaival

EasyC. Programming Tips

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

Model Simulation in Rational Software Architect: Business Process Simulation

UML-based Test Generation and Execution

UML for the C programming language.

Tech Day IBM 28 août 2009 RAT06P3 Introduction à Rhapsody Architect pour l Ingénierie des Systèmes et des Logiciels Embarqués

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

SAS, Excel, and the Intranet

Model Driven Testing AGEDIS Architecture Interfaces and Tools

Automotive System and Software Architecture

Automated Modeling of Legacy Systems Using the UML

Real Time Developer Studio. Emmanuel Gaudin

UML TUTORIALS THE USE CASE MODEL

Lab Manual: Using Rational Rose

Apache JMeter HTTP(S) Test Script Recorder

RapidIO Network Management and Diagnostics

Functional Architectures with SysML

ReqXChanger Closing the Gap between Requirements and Modelling

UML FOR OBJECTIVE-C. Excel Software

8 Tutorial: Using ASN.1

Lab 3 Microcontroller programming Interfacing to Sensors and Actuators with irobot

Kirsten Sinclair SyntheSys Systems Engineers

Interfacing SAS Software, Excel, and the Intranet without SAS/Intrnet TM Software or SAS Software for the Personal Computer

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Intoduction to SysML

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

Java Programming (10155)

Monitoring, Tracing, Debugging (Under Construction)

Product Information CANape Option Simulink XCP Server

1. Visual Paradigm for UML

DESIGN AUTOMOTIVE ENGINEERS

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

MyEclipse UML (MyUML) Quickstart

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Optimizing object definitions functions

Trace-Based and Sample-Based Profiling in Rational Application Developer

UML SUPPORTED SOFTWARE DESIGN

lighting control software

ERIKA Enterprise pre-built Virtual Machine

Tomáš Müller IT Architekt 21/04/2010 ČVUT FEL: SOA & Enterprise Service Bus IBM Corporation

A HW/SW Codesign Methodology based on UML

INTEGRATION WITH OPTIMALJ. user s guide

The 104 Duke_ACC Machine

StarUML Documentation

SysML Modelling Language explained

LabVIEW DSP Test Integration Toolkit for TI DSP

Chapter 13: Program Development and Programming Languages

Acknowledgments. p. 55

Teaching Object-Oriented Concepts with Eclipse

WebSphere Business Modeler

JOURNAL OF OBJECT TECHNOLOGY

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

imc FAMOS 6.3 visualization signal analysis data processing test reporting Comprehensive data analysis and documentation imc productive testing

Business Process Execution Language for Web Services

How To Create A Diagram On Rational Software Development Platform

Advanced Process Modeling (BPMN) Data Connectivity & Data Graphics Understanding Visio Services D t a ab a a b s a e s e Mod o e d l e ing

Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager

PS: Presentation software

How To Understand Programming Languages And Programming Languages

Towards Integrating Modeling and Programming Languages: The Case of UML and Java

UML - Getting Started EA v4.0

Jump-Start Tutorial For ProcessModel

Chapter 5. Regression Testing of Web-Components

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

SOFTWARE ENGINEERING AT MOTOROLA SOLUTIONS. Jeff Yakey

Writing Use Case Scenarios for Model Driven Development

How to make a good Software Requirement Specification(SRS)

Introduction to Simulink & Stateflow. Coorous Mohtadi

Please Note: Temporary Graduate 485 skills assessments applicants should only apply for ANZSCO codes listed in the Skilled Occupation List above.

Software Development Process

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools

Masters of Science in Software & Information Systems

Graphical Environment Tool for Development versus Non Graphical Development Tool

Programming and Software Development CTAG Alignments

Data Analysis with MATLAB The MathWorks, Inc. 1

IBM Support Assistant v5. Review and hands-on by Joseph

Tips for Using a Visio Template for UML 2.5

Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS

Using Flow Control with the HEAD Recorder

Transcription:

Integrating Legacy Code / Models with Model Based Development Using Rhapsody M.W.Richardson 28/11/06 1 Telelogic AB

Model Driven Development Very few Green Field projects are started, nearly always there is some existing code or model base that works and that needs to be reused: Existing C++ / Java / Ada code Existing C code Existing Rational Rose models Existing Rational Rose RT models For some specific parts of the model, other tools and methods are more appropriate: Continuous applications: Existing Mathworks Simulink models Safety critical code generation: Existing Esterel SCADE models Protocol development : Existing Telelogic TAU SDL models 2 Telelogic AB

Existing C++ / Java / Ada code Clean mapping from Object Oriented Languages to UML Ensure that existing code can be compiled and linked Set up paths, select files and reverse engineer Forward generate, compile and link Create Object Model Diagrams Use Design level debugging to capture sequence diagrams Add new behaviour 3 Telelogic AB

Simple Java Example : Scribble.java 4 Telelogic AB

Scribble reversed engineered 5 Telelogic AB

Animated model 6 Telelogic AB

Existing C code Doesn t map naturally to UML Can reverse engineer, but would get a multitude of variables, functions and types However we can extend the UML by creating a new element File (this is a class with stereotype «File») Now we can visualize the files We can reverse engineer the files so that we can: Forward generation & modification External code visualization & usage visualization 7 Telelogic AB

Visualizing C code 8 Telelogic AB

Visualizing the usage of external files 9 Telelogic AB

Existing Rational Rose models Rational Rose was the first UML tool, but today doesn t support many of the UML 2.0 features. Any existing model can be seamlessly imported into Rhapsody and a profile added, so that the resulting diagrams have the same look in Rhapsody as they did in Rational Rose 10 Telelogic AB

Existing Rational Rose RT models Rational RoseRT models can not be directly imported since they are not based on UML2 but on ROOM. Instead of directly importing the model, the generated code can be reversed engineered Once the code is in Rhapsody, then the same code can be forwarded generated and executed Diagrams can be created Once the forward generated code can be shown to behave the same as the original code, then changes can be started to be made at the model level, new classes can be added etc. 11 Telelogic AB

Reverse Engineering code 12 Telelogic AB

Model Reorganisation Once reversed into the model, the RoseRTFormatter macro needs to be run to make some minor reorganisation of the model such as to move all the RoseRT Framework classes into a separate Framework package 13 Telelogic AB

Forward generation 14 Telelogic AB

Execution 15 Telelogic AB

Creating Diagrams 16 Telelogic AB

Observing Behaviour 17 Telelogic AB

Ports and Flow Ports In SysML there are two types of Ports: signal ports and flow ports. Signal ports are the same as UML ports and are used to describe the operations that can be invoked by and on the object. Flow ports are used to show data flow and are ideal for interfacing to tools such as Simulink and SCADE 18 Telelogic AB

Existing Mathworks Simulink models A Simulink model maps very well to a SysML block with flow ports. By adding a Simulink profile to Rhapsody, we can stereotype a block as a Simulink block and then by reading the Simulink model, automatically add appropriate flow ports to the block and add the generated Simulink code to the make file 19 Telelogic AB

Vehicle Dynamics 20 Telelogic AB

Feedback Loop 21 Telelogic AB

Cruise Control System 22 Telelogic AB

Code Generation and Execution 23 Telelogic AB

Existing Esterel SCADE models For safety critical code applications, Esterel s SCADE is a very good and well accepted solution. A SCADE model can be represented in UML as a Block or Class Stereotyped «SCADE Block» with ports describing inputs and outputs. 24 Telelogic AB

Import into SCADE The SCADE Block can be imported or re-imported/synchronized into SCADE All the blocks of the original Rhapsody model are imported as SCADE nodes 25 Telelogic AB

Development in SCADE Once the «SCADE» Block has been exported to SCADE, it can then be developed, tested and the resulting code executed in a separate thread. 26 Telelogic AB

Existing Telelogic TAU SDL models For protocol development, Telelogic TAU SDL is the ideal development platform. Protocol block Rhapsody serves as the embedded software design environment Protocol blocks are built and tested with SDL/TTCN suite. Code and interface definition are imported into Rhapsody, and the complete application is compiled and linked with a click of a button 27 Telelogic AB

Summary This presentation has shown how existing code or models can be easily reused and incorporated into a UML model using Rhapsody: Existing C++ / Java / Ada code Existing C code Existing Rational Rose models Existing Rational Rose RT models Continuous applications: Existing Mathworks Simulink models Safety critical code generation: Existing Esterel SCADE models Protocol development : Existing Telelogic TAU SDL models That s enough slides, let s see a demo 28 Telelogic AB