uml modelbaseret softwareudvikling af indlejrede...

30
Foredrag i Dansk Selskab for Datateknik, Syddansk Universitet Sønderborg – 23. september 2003. ved Finn Overgaard Hansen, Ingeniørdocent, Ingeniørhøjskolen i Århus, e-mail: [email protected] UML modelbaseret softwareudvikling af indlejrede systemer Version: 22-9-2003 © Ingeniørhøjskolen i Århus Slide 2 af 60 Agenda Introduktion til modelbaseret SW udvikling Hvad fremtiden byder på OMG’s MDA initiativ Hvad der kan opnås med dagens værktøjer Et indblik i hvad der er muligt at opnå vha. kommercielle UML baserede værktøjer Som eksempel anvendes værktøjet Rhapsody fra Ilogix Vurdering i forhold til traditionel SW udvikling

Upload: truongdien

Post on 13-May-2018

220 views

Category:

Documents


1 download

TRANSCRIPT

1

Foredrag i Dansk Selskab for Datateknik,Syddansk Universitet Sønderborg – 23. september 2003.

vedFinn Overgaard Hansen,

Ingeniørdocent,Ingeniørhøjskolen i Århus,

e-mail: [email protected]

UML modelbaseret softwareudvikling afindlejrede systemer

Version: 22-9-2003

© Ingeniørhøjskolen i ÅrhusSlide 2 af 60

Agenda

• Introduktion til modelbaseret SW udvikling• Hvad fremtiden byder på

– OMG’s MDA initiativ• Hvad der kan opnås med dagens værktøjer

– Et indblik i hvad der er muligt at opnå vha. kommercielle UML baserede værktøjer

– Som eksempel anvendes værktøjet Rhapsody fra Ilogix• Vurdering i forhold til traditionel SW udvikling

2

© Ingeniørhøjskolen i ÅrhusSlide 3 af 60

“Udfordringer”• Iterativ udvikling• Ønske om tidlig afprøvning og validering af

funktionalitet og af brugergrænseflade• Parallel SW og HW udvikling

– SW simulering af brugergrænseflade og øvrig HW før HW er udviklet

• Ønske om at minimere udviklingstiden(time-to-market)

• Ønske om at kunne understøtte flere platforme eller at kunne skifte platform (f.eks. processor)

© Ingeniørhøjskolen i ÅrhusSlide 4 af 60

Historisk udvikling

MaskinkodeDebug i HEX

AssemblerkodeDebug i Ass.

Debug i CObjektorienteret programmering C++

Debug i C++UML modelbaseret udvikling

Abstraktionsniveau

Lavt

Højt

Højniveauprogrammering C

Debug i UML

3

© Ingeniørhøjskolen i ÅrhusSlide 5 af 60

OMG’s Model Driven Architecture (MDA)

3 Core standards in MDA:

UML: Unified ModelingLanguage

MOF: Meta ObjectFacility

CWM: CommonWarehouseMetamodel

ImplementationTechnologies

Domain specific standards

Ref. Object Management Group: www.omg.org

.

© Ingeniørhøjskolen i ÅrhusSlide 6 af 60

MDA Historie

• Model Driven Architecture (MDA) - Defined in document number ormsc/2001-07-01- Se also ”MDA Guide Version 1.0” (omg/2003-05-01)

• Adapted by OMG as the groups base architecture in September 2001

• Ref: www.omg.org/mda

4

© Ingeniørhøjskolen i ÅrhusSlide 7 af 60

MDA’s PIM and PSM Models

• Models of different systems are structured explicitly into:– Platform Independent Models (PIMs)

• A PIM is a formal specification of the structure and functions of a system that abstracts away technical details

– Platform Specific Models (PSMs)• A PSM specifies the realization of the functionality in the PIM

on a specific platform

OMG standards are specified in terms of a PIM and, normally, one or more PSMs, all in UML

© Ingeniørhøjskolen i ÅrhusSlide 8 af 60

Executable PIM Model

• The PIM can be complete and specific enough to enable early execution and test of the application– independent of design and implementation details

• Automation of an MDA approach provides the opportunity for:– a dramatic defect reduction– accelerated development– large scale reuse– easy platform migration of applications

5

© Ingeniørhøjskolen i ÅrhusSlide 9 af 60

MDA Meta Model Description

