Die hier aufgeführte Literatur soll den Einstieg in die Thematik erleichtern. Darüber hinaus ist eigenständig Literatur zu recherchieren, beachten Sie hierfür die Recherchehinweise. Eigene Themen können nach Absprache mit der Seminarbetreuung eingebracht werden.
Die Vorträge bzw. Ausarbeitungen sollen, auch wenn das nicht explizit beim Thema angegeben sein sollte, mit Beispielen veranschaulicht werden. Die Beispiele sollen dabei aus den Kursen 1793 oder 1794 ("Software Engineering 1" und "Software Engineering 2) stammen. Beachten Sie auch die anderen Themen und grenzen Sie sich voneinander ab. Teilweise sollen Aspekte bestimmter Themen in anderen Themen diskutiert werden. Verwenden Sie zur Kommunikation die Newsgroup, um bei Bedarf die jeweiligen Themenexperten um Rat zu fragen.
Noch ein paar Hinweise zum Titel des Seminars: Vorgehensmodelle legen, vereinfacht formuliert, fest, was wann von wem in einem Projekt gemacht werden muss. Dagegen beschreiben Methoden, wie etwas gemacht wird. Wenn also beispielsweise ein Vorgehensmodell vorschreibt, dass ein "Architekt" (wer) während des "Entwurfs" (wann) eine "Grobentwurfspezifikation" (was) zu erstellen hat, so erklärt eine Methode, wie er zu dieser Spezifikation kommt, wie also beispielsweise (dem Kurs 1793 entsprechend) die vorhandenen Klassen auf die Architekturkomponenten zu verteilen sind und was dabei zu beachten ist. Diese Trennung ist natürlich ein wenig künstlich und manche Vorgehensmodelle beschreiben auch Teile des Wie, während Methoden auch das Was umfassen -- beide Seiten können nicht im luftleeren Raum arbeiten. Gerade wegen dieser notwendigen Unschärfe ist die konzeptionelle Trennung vielleicht umso wichtiger. In der Praxis erlebt man häufig, dass etwa ein Vorgehensmodell eingesetzt wurde, die Anwender allerdings nicht genügend Methodenwissen mitbringen oder davon ausgehen, dass das "Modell" schon weiss, was es macht. Das führt dann zu Artefakten, seien es Pflichtenheft oder Entwurfsspezifikationen, die von den Überschriften zwar sinnvoll erscheinen (es wurden ja i.A. Vorlagen des Vorgehensmodells verwendet), inhaltlich aber oft krotesk sinnlos sind. Die Anwender merken dann, dass das Vorgehensmodell eben nicht alles erklärt und lehnen dann das ganze Modell ab, da es aus ihrer Sicht nur unnötiger Ballast ist. Das führt dann zu folgender (wahren) Anekdote: Ein Freund von mir, ein Unternehmensberater und erfahrener Projektmanager und Softwarearchitekt, sollte einer Abteilung eines großen Unternehmens bei einem Projekt helfen, dass "nicht so gut lief". Von seiner Beschreibung der chaotischen Zustände erstaunt fragte ich ihn, ob denn kein Vorgehensmodell definiert sei. "Klar haben die ein Vorgehensmodell", so die Antwort, "und das befindet sich in einem Stahlschrank sicher verwahrt." So ist das Vorgehensmodell vor den Anwendern und die Anwender vor dem Vorgehensmodell sicher.
Bei allen Themen über Vorgehensmodelle soll kurz (an-) diskutiert werden, welche Methoden mit dem besprochenen Modell wie einsetzbar sind (vielleicht auch von dem Modell definiert oder vorgeschlagen werden) oder welche Gründe dagegensprechen.
Das V-Modell XT ist Nachfolger des V-Modell 97. Es ist für Bundesbehörden als Standard vorgeschrieben. Entsprechend müssen auch Unternehmen, die für Bundesbehörden tätig werden (wollen), zumindest Teile des V-Modell XT umsetzen. Die Besonderheiten des V-Modell XT sind seine Anpassbarkeit (Tailoring) durch einen modularen Aufbau sowie die Einbindung des Auftraggebers in den Prozess. Das Tailoring soll in einem eigenen Thema (siehe unten) vorgestellt werden. Der Vortrag zum V-Modell XT soll einen Überblick über das Modell mit seinen Modulen sowie die verfügbaren Tools geben. Mittels konkreter Beispiele soll das Thema verständlich aufbereitet werden.
Der "Rational Method Composer" ist eine Bibliothek von IBM Rational zur Definition und Durchführung von Prozessen. Wichtiger Bestandteil ist der "Rational Unified Process" (RUP), der im Rahmen der "Rational Process Library" mit "Plug-Ins" an spezifische Bedürfnisse angepasst werden kann. Der Vortrag soll einen Überblick insbesondere über den RUP mit seinen Rollen, Aktivitäten, Artefakten etc. geben; dem Aspekt des Tailoring ist ein eigenes Thema im Seminar gewidmet. Auf der unten angegebenen Webseite ist eine Trialversion des Rational Method Composers erhältlich, der Vortrag soll auch hierzu kurz eine Einführung bieten.
Der oose Engineering Process (OEP) stellt wie der Rational Unified Prozess einen iterativ-inkrementellen Prozess dar. Vereinfacht könnte man den OEP als einen abgespeckten RUP erklären, daher kann er in der Praxis vielleicht schneller aufgesetzt werden als das große Vorbild. Der Vortrag soll einen Überblick über den OEP liefern und dabei auf Unterschiede etwa zum RUP oder auch zum V-Modell XT eingehen. Konkrete Beispiele sollen angegeben werden um das Verständnis zu erleichtern. Ein kleiner Hinweis zu der Literatur: Das OEP-Buch ist im Wesentlichen ein Ausdruck der OEP-Website, eine Anschaffung lohnt daher eher nicht. Allerdings enthält das Buch ein paar einleitende Kapitel, so dass sich die Ausleihe des Buches schon lohnt.
Scrum ist ein agiles Vorgehensmodell. Mit wenigen Mitteln sollen selbstorganisierte Teams eigenverantwortlich in kurzen Zyklen Produkte erstellen. Der Vortrag soll einen Überblick über Scrum geben und an Beispielen verdeutlichen. Daneben sollen allgemeine Aspekte agiler Verfahren vorgestellt und diskutiert werden, ob die Methoden, etwa aus den Kursen 1793 oder 1794, mit derartigen Verfahren kombinierbar sind.
Extreme Programming (XP) ist ebenfalls ein agiles Vorgehensmodell. Als agiles Verfahren wird auf Kommunikation und kurze Entwicklungszyklen Wert gelegt. Der Vortrag soll einen Überblick über XP und die verwendeten Techniken wie "Pair Programming" oder "User Stories" geben, dem "Test Driven Development" ist ein eigenes Thema gewidmet.
Der "Guide to the Project Management Body of Knowledge" (kurz PMBOK Guide) des Project Management Institute (PMI) ist ein international anerkannter Standard für Projektmanagement und, im Gegensatz zu den obigen Verfahren, nicht auf Softwareprojekte spezialisiert. Der Vortrag soll den im PMBOK Guide beschriebenen Prozess vorstellen und, soweit möglich, Zusammenhänge mit Softwareprojekten erläutern. Da der PMBOK Guide sehr abstrakt ist, sind hier verdeutlichende Beispiele unabdingbar.
Bei allen Themen über Methoden soll kurz (an-) diskutiert werden, in welchen Vorgehensmodelle die besprochene Methode wie einsetzbar ist oder welche Gründe dagegensprechen.
Beim Model-Driven Development (MDD) werden Modelle in den Mittelpunkt der Softwareentwicklung gerückt. Ziel ist es, mittels Modelltransformationen formal vollständig spezifizierte Modelle möglichst automatisch in feinere, meist plattformspezifischere Modelle zu transformieren und schließlich Code zu generieren. Die Model-Driven Architechture (MDA) ist eine konkrete Ausprägung des MDD, dass UML und verwandte Techniken zu Grunde legt. Der Vortrag soll einen Überblick über MDD, insbesondere MDA, geben und in die Welt der MDA-spezifischen LTAs (Three-Letter Acronyms) wie OMG, MOF, QVT, XMI usw. einführen. Insbesondere soll auf den Zusammenhang von MDD und Vorgehensmodellen eingegangen werden.
Software Factories kombinieren verschiedene Tools und Techniken, um möglichst automatisch ähnliche Produkte im Rahmen von Produktlinien herstellen zu können. Da die Autoren unten genannten Buches von Microsoft kommen und dort mit der Entwicklung der Entwicklungstools zu tun haben, kann man auf die Idee kommen, Software Factories als die Microsoft-Variante der MDD zu interpretieren. Der Vortrag soll einen Überblick über Software Factories geben und dabei möglichst konkrete Beispiele geben, evtl. im Zusammenhang mit entsprechenden Tools. Dabei sollen auch verwandte Themenfelder wie "Product Lines" vorgestellt werden. Unten aufgeführtes Buch ist übrigens auch in einer deutschen Übersetzung im mitp-Verlag erhältlich.
Beim Test-Driven Development (TDD) werden zunächst (automatisierbare) Tests geschrieben und erst dann der eigentliche Programmcode (test first). Die Entwicklung findet also gegen die Tests statt. Salopp gesprochen hat man das Ziel, alle Testampeln von rot auf grün zu schalten; bei neuen Anforderungen müssen neue Amplen erstellt werden. Der Vortrag soll einen Überblick über TDD und verwandte Tools (JUnit) und Techniken geben. Dabei soll das TDD generell in den Themenkomplex "Testen" eingeordnet werden und evtl. die Anwendbarkeit von TDD im Rahmen von Vorgehensmodellen beschrieben werden.
Kern des Use Case Driven Development ist die Verwendung von Anwendungsfällen zur Modularisierung des Projekts wie zur Ableitung der Struktur im Rahmen der Analyse. Dieses Vorgehen ist aus dem Kurs 1793 "Software Engineering I" (bzw. dem unten aufgeführten Buch von Mario Winter) bekannt. Der Vortrag soll kurz ähnliche Verfahren, wie in [RS99] beschrieben, vorstellen und in das spezifische Vokabular (bspw. Robustness Diagram) einführen. Darüberhinaus sollen neuere Entwicklungn [JN05] vorgestellt und diskutiert werden. Da das Verfahren aus dem Kurs ja prinzipiell bekannt ist (also die Vorstellung entsprechend knapp gehalten werden kann), soll hier insbesondere auf den Zusammenhang zu Vorgehensmodellen eingegegangen werden. Möglich ist auch eine Diskussion, inwiefern Use Case Driven Development nicht schon Model-Driven Development ist.
Capability Maturity Model Integration (CMMI) und Software Process Improvement and Capability Determination (SPICE, ISO/IEC 15504) dienen der Bewertung und Verbesserung von Prozessen. Mit dem Modell kann ermittelt werden, wie ausgereift ein Prozess ist und wie diese verbessert werden kann. Der Vortrag soll einen Überblick über CMMI oder Spice anhand von Beispielen geben.
Bei allen Querschnittsthemen soll kurz (an-) diskutiert werden, wie das jeweilige Thema in obigen Vorgehensmodellen gelöst ist.
Beim V-Modell XT steht es bereits im Namen und auch der Rational Method Composer erlaubt es: Tailoring, zu deutsch Anpassen, von Vorgehensmodellen an die jeweiligen Bedürfnisse. Der Vortrag soll anhand des V-Modell XT Tailoring vorstellen und kurz auf die Anpassbarkeit anderer Vorgehensmodelle eingehen. Warum wird angepasst, wie flexibel ist das Modell, welche Einschränkungen gibt es? Anhand von Beispielen soll die Theorie veranschaulicht werden.
Irgendwie kommt Anforderungsmanagement in allen Vorgehensmodellen vor, sei es durch Erstellen von Anwendungsfalldiagrammen, User Stories oder Product Backlogs. Doch wie kommt man zu diesen Anfangsdokumenten? Der Vortrag soll einen Überblick über das Anforderungsmanagement anhand von [LW99] geben. Abstrakte Begriffe und Konzepte sollen anhand von Beispielen illustriert werden.
Bevor ein Projekt gestartet wird, wollen die Budgetverantwortlichen meist eine "grobe Hausnummer" zur Abschätzung des Aufwands und somit der Kosten. Die Function Point Analyse (FPA) bietet ein bewährtes Verfahren zur Aufwandsabschätzung. Der Vortrag soll eine Einführung in FPA nach der "International Function Point Users Group" (IFPUG) geben und anhand von Beispielen erläutern. Daneben sollen kurz andere Schätzverfahren, etwa Scrums Planing Poker oder Expertenschätzung, vorgestellt und Stärken und Schwächen der jeweiligen Verfahren diskutiert werden.
In welchem Verhältnis stehen rechtliche Bestimmungen wie das deutsche Arbeitsrecht, Datenschutzbestimmungen und die Betriebsverfassung zu Vorgehensmodellen und Prozessverbesserungsmodellen wie CMMI oder SPICE? Literatur zu diesem Thema ist selbst zu beschaffen.
FernUniversität in Hagen, Lehrgebiet Software Engineering, D-58084 Hagen, Telefon: +49 (2331) 987-2964