Was beim Erstellen von Lastenheften zu beachten ist

Lastenheft: Anforderungen in der Softwareentwicklung richtig definieren
Kommentare

Im professionellen Umfeld erfolgt vor der Softwareentwicklung eine detaillierte Planung und Analyse der Anforderungen. Insbesondere für die Entwicklung von Individualsoftware ist eine ausführliche Planungsphase notwendig. Der grundlegende Anforderungskatalog – gewissermaßen als erstes Ergebnis dieser Planungsphase – wird in einem so genannten Lastenheft zusammengefasst. Diese Artikelserie betrachtet die wichtigsten Aspekte dieser frühen Planungsphase. Teil 1 widmet mit sich dem Sinn und Zweck von Lastenheften im Softwareentwicklungsprozess.

Diese vierteilige Artikelserie wendet sich an diejenigen, die ein Lastenheft für ein künftiges Softwareentwicklungsprojekt erstellen müssen. Adressaten sind damit sowohl die Auftraggeber als auch die Auftragnehmer. Im ersten Teil betrachten wir die allgemeinen und übergreifenden Aspekte, die bei der Erstellung solcher Pflichtenhefte helfen sollen. Wir geben einen Überblick zum gesamten Softwareentwicklungsprozess und erläutern Sinn und Zweck sowie den allgemeinen Aufbau von Lastenheften.

Artikelreihe

  • Teil 1: Anforderungen in der Softwareentwicklung richtig definieren
  • Teil 2: Aufbau von Lastenheften und Ermittlung von Benutzeranforderungen
  • Teil 3: Anforderungen für Webprojekte definieren
  • Teil 4: Anforderungen an den Projektablauf

Lastenheft: Sinn und Zweck

Das Lastenheft dient dazu, die Anforderungen an das zu entwickelnde System verbindlich zu beschreiben. Als Anforderungskatalog ist es die Grundlage für eine Ausschreibung (sofern notwendig) bzw. dient der Vertragsgestaltung zwischen Auftraggeber und Auftragnehmer. Durch das Lastenheft werden die Rahmenbedingungen für die Entwicklung festgelegt. Grundsätzlich lässt sich formulieren: Das Lastenheft wird vom Auftraggeber erstellt und gehört dem Auftraggeber. Selbstverständlich können Dritte (im Einzelfall sogar der Auftragnehmer) bei der Erstellung des Lastenhefts mitwirken.

Innerhalb des Lastenhefts werden die relevanten Anforderungen durch den Auftraggeber ermittelt und dokumentiert. Zu den Anforderungen gehören sowohl funktionale als auch nicht funktionale Anforderungen an das System. Weitere Bestandteile sollten nach Möglichkeit eine Skizze des Gesamtsystems, Richtlinien für Technologieentscheidungen und die Formulierung von Vorgaben für die vertragliche Gestaltung, wie Lieferbedingungen und Abnahmekriterien sein. Nach Möglichkeit sollten die Anforderungen so aufbereitet sein, dass eine Nachverfolgbarkeit (Traceability) gegeben ist. Bezüglich der technischen Umsetzungen sollten keine Detailvorgaben gemacht werden, um den Prozess der Lösungssuche (durch den Auftraggeber) nicht im Vorfeld bereits zu stark einzuschränken und zu strukturieren. Als Pflichtenheft soll das Lastenheft keinen Lösungsansatz bieten, sondern lediglich die Anforderungen beschreiben. Der Vorgang „Erstellung des Lastenhefts“ gehört zur Analysephase des Softwareentwicklungsprozesses und ist dort am Anfang angesiedelt.

Der Softwareentwicklungsprozess im Überblick

Betrachtet man den gesamten Funktionsumfang und die Anforderungen an eine Software, so hat man es im Regelfall mit komplexen Systemen zu tun. Sieht man von kleineren Tools und Minianwendungen ab, so ist eine Planung der Vorgehensweise Voraussetzung für eine erfolgreiche Projektumsetzung. Man spricht dabei auch von einem ingenieurmäßigen Vorgehen [1]. Die einzelnen Schritte der Softwareentwicklung werden Entwicklungsphasen zugeordnet. Prozessmodelle beschreiben dagegen die Struktur der Vorgehensweise, d. h. es wird festgelegt, wann welche Entwicklungsphasen und mit welchen Ergebnissen durchgeführt werden. Das Prozessmodell bestimmt den organisatorischen Rahmen für ein Softwareentwicklungsmodell. Die Phasen der Softwarenentwicklung sind die Analyse-, die Entwurfsphase, die Implementierungs-, die Test- und die Wartungsphase.

Analysephase

Innerhalb der Analysephase wird die Gesamtheit der Anforderungen an die zu entwickelnde Software festgelegt. Gebräuchliche Bezeichnungen sind auch Anforderungs- oder Produktdefinition. Das Ziel der Analyse ist es, die Wünsche und Anforderungen eines Auftraggebers zu ermitteln und zu beschreiben. Auch bei einer Entwicklung für den anonymen Markt ist es wichtig, eine klare Zieldefinition vorzunehmen. Es ist eine hohe Ebene der Abstraktion zu verwenden, die Aspekte der technischen Realisierung sind auszuklammern. Die Analysephase kann in mehrere Schritte aufgeteilt werden: Erstellung des Pflichtenhefts und des Fachkonzepts sowie die Entwicklung eines ersten lauffähigen Prototyps der Benutzeroberfläche. Die Erstellung des Lastenhefts kann dabei der frühen Analysephase zugeordnet werden bzw. ist noch im Vorfeld der eigentlichen Softwareentwicklung angesiedelt.