Ref: MDA ormsc/2001-07-01

© Ingeniørhøjskolen i ÅrhusSlide 10 af 60

Platform Specific Models in UML

• Example: to transform a PIM into a CORBA PSM – certain decisions need to be made

• Such decisions can be defined by a UML profile:– a set of extensions to UML using the built-in extension

facilities of UML (stereo types and tagged values)– UML Profile for CORBA

• specifies how to use UML in a standard way to define CORBA IDL interfaces, structs, unions etc.

6

© Ingeniørhøjskolen i ÅrhusSlide 11 af 60

MDA Meta Model Example

© Ingeniørhøjskolen i ÅrhusSlide 12 af 60

Four ways to transform a PIM into a PSM

1. Manually construction of PSM based on the PIM2. Manually construction of PSM with utilization of

known refinement patterns3. Semi automatically

• an algorithm can create a PSM skeleton based on the PIM to be manually enhanced

4. Automatically • an algorithm can create a complete PSM

7

© Ingeniørhøjskolen i ÅrhusSlide 13 af 60

Example: Platform Independent Model (PIM)

OCL:Object ConstraintLanguage

© Ingeniørhøjskolen i ÅrhusSlide 14 af 60

A CORBA-Specific Model (PSM)

8

© Ingeniørhøjskolen i ÅrhusSlide 15 af 60

Action & Constraint Languages

• Action Language– anvendes til at specificere operationer og aktioner i en UML model– pt. Precise Action Semantics for UML specification (2001),

der dog ikke indeholder en konkret sprog syntaks– UML action semantics adopted by OMG i nov. 2001.– BridgePoint tool har deres eget Object Action Language– Rhapsody anvender C++, Java eller C

• OCL – Object Constraint Language (fra UML 1.4)– den officielle måde at specificere constraints

(begrænsninger/præciseringer) på i en UML model

• Fremtid – der er et ønske om at disse smelter sammen til et specifikationssprog

© Ingeniørhøjskolen i ÅrhusSlide 16 af 60

Two Development approaches

• The Elaborative approach – the normal development case– manually or supported by code generators

• The Translational approach – the BridgePoint approach– The iUML approach

• A Combined approach– the Rhapsody & Rational Rose Real-Time

approaches

9

© Ingeniørhøjskolen i ÅrhusSlide 17 af 60

Elaborative Development

© Ingeniørhøjskolen i ÅrhusSlide 18 af 60

Executable and Translatable UML

PIM PSM

10

© Ingeniørhøjskolen i ÅrhusSlide 19 af 60

The XT-UML Development Process

Application Modeling

Software Architecture Design

Integration and Test

CodeGeneration

Project Structuring &Requirement Derivation

© Ingeniørhøjskolen i ÅrhusSlide 20 af 60

XT-UML Translator

11

© Ingeniørhøjskolen i ÅrhusSlide 21 af 60

XT-UML Iterative Application Development

© Ingeniørhøjskolen i ÅrhusSlide 22 af 60

Target Migration

WindowCE

VxWorks

12

© Ingeniørhøjskolen i ÅrhusSlide 23 af 60

Defect Reduction Points

© Ingeniørhøjskolen i ÅrhusSlide 24 af 60

Aktuelle UML eksekveringsværktøjer

• BridgePoint• Kabira - ObjectSwitch• iUML + iCCC• Rational Rose Real-Time• Rhapsody• ArcStyler

Værktøjerne er her udelukkende medtaget som eksempler på aktuelle værktøjer, der forsøger at leve op til intentionen i OMGs MDA. Det er således ikke en udførlig beskrivelse eller sammenligning af disse.

13

© Ingeniørhøjskolen i ÅrhusSlide 25 af 60

BridgePoint Toolset

• Company: Project Technology provides the BrigePointToolset with the goal of:– “Accelerating Development of High-Performance Software with

Model Driven Development Executable and Translatable UML (XT-UML)”

– www.projtech.com• Stephen Mellor (founder of Project Technology)

– chairs the OMG Analysis and Design Task Force Working Group on MDA

– a key group contributing to the detailed definitions of MDA elements

– Stephen Mellor also chaired the consortium that defined OMG’sUML Action Semantic, which made the UML executable

© Ingeniørhøjskolen i ÅrhusSlide 26 af 60

