Universal Object-Oriented Modeling for Rapid

0 downloads 0 Views 2MB Size Report
✍Analysis & Design of software components for Embedded Systems. • Using Unified Modeling Language (class- and object diagrams). ✍ Our approach.
V

Universal Object-Oriented Modeling for Rapid Prototyping of Embedded Electronic Systems Markus Kühl Bernhard Spitzer Klaus D. Müller-Glaser Ulf Dambacher

ITIV / University of Karlsruhe Germany 0

© Markus Kühl

Outline

V

? Introduction ?Our Mission ?Today: Design of Embedded Systems ?Types of CASE-Tools

? Universal Object-Oriented Modeling Approach ?Constraints ?Objective ?Generalstore: CASE-Tool Integration-Bed

? Conclusions & Future Work

1

© Markus Kühl

Our Mission

V

? Build a bridge between Software and Systems Engineering ? Rapid Prototyping from our point of view ?Requirements Analysis, Modeling, Simulation, Code Generation and Real-Time Execution (Emulation) of the system under developing ?Analysis & Design of automotive control systems • Using dataflow diagrams and Statecharts

?Analysis & Design of software components for Embedded Systems • Using Unified Modeling Language (class- and object diagrams)

? Our approach ?Uses only established and widely used standards for modeling • Dataflow, Statechart, UML

?Uses exclusively commercial and widely used CASE-Tools ?Uses a standardized CASE data meta-model

? „Universal“: in means of „continuous design process“ 2

© Markus Kühl

Design of Embedded Systems

V

? Time-discrete subsystems ?Modeling with Statecharts

? Time-continuous subsystems ?Modeling with dataflow/block diagrams

? Software components ?Modeling with classes and objects

? Today ?Computer Aided Engineering • Integrated Development Environment with Compiler & Debugger • CASE – Computer Aided Systems Engineering – Computer Aided Software Engineering

?Subsystem coupling on source-level (e.g. C-Code) 3

© Markus Kühl

Commercial CASE-Tools

V

? Time-Continuous Subsytems Dataflow ?MATLAB/Simulink (The Mathworks) Time-Continuous Subsystem ?MATRIXx (ISI) External Code Class encapsulation

Integration as Block

[myCondition]

? Time-Discrete Subsystems

Idle

?Rhapsody (i-Logix) Integration ?Statemate (i-Logix) useless ?Stateflow (The Mathworks)

evRepeat Sending

Waiting_For_Repeat

/itsReceiver -> Statechart GEN(evHello(myInformation)) Time-Discrete Subsystem Waiting_For_Ack

evAck/Action1()

evBusy

Integration using UML-Semantics

? Software Components

Buffer::Buffer

?Real-Time Studio (ARTiSAN Software) OOA&OOD Software Components ?Rhapsody (i-Logix) ?objectiF (microTOOL) ?Rose (Rational) Buffer::Buffer

itsOutputBuffer

1

1

LICOPProcessor

*

Auxiliary::SocketListItem

itsInputBuffer

4

© Markus Kühl

Design of Embedded Systems

V

? Subsystem coupling on source-level ?Subsystems are not white-box visible in other views ?Loss of information abstract Model Transformation Code

Dataflow Structure

Behavior 1/s

Transformation Rule

Transformation Rule

Code

UML, OOA/OOD Structure

Behavior

Transformation Rule

Integration

Code

concrete 5

© Markus Kühl

Design Methodology: Constraints

V

? Accecptance for a new Methodology ?Notations supported by CASE-Tools ?Object-Orientation on Component, Subsystem, and System Layer ?Time-Discrete and Continuous System ?Subsystem Coupling on Model Layer ?Concurrent Engineering • Unique Data Storage, Repository for CASE Data • Check-In und Check-Out of Subsystems and System

?Exchange of CASE-Data • XMI (XML Metadata Interchange Format)

? Notations ?Class/Object, Statecharts, Message-Sequence, Use-Case ?Dataflow 6

© Markus Kühl

Universal Modeling

V

? System Model using transformation rules ?Dataflow structure UML Object Diagram ?Dataflow behavior UML Class Diagram abstract Model

Dataflow Structure

UML, OOA/OOD Behavior 1/s

Transformation Rule

Transformation

Structure

Transformation Rule

Code

Behavior

Transformation Rule

Code

concrete 7

© Markus Kühl

Universal Modeling: Transformation Dataflow Diagram

Objective: UML Diagram

Block / Line

Object

Signals

Associations with Role

Behavior of Block

Class

Structure of Dataflow

Object Diagram

8

V

© Markus Kühl

Transformation of Block Behavior «interface» mdlPackage::mdlClasses::Model

mdlPackage::mdlClasses::Element

mdlPackage::mdlClasses::System

V

mdlPackage::mdlClasses::Sum.Block - String BlockType - String Name - String Ports - String Position Behavior mdlPackage::mdlClasses::Atom - String ShowName - String IconShape - String Inputs - String SaturateOnIntegerOverflow + void UpdateState () mdlPackage::mdlClasses::Block + void UpdateOutputs () + void RegisterDictionary () mdlPackage::mdlClasses::Branch

