next up previous
Next: 4. Objektorientiertes Multimedia-Authoring Up: No Title Previous: 2. Objektorientierte Softwareentwicklung

Unterabschnitte

3. Multimedia-Softwareentwicklung

Der Einsatz multimedialer Technologien hat in den letzten Jahren insbesondere in der Unterhaltungs- und Werbebranche einen wahren Boom erlebt. Zahlreiche Multimedia-Firmen sind gegründet worden. Immer hochwertigere Anwendungen erscheinen auf dem Markt. Waren Multimedia-Projekte anfangs noch relativ klein, haben die Etats heutiger Projekte längs die Millionengrenze überschritten. Um so erschreckender ist, daß Vorgehensmodelle und Methoden der Softwareentwicklung, die aufgrund der Softwarekrise in den 60er Jahren entstanden sind, in der Multimedia-Praxis heutzutage quasi keine Verwendung finden, wie eine Befragung von einmal 40 [Saw95] und einmal 650 [HL95] Multimedia-Software-Produzenten ergeben hat. Die Vorgehensweise bei der Multimedia-Softwareentwicklung wird von den Unternehmen selbst als eher ad hoc bezeichnet.

Dabei zeichnet sich gerade der Multimedia-Bereich durch einige charakteristische Merkmale aus, die ihn von der traditionellen Softwareentwicklung unterscheiden und die sehr hohe Anforderungen an die Projektorganisation, Planung und Konzeption stellen, wie die Interdisziplinarität der Entwicklergruppen (Informatiker, Psychologen, Graphik-Designer, Medien-Spezialisten, Fachexperten, ...), die Berücksichtigung kreativer, künstlerischer, ästhetischer, psychologischer und ergonomischer Aspekte neben reinen programmiertechnischen bzw. ingenieursmäßigen Tätigkeiten im Entwicklungsprozeß, die Wichtigkeit gestalterischer Anforderungen neben den funktionalen Anforderungen an die zu erstellende Software und die Erstellung und Aufbereitung zu verwendender Medienobjekte (Animationen, Videos, ...), die häufig durch Fremdfirmen erfolgt, und deren Integration in die Software.

3.1 Vorgehensmodelle

In der Literatur finden sich neben vielen eher informellen Vorschlägen für die Multimedia-Softwareentwicklung auch einige Ansätze für genormte Vorgehensweisen. In [Saw95] wird ein Vorgehensmodell vorgeschlagen, das prinzipiell auf dem Phasenmodell basiert. Einzelne Phasen sind jedoch in parallel ablaufende Teilphasen aufgeteilt, denen teilweise prototypische Vorgehensweisen zugrundeliegen, wie der Benutzerschnittstellenentwicklung. Ebenfalls auf dem Phasenmodell basieren die Vorschläge von [Kin94], [BM94], [LCD +96] und [Jar97]. Ein prototypischer Ansatz zur Entwicklung von Teachware wird in [HKT93] vorgestellt und dem diskursgesteuerten Vorgehensmodell aus [MF96] liegt das Spiralmodell zugrunde.

In einigen Forschungsprojekten werden Verfahren entwickelt, die eine Generierung spezieller Klassen von Multimedia-Anwendungen ermöglichen. Ihnen liegt dabei im allgemeinen das Vorgehensmodell der transformationellen Softwareentwicklung zugrunde. Hierbei wird mit Hilfe eines wissensbasierten Transformators aus einer in der Analysephase erstellten (formalen) Produktdefinition (halb-)automatisch ein Prototyp generiert, der dann getestet, evaluiert und weiterentwickelt werden kann. Beschreibungen derartiger Ansätze finden sich bspw. in [And95],[BO95] und [BW97].

3.2 Multimedia-Autorensysteme

Multimedia-CASE-Umgebungen, die den gesamten Entwicklungsprozeß multimedialer Anwendungen von der Analyse bis zur Wartung unterstützen, sind uns nicht bekannt. Neben speziellen Programmbibliotheken oder Frameworks werden in der Implementierungsphase der Multimedia-Produktion heutzutage im allgemeinen sogenannte Multimedia-Autorensysteme eingesetzt.

Existierende Multimedia-Bibliotheken wie MET++ [Ack96], MME [Din94] oder XFantasy [GBE96] basieren häufig auf objektorientierten Konzepten und Sprachen. Auch für Java sind in den letzten Monate eine Reihe spezieller Multimedia-APIs entwickelt worden. Diese Ansätze haben jedoch den Nachteil, daß für ihre Nutzung sehr gute Programmierkenntnisse erforderlich sind.