Kabira Design CenterThe Design Center translates a model directly into an executable Kabira server application. No hand coding is necessary. ( www.kabira.com ) In addition to an executable application, the Design Center also generates:

- Interface description files such as IDL (for CORBA), MIB (for SNMP) - SQL Database schemas for any persistent objects in the model

14

© Ingeniørhøjskolen i ÅrhusSlide 27 af 60

iUML (xUML) – Kennedy Carter

• Company:– Kennedy Carter – a UK company– www.kc.com– Allan Kennedy (CEO) is a leading member of the ’translational

school’.• iUML features:

– A UML modeling tool for making PIM models– Supporting MDA with executable UML (xUML) based on ASL

(Action Specification Language)– A translational approach

• iCCC features:– A configurable code generator for generation PSM models– Can generate 100% of the target code– Is already in use to build code generators for demanding real time

applications

© Ingeniørhøjskolen i ÅrhusSlide 28 af 60

Rational-Rose Real Time

• Company:– Rational Software Cooperation (now bought by IBM)– Booch, Rumbaugh, Ivar Jacobson– Bran Selic (ROOM methodology & ObjectTime)– www.rational.com

• Rational-Rose Real-Time is a specific product for development of Real-Time systems– a lot different from standard Rational Rose tool– based on the ROOM Methodology – Bran Selic et. al.– executable models based on a port abstraction

15

© Ingeniørhøjskolen i ÅrhusSlide 29 af 60

Rhapsody – I-Logix

• Company:– I-Logix– David Harel (inventor of UML’s State Chart)– Bruce Powel Douglass (author of several books)– www.ilogix.com

• Rhapsody features:– Model based code generation in C, C++ and Java– Model based simulation

• object browser with attribute information• state change in state machines• automatic generation of sequence diagrams when running the

program– Integrated Real-Time OS framework

• ported to many commercial OS• Proprietary extensions to UML

© Ingeniørhøjskolen i ÅrhusSlide 30 af 60

ArcStyler – Interactive Objects Software

• Company:– Interactive Objects Software

(a German compagny)– www.io-software.com

• Features:– A MDA tool– For enterprise application

development– Support for Java/J2EE, EJB

and .NET platforms

16

© Ingeniørhøjskolen i ÅrhusSlide 31 af 60

Bøger om MDA

Addison-Wesley, 2002ISBN 0-201-74804-5

© Ingeniørhøjskolen i ÅrhusSlide 32 af 60

Anden del – et eksempel

Citat:”Rhapsody, right now, is the world’s most completeMDA application delveopment environment”

Dr. Bruce Powel DouglassChief Evangelist, I-Logix

Rhapsody kræver dog pt. at man anvender C, C++ eller Java ved udvikling af PIM modellen – dvs. understøtter ikke et sproguafhængigt ASL

Et eksempel på modelbaseret softwareudviklingmed værktøjet Rhapsody fra I-Logix

17

© Ingeniørhøjskolen i ÅrhusSlide 33 af 60

UML modelbaseret udvikling

UML model

ApplikationsC++ kode

Frameworkkode

kodegenerering

ReverseEngineering

RoundtripEngineering

Eksekverbar UML model

© Ingeniørhøjskolen i ÅrhusSlide 34 af 60

Eksempler på kodegenerering

• Tilstandsmaskiner – kodegenereres ud fra UML state charts

• Associationer (associationer, aggregation + composition) kodegeneres – både datastruktur plus tilhørende operationer

• Get og set operationer for attributter• Constructor og destructor operationer• Timerunderstøttelse• Understøttelse af letvægtsprocesser (threads) og

proceskommunikation

18

© Ingeniørhøjskolen i ÅrhusSlide 35 af 60

Modeleksekvering

3. Animering af sekvensdiagrammer

1. Animering af tilstandsdiagrammer

4. Kontrol af eksekveringen- sætte breakpoints- single steppe- generering af events etc.

2. Inspektion af objekternesattributter

Bil:hastighed= 130

© Ingeniørhøjskolen i ÅrhusSlide 36 af 60

Et simpelt eksempel – Bil klassediagram

+on():void+off():void

BilRadio

+hastighed : int

+Bil()+start()+stop()+bilRadioOn()+bilRadioOff()

Bil

<<Web Managed>>

+start():void+stop():void

Motor

Driver1

1

itsMotor

11

itsBilRadio

itsBil

