Requirements Engineering

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.

Plan - Do - Check - Act
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.


Konzepte für / AnwendungenIT-ÖkosystemeHeRASmartWikiKonPAssFastFeedback
LSO (Systematisches Lernen in Software-Organisationen) yes yes yes (yes)  
Glossar   yes yes    
Feedback         yes
  Stakeholder-Feedback yes        
  Computerbasierte Kritiken   yes yes yes  
  Automatisch abgeleitete Modelle   yes     (yes)
Kombinierte Perspektiven   yes     yes
  Multimedia          
Automatisches Messen       yes  
Tabelle 1: Zuordnung der Techniken zu unseren Tools

Unsere Forschungsfelder

LSO (Systematisches lernen in Software-Organisationen)

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 [6].

Glossar

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

Feedback dient dazu Anforderungen zu verbessern. Wir unterscheiden drei Arten von Feedback:

Stakeholder-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

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].

Automatisch abgeleitete Modelle

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].

Kombinierte Perspektiven

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.

Multimedia

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.

Automatisches Messen

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.

Anwendungen und Tools

Zur Evaluation unserer Forschungsfelder existieren verschiedene Anwendungsfelder und Tools, mit denen sich die Konzepte anwenden lassen.

IT-Ökosysteme

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.

HeRA

Der Heuristische Requirements Assistant (HeRA) ist der bislang umfangreichste Demonstrations Prototyp [1], [2], [7]. 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...

SmartWiki

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.

KonPAss

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

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 .

Literatur

  • 2007
  • [1] Eric Knauss, Thomas Flohr: Managing Requirement Engineering Processes by Adapted Quality Gateways and critique-based RE-Tools, In Proceedings of Workshop on Measuring Requirements for Project and Product Success, Palma de Mallorca, Spain, 2007, Bibtex. Abstract. PDF herunterladen
  • [2] Eric Knauss: Einsatz computergestützter Kritiken für Anforderungen, In GI Softwaretechnik-Trends, volume 27, pages 27-28, 2007, Bibtex. Abstract.
  • 2008
  • [3] Julia Pilarski, Eric Knauss: Transformationen zwischen UML-Use-Case-Diagrammen und tabellarischen Darstellungen, In Proceedings des Workshop Domänenspezifische Modellierungssprachen im Rahmen der GI Modellierung, Berlin, 2008, Bibtex. Abstract. PDF herunterladen
  • [4] Eric Knauss, Daniel Lübke: Using the Friction between Business Processes and Use Cases in SOA Requirements, In Proceedings of the 32nd Annual IEEE International Computer Software and Applications Conference (COMPSAC), Workshop on Requirements Engineering For Services, pages 601-606, Turku, Finland, 2008, Bibtex. Abstract.
  • [5] Eric Knauss, Sebastian Meyer, Kurt Schneider: Recommending Terms for Glossaries: A Computer-Based Approach, In Proceedings of the First International Workshop on Managing Requirements Knowledge MARK '08, pages 25-31, 2008, Bibtex. Abstract.
  • 2009
  • [6] Eric Knauss, Kurt Schneider, Kai Stapel: Learning to Write Better Requirements through Heuristic Critiques, In Proceedings of the 17th IEEE Requirementes Engineering Conference (RE '09), pages 387-388, Atlanta, USA. IEEE Computer Society, 2009, Bibtex. Abstract.
  • [7] Eric Knauss, Daniel Lübke, Sebastian Meyer: Feedback-Driven Requirements Engineering: The Heuristic Requirements Assistant, In Proceedings of the 31st International Conference on Software Engineering (ICSE '09), pages 587 - 590, Vancouver, Canada, 2009, Bibtex. Abstract.