17
Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web: www.ds-lab.org Modellbasierte Softwareentwicklung Hauptseminar im WS 2008/09

Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

Embed Size (px)

Citation preview

Page 1: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

Programmierung verteilter SystemeInstitut für InformatikUniversität Augsburg 86135 AugsburgTel.: +49 821 598-2118Fax: +49 821 598-2175Web: www.ds-lab.org

Modellbasierte SoftwareentwicklungHauptseminar im WS 2008/09

Page 2: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 2

Agenda

Motivation Seminarthemen Organisatorisches Termine

Page 3: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 3

Motivation

Modellbasierte Softwareentwicklung Modelle sind mehr als Code oder Dokumentation Modelle abstrahieren von komplizierten Problemen und machen diese handhabbar Modelle verbessern die direkte Kommunikation zwischen verschiedenen

Stakeholders Modelle verbessern die Produktivität der Entwicklung durch die Generierung von

Code und anderen Artefakten (im Umfeld der modellgetriebenen Software-Entwicklung!)

Lernziele Was charakterisiert ein Modell? Welche Bereiche der Softwareentwicklung beschäftigen sich mit Modellen? Welche Konzepte und Techniken sind hierfür relevant? Welche Tools existieren für die Entwicklung von Software mittels Modellen?

Page 4: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 4

Seminarthemen

Thema 01: Einführung in die modellbasierte Softwareentwicklung Thema 02: Austauschbarkeit von Modellen Thema 03: Grundlagen der modellbasierten Testfallgenerierung Thema 04: Evaluierung der Potentiale des Eclipse Process

Framework Thema 05: Toolplattformen für modellbasiertes Entwickeln im

Vergleich Thema 06: Modellbasierte Beschreibung von System und Software

Architekturen Thema 07: Binding zwischen XML-Schema-Modellen und Java-

Beans (JAXB) Thema 08: Modellierung von Geschäftsregeln Thema 09: Modellierung Service-orientierter Architekturen Thema 10: Datenflussanalyse auf Modellen Thema 11: Metamodellierung und Grammatiken

Page 5: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 5

Seminarthemen

Thema 01 Einführung in die Modellbasierte Softwareentwicklung [Betreuer: Christian Saad] In dieser Arbeit soll die Grundlagen für modellbasierte Softwareentwicklung

behandelt werden. Dabei soll die Arbeit Basiswissen der modellbasierten Entwicklung ebenso

vermitteln, wie aktuelle Trends innerhalb der einzelnen Teilgebiete (mögliche) Aufgabengebiete

Was ist modellbasierte Softwareentwicklung und wofür ist sie gut MDA <->MDSD Einführung in Modelle, Metamodelle und Metamodellierung Syntax und Semantik von Modellen Domain Specific Languages Constraints Modelltransformationen Editoren Code Generierung

Page 6: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 6

Seminarthemen

Thema 02: Austauschbarkeit von Modellen [Betreuer: Benjamin Honke] In der modellbasierten Softwarewareentwicklung müssen Modelle ausgetauscht und

verfügbar gemacht werden zwischen verschiedensten Stakeholders, wie z.B. Firmen Abteilungen Werkzeugen

Dabei treten mehrere Probleme auf, die einen sauberen Datenaustausch erschweren oder gar ganz verhindern

Inkompatibilität zwischen Import und Export Formaten Verlust von Daten Import/Export von „unbekannten“ Daten Inkonsistenzen zwischen Modellen …

Aufgabenstellung In dieser Arbeit sollen die Grundlagen geschaffen werden, die Probleme, die beim

Austausch von Modellen auftreten, zu identifizieren. Darüber hinaus sollen aktuelle Ansätze gefunden und verglichen werden, um diese Problem zu vermeiden. Dabei sollen v.a. folgende Ansätze von Bedeutung sein:

- XML basierte Technologien- Model BUS- Model Merging- Ontologie und Metamodelle

Page 7: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 7

Seminarthemen

Thema 03: Grundlagen der modellbasierten Testfallgenerierung [Betreuer: Benjamin Honke] Automatisches Testen von Software in Form von Code mit Hilfe von Frameworks

wie z.B. JUnit für Java ist mittlerweile Standard Da Modelle in der Regel schon lange vor dem eigentlichen Code verfügbar sind,

ist es natürlich wünschenswert, auch Komponenten in Form von Modellen bzgl. ihrer Struktur, ihres internen Verhaltens oder der Interaktion mit anderen Modellkomponenten zu testen

Dadurch sollen Fehler früher erkannt werden und auch eine gewisse Korrektheit von aus Modellen automatisch generiertem Code sichergestellt werden

Aufgabenstellung Kurze Einführung in Tests allgemein und Hinführung auf das Thema Testen im Bezug

auf Modellen Abgrenzung des modellbasierten Testens von modelbasierter Testfallgenerierung Analyse von verschiedenen Arten von Tests und deren Anwendbarkeit auf

unterschiedliche Modell-Arten Analyse und Vergleich von Frameworks bzw. Werkzeuge, die das Testen bzw. die

Testfallgenerierung unterstützen

Page 8: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 8

Seminarthemen

Thema 04: Evaluierung der Potentiale des Eclipse Process Framework [Betreuer: Benjamin Honke] Das Eclipse Process Framework (EPF) hat zum Ziel, ein anpassbares Software

Process Engineering Framework mit exemplarischem Process Content und Tools zur Verfügung zu stellen.

Aufgabenstellung: Diese Arbeit soll kurz in Entwicklungsprozesse einführen, sich anschließend mit dem

EPF näher auseinander setzten und dabei folgende Punkte analysieren:- EPF Composer- Anwendungsbereiche des EPF- Erweiterbarkeit des EPF durch Plugins- Mögliche Unterstützung des EPF bei der Artefakt-Erstellung- Alternativen zum EPF

Parallel dazu soll eine selbst zu wählende Fallstudie die analysierten Sachverhalte direkt im EPF implementieren und demonstrieren

Page 9: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 9

Seminarthemen

Thema 05: Toolplattformen für modellbasiertes Entwickeln im Vergleich [Betreuer: Benjamin Honke] Erst die verschiedensten Tools bzw. Toolplattformen ermöglichen eine

modellbasierte Softwareentwicklung. Gerade weil die unterschiedlichen Tools auch unterschiedlichen Möglichkeiten und

Features mit sich bringen, stehen Entwickler vor der Qual der Wahl, die „richtige“ Toolumgebung zu wählen.

Aufgabenstellung: Deswegen sollen in dieser Arbeit, am Beispiel der Automobildomäne, verschiedene

Modellierungswerkzeuge, wie z.B.- Topcased- Papyrus- OSATE- OpenEmbedd- Artop- …

anhand ihrer funktionalen und nichtfunktionalen Anforderungen analysiert und bewertet werden. Dazu gehören u.a.:

- Angebotene Features- Handhabung- Erweiterbarkeit- Interaktionen mit anderen Werkzeugen- …

Page 10: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 10

Seminarthemen

Thema 06: Modellbasierte Beschreibung von System und Software Architekturen

[Betreuer: Benjamin Honke] Die Entwicklung eines Embedded System muss neben der Softwareentwicklung auch

die eigentliche Systementwicklung, sowie Hardware- und Mechanik-Komponenten berücksichtigen.

Im Falle einer modellbasierten System-/Software-Entwicklung gibt es sogenannte Architecture Description Languages (ADL), die mit Hilfe verschiedener Sprachelemente, Abstraktionsebenen und Artefakte, diese Entwicklung ermöglichen

Aufgabenstellung Da jede ADL ihren Fokus anders setzt, unterscheiden sich alle ADLs in bestimmten Punkten,

weswegen sich diese Arbeit mit dem Vergleich verschiedener ADLs, wie z.B.- EAST-ADL2.0- SAE-AADL- UML- …

und deren Anwendbarkeit im Embedded Umfeld beschäftigt.

Page 11: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 11

Seminarthemen

Thema 07: Binding zwischen XML-Schema-Modellen und Java-Beans (JAXB) [Betreuer: Stefan Fenn] Java Architecture for XML Binding (JAXB) ist ein Framework um aus einen XML-Schema

Java-Klassen zu generieren und umgekehrt. Dadurch ist es möglich Modelle, die als Schema-konformes XML gegeben sind, direkt in Java-Objekte abzubilden.

Aufgabenstellung: Diese Arbeit soll einen Überblick über das JAXB-Framework und ihre Anwendung auf XML-Schema-Modelle geben.

Kurze Einführung von XML-Schema und das JAXB-Framework Schema/XML → Java:

» Wie werden die verschiedenen ComplexTypes übersetzt?

» Anpassung durch Annotationen im Schema Java → Schema/XML:

» Erzeugung eines XML-Schema-Modells aus einer Java-Klasse

» Binding von Java-Beans

» Anpassung des XML-Bindings mit Java-Annotations Anwendungsbeispiel: Es wird demonstriert wie mit JAXB ein frei gewähltes

Beispiel-Modell direkt in eine ablauffähige Anwendung abgebildet wird.

Page 12: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 12

Seminarthemen

Thema 08: Modellierung von Geschäftsregeln [2 Studenten, Betreuer: Raphael Romeikat] Geschäftsregeln beschreiben, wie Unternehmen ihren Geschäftszweck erfüllen.

Sie enthalten Informationen über Zusammenhänge in den Abläufen des Unternehmens und treffen dadurch auch Aussagen über die Art und Weise der Geschäftsabwicklung. Verschiedene Techniken zur grafischen Modellierung bieten eine abstrahierte Sichtweise auf Geschäftsregeln.

Geschäftsregeln in der Softwareentwicklung Charakteristika von Geschäftsregeln Sprachen zur Spezifikation von Geschäftsregeln Regelbasierte Softwaresysteme zur Steuerung von Geschäftsprozessen

Grafische Modellierungstechniken für Geschäftsregeln I Ross Notation ORM (Object Role Modeling)

Grafische Modellierungstechniken für Geschäftsregeln II AORML (Agent-Object-Relationship Modeling Language) URML (UML-based Rule Modeling Language)

Aufgabenstellung Einführung in Geschäftsregeln Darstellung und Gegenüberstellung grafischer Modellierungstechniken Veranschaulichung durch Beispiele

Page 13: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 13

Seminarthemen

Thema 09: Modellierung Service-orientierter Architekturen [Betreuer: Florian Lautenbacher] SOA im Allgemeinen und Web Services im Speziellen erfordern viel händische

Arbeit, um z.B. die Orchestrierung von Services zu beschreiben Idee: Nutzung von Modellierungsstandards, um möglichst viel Code automatisiert

generieren zu können Diese Seminararbeit soll verschiedene Ansätze zur Modellierung einer SOA

betrachten und gegenüberstellen: UML Profile and Metamodel for Services (UPMS / SoaML) SOA Reference Model oder Reference Architecture Service Modeling Language (SML) Quasar Methodologie etc.

Aufgabenstellung: Kurze Einführung in Service-orientierte Architekturen Einblick in und Gegenüberstellung der verschiedenen Ansätze ggf. mit Vor- und

Nachteilen

Page 14: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 14

Seminarthemen

Thema 10: Datenflußanalyse auf Modellen [Betreuer: Christian Saad]

Datenflußanalyse Verfahren um die Ausbreitung von Informationen in einem Flußgraphen zu untersuchen Typisches Anwendungsgebiet: Optimierung von Programmen

Idee Modelle sind auch Graphen! Benötigte Informationen befinden sich oft an unterschiedlichen Stellen im Modell (führt

zu umständlicher Navigation, siehe OCL) Nicht alle Informationen sind explizit enthalten sondern müssen erst berechnet werden Durchführen einer Datenflußanalyse auf Modellen?

Aufgabenstellung Grundlagen DFA + Tools vorstellen Was sind die Unterschiede zwischen Modellen und Kontrollflußgraphen und welche

Anforderungen stellen sich an eine DFA auf Modellen? Einwicklung einer Methodik zur Durchführung einer Datenflußanalyse und Anwendung in

einem Beispiel (z.B. Berechnung von Modellmetriken)

Page 15: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 15

Seminarthemen

Thema 11: Metamodellierung und Grammatiken [Betreuer: Christian Saad]

Metamodell Beschreibt die Struktur einer Zieldomäne Beispiel: Unified Modeling Language (UML), Meta Object Facility (MOF)

Kontextfreie Grammatik Beschreibt die Struktur einer Sprache Beispiel: Erweiterte Backus Naur Form (EBNF)

Idee (Meta)Modelle aus dem UML Bereich sind für die graphische Darstellung optimiert Grammatiken/Sprachen eignen sich besser für eine effiziente Auswertung

Aufgabenstellung Welche Gemeinsamkeiten/Unterschiede lassen sich zwischen Metamodellen und

Grammatiken feststellen? Wie ist der aktuelle Stand der Forschung in diesem Bereich? Wie lassen sich Metamodelle in Grammatiken transformieren (und umgekehrt), lassen

sich transformierte Darstellungen synchronisieren? Welche Einsatzmöglichkeiten gibt es? Eventuell eine kleine Implementierung

Page 16: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

© Bernhard Bauer, all rights reserved 2008 16

Organisatorisches

Bewerbung E-mail an [email protected]

Name, Matrikelnummer, Studiengang, Semester Bereits gehörte Vorlesungen und Seminare im Hauptstudium Gegebenenfalls weitere qualifizierende Vorkenntnisse Drei priorisierte Themenwünsche

STUDIS Zusätzliche Anmeldung in STUDIS bis 15.1.09 zwingend erforderlich

Seminararbeit Formatvorlage auf PvS-Website (Springer LNCS, LaTeX) Umfang: 15-20 Seiten (exkl. Anhang) Abgabe aller für die Kompilierung notwendigen Ressourcen + Arbeit im pdf-

Format Seminarvortrag

Formatvorlage auf PvS-Website (PowerPoint, andere Programme erlaubt) Dauer: ca. 45 min / Person (35-40 min Vortrag, 5-10 min Diskussion)

Anrechung des Seminars Alle Themen können in den Software Engineering Bereich eingebracht werden

Page 17: Programmierung verteilter Systeme Institut für Informatik Universität Augsburg 86135 Augsburg Tel.: +49 821 598-2118 Fax: +49 821 598-2175 Web:

Termine

Kickoff-Meeting: 15.12.2008 Bewerbungsschluss: 21.12.2008 Verteilung der Themen: 23.12.2008

Versand von Literaturhinweisen

Anmeldung in STUDIS: 15.01.2009 (spätestens) 1. Besprechung: 30.01.2009 (spätestens)

Literaturüberblick abgeschlossen Grobgliederung erstellt

2. Besprechung: 20.03.2009 (spätestens) Feingliederung erstellt Seminararbeit ~90% geschrieben

Abgabe der Seminararbeiten: 12.04.2009 (spätestens) Veröffentlichung der Arbeiten: 14.04.2009 Seminarvorträge: 16.-17.04.2009 Abgabe der Foliensätze: 17.04.2009 (spätestens)

© Bernhard Bauer, all rights reserved 2008 17