Entwurfsphase

Innerhalb des Entwurfs wird die Architektur der Anwendung festgelegt. Die Gesamtaufgabe wird in überschaubare Teilaufgaben zerlegt. Es erfolgen die technischen Festlegungen. Dazu gehören Angaben zur Hardware und zum Betriebssystem. Handelt es sich um eine betriebliche Anwendung, ist eine Spezifizierung der Datenhaltung (Datenbanksystem) notwendig. Die Architektur der Software bestimmt u. a., ob es sich um eine separierte Einzelanwendung oder um eine Client-Server-Architektur handelt. Angaben zu Schnittstellen sind notwendig, wenn eine Einbindung in ein bestehendes System erfolgen soll.

Implementierungsphase

Die Phase der Implementierung stellt die eigentliche Programmierarbeit dar. Es erfolgt die Umsetzung in der gewählten Programmiersprache. Ausgangsbasis sind die Ergebnisse der Analyse- und Entwurfsphase. Gegenstand der Implementierung ist ebenfalls die Erstellung einer System- und einer Benutzerdokumentation.

Implementierungsphase

Die Phase der Implementierung stellt die eigentliche Programmierarbeit dar. Es erfolgt die Umsetzung in der gewählten Programmiersprache. Ausgangsbasis sind die Ergebnisse der Analyse- und Entwurfsphase. Gegenstand der Implementierung ist ebenfalls die Erstellung einer System- und einer Benutzerdokumentation.

Aufbau des Lastenhefts

In der Literatur und im Internet findet sich – meist in Form von Beispielen – eine Reihe von Gestaltungsvorschlägen. Maßgebend ist die DIN-Vorschrift 69905 (Begriffe der Projektabwicklung). Hier wird festgelegt: „Das Lastenheft beschreibt die vom Auftraggeber festgelegte Gesamtheit der Forderungen an die Lieferungen und Leistungen eines Auftragnehmers innerhalb eines Auftrags“. Eine Gliederung des Lastenhefts kann beispielsweise dem passenden Wikipedia-Eintrag entnommen werden.

In einigen Branchen haben sich standardisierte Vorgaben für Lastenhefte durchgesetzt. Für den Bereich der Softwareentwicklung wird gelegentlich die IEEE-Standard Software Requirements Specification verwendet. Die Gliederung, bei der davon ausgegangen wird, findet man hier.

Nachteilig an diesem Vorschlag ist, dass eine Trennung von Pflichten- und Lastenheft nicht stattfindet. Ein oft zitierter Gliederungsvorschlag stammt von Balzert [2]. Sie finden ihn mit kurzen inhaltlichen Erläuterungen im Kasten „Lastenheft nach Balzert“. Er zeichnet sich durch eine Konzentration auf wesentliche Inhalte und eine klare Struktur aus. Anpassungen an die individuelle Situation sind gewünscht und möglich. Unter Punkt 7 (Ergänzungen) können darüber hinausgehende Anforderungen beschrieben werden.

Lastenheft nach Balzert [2] – ein Gestaltungsvorschlag

  1. Zielbestimmung: Es wird beschrieben, welche Ziele durch den Einsatz des Produkts erreicht werden sollen.
  2. Produkteinsatz: Es wird festgelegt, für welche Anforderungsbereiche und für welche Zielgruppen das Produkt vorgesehen ist.
  3. Produktfunktionen: Die Hauptfunktionen des Produkts werden aus Auftraggebersicht beschrieben. Es ist darauf zu achten, dass Kernfunktionen und nicht sekundäre Funktionen beschrieben werden. Auf Details ist zu verzichten.
  4. Produktdaten: Die Hauptdaten des Produkts, die permanent gespeichert werden müssen, werden festgelegt.
  5. Produktleistungen: Betrifft Anforderungen bezüglich Zeit, Datenumfang oder Genauigkeit im Bezug auf einzelne Hauptfunktionen und Hauptdaten.
  6. Qualitätsanforderungen: Die wichtigsten Qualitätsanforderungen sollten aufgeführt werden. Dazu gehören Zuverlässigkeit, Benutzbarkeit und Effizienz.
  7. Ergänzungen: Hier werden Ergänzungen oder spezielle Anforderungen beschrieben, z. B. außergewöhnliche Anforderungen an die Benutzerschnittstelle.

Im zweiten Teil der Lastenheft-Artikelserie geht es um den Prozess zur Ermittlung von Benutzeranforderungen.

Links & Literatur:

  • [1] Bortfeldt, A: „Objektorientierte Systemanalyse“, FernUniversität Hagen 2001
  • [2] Balzert, Helmut: Lehrbuch der Software-Technik, 2 Bände, 1998, Spektrum Akademischer Verlag

 

Entwickler Magazin

Entwickler Magazin abonnierenDieser Artikel ist im Entwickler Magazin erschienen.

Natürlich können Sie das Entwickler Magazin über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -