UML modelbaseret softwareudvikling af indlejrede...
-
Upload
truongdien -
Category
Documents
-
view
221 -
download
1
Transcript of UML modelbaseret softwareudvikling af indlejrede...
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