19

© Ingeniørhøjskolen i ÅrhusSlide 37 af 60

Tilstandsdiagram for Bil

stoppet>

startet

stop/itsMotor->stop();itsBilRadio->off();

start/itsMotor->start();itsBilRadio->on();hastighed=5;

tm(5000)/cout << "Running & accel." << endl;hastighed += 10;

bilRadioOn/itsBilRadio->on();bilRadioOff/itsBilRadio->off();

© Ingeniørhøjskolen i ÅrhusSlide 38 af 60

Sekvensdiagram:B ilR a d io :M o to r:B il

s top ()

b ilR ad ioO ff()

s ta rt ()

TM (50 00 )

o ff()s to p ()

o n ()s ta rt ()

o ff()

20

© Ingeniørhøjskolen i ÅrhusSlide 39 af 60

Tre metoder til modelstimulering

• Metode 1: at udvælge events direkte i værktøjet ud fra en liste af mulige events

• Metode 2: at anvende et autogenereret web interface fra en browser – hvorfra events kan afsendes

• Metode 3: at udvikle en grafisk brugergrænseflade f.eks. i MFC - dette kan være den endelige brugergrænseflade eller- alternativ en GUI simulering af f.eks. et betjeningspanel

eller en fjernbetjening

© Ingeniørhøjskolen i ÅrhusSlide 40 af 60

Udvælgelse af events i værktøj (metode 1)

21

© Ingeniørhøjskolen i ÅrhusSlide 41 af 60

Web-enabling

• Mange indlejrede systemer udvikles i dag med web baseret tilgang

• Her kan CASE værktøjet hjælpe med den tilhørende kodegenerering

• Kan også anvendes til at generere testdrivere med– til at generere events – til at sætte og aflæse variable med

© Ingeniørhøjskolen i ÅrhusSlide 42 af 60

Autogenereret Web interface (metode 2)

«Windows PC»

InternetExplorer

«Exe»

TCP/IP

MyTestApplication

«Exe»

22

© Ingeniørhøjskolen i ÅrhusSlide 43 af 60

Grafisk brugergrænseflade (metode 3)

© Ingeniørhøjskolen i ÅrhusSlide 44 af 60

Opvaskemaskine eksempel

evJetOff()evJetSpray()evJetPulse()

Jet

evTankDrain()evTankFill()

Tank

cycles : intrinseTime : intwashTime : intdryTime : int

Dishwasher()setup():voidevStart()evOpen()evClose()evQuick()evNormal()evIntensive()evService()

Dishwasher

evHeaterOff()evHeaterOn()

Heater

itsJet1

itsTank1

itsHeater 1

Key Dishwasher Abstractions

23

© Ingeniørhøjskolen i ÅrhusSlide 45 af 60

Opvaskemaskine eksempel

© Ingeniørhøjskolen i ÅrhusSlide 46 af 60

Radio eksempel

24

© Ingeniørhøjskolen i ÅrhusSlide 47 af 60

Tretrins modellen

Trin1: Modelsimulering og eksekvering påudviklingsplatformen

Trin 2: Modelsimulering og eksekvering påtargetplatformen

Trin 3: Real-time eksekvering på targetplatform

© Ingeniørhøjskolen i ÅrhusSlide 48 af 60

Modeleksekvering på udviklingsplatform (trin 1)

«Windows PC»Development =

DeploymentEnvironment

TCP/IP

RhapsodyCase-tool

MyApplication«Exe»

«Exe»

Her eksekveres programmet med SW simulering af hardwaren

Brugergrænsefladen kan simuleres med en dedikeret GUI,der udformes så tæt på det endelige design som muligt

25

© Ingeniørhøjskolen i ÅrhusSlide 49 af 60

Modeleksekvering på targetplatform (trin 2)

«Target microprocessor»

«Windows PC»

«TCP/IP»

DeploymentEnvironment

DevelopmentEnvironment

RhapsodyCase-tool

«Exe»

MyApplication«Exe»

«HW device»Dev1

«HW device»Dev2«User

Interface»Panel

© Ingeniørhøjskolen i ÅrhusSlide 50 af 60

Eksekvering på targetplatform (trin 3)

«Target microprocessor»

DeploymentEnvironment

MyApplication«Exe»

«HW device»Sensor

«HW device»Actuator

«UserInterface»

