→ 
Anforderungen beschreiben, was ein zu erstellendes Softwaresystem zu leisten hat. Um ein solches System optimal an die Bedürfnisse des Kunden anzupassen, ist eine systematische Analyse der Anforderungen notwendig. Diese Systematik ist Grundlage für eine qualitativ hochwertige Anforderungsspezifikation. Beispielsweise ist planvolles Vorgehen bei der Erhebung von Anforderungen (z.B. durch Interviews oder Workshops) sowie bei deren Dokumentation eine wesentliche Grundlage für die weitere Entwicklung des Softwaresystems.

Abbildung 1: PDCA für Anforderungsdokumente
Qualitativ hochwertig heißt in diesem Zusammenhang nicht nur, dass die Anforderungen die Entwicklung der Software bestmöglich unterstützen. Zusätzlich müssen sie vom Kunden nachvollziehbar sein, so dass diesem eine Validation der Anforderungen möglich ist. Idealerweise sollten die Anforderungen auch so formuliert werden, dass zweifelsfrei festgestellt werden kann, wann das Softwaresystem sie erfüllt. Diese sowie weitere Qualitätsziele von Anforderungsdokumentation müssen meist unter hohem Zeit- und Kostendruck erreicht werden.
An der Leibniz Universität Hannover erforschen wir, wie Erfahrungen sowie die Analyse von Informationsflüssen in einer Organisation für diese Phase systematisch genutzt werden können. Die folgenden Abschnitte zeigen einige Facetten dieser Forschung.
Die Abbildung 1 zeigt, wie Demings Plan-Do-Check-Act Zyklus sich im Rahmen der Dokumentation von Anforderungen interpretieren lässt. Zum einen arbeiten wir an einem Konzept, Menge und Art der Dokumentation von Software Anforderungen für die Projekte einer Organisation erfahrungsbasiert zu optimieren. Zum anderen suchen wir nach Möglichkeiten, die große Fülle von Anleitungen und Best Practices zur Dokumentation von Anforderungen direkt bei der Erstellung nutzbar zu machen.
Tabelle 1 zeigt die Zuordnung der von uns erforschten Techniken zu den entwickelten Tools.
Tabelle 1: Zuordnung der Techniken zu unseren Tools
Eine Learning Software Organisation (LSO) nutzt Erfahrungen aktiv, um sich zu verbessern. Unsere Anwendungen zielen darauf ab, diesen wichtigen Lernprozess im Rahmen des RE zu unterstützen [7].
Ein einheitliches Verständnis der Begriffe ist speziell in großen und kollaborativen Projekten wichtig und soll bei der Erstellung des / der Pflichtenhefts / Anforderungsspezifikation durch ein Glossar unterstützt werden [5].
Feedback dient dazu Anforderungen zu verbessern. Wir unterscheiden drei Arten von Feedback:
Stakeholder-Feedback ist die Voraussetzung, um Anforderungen zu validieren. Durch Hervorhebung und Fokussierung auf wichtige Aspekte erreichen wir höhere Effektivität und Effizienz bei der Validierung von Anforderungen.
Computerbasierte Kritiken können Anforderungen direkt bei der Eingabe auf Konsistenz und Qualitätseigenschaften überprüfen. Das dabei erzeugte Feedback kann direkt zur Verbesserung der Anforderungen verwendet werden [1], [2].
Durch automatisch abgeleitete Modelle kann eine neue Perspektive auf die Anforderungen angenommen werden. Dies erlaubt es, schnell Feedback zu Konsistenz und Vollständigkeit von Anforderungen zu erhalten [3], [4].
Je nach Rolle sind unterschiedliche Perspektiven auf die Anforderungen nützlich. So hilft ein Oberflächenprototyp dabei, sich aus Sicht des Anwenders mit dem zu erstellenden System zu beschäftigen. Interessant ist hier vor allem, Auffälligkeiten in eine andere Perspektive zu transferieren. Beispielsweise könnten Fehler eines Oberflächenprototyps auf entsprechende Use-Case Beschreibungen abgebildet werden.
In manchen Situationen ist es nicht möglich für die Validierung Prototypen zu benutzen. Ein möglicher Ansatz ist die Darstellung der Vision durch Videos und anderen Multimedialen Inhalten, um so Feedback durch die Stakeholder zu bekommen.
Die Qualität von Anforderungen kann teilweise automatisiert gemessen werden. Dies ist wichtig, um den Einfluss neuer Konzepte auf die Anforderungsqualität zu messen. Zudem setzen wir derartige Ansätze ein, um ausführliche Reviews vorzubereiten.
Zur Evaluation unserer Forschungsfelder existieren verschiedene Anwendungsfelder und Tools, mit denen sich die Konzepte anwenden lassen.
IT-Ökosysteme bestehen aus sich ständig verändernden miteinander interagierender Subsysteme, sowie den Stakeholdern des Systems. Das Interesse hierbei gilt den sich ständig ändernden bzw. neu hinzugekommenen Anforderungen der Subsysteme und der Stakeholder.
Der Heuristische Requirements Assistant (HeRA) ist der bislang umfangreichste Demonstrations Prototyp [1], [2], [6]. Basierend auf Fischers DODE Architektur bildet HeRA eine intelligente Entwurfsumgebungen für Anforderungen. Diese Umgebung umfasst Editoren für Use-Cases, Anforderungen und Glossaren. mehr...
Das auf MediaWiki basierte SmartWiki dient der Unterstützung von kollaborativen Projekten beim Requirements Engineering. Der Projektfortschritt von Notizen zu einer vollständigen Anforderungsspezifikation hin wird durch Features wie Glossar, Projektmanagement, Kritiken, Dokumenten- und Erfahrungssammlung begleitet.
Der Konsistenz-Prüf-Assistent (KonPAss) dient der Analyse von Anforderungs-Dokumenten. Eine konfigurierbare Regelbasis erlaubt die Konsistenzsicherung über mehrere Dokumente hinweg. Die Ergebnisse dieser automatischen Analyse können zur Eingangsprüfung vor einem Review oder zur Erhebung von Anforderungsmetriken eingesetzt werden.
FastFeedback verwendet die kombinierten Sichten von Use-Cases und Oberflächenprototypen, um schon im ersten Kundeninterview mit der Validierung anzufangen. Auf diese Weise können Inkonsistenzen früh gefunden und behoben werden .
Webmaster
© 2004-2010 Fachgebiet Software Engineering
Impressum
|