mdlPackage::mdlClasses::Sum.Block mdlPackage::mdlClasses::Integrator.Block mdlPackage::mdlClasses::Outport.Block mdlPackage::mdlClasses::Inport.Block mdlPackage::mdlClasses::Step.Block

mdlPackage::mdlClasses::Line "Sum".Sum.Block:Sum.Block Building

BlockType=Sum Name="Sum" Ports=[2, 1] Position=[60, 13, 95, 47] ShowName=off IconShape="rectangular" Inputs="|+-" SaturateOnIntegerOverflow=on

Objects

«interface» mdlPackage::mdlClasses::SubSystem.Block

mdlPackage::mdlClasses::Scope.Block

9

© Markus Kühl

Transformation of Dataflow Structure

V

"Gain".Port1.Line :Line ...

"SubSystem".System:System ...

"Gain".Port1.Branch:Branch ...

"Integrator".Port1.Line :Line ...

"In1".Inport.Block:Inport.Block

...

"Sum".Port1.Line:Line

...

"Out1".Port1.Branch:Branch

... "Sum".Sum.Block:Sum.Block

"In1".Port1.Line:Line ...

...

"Integrator".Integrator.Block:Integrator.Block ...

"Gain".Gain.Block:Block

"Out1".Outport.Block:Outport.Block ...

...

10

© Markus Kühl

Transformation der Struktur: Top-Level

V

"SubSystem".Port1.Line:Line

"PIRegler".System:System

...

... "Step".Port1.Line:Line ...

«interface» "SubSystem".SubSystem.Block:SubSystem.Block ... "Step".Step.Block:Step.Block ... "Object1".AxesTitles.List:AxesTitles.List

"Scope".Scope.Block:Scope.Block ...

...

11

© Markus Kühl

Generating Target-Code (1)

V

? Class Diagram ?Behavior and Structure of Software Components ?Behavior and Genealogy of Signalflow Diagram ?Execution Model with Statecharts

? Object Diagram ?Picture of Run-Time (Simulation & Emulation) ?Component Structure with Hierarchy Code Generation

Statechart(s)

Class Diagram(s)

Attributes Operations

Target-Code

Object Diagram(s)

Assign Object(s)

12

© Markus Kühl

Generating Target-Code (2)

V

Module „C“ Software Component Buffer::Buffer

Library/ Legacy Code

itsOutputBuffer1 Buffer::Buffer

1

LICOPProcessor

*

Auxiliary::SocketListItem

RT-Framework

itsInputBuffer

Module „A“ Time-continuous Subsystem

Transformation Behavior Class Diagram(s) Transformation Structure

Module „B“ Time-Discrete Subsystem [myCondition] Idle

evRepeat

Sending

Waiting_For_Repeat

Assigning Class Object Diagram(s)

/itsReceiver -> GEN(evHello(myInformation)) evAck/Action1()

Waiting_For_Ack

Assign Object(s)

evBusy

Assign Object(s)

Assign Object(s) Code Generation

13

© Markus Kühl

Architecture: GeneralStore

rts-Interface

mdl-Interface

Presentation Layer

CASE- TOOL Interface

Borland VisiBroker)

Meta Tool Control

Authentisierung Authentisierung

Business Layer

XMI2CASE

ORACLE API

Oracle Admin

Oracle relational Database Schemata

14

Database Layer

CASE

MATLAB Simulink

GeneralStore (GS)

ARTiSAN Real-Time Studio

Oracle

XMI Writer & Reader

V

© Markus Kühl

GeneralStore: CASE-Tool Server

15

V

© Markus Kühl

Conclusion

V

? Universal Object-Oriented Modeling ?Time-discrete and time-continuous systems • Bidirectional transformation of dataflow diagrams using UML Class- and Object-Diagram Representation • Statechart using UML native Statechart Representation

?Software Components captured with UML Diagrams • Object-Oriented Analysis and Design

?Model-level Coupling of Subsystems ?Target-Code Generation using a Real-Time Execution Framework

? CASE Tool-Support ?CASE-Data Server for Concurrent Engineering (GeneralStore) • ARTiSAN Real-Time Studio, MATLAB/Simulink • XMI-Writer & Reader

16

© Markus Kühl

Our Future Work

V

? Universal Object-Oriented Modeling Approach ?XMI-based Code Generator for Real-Time Execution Code ?Documentation of Styleguides or Design Recommendations ?Integration of Mathworks Real-Time-Workshop ?Integration of DOORS (Requirements Engineering) ?Evaluation in a Case-Study

? Unified Modeling Language and XMI Standard ?Standardized Diagram representation (also Meta-Model) ?Real-Time Constraints ?XMI Conformance Suite

17

© Markus Kühl

The End!

V

Discussion Thanks for your Attention!

18

© Markus Kühl

Suggest Documents