universität paderborn ommma 1 abschlußbericht pg ommma objektorientierte modellierung von...
Post on 05-Apr-2015
107 Views
Preview:
TRANSCRIPT
1
Universität Paderborn
„OMMMA“
Abschlußbericht PG OMMMA
Objektorientierte Modellierung von MultiMedia-
Anwendungen
OS Angewandte Informatik
30.06.1999
2
Projektgruppe OMMMA
Betreuer: Stefan SauerProf. Dr. Gregor Engels
Teilnehmer: Joachim BertramCarsten Kemper Mirko KlotzStefan Nabbefeld
http://www.upb.de/fachbereich/AG/engels/ag_dt/Lehre/PG_OMMMA/
3
Inhalt
Einleitung Motivation & Ziele Zwischenstand
OMMMA-L & OMMMA-Tool Diagrammsprachen Integration Demo OMMMA-Tool
Bewertung & Perspektiven
4
Intro: Ziele & Kontext
Definition einer objektorientierten Modellierungssprache für Multimedia
Verwendung von UML-Standard als Basis
OMMMA-L
Erstellung eines Modellierungswerkzeuges
OMMMA-Tool
5
Objektorientierte Modellierung von
MultiMedia-Anwendungen
Motivation OMMMA
6
OMMMA: Charakteristika von Multimedia-Anwendungen
Motivation OMMMA
7
OMMMA: Charakteristika von MM-Anwendungen• interaktive Software• Komposition von Medienobjekten
Anwendungsstruktur, Medienobjekte Präsentation (GUI-Layout, Audio) Benutzerinteraktion, Ereignisverarbeitung vordefiniertes (echt)zeitliches Ablaufverhalten
Motivation OMMMA
8
OMMMA: Charakteristika von Multimedia-Anwendungen
OMMMA: Modellierung von Multimedia-Anwendungen
Motivation OMMMA
9
OMMMA: Modellierung von MM-Anwendungen• unvollständiger MM-Entwicklungsprozeß• integrierte Modellierung der MM-Aspekte
Zuordnung von Aspekten zu Diagrammtypen Pragmatik: Verwendung & Kombination
Motivation OMMMA
10
OMMMA: Charakteristika von Multimedia-Anwendungen
OMMMA: Modellierung von Multimedia-Anwendungen
OMMMA: ObjektorientierteModellierung
Motivation OMMMA
11
OMMMA: OO-Modellierung• Kopplung von Struktur - & Dynamik -Beschreibung• durchgängiges Konzept• Modularisierung, Vererbung, Wiederverwendung • ...
Motivation OMMMA
12
OMMMA: Charakteristika von Multimedia-Anwendungen
OMMMA: Modellierung von Multimedia-Anwendungen
OMMMA: ObjektorientierteModellierung
UMLpureUML?
Motivation OMMMA
13
UML - Unified Modeling Language : • OMG-Standard• allgemeine Modellierungssprache
• Erweiterbarkeit: Sprache (Profiles) & Modell
pure UML? Adäquate Spezifikation von MM-Aspekten
- Präsentation
(-) vordefiniertes zeitliches Ablaufverhalten - Pragmatik
Motivation OMMMA
14
OMMMA: Charakteristika von Multimedia-Anwendungen
OMMMA: Modellierung von Multimedia-Anwendungen
OMMMA: ObjektorientierteModellierung
OMMMA-L Integrierte,konsistente
MM-Modellierung
UMLpureUML?
Motivation OMMMA
15
Entwicklungsstrategie für OMMMA
OMMMA-L & OMMMA-Tool
Werkzeuge
Methoden(Vorgehensmodell)
Sprachen
Konzepte
Pragmatik
Semantik
Syntax
16
OMMMA-L: Zwischenstand
View
ControllerModelstatic
ApplicationLogic
Media
Model
Modeldynamic
Zustandsdiagramm
Layout-diagramm
Klassendiagramm
Erweitertes Sequenzdiagramm
MMM
CMM
VMM
17
Klassendiagramm
Das Klassendiagramm... ist auf Datenebene die Basis der zu modellierenden
Anwendung wird in in das Framework eingebettet definiert, welche Objekttypen zu einer Anwendungseinheit
(=Szene) gehören können
Das Framework... besteht aus der vorgegebenen Medientyphierarchie und dem
zu modellierenden logischen Anwendungsmodell; beide Teile stehen zueinander in Beziehung
Anwendungsframework
18
Layoutdiagramm
neues, nicht in UML enthaltenes Diagramm dient zur graphischen Notation von Positionen und Flächen
der MM.-Objekte enthält die statische Beschreibung der Benutzungsoberfläche
der Multimedia-Anwendung dabei ist „nur“ die räumliche Anordnung der Objekt
zueinander von Interesse, nicht deren wirkliche Gestalt wesentliche Modellierungselemente des Layoutdiagramms
sind : Bounding Box Layoutsicht bzw. Layoutview
19
OMMMA-Sequenzdiagramm
erweitertes UML-Sequenzdiagramm dient zur Modellierung des vorbestimmten zeitlichen
Verhaltens einer Szene Die Erweiterungen:
Parametrisierung Aktivierungs- und Deaktivierungsverzögerung Aktivierungssegmente Animationsaktivierung Medienfilter Zeitangaben auf der Zeitachse durch Intervalle
20
Zustandsdiagramm
In übergeordneten Zuständen werden Beziehungen der Szenen zueinander modelliert Zustandsübergänge werden durch Benutzerinteraktionen oder zeitabhängige
Ereignisse bedingt Den einfachen Zuständen werden die entsprechenden Sequenzen zugeordnet
Zustands-Name
entry / action-expressionexit / action-expressiondo / Sequenzdiagramm
Dem internen Ereignis „do“ wird ein ausführbares Sequenzdiagramm zugeordnet.
21
Rose Extensibility
genutzt werden Stereotypen
Rose Automation COM-Schnittstelle Rose Application
Object Rose Extensibility Type
Library
nicht genutzt werden Add-In Manager Rose Script
Rose Extensibility Interface
Rose Script
Rose Automation
Diagrams
Rose Application
Model Elements
22
OMMMA-L & OMMMA-Tool
DiagrammsprachenSyntax, Editor, interne Repräsenatation in Rose,
Metamodell: Klassendiagramm Präsentationsdiagramm erweitertes Sequenzdiagramm Zustandsdiagramm
Integration OMMMA
Demo OMMMA-Tool
23
Klassendiagramm:Syntax
Klassendiagramm Modellierung der Zugehörigkeit von Szenenobjekten zu Szenen Einbettung in Framework
„Logical Patterns“ entfernt aus dem Framework
Framework Medientyphierarchie...
umfaßt alle verfügbaren Medientypen ist bei Bedarf in Rose erweiterbar bzw. anpassbar wird zur Laufzeit in das OMMMA-Tool eingelesen
logisches Anwendungsmodell... enthält alle Klassen, die in den einzelnen Szenen benutzt werden
24
Klassendiagramm:Syntax (Framework)
TemporalMedia DiscreteMedia
Audio Video Animation Graphics Image Text
CompressedVideo RawVideo
MPEGVideo
. . .
. . .
ApplicationEntity
Media
*
1
*
1
MMApplication
ApplicationUnit
1..*1..*
25
Klassendiagramm: Editor
Besondere Merkmale des Klassendiagramms: hierarchische Baumstruktur Konsistenz zu Sequenzdiagrammen notwendig Verzicht auf eine direkte Bearbeitung in UML-Notation, statt
dessen spezialisierte (eingeschränkte) Eingabemöglichkeit in OMMMA-Tools
Zahlen
Zahl
11
GIF
vor
11
zurück
11
Bär
1..41..4
JPG
26
Klassendiagramm: Repräsentation in Rose
M M Appl
ApplicationEntity
Neues Projekt(from Neues Projekt)
Zahlen(from Zahlen)
Zahl
M ediaType : string = GIFM ultiplicity : Integer = 1
(from Zahlen)
vor
M ediaType : string = JPGM ultiplicity : Integer = 1
(from Zahlen)
zurück
M ediaType : string = JPGM ultiplicity : Integer = 1
(from Zahlen)
Bär
M ediaType : string = JPGM ultiplicity : Integer = 1..4
(from Zahlen)
Szene
27
Klassendiagramm: Metamodell
Stereotype of Class
MultimediaApplication
Scene
1..*1..*
Media
ApplicationEntity
*
1..*
*
1..*
1..*1..*
28
Präsentationsdiagramm: Syntax (1)
Hinzunahme der auditiven Komponente Layoutdiagramm jetzt Präsentationsdiagramm
Modellierung der räumlichen Beziehungen der Medienobjekte, dazu Layoutview: (Teil-)ansicht der MM-Anwendung Bounding Box: umschließende Rechteck der Medienobjekte
die Audiokomponente der Präsentation
AudioChannels
29
Präsentationsdiagramm: Syntax (2)
Layoutviews: können zu einer Gesamtsicht (Layoutdiagramm)
kombiniert werden
können sich überlagern (layered)
Bounding Boxes: Unterscheidung interactive (z.B. Checkbox,Button), non-
interactive ( allg. Bounding Box )
können sich überlagern (layered)
30
Präsentationsdiagramm: Editor (1)
Treeview der Präsentation der Szene mit den Audio-Channels
Layoutview
Bounding Boxes der Layoutview
31
Präsentationsdiagramm: Editor (2)
Layoutview
sich überlagernde Bounding Boxes
BBox3 liegt auf BBox2, diese wiederum auf BBox1
32
Präsentationsdiagramm: Editor (3)
Eine Präsentation pro Szeneenthält :
die Layoutviewsdie AudioChannels
die Layoutviews wiederum enthaltendie BoundingBoxes
33
Präsentationsdiagramm: Repräsentation in Rose (1)
34
Struktur entspricht der internen Struktur im Editor
eine Präsentation pro Szene, enthält Layoutviews und AudioChannels
Layoutviews wiederum enthalten BoundingBoxes
zwischen den Layoutviews existiert Assoziation layered, um Tiefenstaffelung auszudrücken
ebenso besteht die Assoziation layered zwischen den Bounding Boxes
Präsentationsdiagramm: Repräsentation in Rose (2)
35
Präsentationsdiagramm - Metamodell
1
MultimediaPresentation
Stereotype of Subsystem
LayoutView
*
*
1..*
1
1..*
1
*
1
*
AudioChannel
Stereotype of Classifier
BoundingBox
AuditivePresentation
Stereotype of AssociationClass
VisualPresentation
interactiveVPnoninteractiveVP
Imagemap Button CheckBox Sliderbar
**
+front
+back
+frontlayered
+back
layered
1..*
Anbindung an Activation, Typ der Bounding Box wird durch Association Class „Visual Presentation“ spezifiziert
Anbindung zur Szene
36
OMMMA-Sequenzdiagramm
erweitertes UML-Sequenzdiagramm dient zur Modellierung des vorbestimmten zeitlichen
Verhaltens einer Szene und zur Zuordnung von Zeit, Ort, Medium und Applikationsobjekt
Die Erweiterungen: Parametrisierung Medienfilter (De-)Aktivierungsverzögerung Aktivierungssegmente Animationsaktivierung Zeitangaben auf der Zeitachse durch Intervalle
37
Parametrisierung
Die Parametrisierung erfolgt über Variablen der MMAnwendung Es können mehrere Parameter zur bedingten Ausführung von
Messages angegeben werden Außerdem gibt es drei spezielle Parameter
1. Startmarke• gibt eine Marke an ab dem das Sequenzdiagramm ausgeführt werden soll
2. Startzeitpunkt• gibt einen Zeitpunkt an ab dem die Medien dargestellt werden sollen
– es wird das ganze SeqDiag so schnell wie möglich abgearbeitet und dann zu dem vorgegebenen Zeitpunkt startet die Darstellung
3. Zuordnungsparameter• abhängig von diesem Parameter wird das darzustellende Medienobjekt
ausgewählt– dieses Parameter ist vom Typ enum und bestimmt die Zuordnung von
Anwendungsobjekt zu Medienobjekt auf Basis einer vordefinierten Liste
38
Aktivierungen
Eine Aktivierung besteht aus: Einem senkrechten Rechteck Einer Medienangabe in spitzen
Klammern <> Einer Layoutzuordnung durch Angabe
der BBox :Bild
<B
ild.g
if> B
Box1
39
Aktivierungssegmente
Aktivierungssegmente werden benutzt um ein Objekt mehrfach darzustellen oder um Audiokanäle zu verteilen Dargestellt wird dies in dem eine Aktivierung in parallele
Segmente aufgeteilt wird Bei Audioobjekten wird auch noch der Ausgabekanal über das
Segment geschrieben
:Audio
L R
<2
52
5.w
av>
40
Animationsaktivierung
Die Animationsaktivierung ermöglicht mit einer Aktivierung eine ganze Sequenz von Aktivierung zu starten. So kann man zum Beispiel Animationen aus Einzelbildern
ablaufen lassen Die Darstellung ist eine horizontal unterteilte Aktivierung
<Bild2.gif>
<Bild3.gif>
<Bild4.gif>
<Bild5.gif>
<Bild1.gif>
<Bild6.gif>
:Anim
BB
ox1
41
Zeitangaben
Zeitangaben werden durch eine Teilung der Zeitachse und Intervallangaben modelliert Dabei können genaue Zeitangaben, minimale Zeit, maximale
Zeit oder unbestimmte Zeit (*) verwendet werden
:Bild :Video :Musikstück
Max(10sec)
1min
10sec
[2min,10min]
*
<B
il d. g
if>
<V
ideo.m
pg
> <2
52
5.w
av>
BB
ox1
BB
ox2
Au
dio
1
42
Medienfilter
Der Medienfilter wird genutzt um Pegeländerungen während der Präsentation eines Objektes zu modellieren Dies kann zum Beispiel die Lautstärke eines Audioobjektes
oder auch die Helligkeit eines Bildes sein Dargestellt wird dieser Pegel als teilweise gefüllte Aktivierung. Die gesamte Breite der Aktivierung ist dabei 100%
Einblenden
Ausblenden
Dauerpegel 66%
0% 100%
43
Parametrisierung
Die Parametrisierung erfolgt in einem Kasten oberhalb des Diagramms Als Beispiel hier die Parameter Start und Ende als char werden
übergeben und im Diagramm als S und E verwendet
char S := Startchar E:=Ende
44
Aktivierungs-/Deaktivierungsverzögerung
Da man von Multimediaobjekten nicht immer einen Start oder eine Beendigung in Nullzeit erwarten kann, muß man Verzögerungen mit modellieren Zu diesem Zweck werden Verzögerungen eingeführt die durch
schraffierte Flächen repräsentiert werden.
Für Objekte die nicht abrupt beendet werden können
Für Objekte die zum Start noch Vorbereitung brauchen
46
Zustandsdiagramm:Syntax (1)
In übergeordneten Zuständen werden Beziehungen der Szenen zueinander modelliert Zustandsübergänge werden durch Benutzerinteraktionen oder zeitabhängige Ereignisse bedingt Den einfachen Zuständen werden die entsprechenden Sequenzen zugeordnet:
Sequenzdiagramm spezifiziert die vordefinierte Aktionsfolge (action expression) der internen Aktion <-> eingebetteter Zustandsautomat
Zustands-Name
entry / action-expressionexit / action-expressiondo / Sequenzdiagramm
Dem internen Ereignis „do“ wird ein ausführbares Sequenzdiagramm zugeordnet.
47
Zustandsdiagramm:Syntax (2)
Zustandsdiagramme bieten u.a. unterteilte und eingebettete Zustände
Beispiel:
Portra itanzeigen
do Portra itanzeige
Video anzeigendo
Video anzeigen
Idle
M usikabspielendo
M usikabspielen
/ P:=1
klick [auf CD-Player]/ M :=Result
klick [auf und
/ M :=Result
CD-Player <> STO P] Result
klick [auf Video]/ V:= Result
[(Portrait oder Musik angeklickt) oder Video gestoppt]
klick [/ P:=Resultauf Portrait]
klick [auf CD-Player und
==STO P]Result
Text u. CD-Playerdarstellen
do Text u. CD-Playeranzeige
48
Zustandsdiagramm: Editor (Rose 98)
49
Zustandsdiagramm:Repräsentation in Rose
Syntax unverändert übernommen aus UML
Semantische Erweiterung:Kopplung von internen Aktionen an Sequenzdiagramme;Prüfung der Konsistenzbedingung erforderlich
Editor ist Rose 98 (nach Rational: „Rose uses Harel notation“)
Verwendung der internen Repräsentation von Rose, d.h. es existiert keine Repräsentation im OMMMA-Tool
50
OMMMA-L & OMMMA-Tool
Diagrammsprachen
Integration OMMMA integriertes Metamodell Kombination der Diagramme Systemarchitektur & Kommunikation in OMMMA-Tool
Demo OMMMA-Tool
51
OMMMA-L: Integration
View
ControllerModelstatic
ApplicationLogic
Media
Model
Modeldynamic
Zustandsdiagramm
Präsentations-diagramm
Klassendiagramm
Erweitertes Sequenzdiagramm
MMM
CMM
VMM
1..*
*
ContinousMedia DiscreteMedia MMApplicationApplicationUnit1
1..*
1
1..*
Portrait MusicSheet MusicPiece* 0..1* 0..1Film
Media
ApplicationEntity1..*
*
TextEntry
ComposerEntry
1
1..3
1
1..3
1
2..*
1
2..*
1
*
1
*
1
0..2
1
0..2
1
1
1
1
C
Mdynamic
Mstati
c
V
Musicint MTitle KNMn: MusicSheet KNMa: MusiPiece
L R[MTitel ==
Mozart1]
ImageVideoBox
0
T [s ]
max 0,5max 0,2
2:10
Highlight: Marker
0:35HBox1
HBox2
HBox3
HBox4
0:35
0:35
0:25
1..*
*
ContinousMedia DiscreteMedia MMApplicationApplicationUnit1
1..*
1
1..*
Portrait MusicSheet MusicPiece* 0..1* 0..1Film
Media
ApplicationEntity1..*
*
TextEntry
ComposerEntry
1
1..3
1
1..3
1
2..*
1
2..*
1
*
1
*
1
0..2
1
0..2
1
1
1
1
C
Mdynamic
Mstati
c
V
Musicint MTitle KNMn: MusicSheet KNMa: MusiPiece
L R[MTitel ==
Mozart1]
ImageVideoBox
0
T [s ]
max 0,5max 0,2
2:10
Highlight: Marker
0:35HBox1
HBox2
HBox3
HBox4
0:35
0:35
0:25
1..*
*
ContinousMedia DiscreteMedia MMApplicationApplicationUnit1
1..*
1
1..*
Portrait MusicSheet MusicPiece* 0..1* 0..1Film
Media
ApplicationEntity1..*
*
TextEntry
ComposerEntry
1
1..3
1
1..3
1
2..*
1
2..*
1
*
1
*
1
0..2
1
0..2
1
1
1
1
C
LViewHB
LViewEnc
LViewCom
HBox2HBox3
HBox4
HBox1Mdynamic
Mstati
c
V
Musicint MTitle KNMn: MusicSheet KNMa: MusiPiece
L R[MTitel ==
Mozart1]
ImageVideoBox
0
T [s ]
max 0,5max 0,2
2:10
Highlight: Marker
0:35HBox1
HBox2
HBox3
HBox4
0:35
0:35
0:25
1..*
*
ContinousMedia DiscreteMedia MMApplicationApplicationUnit1
1..*
1
1..*
Portrait MusicSheet MusicPiece* 0..1* 0..1Film
Media
ApplicationEntity1..*
*
TextEntry
ComposerEntry
1
1..3
1
1..3
1
2..*
1
2..*
1
*
1
*
1
0..2
1
0..2
1
1
1
1
PlayMusic
do Music(M)
MMAStateDiagram
C
LViewHB
LViewEnc
LViewCom
HBox2HBox3
HBox4
HBox1Mdynamic
Mstati
c
V
Musicint MTitle KNMn: MusicSheet KNMa: MusiPiece
L R[MTitel ==
Mozart1]
ImageVideoBox
0
T [s ]
max 0,5max 0,2
2:10
Highlight: Marker
0:35HBox1
HBox2
HBox3
HBox4
0:35
0:35
0:25
1..*
*
ContinousMedia DiscreteMedia MMApplicationApplicationUnit1
1..*
1
1..*
Portrait MusicSheet MusicPiece* 0..1* 0..1Film
Media
ApplicationEntity1..*
*
TextEntry
ComposerEntry
1
1..3
1
1..3
1
2..*
1
2..*
1
*
1
*
1
0..2
1
0..2
1
1
1
1
PlayMusic
do Music(M)
MMAStateDiagram
C
LViewHB
LViewEnc
LViewCom
HBox2HBox3
HBox4
HBox1
V
Mdynamic
Mstati
c
Musicint MTitle KNMn: MusicSheet KNMa: MusiPiece
L R[MTitel ==
Mozart1]
ImageVideoBox
0
T [s ]
max 0,5max 0,2
2:10
Highlight: Marker
0:35HBox1
HBox2
HBox3
HBox4
0:35
0:35
0:25
1..*
*
ContinousMedia DiscreteMedia MMApplicationApplicationUnit1
1..*
1
1..*
Portrait MusicSheet MusicPiece* 0..1* 0..1Film
Media
ApplicationEntity1..*
*
TextEntry
ComposerEntry
1
1..3
1
1..3
1
2..*
1
2..*
1
*
1
*
1
0..2
1
0..2
1
1
1
1
PlayMusic
do Music(M)
MMAStateDiagram
C
LViewHB
LViewEnc
LViewCom
HBox2HBox3
HBox4
HBox1
V
Mdynamic
Mstati
c
Musicint MTitle KNMn: MusicSheet KNMa: MusiPiece
L R[MTitel ==
Mozart1]
ImageVideoBox
0
T [s ]
max 0,5max 0,2
2:10
Highlight: Marker
0:35HBox1
HBox2
HBox3
HBox4
0:35
0:35
0:25
1..*
*
ContinousMedia DiscreteMedia MMApplicationApplicationUnit1
1..*
1
1..*
Portrait MusicSheet MusicPiece* 0..1* 0..1Film
Media
ApplicationEntity1..*
*
TextEntry
ComposerEntry
1
1..3
1
1..3
1
2..*
1
2..*
1
*
1
*
1
0..2
1
0..2
1
1
1
1
PlayMusic
do Music(M)
MMAStateDiagram
C
LViewHB
LViewEnc
LViewCom
HBox2HBox3
HBox4
HBox1
V
Mdynamic
Mstati
c
Musicint MTitle KNMn: MusicSheet KNMa: MusiPiece
L R[MTitel ==
Mozart1]
ImageVideoBox
0
T [s ]
max 0,5max 0,2
2:10
Highlight: Marker
0:35HBox1
HBox2
HBox3
HBox4
0:35
0:35
0:25
1..*
*
ContinousMedia DiscreteMedia MMApplicationApplicationUnit1
1..*
1
1..*
Portrait MusicSheet MusicPiece* 0..1* 0..1Film
Media
ApplicationEntity1..*
*
TextEntry
ComposerEntry
1
1..3
1
1..3
1
2..*
1
2..*
1
*
1
*
1
0..2
1
0..2
1
1
1
1
PlayMusic
do Music(M)
MMAStateDiagram
C
LViewHB
LViewEnc
LViewCom
HBox2HBox3
HBox4
HBox1
V
Mdynamic
Mstati
c
Musicint MTitle KNMn: MusicSheet KNMa: MusiPiece
L R[MTitel ==
Mozart1]
ImageVideoBox
0
T [s ]
max 0,5max 0,2
2:10
Highlight: Marker
0:35HBox1
HBox2
HBox3
HBox4
0:35
0:35
0:25
1..*
*
ContinousMedia DiscreteMedia MMApplicationApplicationUnit1
1..*
1
1..*
Portrait MusicSheet MusicPiece* 0..1* 0..1Film
Media
ApplicationEntity1..*
*
TextEntry
ComposerEntry
1
1..3
1
1..3
1
2..*
1
2..*
1
*
1
*
1
0..2
1
0..2
1
1
1
1
PlayMusic
do Music(M)
MMAStateDiagram
C
LViewHB
LViewEnc
LViewCom
HBox2HBox3
HBox4
HBox1
V
Mdynamic
Mstati
c
61
Konsistenzbedingungen (1)
Folgende Konsistenzbedingungen sind festzuhalten:
Mstatic- und Mdynamic-Komponenten: ApplicationEntities sind mit einem Medientyp assoziiert Activations im Sequenzdiagramm besitzen eine Referenz zu
einem Medienobjekt, dieses beinhaltet die Instanz eines Medientyps
Mstatic-Komponente und Controller-Komponente: der Multimedia-Applikation wird das Zustandsdiagramm
zugeordnet Szenen werden Zustände des Zustandsdiagramms der
Multimedia-Applikation zugeordnet
62
Konsistenzbedingungen (2)
Mstatic-Komponente und View-Komponente: Activations im Sequenzdiagramm haben eine Referenz auf
die zugehörige Bounding Box
Mstatic-Komponente und View-Komponente: Szenen haben eine Referenz auf die Layoutviews
Controller-Komponente und Mdynamic-Komponente: im do-Teil des Zustandsdiagramms wird ein
Sequenzdiagramm referenziert
SubmachineState
CompositeState
isConcurent : Boolean
SimpleActivation
AuditivePresentation
Stereotype of Class
Stereotype of Classifier(Operation)
Stereotype of Operation
Stereotype of Class
Stereotype of AssociationClass
Stereotype of Classifier
Stereotype of Subsystem
VisualPresentation
SimpleState
MultimediaApplication StateMachine0..1 1+context0..1 +behavior 1
State
1
0..1
+top
1
0..1
noninteractiveVP
Transition
*
0..1
+transitions *
0..1
*
0..1
+internalTransition *
0..1
Event
0..1
*
+trigger 0..1
*
Signal
1* 1*
interactiveVP
1..*
0..*
1..*
0..*
Imagemap Button CheckBox Sliderbar
LayoutView
*
*
+front
* layered
+back
*
Interaction
0..11
0..11
Scene
1..*1..*
1
0..1
1
0..1
CompositeActivation
isConcurrent : Boolean
MediaFilter
BoundingBox
1..*1..*
**
+front*
layered
+back
*
Media
Message*
1..*
*
1..*
ApplicationEntity
*1..* *1..*1..*1..*
MultimediaPresentation
1
1..*
1
1..*
1..*
1
1..*
1
Activation
0..11..*
0..11..*
*
*
+parameter*
*
*
*
*
*
1 *1 * 1
*
1
*
*
1
*
1
AudioChannel
1
*
1
*
*
*
*
*
SubmachineState
CompositeState
isConcurent : Boolean
Stereotype o
f Class
SimpleState
MultimediaApplicationStateMachine0..1 1+context0..1 +behavior 1
State
1
0..1
+top
1
0..1
Transition
*
0..1
+transitions *
0..1
*
0..1
+internalTransition *
0..1
Event
0..1
*
+trigger0..1
*
Signal
1* 1* 1..*1..*
Interaction
0..1
1
0..1
1
Scene
1..*1..*
1
0..1
1
0..1
Message
*
1..*
*
1..*
1..*1..*
**
SimpleActivation
AuditivePresentation
Stereotype of
Class
Stereotype of
Classifier
(Operation)
Stereotype of
Operation
Stereotype of
AssociationClass
Stereotype of
Classifier
Stereotype of
Subsystem
VisualPresentation
noninteractiveVP interactiveVP
0..*0..*
Imagemap Button CheckBox Sliderbar
LayoutView
*
*
+front
*layered
+back
*CompositeActivation
isConcurrent : Boolean
MediaFilter
BoundingBox
1..*1..*
*
*
+front*
layered
+back
*
Media
ApplicationEntity
*1..* *1..*
1..*1..*
MultimediaPresentation
1
1..*
1
1..*
11
Activation
0..1
1..*
0..1
1..*
*
*
+parameter*
*
*
*
*
*
1*
1* 1
*
1
*
*
1
*
1
AudioChannel
1
*
1
*
*
*
*
*
OMMMA-Tool: Architektur
Konsistenz
Rational Rose
Klassen-Editor
Zustand-Editor
OMMMA-Datenmodell
Rose-Datenmodell
Ext-FilesMDL-Files
REI
OMMMA-Ctrl
PresEdWindow
OMMMA-Tool-DM
Präsen-tations-Editor
RoseWindow
OMMMA-Tool
COM Client
RoseApplication
COM Server
Konsistenz
Szenenobjekt-Editor
Unparser
SzOEdWindow
Konsistenz
Sequenz-Editor
SeqEdWindow
AufrufDaten
67
OMMMA-Tool: Internes Anwendungsmodell
Media
MMProject
Timeline
LayoutView
ApplicationEntity
0..*
1
0..*
1
Scene
1
0..*
1
0..*
1
0..*
1
0..*
Message
BoundingBox
1
0..*
1
0..*
SequenceObject
1
1
1
1
Sequence
1
0..*
1
0..*
0..*
1
0..*
1
MPE
0..*
1
0..*
1
1
0..*
1
0..*
AudioChannel
0..*
1
0..*
1
Activation
1
0..*
+sender1
0..*
1
1
+receiver
1
1
0..* 0..*0..* 0..*
1
0..*
1
0..* 1
1
1
1
0..*
0..*
0..*
0..*
68
Kommunikation zwischen OMMMA-Tool und Rose
Jede Eingabe-, Umbennungs- und Löschoperation erfolgt auf der internen Datenstruktur im OMMMA-Tool
Zulässige Änderungen des Modells werden direkt an Rational Rose weitergeleitet
Dadurch werden die Daten konsistent gehalten
Verwendung von Rose als Projekt-Repository
69
OMMMA-L & OMMMA-Tool
Diagrammsprachen
Integration OMMMA
Demo OMMMA-Tool
70
Bewertung: Ziele und Erreichtes
Ziele der PG-OMMMA: Sprache zur objektorientierten Modellierung von Multimedia-
Applikationen (orientiert an UML) Editor (Syntaxgesteuert)
Erreicht: OMMMA-L (Erweiterung von UML) OMMMA-Tool (angebunden an RationalRose98)
Offen geblieben: Editiermöglichkeit für einige Details (besonders
Verfeinerungen des Sequenzdiagramm Ein auf unseren Editor aufbauender Codegenerator Portierung des Editors nach JAVA
71
Bewertung: Ablauf der PG-OMMMA
2 Semester fast ausschließlich an Sprache OMMMA-L gearbeitet
Aber: OMMMA-L eine Grundlage für Forschung in AG-Engels OMMMA-L Stoff von Vorlesung MMSE OMMMA-L bereits veröffentlicht
hohe Motivation für unser Team Entwicklung des Prototyps in unserem „freiwilligen“ 3.
Semester
72
Bewertung: Erweiterung von Rose
Geplant war: Rose erweitern um das Layoutdiagramm Rose-Sequenzdiagramm erweitern um die Aspekte des OMMMA-
Sequenzdiagramms Klassen- und Zustandsdiagramm übernehmen
Daraus wurde: OMMMA-Layoutdiagramm-Editor Rose-Sequenzdiagramme entsprachen nicht dem UML-Standard
Eigener Sequenzdiagramm-Editor nur eingeschränkte Konsistenzprüfung auf Rose-
Klassendiagramm-Editor, damit nicht syntaxgesteuert realisierbar Eigene Repräsentation für das Klassendiagramm
73
Bewertung: Erweiterung von Rose (2)
Erhofften weniger Aufwand beim Erweitern eines etablierten Case-Tool (und die Möglichkeit Code zu generieren)
Erkauften uns damit viele Probleme, die nicht eingeplant waren Interne Struktur von Rose nicht dokumentiert keine Möglichkeit, ein Diagramm vor dem Editieren zu schützen kein zugreifbarer Event-Handler in Rose
Einfache Erweiterung damals nur über VisualBasic möglich: Rose Schnittstelle nur COM/DCOM Java nur CORBA
74
Bewertung: Erweiterungvon Rose - Konsistenz
Klassendiagramm: Daten-Grundlage für die Editoren im OMMMA-Tool OMMMA-L-Konsistenzprüfung auf Klassendiagramm nicht
automatisch während der Eingabe (Rose-Events über COM nicht zugreifbar) nicht syntaxgesteuert
Lösung:Eigene Klassendiagramm-Repräsentation
Alternative ohne Syntaxsteuerung: explizites Aufrufen einer Konsistenzüberprüfung in Rose
Zustandsdiagramm: Konsistenzprüfung auf den Daten des OMMMA-Tools
75
Perspektiven (1)
PG OMMMA Projektbericht & Dokumentation
Studien-/Diplomarbeiten Verfeinerung der Sprachdefinition OMMMA-L
SHK-Tätigkeiten Weiterentwicklung des OMMMA-Tool-Prototypen Reimplementierung ??
76
Perspektiven (2)
Forschung Verfeinerung in Sequenzdiagrammen,
Präsentationsdiagrammen Modellierung von
Anwendungsbeispielen Revision von OMMMA-L A-UML: Head-Unit im
Automobil (A-UML) UML Profiling
77
Universität Paderborn
„OMMMA“
The End
78
Zustandsdiagramm -Transitionen
Transitionen (nach UML) bestehen aus: event-signature [guard-condition] / action-expression ^send-clause mit event-signature: event-name (parameter,...) und ^send-clause:
destination-expression.destination-message-name (argument,...)
Transitionen (in Rose98):
79
Zustandsdiagramm -Rational Rose 98 (2)
Eingabemöglichkeiten in Rose98 Für Zustände
80
Zustandsdiagramm -Rational Rose 98 (3)
Eingabemöglichkeiten in Rose98 Für Transitionen
81
Bewertung:Danksagungen
F. Wegener: für schnelle und unbürokratische Hilfe in Rechner und Folienfragen ;-)
82
Perspektiven (1)
PG OMMMA Projektbericht:
Syntaxdefinition OMMMA-LOMMMA-Tool DokumentationBenutzerhandbuch
Studien-/DiplomarbeitenSHK-Tätigkeiten
Weiterentwicklung OMMMA-Tool Reimplementierung ??
83
Beispiel eines Klassendiagramms
ApplicationUnit
Video Portrait Notenblatt Musikbeispiel Bild-/Musiksteuerung
Komponisteneintrag
** ** ** 3..53..5 11
Hypertext
11
top related