Vorlesung mit Übungen im Wintertrimester 2005
Softwareentwicklungsumgebungen
Mark Minas, Peter Aschenbrenner
Wahlpflichtveranstaltung (2+2 TWS) im Studiengang Informatik, Vertiefungsrichtung WV1 (Theoretische und Praktische Informatik)
Vorlesung: Freitag, 8:30 - 10:00, Rm. 2417 im Geb. 41/400
Übung: Dienstag, 16:00 - 17:30, ebenso Rm. 2417
Der Vorlesungsbetrieb beginnt am Freitag, 14. Januar 2005, der Übungsbetrieb in der darauffolgenden Woche.
Überblick
Diese Vorlesung ist als Ergänzung zu den Vorlesungen Software Engineering I/II gedacht. Während in den Software Engineering-Vorlesungen der Schwerpunkt auf Methoden und Notationen zur Softwareentwicklung liegt, stehen hier die dabei eingesetztenWerkzeuge im Vordergrund.
Dem Hörer sollen zum einen Grundkenntnisse über den internen Aufbau solcher Werkzeuge und ihre Realisierung selbst nahegebracht werden. Zum anderen wollen wir ihm das notwendige Wissen für die gezielte Auswahl und den nutzbringenden Einsatz von Werkzeugen bei der Softwareentwicklung vermitteln. Im Rahmen der Vorlesung werden Versions- und Konfi- gurationswerkzeugen, CASE-Tools und Meta-CASE-Tools (zum Bau von CASE-Tools) vorgestellt.
Scheinerwerb
Den Schein gibt es auf abgegebene Übungsaufgaben und zusätzlich eine Prüfung am Ende des Trimesters. Dazu werden auf den Übungsblättern Aufgaben gekennzeichnet, die zu bearbeiten und bis zum angegebenen Stichtag einzureichen sind. Eine Bearbeitung in Zweiergruppen ist möglich; eine gemeinsame Lösung von mehr als zwei Teilnehmern wird nicht akzeptiert, auch wenn sie getrennt eingereicht wird. Um den Schein zu erwerben, müssen alle als Hausaufgaben markierten Aufgaben fristgerecht und lauffähig eingereicht und die zusätzliche Prüfung am Ende des Trimesters bestanden sein. Der Modus dieser Prüfung (d.h. schriftlich oder mündlich) wird rechtzeitig bekanntgegeben.
Themen
- Versions- und Konfigurationsverwaltung (RCS, CVS, Subversion)
- Build Tools (make, ant)
- Compilergeneratoren
- Unit Tests
- Java-Programmiermethodik
- Eclipse - Einführung
- Eclipse - Plug-Ins
- EMF
- Aspektorientierte Programmierung
Übungen
- Versionsmanagement: 18.01.05
Hinweis: Es wird vorausgesetzt, dass vor der Übung folgender Artikel gelesen wurde: An Algorithm for Differential File Comparison. - Build Tools: 25.01.05 (verbesserte Version)
Hinweis: Ant kann direkt von der Ant web site heruntergeladen werden.
Eingegangene Lösungen für Aufgabe 13 Team 1: Thorsten Urban, Michael Neumann Team 2: David Scheffel Team 3: Sebastian Bergatt, Roman Goltz - Compiler-Generatoren: 01.02.05
Hinweis: JavaCC kann von der entsprechenden java.net Seite heruntergeladen werden. Eine Einführung in den Lambda-Kalkül findet sich in Kapitel 7 der Vorlesungsseite 'Einführung in die Informatik'.
Eingegangene Lösungen für Aufgabe 16 Team 1: Thorsten Urban, Michael Neumann Team 3: Sebastian Bergatt, Roman Goltz (Lösung noch nicht ganz vollständig) - Unit Tests: 15.02.05
Eingegangene Lösungen für Aufgabe 18 Team 1: Thorsten Urban, Michael Neumann - Unit Tests und Java: 22.02.05 Kein neues Übungsblatt, weitere Bearbeitung von Blatt 4!
- Unit Tests und Java: 01.03.05
- Eclipse Plugin: 08.03.05
Hinweis: Machen Sie sich vor Bearbeitung dieser Aufgabe Gedanken darüber, welche Klassen und Konzepte Sie für die Lösung brauchen werden, und bringen Sie entsprechende Teile der Eclipse-API-Dokumentation und Java-API-Dokumentation ausgedruckt in die Übung mit.
Eingegangene Lösungen für Aufgabe 21 Team 1: Thorsten Urban, Michael Neumann - Eclipse Modeling Framework: 15.03.05
Der in der Vorlesung verwendete Quellcode in Form von vier Eclipse-Projekten ist in dieser ZIP-Datei zu finden. Außerdem wird EMF benötigt. Dazu installieren Sie entweder die freie Version von EclipseUML von Omondo (EMF ist enthalten), oder Sie installieren das EMF SDK von der EMF-Homepage. Das Automatenbeispiel nutzt die Version 2.0.1 von EMF. - AOP: 22.03.05
Sie können sich die AspectJ-Entwicklungsumgebung und das AJDT für Eclipse von der AspectJ-Homepage herunterladen. Hinweis: Informieren Sie sich vor der Lösung von Aufgabe 23 über dynamische Proxies! Ein Einstieg kann der folgende kurze Artikel sein: Explore the Dynamic Proxy API