16.09.2003 Studienprojekt 2003/04: Datenbankbasierte Anforderungsdokumentation Allgemeines zum Studienprojekt Studienprojekte sind für Studenten des Studiengangs Softwaretechnik der Universität Stuttgart Lehrveranstaltungen, die auf berufstypische Arbeitsweisen vorbereiten sollen. Ein Studienprojekt dauert zwei Semester, die Projektgruppen umfassen ca. 10 Teilnehmer. Die Gruppe leistet in dieser Zeit etwas über ein Entwicklerjahr reine Softwareentwicklung. Zum Zeitpunkt des Studienprojekts befinden sich die Studenten im Hauptdiplom und verfügen über eine entsprechend fundierte Informatik-Ausbildung. Ziel des Studienprojekts ist es in einer Gruppe ein komplexes Software-Produkt zu entwickeln und am Ende in angemessener Form zu präsentieren. Zeitraum Oktober 03 bis August 04 Veranstalter Universität Stuttgart, Institut für Softwaretechnologie, Abteilung Software-Engineering (Prof. Ludewig) Hintergrund der Aufgabenstellung Die Erfassung und Fortschreibung der Anforderungsdokumentation ist eine der zentralen Aufgaben innerhalb eines Software-Projekts. Dies gilt nicht nur für die Entwicklung der Software sondern auch für die Wartungsphase, innerhalb der Änderungen und Erweiterungen an den ursprünglich spezifizierten Anforderungen vorgenommen werden. Große Softwareprojekte realisieren tausende einzelner Anforderungen, die auch untereinander in Beziehungen stehen können. Diese Anforderungen werden nicht nur in der Anforderungsdokumentation erfasst, sondern stehen in Beziehung zu den folgenden Dokumenten: • der Anwenderdokumentation, die die wissenswerten Anforderungen aus Sicht eines Anwenders beschreibt. • den Testfällen, die die Prüfung der Anforderungen durch einen Vergleich von Soll und Ist-Resultaten vornimmt. Das Sollresultat des Testfalls kann aus der Anforderungsdokumentation abgeleitet werden. • dem Programmcode, der die Anforderung realisiert. Der Programmcode wird durch die Testfälle geprüft. Im Idealfall sind alle vier Dokumente konsistent. Moderne Vorgehensweisen des Software-Engineering verfolgen zudem nicht immer den klassischen Weg Anforderungen über die Anforderungsspezifikation zu erfassen. So spielen Beispielsweise im Extreme Programming die Testfälle eine zentrale Rolle; bei der Entwicklung von Konsumenten-Software wie z.B. für Mobilfunkgeräte, erfolgt die Spezifikation über das Benutzerhandbuch. Der Einsatz einer Datenbanklösung hat auf Grund der beschriebenen Verflechtungen offensichtliche Vorteile gegenüber den klassischen Dokumenten. Es sind einige wenige kommerzielle Produkte am Markt erhältlich, die aber alle gewisse Schwächen in der Methodik aufweisen. 16.09.2003 Aufgabenbeschreibung Es soll ein System entwickelt werden, das in einer zentralen Datenbank Anforderungen verwaltet. Anforderungen sollen dort drei Sichten bekommen: die AnforderungsdokumentationSicht, die Anwenderdokumentation-Sicht und die Testfall-Sicht. Es soll möglich sein eine Anforderung in einer oder allen Sichten zu beschreiben. Ein Verknüpfen zu den Programmcode-Stellen, die die Anforderung realisieren, soll ebenso möglich sein. Hierzu sind geeignete Schlüsselworte zu definieren, die sich beispielsweise an der JavaDoc Syntax orientieren. Es soll aber explizit nicht nur Java als Programmiersprache unterstützt werden sondern durchaus auch ältere Programmiersprachen wie C oder COBOL. Das System soll Inkonsistenten zwischen den einzelnen Sichten der Anforderungen aufzeigen können. Zudem soll eine Lösung für das laufende Fortschreiben und Ändern von Anforderungen gefunden werden. Es soll somit erkennbar sein, wann und durch wen Änderungen vorgenommen wurden. Folgende weitere Funktionalitäten sollen realisiert werden: • Abhängigkeitsanalyse: Es sollen die Abhängigkeiten zwischen den Anforderungen angezeigt werden • Dokument Generierung • Anforderungen sollen durch Text und Bilder beschreibbar sein. Hierfür ist ein geeignetes Format zu definieren. In einer Erweiterung soll noch eine Use Case Visualisierung implementiert werden. Das System soll nach halber Projektlaufzeit in einer ersten Version einsetzbar sein. Es soll dann bereits ein erster praktischer Einsatz in einem Industrieprojekt erfolgen. Die technischen Rahmenbedingungen sind • J2EE Umfeld • Jakarta Struts Einsatz • Relationale Datenbank (vermutlich MySQL, Oracle und/oder UDB) • Objektmodellierung mit Rational Rose • OO/RDB-Mapping Framework (vermutlich TOPLink oder JPOM) • Alternativ EJB Verwendung Produktumfeld Im Rahmen des Studienprojekts soll eine Produktentwicklung durchgeführt werden. Das zu entwickelnde System soll grundlegende Bedürfnisse verschiedener potentieller Kunden erfüllen. Um diese Bedürfnisse besser einschätzen zu können, werden Pilotkunden in den Entwicklungsprozess integriert. Diese bringen ihre Anforderungen und Wünsche mit ein, auf deren Grundlage die Anforderungen an das Produkt formuliert werden.