1 Zwischenbericht PG OMMMA Projektgruppe Objektorientierte Modellierung von Multimedia- Anwendungen...
-
Upload
ivonne-helmkamp -
Category
Documents
-
view
104 -
download
0
Transcript of 1 Zwischenbericht PG OMMMA Projektgruppe Objektorientierte Modellierung von Multimedia- Anwendungen...
1
Zwischenbericht PG OMMMA
Projektgruppe Objektorientierte Modellierung von Multimedia-
AnwendungenBetreuer: Stefan Sauer
Prof. Dr. Gregor EngelsTeilnehmer: Joachim Bertram
Carsten KemperMirko KlotzStefan Nabbefeld
OS Angewandte Informatik - 9.Dez.1998http://www.uni-paderborn.de/fachbereich/AG/engels/ag_dt/Lehre/PG_OMMMA/
2
Inhalt
Intro: Objektorientierte Modellierung von Multimedia-Anwendungen
DiagrammtypenDiagrammkombinationVerfeinertes MetamodellRose ExtensibilityArchitektur der ImplementierungZusammenfassung & Ausblick
3
Intro: Ziel & Kontext von OMMMA
Definition einer objektorientierten Modellierungssprache für Multimedia
Verwendung von UML-Standard als Basis
Erstellung eines Modellierungswerkzeuges
Erweiterung um eine Ablauf- oder Generierungskomponente (Programmiersprachen, MM-Standards)
4
Intro: OMMMA: Charakteristika von MM-Anwendungen
Interaktive Softwaresysteme
Strukturierte Kombination kontinuierlicher und diskreter
Medientypen - inhaltlich, zeitlich, räumlich
Struktur der Anwendung, Medienobjekte
Layout der Benutzungsschnittstelle
Benutzerinteraktion und Ereignisverarbeitung
Vordefiniertes zeitliches Ablaufverhalten visueller und
auditiver Präsentationseinheiten
5
Intro: OMMMA - Modellierung von MM-Anwendungen
Autorensysteme: unvollständiger Entwicklungsprozeßkeine Unterstützung einer
Modellierung
Integrierte Modellierung von Anwendung, UI, Medien (Struktur und Ablaufverhalten)
Zuordnung von Aspekten zu speziellen Diagrammtypen
Metamodell zum Einsatz der Diagramme und deren konsistenter Kombination
6
Intro: OMMMA: OO-Modellierung von MM-Anwendungen
Warum OO?
Einheitliches Konzept, Kopplung von Struktur- und Dynamikbeschreibung, Wiederverwendung, Modularisierung
Warum UML?
OMG-Standard, industrieller Quasi-Standard
Warum nicht pure UML?
Bestimmte Aspekte von MM-Anwendungen werden nicht unterstützt
7
Beispielanwendung: Komponistenlexikon
• Medienobjekte Hypertexteintrag, Porträts, Musikbeispiele & Notenblätter, Videosequenzen• Logische Struktur inhaltliche Abhängigkeiten, Komposition z.B. eines Eintrags• Einheitliches Layout wiederverwendbar• Interaktivität einheitliche Benutzerführung Navigation: Buchstabenleiste, Scroll-Liste, Buttons, Steuerung• Vordefinierte Abläufe Zeitverhalten, Synchronisation
8
Klassendiagramm / Framework
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
ist ein Anwendungsframework (und kein API wie bei Gibbs/Tsichritzis)
9
Medientyphierarchie /logisches Anwendungsmodell
Die Medientyphierarchie... umfaßt alle verfügbaren Medientypen ist bei Bedarf erweiterbar
Das logische Anwendungsmodell... enthält alle Klassen, die in einzelnen Szenen benutzt
werden enthält ggf. Logical Patterns (spezialisierte Muster)
10
Framework
TemporalMedia DiscreteMedia
Audio Video Animation Graphics Image Text
LogicalPattern1
LogicalPatternN
. . .
CompressedVideo RawVideo
MPEGVideo
. . .
. . .
ApplicationEntity
Media
*
1
*
1
MMApplication
CompositeUnit
ApplicationUnit
1..*1..*
1..*1..*
11
Beispiel eines Anwendungs-musters (Objektdiagramm)
ApplicationUnit
Video Portrait Notenblatt Musikbeispiel Bild-/Musiksteuerung
Komponisteneintrag
** ** ** 3..53..5 11
Hypertext
11
12
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 Gestaltungsmerkmale des Layoutdiagramms sind
: Bounding Box Layoutsicht bzw. Layoutview
13
Merkmale des Layoutdiagramms Bounding Boxes
Bounding Boxes, also die ein Objekt begrenzenden Rechtecke, werden verwandt
Bounding Boxes können einander überlagern, eine Tiefenstaffelung ist vorgesehen
Bounding Boxes werden spezialisiert in Präsentationsobjekte, nur zu Darstellungszwecken und Interaktionsobjekte, zur Interaktion
mit dem Benutzer Darstellung durch einfach (Präsentations-) oder doppelt
(Interaktionsobjekte) dicke Umrandung Präsentationsobjekte werden durch die Aktivierung eines
Anwendungsobjektes im Sequenzdiagramm erzeugt Interaktionsobjekte bedürfen zusätzliche einer Modellierung im
Zustandsdiagramm ( was geschieht, wenn Knopf gedrückt wird ?)
14
Bounding Boxes
Checkbox
Button A Button
Sliderbar
Scrollbar
Test a
Test b
Test c
Test d
Bounding- Boxeiner Animation
Image
Bounding-Box fürein Grafikobjekt
Text
Bounding-Box eines Texts
Video
Video beinhaltet eineBildfolge, Audio wirdgetrennt behandelt
Boundiing-Boxallgemein
Beispiele für Spezialisierungen der Bounding Box
15
Merkmale des LayoutdiagrammsLayoutview
ein LayoutDiagramm kann aus mehreren Teilansichten, sogenannten LayoutViews, bestehen
Eine LayoutView entspricht im einfachsten Fall einer Bildschirmsicht der MM.-Anwendung
Eine Sicht der MM.-Anwendung kann aber auch aus mehreren LayoutViews bestehen, die wiederum in einer Tiefenstaffelung angeordnet sein können
eine Layout-View könnte z.B. ein wiederkehrendes Steuerelement sein
Layoutviews
Text
Weiter Zurück
ImageImage
Image ImageText
Weiter Zurück
Layoutview 1 Layoutview 2
Layoutview3, resultiert aus Kombination der Layoutviews 1 und 2
17
Ansatz zur Umsetzung in ein UML- Modell
das Layoutdiagramm wird in ein UML-Klassendiagramm umgesetzt
dabei werden die Eigenschaften, wie Position, Größe in Attribute der Klasse umgesetzt
die Tiefenstaffelung wird durch eine Assoziation zwischen den beteiligten Klassen realisiert
18
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
19
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
20
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
21
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
22
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
:Bild3
:Bild4
:Bild5
:Bild1
:Bild6
:Anim
23
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%
24
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]
*
25
Zustandsdiagramme
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.
26
Zustandsdiagramme
Zustandsdiagramme bieten u.a. unterteilte und eingebettete Zustände Frage: Wie können diese Möglichkeiten genutzt werden? 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
27
Zustandsdiagramme
Zustands-Pattern dienen zur vereinfachten Handhabung häufig vorkommender Abläufe gleicher Art
Der Benutzer kann vorgefertigte Abläufe verwenden Beispiel: „Gehe n Schritte nach xy“
gehe_links
gehe_rechts
do gehe_links
do gehe_rechts
Bewertung
doBewertung
normal
do normal [Start==Ziel]
[Start>Ziel]
[Start<Ziel]klick [auf Buchstabe]/ Start:=Ziel und Z iel:=Result
28
Kombination
Kombinationsmöglichkeiten: innerhalb einer Diagrammart zwischen verschiedenen Diagrammarten
Innerhalb einer Diagrammart: Zustandsdiagramm
hierarchische Komposition ( Superstate )
Sequenzdiagramm Grundsätzlich ist eine Kombination nicht nötig Unterscheidung zwischen sequentieller und paralleler Ausführung nötig vorstellbar ist sie für eine sequentielle Abfolge mehrerer Sequenzdiagramme bei paralleler Ausführung nicht möglich
Layoutdiagramm Kombination vorgesehen (mehrere Layoutviews können eine Sicht der
Anwendung bilden) und erweitert um die Relation gestaffelt
29
Kombination verschiedener Diagramme
Betrachtung der Kombination der Verhaltensdiagramme ( Sequenz- und Zustandsdiagramm) und des Layoutdiagramms Schlüsselbegriff unserer Betrachtungsweise ist die Szene oder
Application Unit hiermit ist eine in sich geschlossene Einheit der MM.-Anwendung
gemeint. Geschlossenheit ist sowohl auf inhaltlich logischer Ebene zu sehen,
wie auch in der Präsentation Die Szene umfaßt einen Zustand im Zustandsdiagramm diesem Zustand ist ein Sequenzdiagramm zur Beschreibung
des statischen zeitlichen Verhaltens zugeordnet ebenso ist diesem Zustand ein Layout zugeordnet, zur
Modellierung der räumlichen Zusammenhänge
30
Kombination verschiedener Diagramme
Es ergibt sich folgendes Übersichtsbild aus dem Metamodel
Assoziation imModell
Assoziation imModell
Zustandsdiagramm Sequenzdiagramm
Layout-Diagramm
Zustand b ( der eineSzene umfaßt)
Zustand a
31
Verhaltensdiagramme und Strukturdiagramm
im Klassendiagramm wird die statische Struktur der MM.-Anwendung beschrieben
nur im Klassendiagramm definierte Objekte stehen in den anderen Diagrammen zu Verfügung
Präsentationsobjekte entsprechen den Aktivierungen der Szenenobjekte
die Szenenobjekte sind mit den Instanzen der Medienobjekte assoziiert
Pseudostate
kind : PseuostateKind
SubmachineState
StateMachine
*
1
*
+submachine 1
CompositeState
isConcurent : BooleanAction
Guard
expression : BooleanExpression
StateVertex
1..*
0..1
+substate
1..*
+parent
0..1
InteractiveEntityVisualEntity
ActionSequence
*
0..1
+action*
{ordered}
0..1
StateMachine
Transition
1
0..1
1
+guard 0..1
0..1
0..1
+effect0..1
0..1
1 *
+source
1
+outgoing
*
1 *
+target
1
+incoming
*
*
0..1
+transitions *
0..1
Event
0..1
*
+trigger
0..1
*
1..*
0..1
1..*
0..1
MultimediaApplication 11 11
State
0..1
0..1
0..1
+entry0..1
0..10..1
0..1+exit
0..1
1
0..1
+top1
0..1
*
0..1+internalTransition
*
0..1
0..*
0..*
0..*
+deferredEvent
0..*
LayoutView
0..*
0..*
+front
0..*
layered
+back0..*
ApplicationUnit
1..*1..*
1
0..1
1
0..1
Presentation 1..*1..*
1..*
1
1..*
1
AuditiveEntity
AudioChannel
**
*
*
*
*
{overlapping}
SimpleState
Sequence
0..1
1
0..1
1
Media
ApplicationEntity
1..*1..* 1*
1*
Activation
**
PresentationEntity
MediaFilter
ActivationCompartment
1..*1..*
1
1
1
1
*
*
*
*
BoundingBox*
1
*
11..*1..*
+front
+back
layered
Meta-modell
33
Metamodell
Mechanismen, die dem Benutzer dienen sollen, werden wenn möglich schon im Metamodell umgesetzt
Beispiel: „Gruppieren“
LayoutView
layered
front
back
BoundingBox11
layered
front
back
1..*
1
34
Metamodell - BoundingBox Klassen
BB interaktiv BB Präsentation
BoundingBox
x, y : inth, w : intname : string
show()hide()
Scrollbar
min : intmax : intvalue : intlarge : intsmall : int
Sliderbar
min : intmax : intvalue : intl
Button
caption : stringstyle : int
Checkbox
caption : stringvalue : intstyle : int
RadioButton
caption : stringvalue : intgroup : int
Textbox
input : string
VertScrollbar
HorScrollbar
VertSliderbar
HorSliderbar
BBAnimation BBText
...
35
Rose Extensibility Interface (REI)
Anpassen der Menüs (Datei: rose.mnu) Rose-Funktionen automatisieren über „Rose Scripting“
(Summit BasicScript/VBA) Automatisierung mit anderen Anwendungen (OLE) Zugriff auf Rose-Klassen, -Eigenschaften und -Methoden
(COM) Rose Add-Ins:
RoseScript(e) angepaßte Menüs erweiterte Properties, Ereignisse, Stereotypen)
36
Rose Extensibility Interface (REI)
OMMMA-Editor
37
COM (Component Object Model) /DCOM (Distributed COM)
Komponentenmodell von Microsoft (dadurch weitestgehend plattformabhängig) als Alternative zu CORBA
Anwendungen von COM: OLE / ActiveX Weg für den Zugriff auf Software-Dienste Technischer Hintergrund zu COM kompliziert, Benutzung
jedoch einfach
Speziell für Rational Rose: Zugriff aus anderen Programmen über die „Rose
Extensibility Type Library“ (Datei: RationalRose.tlb) Alle Klassen von RoseScript verfügbar („Rose“
voranstellen : z.B. „RoseClassView“ statt nur „ClassView“)
38
COM-Beispiel:Aufruf von Rose aus Visual Basic
... Dim app As New RoseApplication Dim model As RoseModel Dim cc As RoseClassCollection Dim i As Integer Print "Info's über Rose:" Print " Pfad: " & app.ApplicationPath Print " Version: " & app.Version Print
'Modell öffnen Set model = app.OpenModel("D:\Daten\Uni\OMMMA\Anwendungsmuster.mdl") Print "Alle Klassen im Modell:" Set cc = model.GetAllClasses For i = 1 To cc.Count Print " " & cc.GetAt(i%).Name Next i% app.Exit '<-- wichtig, nicht vergessen! ...
39
Architektur:Benutzungsmodell
Der Benutzer modelliert für eine Anwendung alle vier Diagrammarten
Dabei muß er das Klassendiagramm vor dem Sequenz- und Layoutdiagramm modellieren
Das Klassen- und das Zustandsdiagramm wird in Rose modelliert und Layout- und Sequenzdiagramm in einem externen Tool
Das Tool wird in Rose als Add-In eingebunden Die gesamte Anwendung wird dann innerhalb von Rose
zusammengeführt Dabei werden die Modelle des externen Tools zu erst vereint Danach werden das Gesamtmodell zusammengeführt
40
Sicht des Users
Für den User hat die Anwendung folgendes Aussehen
Framework
Objektdiagramm Zustandsdiag. Layoutdiag. Sequenzdiag.
modelliert
benutzt
OMMMA-Modell
Rose
OMMMA
41
Interne Architektur
Sequenzdiagramm
Klassendiagramm Layoutdiagramm
Szenenmodell
Zustandsdiagramm
Rosemodell
Export/Import
REI
REI
Klassennamen
Speichern
Laden
Konsitenzcheck
Rose OMMMA
42
Zusammenfassung & Ausblick
UML-basierte Diagrammsprache zur OO-Modellierung von Multimedia-Anwendungen
MethodikZuordnung von MM-Anwendungsaspekten zu DiagrammtypenKombination der Diagramme zu konsistentem Anwendungsmodell
Verfeinertes Metamodell: Syntax und statische Semantik des OMMMA-Modells
Implementierung von Editoren für Layout-Diagramm und erweitertes Sequenzdiagramm
Kopplung an Rose 98 über Rose Extensibility Interface Checker für Modellkonsistenz für interne und externe Diagramme