Multimedia-Autorensysteme sind spezielle Software-Werkzeuge, die auch Nicht-Programmierern durch die Bereitstellung einfach zu bedienender graphisch-interaktiver Editoren auf der Basis intuitiver Authoring-Metaphern die Erstellung multimedialer Anwendungen ermöglichen [BS98]. Multimediale Anwendungen lassen sich charakterisieren als ein Netzwerk aus Knoten und Kanten. Die Knoten repräsentieren Medienobjekte (Texte, Graphiken, Audios, Videos, Animationen, ...), Interaktionsobjekte (Menüs, Scrollbars, Texteingabefelder, Buttons, ...) und externe Objekte (Datenbanken, externe Programme, ...). Die Kanten legen Beziehungen - insbesondere zeitliche und räumliche Beziehungen - zwischen den Informationsobjekten fest. Die Hauptanforderungen an Autorensysteme, die sich aus dieser Charakterisierung multimedialer Anwendungen ergeben, sind die Einbindung von Informationsobjekten unterschiedlichen Typs bzw. Formats in die Anwendung, die Verwaltung von Objekten und Beziehungen sowie die Bereitstellung von Mechanismen zur Definition von Beziehungen. Weiterhin müssen Autorensysteme technische Aspekte, die mit den neuen Medien verbunden sind, wie Synchronisation und Kompression, vor den Entwicklern verbergen. Die anfallenden Aufgaben sollten so weit wie möglich mit Konzepten der visuellen Programmierung durchgeführt werden können, um auch Nicht-Programmierern die Erstellung interaktiver multimedialer Anwendungen zu ermöglichen. Unter visueller Programmierung wird in diesem Zusammenhang der Einsatz graphisch-interaktiver Editoren verstanden, d.h. die Nutzung der Maus und direkt-manipulativer Interaktionsformen wie Cut-and-Paste- und Drag-and-Drop-Mechanismen, unterstützt durch geeignete Metaphern. Multimedia-Autorensysteme werden häufig auf der Grundlage bestimmter Authoring-Paradigmen klassifiziert. Diese nicht-orthogonale Klassifikation enthält die folgenden Kategorien:

3.3 Macromedia Director

Macromedia Director, das zur Zeit in der Version 6 vorliegt, ist das mit Abstand am weitesten verbreitete Multimedia-Autorensystem [Rob98,RR97]. Es ist sowohl für Macintosh als auch für PC (Windows95, WindowsNT) verfügbar. In Director, das von der Zeitachsen-, Skript- und Objekt-Metapher Gebrauch macht, wird die Erstellung einer multimedialen Anwendungen mit der Produktion eines Filmes verglichen. Das sogenannte Studio dient dem Autor, auch Regisseur genannt, zur Regieführung. Das Studio besteht aus mehreren Fenstern, von denen die Bühne, das Steuerpult, die Besetzung und das Drehbuch die wichtigsten sind. Die Bühne ist das Fenster, in dem der Film abläuft. Mit Hilfe des Steuerpults kann die Filmausführung kontrolliert werden. In der Besetzung werden Darsteller (Medienobjekte) gespeichert. Ein Film besteht aus einer Reihe von Einzelbildern. Bilder setzen sich wiederum im allgemeinen aus einer Menge von Darstellerkopien - den sogenannten Sprites - zusammen. Aus diesem Grund wird im Drehbuchfenster eine Gitterstruktur zur Definition der Ablaufverhalten eines Films verwendet. Jede Zelle repräsentiert einen Sprite mit zusätzlichen Attributen, wie zum Beispiel die Position auf der Bühne. Eine Spalte konstruiert ein Gesamtbild (Frame). Die Zeilen, auch Kanäle genannt, spiegeln den Filmablauf wider.

Einfache multimediale Anwendungen lassen sich vollständig durch die Verwendung dieser visuellen Hilfsmittel erstellen. Für die Realisierung komplexer, dynamischer Anwendungen ist es im allgemeinen notwendig, Skripts in der objektorientierten Sprache Lingo zu erstellen. Diese Skripts können einzelnen Sprites, Darstellern, Bildern oder dem ganzen Film zugeordnet werden und sind bspw. für die Realisierung der Benutzerinteraktivität, der Mediensynchronisation oder der Kommunikation mit dem Internet zuständig. Lingo [Sma96] ist eine ungetypte Sprache und wird wie bei Skriptsprachen üblich zur Laufzeit interpretiert. Die Skriptsprache dient jedoch nicht nur als Ergänzung zur visuellen Programmierung, vielmehr lassen sich sämtliche in Director realisierten visuellen Programmierkonzepte auch mittels Lingo ausdrücken. Der Hauptvorteil einer skriptbasierten Realisierung ist die hohe Flexibilität. Vorteile der visuellen Programmierung sind hingegen das schnelle Authoring und die einfache Testbarkeit. Es ist daher keineswegs leicht zu entscheiden, ob eine Aufgabe in Director besser skriptbasiert oder eher visuell zu programmieren ist. Ähnlich schwierig ist die Frage nach dem zu wählenden Programmierparadigma zu beantworten, denn Lingo unterstützt neben imperativen auch objektorientierte Konzepte. Auch wenn die Mehrzahl der sich stellenden Aufgaben ohne objektorientierte Konzepte lösbar ist und zudem die Möglichkeiten von objektorientierem Lingo in den Handbüchern nur unzureichend dokumentiert sind, erscheint es aufgrund der Vorteile der Objektorientiertheit sinnvoll, die Möglichkeiten von objektorientiertem Lingo genauer zu untersuchen.

