2 Development process for multimedia projects

Ähnliche Dokumente
HIR Method & Tools for Fit Gap analysis

Magic Figures. We note that in the example magic square the numbers 1 9 are used. All three rows (columns) have equal sum, called the magic number.

Karlsruhe Institute of Technology Die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH)

BVM-Tutorial 2010: BlueBerry A modular, cross-platform, C++ application framework

prorm Budget Planning promx GmbH Nordring Nuremberg

DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS

Java Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation

Abschnitt 1. BPM als Lingua franca. Management, Fachbereiche und IT Ist BPM ein Weg zur (Auf-)Lösung der Sprachbarriere?

Algorithms for graph visualization

Tube Analyzer LogViewer 2.3

Customer-specific software for autonomous driving and driver assistance (ADAS)

Seminar: Software Engineering verteilter Systeme

Seminar: Software Engineering verteilter Systeme

Walter Buchmayr Ges.m.b.H.

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016

vcdm im Wandel Vorstellung des neuen User Interfaces und Austausch zur Funktionalität V

Ressourcenmanagement in Netzwerken SS06 Vorl. 12,

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Universität Karlsruhe (TH)

Technische Universität Kaiserslautern Lehrstuhl für Virtuelle Produktentwicklung

Mitglied der Leibniz-Gemeinschaft

ISO Reference Model

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle

interactive tabletop applications for learning fundamental physics project report

Newest Generation of the BS2 Corrosion/Warning and Measurement System

Slide 3: How to translate must not and needn t with two sentences to illustrate this.

Order Ansicht Inhalt

ONLINE LICENCE GENERATOR

H o c h s c h u l e D e g g e n d o r f H o c h s c h u l e f ü r a n g e w a n d t e W i s s e n s c h a f t e n

Darstellung und Anwendung der Assessmentergebnisse

Number of Maximal Partial Clones

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

MDA auf der Grundlage der OMG Konzepte

Mock Exam Behavioral Finance

DPM_flowcharts.doc Page F-1 of 9 Rüdiger Siol :28

Contract Based Design

Multicriterial Design Decision Making regarding interdependent Objectives in DfX

Support Technologies based on Bi-Modal Network Analysis. H. Ulrich Hoppe. Virtuelles Arbeiten und Lernen in projektartigen Netzwerken

Software development with continuous integration

WDT3 Abbildung der Leitlinie Brennen beim Wasserlassen in GLIF

Creating OpenSocial Gadgets. Bastian Hofmann

Max und Moritz: Eine Bubengeschichte in Sieben Streichen (German Edition)

auf differentiellen Leitungen

Word-CRM-Upload-Button. User manual

FEM Isoparametric Concept

Group and Session Management for Collaborative Applications

Weather forecast in Accra

Geschäftsprozesse und Regeln

JTAGMaps Quick Installation Guide

Wissenschaftliche Arbeitsgemeinschaft für Raketentechnik und Raumfahrt. Lehrstuhl für Raumfahrttechnik Technische Universität München

GridMate The Grid Matlab Extension

Zu + Infinitiv Constructions

Big Data Analytics. Fifth Munich Data Protection Day, March 23, Dr. Stefan Krätschmer, Data Privacy Officer, Europe, IBM

EAM-Vorlesung (SS2017)

Unit 1. Motivation and Basics of Classical Logic. Fuzzy Logic I 6

Exercise (Part V) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Unternehmensweite IT Architekturen

Accelerating Information Technology Innovation

Social Innovation and Transition

ELBA2 ILIAS TOOLS AS SINGLE APPLICATIONS

Eingebettete Taktübertragung auf Speicherbussen

H.1 FORMI: An RMI Extension for Adaptive Applications H.1 FORMI: An RMI Extension for Adaptive Applications

prorm Workload Workload promx GmbH Nordring Nuremberg

Klassische Themen der Computerwissenschaft

Stand der Recherche nach publizierten Identity Management Standards - ISO/IEC, DIN, BSI, CEN/ISSS und OASIS

Electrical tests on Bosch unit injectors