Panel

Her testes real-time opførslen og her udføres den endelige accepttest

26

© Ingeniørhøjskolen i ÅrhusSlide 51 af 60

Rhapsody Architecture (1)

Deployment Environment

Deployment Operating System

Object Components

Animation Instrumentation (optional)

Development Environment

TCP/IPLegacyObjectCode

OS Abstraction Layer

© Ingeniørhøjskolen i ÅrhusSlide 52 af 60

Rhapsody Architecture (2)

Deployment Environment

Development Operating System

Development EnvironmentAnimator

TCP/IP

CodeGenerator

ModelChecker

ReportGenerator

DiagramEditor

CodeImporter

Application ModelRepository Legacy Source Code

Source Code

RepositoryBrowser

Configu-ration

Object Execution Framework (OXF)Constructive UML Metamodel

27

© Ingeniørhøjskolen i ÅrhusSlide 53 af 60

OSAL: OS Abstraction LayerThe OSAL consists of a set of interfaces (abstract classes) that provide all the required operating system services for the application, including:• Tasking services• Synchronization services• Message queues• Communication port• Timer service

OSAL

© Ingeniørhøjskolen i ÅrhusSlide 54 af 60

Rhapsody supporterede operativsystemer

C++• Borland• Linux• Microsoft, MicrosoftDLL• MicrosoftWinCE• MSStandardLibrary• OsePPCDiab, OseSFK• PsosPPC, PsosX86• QNXNeutrinoCW, QNXNeutrinoGCC• Solaris2, Solaris2GNU• VxWorks

C• Microsoft• PsosPPC• PsosX86• VxWorks

Java• JDK

28

© Ingeniørhøjskolen i ÅrhusSlide 55 af 60

Portering af Rhapsody til “MIT_OS”<env>=MIT_OS

Kræver udvikling af disse filer

© Ingeniørhøjskolen i ÅrhusSlide 56 af 60

CASE værktøj og Dokumentation

ModelDatabase

Case værktøj

ModelDatabase

:classA :classB :classC:classA :classB :classC:classA :classB :classC ClassA ClassB

ClassC

ClassA ClassB

ClassC

ClassA ClassB

ClassC

State A

State B

State A

State B

State A

State B

Case værktøj

ViewsClassA ClassB

ClassC

DesignDokumentation

ClassA ClassB

ClassC

ClassA ClassB

ClassC

DesignDokumentation

29

© Ingeniørhøjskolen i ÅrhusSlide 57 af 60

Eksempel: Reporter Pro

Reporter Pro

Anvendes til atdefinere dokumentationstemplate filer

SW DesignDokument

(wordtemplate)

RhapsodyCASE-tool

SWDesign

DokumentAutogenereringaf dokumentation

© Ingeniørhøjskolen i ÅrhusSlide 58 af 60

Vurdering ift. traditionel SW udvikling

• Plusser:– autogenerering af “triviel” kode– ensartet implementering– hurtig implementering– tidlig modelsimulering– fremmer iterativ udvikling og prototypeudvikling

• Minusser:– høj værktøjspris pr. udvikler– kræver en del indlæring og investering i uddannelse– modstand fra udviklerside– ikke optimal kode (opsætning af kodegenereringen

kræver en del værktøjskendskab)

30

© Ingeniørhøjskolen i ÅrhusSlide 59 af 60

Konklusion

• Modelbaseret SW udvikling har store potentialer til at kunne effektivisere SW udviklingen af indlejrede og distribuerede systemer

• Kræver en del ”up-front” investering både i værktøjer og i uddannelse

• Er pt. baseret på proprietære udvidelser til UML– Action language er ikke defineret med en specifik

syntaks• Der arbejdes på flere nye OMG standarder i

relation til MDA

© Ingeniørhøjskolen i ÅrhusSlide 60 af 60

Referencer• Object Management Group (OMG)

– “Model Driven Architecture (MDA)”, an OMG standard (ormsc/2001-07-01)

– www.omg.org

• Project Technology – BridgePoint toolset– Paper: “Executable and translatable UML XTUML”– www.projtech.com

• Rhapsody– www.Ilogix.com

• Rational Rose Real-time– www.rational.com

• “Executable UML - A Foundation for Model-Driven Architecture– Stephen J. Mellor & March J. Balcher, Addison-Wesley 2002