3.3.0.1 Klassen und Objekte

In Lingo ist ein eigener Skripttyp - Übergeordnetes Skript genannt - zur Definition von Klassen reserviert. Klassendefinitionen können jedoch auch in allen anderen Skripttypen vorgenommen werden. Klassen setzen sich in Lingo wie in anderen objektorientierten Sprachen auch aus Attributen (Properties) und Methoden (Prozeduren) zusammen, die Eigenschaften, Struktur und Verhalten von Objekten dieser Klasse beschreiben. Objekte können mittels des new-Operators aus Klassen erzeugt werden.

-- Klassendefinition Ball                   -- Verwendung der Klasse
  -- Attribute                              set ball to new(script "Ball")
  property xpos, ypos                       moveBall ball, 10, 20
  -- Methoden                               set ball = VOID
    -- Konstruktor
    on new
      set the xpos of me to 200
      set the ypos of me to 100
      return me
    end new

    -- Methode moveBall
    on moveBall me, x, y
      set the xpos of me to the xpos of me + x
      set the ypos of me to the ypos of me + y
    end moveball

3.3.0.2 Vererbung und Aggregation

In Lingo kennzeichnet die Schlüssel-Property ancestor die Vererbungsbeziehung. Dabei wird jedoch nicht von einer Klasse, sondern von einem Objekt geerbt:

-- Klassendefinition SuperBall 
property ancestor

on new 
  set the ancestor of me to new(script "Ball")
  -- die Methode moveBall wird geerbt
  return me
end

Da Lingo eine ungetypte Programmiersprache ist, ergibt sich hieraus insbesondere die Möglichkeit, Vererbungsbeziehungen zur Laufzeit dynamisch zu ändern.

Properties dürfen als Werte auch andere Objekte enthalten, so daß Aggregationsbeziehungen realisiert werden können. Das Konzept der Mehrfachvererbung wird in Lingo nicht unterstützt, kann aber ähnlich wie in Java durch Verwendung von Aggregationen nachgebildet werden.

3.3.0.3 Überladen von Methoden und Polymorphie

In Lingo können Methoden und Operatoren nicht überladen werden. Das Konzept der Polymorphie wird jedoch voll unterstützt.

3.3.0.4 Datenkapselung

Eine Schwäche von Lingo ist sicherlich die fehlende Unterstützung von Sichtbarkeitsaspekten. Alle Methoden und Attribute einer Klasse sind überall sichtbar.

3.4 Bewertung

Wie die Untersuchungen in [Saw95] und [HL95] zeigen, haben sich Vorgehensmodelle des Software-Engineerings in der Praxis der Multimedia-Produktion noch nicht durchgesetzt. Besonders bemerkenswert ist, daß sich selbst in der Literatur keine Ansätze finden lassen, denen durchgehend objektorientierte Prinzipien, Konzepte und Methoden zugrundeliegen. Die Aktivitäten in unserer Arbeitsgruppe haben als Ziel, diesen Zustand durch die Anpassung objektorientierter Methoden an die besonderen Anforderungen der Multimedia-Softwareentwicklung zu verbessern, um auch im Multimedia-Bereich insbesondere die Erweiterbarkeit und Wiederverwendbarkeit von Software zu unterstützen und damit die Produktionskosten für Multimedia-Software zu senken und die Qualität der enstehenden Produkte zu erhöhen. Im allgemeinen streben wir die Entwicklung genereller objektorientierter Prinzipien, Methoden und Werkzeuge für die Multimedia-Software-Produktion an. Im speziellen sollen diese Ansätze auf der UML basieren und primär auf die Charakteristika des Autorensystems Director zugeschnitten sein. Wir schränken dabei das Anwendungsgebiet zunächst auf virtuelle multimediale Labore und Praktika ein.


next up previous
Next: 4. Objektorientiertes Multimedia-Authoring Up: No Title Previous: 2. Objektorientierte Softwareentwicklung
Dietrich Boles
1998-08-11