ARTiSAN Software Tools Der neue Modellierungsstandard UML 2: Besser geeignet für Eingebettete Systeme? Andreas Korff, Principal Consultant Workshop Eingebettete Systeme der GI-Fachgruppe Echtzeitsysteme und PEARL, Boppard, 25./26..2004
Wer ist ARTiSAN? CASE-Tool-Hersteller, gegründet 997 - Hauptsitz in Europa: Cheltenham, UK Fokussiert auf das Marktsegment Real-time/Embedded Systems Pragmatischer Ansatz zur Anwendung der objektorientieren Technologie für die Entwicklung von Echtzeitsysteme - Mit Entwicklungsprozessvorschlag RtP - Spec-konforme UML-Erweiterungen für alle Sichten der Systementwicklung
UML.x-Nutzung in a nutshell Textuelle Requirements Fahrer Fenster senken Fenster heben Beifahrer Anwendungsfälle «extend» Objekt erkennen Verhalten bei Störungen Objekt im Fensterweg Kommunikation mit anderen Fahrzeugfunktionen CAN-Knoten Fenster when( Position==00 )/ dercontroller-> windowstop();... / Position=00; unbewegt Entry/Fensterpos(Position);... when( Position==0 )/ dercontroller->windowstop(); fahrerauf/ fahrerunter/ Objektdynamik rauf runter Klassenmodell stop/ stop/ + void fahrerauf () Fenster + void fahrerunter () + void stop () +setrefcontroller (inout WindowController mycontroller) + void Fenster () + void ~Fenster () after( 200 )[Position<00]/ Position+=5; Fensterpos(Position); after( 200 )[Position>0]/ Position-=5; Fensterpos (Position); dasfenster dercontroller WindowController +void windowstop () + void Rtsalert () + void RtsDriverCmdUp () + void RtsNeutral () + void RtsDriverCmdDown () +void WindowController () + void ~WindowController ()...... SetTimes + obstacledrive = 000 +topreleasetime = 0 + autoseltime = 500 Iterativ Fenster senken Description Fahrer Fenster Schalter Fahrerseite Motor Fensterheber-Controller Fahrer drückt Schalter Signal an Fensterheber- Controller Fensterheber-Controller aktiviert Motor Motor bewegt Fenster DerController:Test::WindowController 2 : fahrerunter() 3 : windowstop() Fahrerfenster:Test::Fenster Störung melden Fenster runter : getconfig() Zentralverriegelung Komfortfunktionen Fenster runter DriverCmdDown down Config:Test::SetTimes über #define Display Szenarien
Warum UML? Generell positive Konzepte der UML.x nur Notation «extend» allgemein anwendbar ermöglicht exemplarisches Modellieren verfolgt OO Paradigma «extend» Generisches Erweiterungskonzept Wiederverwendung Kapselung und Abstraktion Beherrschung von Komplexität
UML.x im Licht der Systementwicklung Vorteile Die Beschränkung auf nur die Festlegung einer Notation macht die UML in allen Bereichen anwendbar. Use Case-zentrierte Analyse und Design ermöglicht den Fokus auf Kunden- bzw. Nutzersicht. Objektorientierte Strukturen gewährleisten den Re-Use-Aspekt. Die Netzwerkstruktur eines UML-Modells führt zu einem Design-to- Change. Nachteile Softwarelastig, wichtige Systementwicklungskonzepte sind nicht berücksichtigt Herkunft aus der Zusammenfassung mehrerer Modellierungsstrategien z.t. sichtbar (z.b. Aktivitätsdiagramme, OCDs, OSDs)
Neues in UML 2 Hauptfokus: Bessere Modellierbarkeit von Architekturkonzepten Verbesserte Skalierbarkeit => Große Systeme sind besser darstellbar Strukturierbarkeit von Systemen in Teilsysteme Strukturierbarkeit von Verhalten Insgesamt 3 Diagrammarten erweitern die Modellierungsmöglichkeiten Diese Freiheit sollte aber im jeweiligen Entwicklungsprozess an die Notwendigkeiten für das zu entwickelnde System angepasst werden.
Diagrammarten der UML 2 «Diagrammfamilie» UML 2 Diagramm «Diagrammfamilie» Strukturdiagramm «Diagrammfamilie» Verhaltensdiagramme «überarbeitet» Klassendiagramm Objektdiagramm «überarbeitet» Aktivitätsdiagramm Use Case Diagramm Komponentendiagramm Verteilungsdiagramm «Diagrammfamilie» Interaktionsdiagramme «überarbeitet» Zustandsdiagramm «neues Diagramm» Kompositionsstrukturdiagramm Paketdiagramm «überarbeitet» Sequenzdiagramm «neues Diagramm» Interaktionsübersichtsdiagramm Anmerkung: Jede Diagrammart wurde überarbeitet. Das explizite <<überarbeitet>> weist auf eine signifikante Änderung hin. Kommunikationsdiagramm «neues Diagramm» Timing Diagramm
Für eingebettete Systeme wichtig Strukturinformation Kontextdefinition Systemgrenzen mit Interfacedefinition Darstellungsmöglichkeit komplexer Abläufe Nachrichtenfluss Aktivitäten
Teil-Ganzes-Beziehungen In UML.x SW-lastig Valve -ve +ve out in control V Fluid I/O m Motor f Fuse
Teil-Ganzes-Beziehungen In UML 2 überwiegt die Systemsicht Valve out : Fluid m : Motor control : I/O control : I/O +ve : V -ve : V in : Fluid f : Fuse +ve : V -ve : V
Neue Elemente im Kompositionsstrukturdiagramm Part: Classifier innerhalb des ganzen Classifiers Rolle oder Attribut innerhalb der Teil-Ganzes-Hierarchie Zeigt die interne Strukturierung des Ganzen Port: Teil des Ganzen, das zur Interaktion mit anderen, äußeren Elementen dient Kann durch benötigte und/oder bereitgestellte Schnittstellen ergänzt werden Konnektor: Zeigt die interne Verkabelung von Ports und Parts Die enthaltende Instanz leitet die auftreffenden Informationen entlang der Konnektoren weiter
Strukturierte Abläufe Referenz zu anderen Sequenzen c:compressor seq StartUp Standard event message check and an I/O flow flow:flow type alt compressorok ref diagram ref StartCompressor else and one with parameters ref RaiseAlarm(LOP) end alt «interface» myp/p:pump ref pumpseq seq seq Loop forever loop [true] Operation message (full) Beispiele zur Strukturierung Operation message Return message break [fr] end loop a=nextplot(, "fred" ):3 DoFn( 0, jim" ) Fr=DoFn:true
Aktivitätsdiagramme Eigene Semantik (Token-basiert) Neu: nested swimlanes strukturierte Knoten Final Flow Symbole (die nur einen Ablauf, aber nicht die ganze Aktivität beenden) Pins und vieles mehr Build Component Install Component Deliver Application [more components to be built] [no more components to be built] [more components to be installed] [no more components to be installed] Flow Final
Prozess-Sicht (Beispiel RtP) UML.x UML 2.0 UML 2.0 UML.x UML 2.0 UML.x UML.x UML 2.0 SPT Profil UML 2.0 SysML
Ausblick: SysML req:vehiclesystem ReqtsFlowDown «document» MarketNeeds «diagramdescription» version= 0." description= Depicts flowdown or acceleration reqt" reference= Requirements Management Database completeness= partial «rationale» Ref: Statement of Work Use Case Model «trace» Vehicle System Specification «trace» {id# = 02} {txt = System shall... {criticality = H} R02 System shall accelerate from 0-60 mph in lest than 8 seconds under the specified conditions Power Subsystem Specification «trace» {id# = } {txt = System shall...} {criticality = L} R «satisfy» Vehicle System Design «system» Vehicle brake «assembly» Power Train «assembly» Brakes {id# = 337} {txt = The subsyste... {criticality = H} R337 {id# = 340} {txt = The subsyste... {criticality = M} R340 «satisfy» Power Subsystem Design (Alternative=V6) R337. R337.2 «rationale» Ref: Trade-Off Analysis «verify» «testcase» Engine Horsepower Test Requirements Diagram Microsoft Word Document MarketNeeds
Ausblick: SysML par:vehicleperformance Road.incline «paramconstraint» : GravitationalForce Vehicle.weight Vehicle.powertrainForce «paramconstraint» : TotalForce m «paramconstraint» : Newton's Law a Vehicle.acceleration dv/dt Integration dv dt = t v f dv/dt «paramconstraint» : Integration v v Vehicle.dragForce «paramconstraint» : DragForce Vehicle.speed Engine.displacement Vehicle.dragCoef «paramconstraint» : Power Train Equations «paramconstraint» {constraint = DragForce=0.5* dragcoef*rho*speed²} DragForce DragForce : Real rho : Real dragcoef : Real Parametric Diagrams speed : Real
Kontakt zu ARTiSAN Software Tools ARTiSAN im Internet: