Upload
caecilia-schield
View
110
Download
5
Embed Size (px)
Citation preview
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
© Bernhard Bauer, all rights reserved 2008 2
Agenda
Motivation Seminarthemen Organisatorisches Termine
© 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?
© 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
© 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
© 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
© 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
© 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
© 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- …
© 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.
© 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.
© 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
© 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
© 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)
© 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
© 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
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