p^db=`oj===pìééçêíáåñçêã~íáçå=

A Classification of Partial Boolean Clones

Analysis Add-On Data Lineage

Titelmasterformat Object Generator durch Klicken bearbeiten

Context-adaptation based on Ontologies and Spreading Activation

PONS DIE DREI??? FRAGEZEICHEN, ARCTIC ADVENTURE: ENGLISCH LERNEN MIT JUSTUS, PETER UND BOB

Exploring the knowledge in Semi Structured Data Sets with Rich Queries

Conceptual Data Modeling "Enhanced Entity-Relationship"

LABOr: Europäisches Knowledge Centre zur beruflichen Ausbildung und Beschäftigung von Menschen mit Lernbehinderungen

Praktikum Entwicklung Mediensysteme (für Master)

Computational Models

PART 3: MODELLING BUSINESS PROCESSES EVENT-DRIVEN PROCESS CHAINS (EPC)

Reparaturen kompakt - Küche + Bad: Waschbecken, Fliesen, Spüle, Armaturen, Dunstabzugshaube... (German Edition)

Women Entrepreneurship in Germany and Access to Capital

TomTom WEBFLEET Tachograph

Attention: Give your answers to problem 1 and problem 2 directly below the questions in the exam question sheet. ,and C = [ ].

Dexatek's Alexa Smart Home Skills Instruction Guide

Artefakte, Linktypen und Besonderheiten von OOSE/RUP

Product Lifecycle Manager

NotesSession.GetPropertyBroker( )

Bayesian Networks. Syntax Semantics Parametrized Distributions Inference in Bayesian Networks. Exact Inference. Approximate Inference

Application Note. Import Jinx! Scenes into the DMX-Configurator

iid software tools QuickStartGuide iid USB base driver installation

The Development and Use of Industrial Robots the Educational/Work Science Perspective (part 1)

JPlus Platform Independent Learning with Environmental Information in School

Dienstleistungsmanagement Übung 5

Eclipse User Interface Guidelines

Grade 12: Qualifikationsphase. My Abitur

How to get Veränderung: Krisen meistern, Ängste loslassen, das Leben lieben! (German Edition)

Informatik 1. Informatik 1. Wolfgang Schreiner Engineering für Computer-basiertes Lernen Fachhochschule Hagenberg

a) Name and draw three typical input signals used in control technique.

Transkript:

2 Development process for multimedia projects 2.1 Classical models of the software development process 2.2 Special aspects of multimedia development projects 2.3 Example: The SMART process 2.4 Agile Development and Extreme Programming for multimedia projects 2.5 Modeling of multimedia applications Introduction Revision: Unified Modeling Language Model-driven architecture Modeling of multimedia applications Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-74 Software Development Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-75

Software Development in Practice Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-76 Bridging the Gap Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-77

Goals of Modeling Approaches Communication Within the development team Between different developer groups, e.g. programmer and user interface designer With the customer Model can act as a kind of contract Improving the implementation Structuring the code to achieve» better separation into different parts» better maintanability» reusability Omitting errors before implementation Notation of models as visual diagrams: More compact and fomal than natural language Easier to handle and to understand than mathematics/logic Often referred to as semi-formal Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-78 2 Development process for multimedia projects 2.1 Classical models of the software development process 2.2 Special aspects of multimedia development projects 2.3 Example: The SMART process 2.4 Agile Development and Extreme Programming for multimedia projects 2.5 Modeling of multimedia applications Introduction Revision: Unified Modeling Language (in german language) Model-driven architecture Modeling of multimedia applications Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-79

Unified Modeling Language (UML) OOD Booch OOSE Jacobson OMT Rumbaugh et al. 1995: Booch / Rumbaugh / Jacobson 1997: UML 1.1 1999: UML 1.3 2001: UML 1.4 2003: UML 2.0 UML ist eine Notation der 2. Generation für objektorientierte Modellierung; ursprünglich entwickelt von der Firma Rational UML ist Industriestandard der OMG (Object Management Group) Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-80 UML 2.0: 13 Diagrammtypen Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-81

Beispiel System zur Kunden- und Seminarverwaltung Zielgruppe: Mitarbeiter einer Schulungsfirma Datenhaltung: Kundendaten Dozentendaten Veranstaltungsdaten Buchungsdaten Funktionen: Veranstaltungen anbieten, stornieren etc. Kundenbuchungen vornehmen, reservieren etc.... Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-82 Klassendiagramm: Klassen Person name adresse drucken() Kunde umsatz Dozent honorarsatz Buchung datum status bestätigen() stornieren() Seminartyp titel Veranstaltung datum ort kapazität erfassen() anbieten() prüfen() stornieren() Klasse Definition: Eine Eine Klasse Klasse ist ist eine eine Beschreibung gleichartiger Objekte. Ein Ein Objekt Objekt wird wird erzeugt und und behält behält eine eine unveränderliche Objektidentität bis bis zu zu seiner seiner Löschung. Jedes Jedes Objekt Objekt gehört gehört zu zu (ist (ist Instanz Instanzvon) genau genau einer einer Klasse. Klasse. Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-83

Klassendiagramm: Klassen Person name adresse drucken() Kunde umsatz Dozent honorarsatz Buchung datum status bestätigen() stornieren() Seminartyp titel Veranstaltung datum ort kapazität erfassen() anbieten() prüfen() stornieren() Attribut Definition: Ein Ein Attribut AttributA einer einer Klasse Klasse K beschreibt ein ein Datenelement, das das in in jedem jedem Objekt Objekt der der Klasse Klasse vorhanden ist. ist. Jedes Jedes Objekt Objekt der der Klasse Klasse K trägt trägt für für jedes jedes Attribut Attribut A von von K einen einen individuellen und und veränderbaren Attributwert. Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-84 Klassendiagramm: Klassen Person name adresse drucken() Kunde umsatz Dozent honorarsatz Buchung datum status bestätigen() stornieren() Seminartyp titel Veranstaltung datum ort kapazität erfassen() anbieten() prüfen() stornieren() Operation Definition: Eine Eine Operation einer einer Klasse Klasse K ist ist die die Beschreibung einer einer Aufgabe, die die jede jede Instanz Instanz der der Klasse Klasse K ausführen kann. kann. In In der der Beschreibung der der Klasse Klasse wird wird der der Name Name der der Operation angegeben.. Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-85

Klassendiagramm: Assoziationen Person name adresse drucken() Kunde umsatz Assoziation Dozent honorarsatz Buchung bietet an führt durch bucht datum belegt 1 status * * 1 bestätigen() stornieren() 1 * * * Seminartyp titel Multiplizität Veranstaltung datum ort kapazität erfassen() anbieten() prüfen() stornieren() Definition: Eine Die Eine Die Multiplizität (binäre) Assoziation einer Klasse zwischen K1 K1in in einer zwei zwei Assoziation Klassen beschreibt, mit mit einer daß Klasse daß die die K2 K2 Instanzen begrenzt der der die die beiden Anzahl Klassen der der Objekte in in einer der der fachlich Klasse wesentlichen K2, K2, mit mit denen ein ein Beziehung Objekt von von zueinander K1 K1 in der Assoziation stehen. stehen darf. darf. Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-86 Klassendiagramm: Aggregation, Vererbung Person name adresse drucken() Kunde umsatz Dozent honorarsatz bietet an Seminartyp titel 1 * * Veranstaltung Vererbung führt durch datum ort Buchung kapazität bucht datum belegt 1 status erfassen() * * 1 bestätigen() anbieten() stornieren() prüfen() stornieren() * * Aggregation Definition: Eine Eine Vererbungsbeziehung Definition: Eine von Eine Aggregation ist ist ein ein Spezialfall von einer einer Klasse Klasse K1 einer K1zu Assoziation. zu einer einer Klasse Klasse K2 Sie K2ist ist eine eine Beschreibung der der Tatsache, daß daß alle alle Objekte der der Klasse Klasse K2 K2zusätzlich Sie zu zu den den drückt in aus, aus, daß daß eine eine Klasse in in einer "Teil-Ganzes"-Beziehung zu zu einer in der der Klasse Klasse K2 K2beschriebenen Eigenschaften auch auch alle alle Eigenschaften der der Klasse Klasse anderen K1 Klasse steht. K1haben. Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-87

Aktivitätsdiagramm Start Aktion Alternativ Parallel Ende Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-88 UML-Diagrammtypen im Projektverlauf Aktivitätsdiagramme für Geschäftsprozesse Anwendungsfalldiagramme Szenarien Klassendiagramme für Fachbegriffe Anforderungsermittlung Anforderungsspezifikation Aufgaben- Modellierung Aktivitätsdiagramme für Anwendungsfälle Klassendiagramme für Fachkonzept Entwurf Zustandsdiagramme für Ablauffolgen Sequenzdiagramme für Szenarien Verhaltens- und Kooperationssicht Klassendiagramme für Softwarestruktur Systemspezifikation Implementierungsdiagramme für Architektur Struktursicht Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-89

Klassendiagramme und Softwarestruktur Person name: String adresse: String drucken() Java: class Person { } String name; String adresse; void drucken() {... } Fortgeschrittene Abbildungen: z.b. auf Komponenten (Enterprise Java Beans) Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-90 Werkzeugunterstützung Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-91

2 Development process for multimedia projects 2.1 Classical models of the software development process 2.2 Special aspects of multimedia development projects 2.3 Example: The SMART process 2.4 Agile Development and Extreme Programming for multimedia projects 2.5 Modeling of multimedia applications Introduction Revision: Unified Modeling Language (in german language) Model-driven architecture Modeling of multimedia applications Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-92 Context of UML: The OMG Four-Layer-Architecture Idea: the definition of the modeling language is a model itself! In context of UML: OMG defined four layers Layer M1: UML models (as shown on the previous slides) Layer M0: the running application, consisting of concrete instances of the UML model (i.e. objects) Layer M2: a model which specifies the UML, so-called meta-model. Classes in the metamodel often called metaclasses Layer M3: a model (MOF) which defines all possible metamodels ( meta-metamodel ) besides UML A complete definition of a model requires additional rules and textual explanation! Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-93

Extension Mechanisms Option 1: Defining a new metamodel (on layer M1), maybe reusing some UML metaclasses Option 2: Extending UML using the built-in UML extension mechanism: Stereotypes A Stereotype defines a new, specific subtype of an existing UML metaclass. A Stereotype is represented by its name (in guillemets ) or optionally by its own specific graphical notation. Example: Stereotype «JavaClass» to model a class in the programming language Java (which e.g. allows no multi-inheritance) A Profile (i.e. a specific package) contains a set of stereotypes for a specific purpose (e.g. for a Java-specific model) Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-94 Metamodels and Profiles in the Four-Layer-Architecture Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-95

Model-Driven Development Idea for Model-Driven Development (MDD): Programming on an abstract conceptual level using models Use the models for automatic generation of program code for different target platform Difficult expert knowledge can be put into the code generator Model-Driven Architecture (MDA): A concrete framework defined by the OMG for the realization of MDD Bridging the gap between platform-independent model (PIM) and platform-specific implementation by a platform-specific model (PSM) transformation PSM 1 transformation Code (Platform 1) PIM transformation PSM 2 transformation Code (Platform2) Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-96 2 Development process for multimedia projects 2.1 Classical models of the software development process 2.2 Special aspects of multimedia development projects 2.3 Example: The SMART process 2.4 Agile Development and Extreme Programming for multimedia projects 2.5 Modeling of multimedia applications Introduction Revision: Unified Modeling Language (in german language) Model-driven architecture Modeling of multimedia applications Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-97

Modeling of Multimedia Applications Example: Racing game application Specific characteristics of multimedia applications: Integration of media objects like sound, video, animation, 3D graphics, etc. High importance of the user interface High degree of interaction Conventional UML not sufficient for modeling multimedia applications Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-98 Modeling Interactive User Interfaces Standard UML does not cover the user interface aspect Extensions of UML for User Interface (UI) Modeling: UML Profile for Interaction Design (WISDOM) UML for Interaction (UMLi ) Profile for Context-Sensitive User Interfaces (CUP) Application Developer Application Model (Class Diagram) Dialog Model indefinite domain Task Model Abstract Presentation Concrete Presentation UI Designer Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-99

Task Model Modelling the tasks which are performed by the user of the application Different approaches: Goals, Operators, Methods and Selection Rules (GOMS) Hierarchical Task Analysis (HTA) ConcurTaskTrees (CTT) CTT: frequently used for UI modeling hierarchical decomposition of user tasks which have to be performed to reach a certain goal 4 types of tasks: user tasks (cognitive), interaction tasks, system tasks, abstract tasks tasks linked by temporal operators (e.g. whether tasks are performed sequential or in parallel) Task modeling not (directly) supported by UML; adaption of existing diagram types for task modeling: UML use case diagrams (see e.g. UMLi) UML 2.0 Activity Diagrams (see e.g. CUP) Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-100 Application Model Ordinary UML class diagram Race + elapsedtime : Integer + totallaps : Integer + multiplayer : Boolean + replayallowed : Boolean + starttimer() + stoptimer() Car Player 1 1 + lap + name : String + speed : Integer + maxspeed + accelarationfactor : Float + decelerationfactor : Float Opponent LocalPlayer + steer(percentage : Integer) + accelerate(percentage : Integer) Track + name : String + move() RemoteOpponent ComputerOpponent Damage + repair() + increase(percentage : Integer) Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-101

Abstract Presentation Abstract structure of the user interface presentation In general: three kinds of elements: Abstract interaction objects represent low-level tasks, like text input or choosing an element from a set (usually implemented by widgets like textfield, combobox, button, etc.) Information elements represent information, either static (like a text label) or from the application model (e.g. the value of an attribute) Presentation units represent container for the interaction objects and information elements (implemented e.g. by a window) In CUP: inputcomponents allows the user to input data outputcomponents show data to the user without allowing user input actioncomponents allow the user to trigger actions (e.g. like a button) groupcomponents group the other components into a logical structure Relationships (select, interact, trigger) from UI components to classes from the application model Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-102 Example: Abstract Presentation for the Race Scene New diagram type based on UML class diagram Here simple example: the application shows the car, its speed, and the track the user can steer the car and its speed and he can cancel the race input component action component output component Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-103

Dialog Model for the Race Activity diagram for modeling the behavior of the user interface, i.e. the dialog between the user and the system Additional: relationships to the user interface elements from the abstract presentation model Relation to UI components interruption (standard UML) Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-104 Concrete Presentation Specifies the concrete user interface: concrete UI elements, i.e. widgets layout within the goupcomponent look of the UI elements and additional adornments Often no further distinction between concrete presentation and the final implementation of the UI Thus, concrete presentation often better implemented directly in the specific user interface tool (e.g. UI builder) Several apporaches exist to partially generate the concrete presentation from abstract presentation One abstract presentation can lead to many concrete presentations for different platforms and devices! Concrete layout is not limited to visual components! OutputComponent can also be realized e.g. by speech output! Abstract Presentation... Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-105

Integration of Media Objects Further extension of UML and user interface modeling Only few proposal approaches available Usage of specific media types is often fix requirement for the application Example: for a medical training application, the customer postulates medical organs to be represented by 3D animations Consequence: Specification of media objects from start (not just during modelling the concrete presentation) Media objects often represent classes (or class attributes) from the application model Media objects should be visible and must be controlled by the user, e.g. for a video, it should at least be possible to play the video and probably also to pause, restart, etc. Consequence: media objects in the model implicitly represent components providing all common (player-)functionality Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-106 Integration in Application Structure Extension of UML class diagrams: Media type components and a special kind of relationship (called media representation) Media representation can also refer a single attribut/operation of the class Race + elapsedtime : Integer + totallaps : Integer + multiplayer : Boolean + replayallowed : Boolean + starttimer() + stoptimer() Track + name : String + move() MediaRepre sentation Car + lap + speed : Integer + maxspeed + accelarationfactor : Float + decelerationfactor : Float + steer(percentage : Integer) + accelerate(percentage : Integer) speed <<Media>> Animation <<Media>> Sound represents attribute Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-107

Inner Structure of Media Objects Media objects often consist of several (sub-)objects Examples: Flash: animations can contain animations themselves 3D graphics: usually consist of different components like primitive objects, transformations, light, etc. Inner content often a hierarchy of arbitrary depth Program code of a multimedia application often manipulates inner subobjects of a media object Problem: Program code and inner structure of media objects must fit together Media designer: needs to know which parts of a media object have to be designed as independent sub-objects (e.g. because they should be manipulated) Programmer: needs to know how to access the sub-objects Consequence: inner structure is a relevant information and to be specified in the model Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-108 Example: Inner Structure of the Track Animation Extension of UML class diagram The relationship between Car and FrontWheel is annotated by a multiplicity ( 2 ) showing the number of front wheels The keyword ref indicates that the two wheels are two references of the same object and thus behave indentically (in contrast to copy) Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-109

Integration with Dialog Model Media objects appear on the user interface Consequence: they can act as user interface elements from the abstract presentation model As media objects often support complex input and output, they can act as several input, output, and action components at the same time Usually, not all user interface elements of a multimedia application are realized by special media objects. There is still a need for conventional UI elements! Consequence: Separation between media objects and (conventional) abstract user interface elements Connections between them (relationship realizes) Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-110 Metamodel Extract UIRepresent ation 0..n 1 MediaComp onent 1 1 0..n InnerObject Media 1 Class 1 Relationship 0..n Realization 0..n MediaRepresentation 1 1 AbstractUICom ponent Abstract Presentation Shows concepts independent from their notation Useful for tool support: Verification of diagrams Existing tools (e.g. Eclipse Modeling Framework) generate code (e.g. as basis for a modeling tool) directly from a metamodel Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-111

Tool Support Multimedia development: powerful tools required for media design, e.g. authoring tools like Flash Consequence: Integration of these tools in the (model-driven) development process Strenght of authoring tools: Concrete media objects, graphical design, and layout Application can be executed immediately (e.g. to observe the result of a skript) Weakness of authoring tools: Overview on the application parts Structuring the programming code Idea: Platform-independent model to develop the overall application and the structure for the programming code Transform PIM into platform specific code-skeletons which should be optimized for the authoring tool All further processing (filling the gaps in the code-skeletons) is done using the authoring tool High-level abstract model Realisation on platform 1 e.g. Flash/ActionScript... Realisation on platform n e.g. SVG/JavaScript Manual Completion Manual Completion Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-112 Generated Code-Skeletons Code-skeletons contain placeholders for the concrete media objects and UI objects (as they are not modelled within the PIM) In addition, the implementation of operations (from the class diagram) is not specified in the PIM: it takes much effort to define the complete programming logic within a diagram in many cases, programming logic requires platform-specific features and has to be optimized for the platform in multimedia applications, the specific implementation often has to be figured out by trail and error to get the expected effect (e.g. a specific visual effect on the user interface) Diagram Class Diagram Abstract Presentation Dialog Generated Code ActionScript Classes Placeholders for operation bodies Overall UI structure Placeholders (e.g. rectangles) for concrete media objects and UI objects. The placeholders are connected to the required behavior (e.g. event handling code). ActionScript Code for the application s overall behavior Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-113

Synchronization of Model and Code If the generated code is modified in the authoring tool, then the platformindependent model is deprecated Consequence: Model has to be updated when changes in the generated code occur If some placeholders are already filled out in the authoring tool and then a change in the model is performed (e.g. change fo the class diagram) the next code generation will generate empty placeholders again Consequence: code generator must only overwrite the old generated code but must not touch information added by the developer/authoring tool Possible solution: Round-Trip-Engineering Authoring tool observes changes in the generated code and provides a command which updates the model (e.g. a plug-in for the authoring tool) Modeling tool observes changes in the model and performs only those changes in the generated code. Advanced solution: integration of modeling tool and authoring tool: direct synchronization of model and code model and code act as two different views on one system developer switches between the two views whenever he wants Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-114 Model-Driven Development vs. Extreme Programming XP Implementation directly after requirement analysis Focus restricted on the next steps Restricted to small teams Collective ownership of code; team members work on several (all) parts of the system Documentation system based on the code itself; always up-to-date Design as simple as possible MDD Modeling phase between requirement analysis and implementation Focus from start on the end product No specific team size Model can be used to divide system and distribute responsibility on the team members Documentation of the system based on abstract diagrams; good understanding Use abstract model to optimize structure from start However: Executable models (i.e. containing the complete information about the application) also allow applying the XP principles (agile MDA) Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-115

Integration in the Development Process Development of Global Goals Finding Creative Ideas Modeling the Application Graphical Realization Technical Realization Time und Quality Management Phase 1: Strategy Phase 2: Creation Phase 3: Conception Iteration 1 2 3 4 5 Overall Planning: Goals, Team, Size... Brainstorming First Model Filling the gaps in the code resulting from the model (leads to first version) Iterative improvements of model and resulting implementation Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-116 Current Research at Media Informatics Group For the practical work for this lecture: Option: Use model-driven approach Drawback: No tools for automatic code-generation available Solution:» One modeling phase to achieve structure of the application» Manual code generation according to this lecture» Afterwards work only in authoring tool (no iterative updates of the model) Tutor will give support for modeling Reduced requirements on the application Topics for project work or diploma thesis: Tool support for the model-driven development Application and/or evaluation of the model-driven development process for multimedia applications Results will be applied in future editions of this lecture Other problems: e.g. testing for Flash Ludwig-Maximilians-Universität München Prof. Hußmann Multimedia-Programmierung 2-117