WikiDer > Funktionsorientierte Entwicklung

Feature Driven Development

Funktionsorientierte Entwicklung (FDD) ist ein Agile Softwareentwicklungsmethode.

Es wurde 1997 von Jeff De Luca konzipiert, um den spezifischen Anforderungen eines großen Singapurisch Bank, mit einem Projekt, das 15 Monate dauert und an dem 50 Personen beteiligt sind. De Luca stellte eine Reihe von fünf Prozessen bereit, die die Entwicklung eines globalen Modells, die Registrierung, Planung, Gestaltung und Implementierung von Funktionen beschreiben. FDD wurde erstmals im 1999 von Jeff De Luca mitverfassten Buch „Java Modeling in Color with UML“ beschrieben. Im Jahr 2002 wird eine allgemeinere Beschreibung in dem Buch „A Practical Guide to Feature-Driven Development“ gegeben.

Phasen

Metaprozessmodell für FDD

FDD ist ein modellgetriebenes Entwicklungsmethode die aus fünf grundlegenden Aufgaben besteht. Die ersten drei sind sequentiell und in diesen wird das globale Modell erstellt. Die letzten beiden Operationen werden für jedes Feature wiederholt. Die Aktivitäten sind wie folgt:

Overall-Modell entwickeln

Das Projekt beginnt mit a Komplettlösung des Umfangs und des Kontexts des Systems. Dies dient als Grundlage für eine Reihe von Modellen, die in Kleingruppen erstellt und zum Feedback freigegeben werden. Aus diesen Modellen wird ein globales Modell erstellt.

Funktionsliste erstellen

Das bei der Modellierung gewonnene Wissen wird für eine Auflistung aller Merkmale verwendet. Features sind in diesem Fall Teile von Funktionen, die vom Kunden mit der Form „ “ als wertvoll eingeschätzt wurden. Ein Beispiel hierfür ist: „Rechnungszeilen aus einer Rechnung drucken“. Features können nicht länger als zwei Wochen dauern, sonst müssen sie in kleinere Komponenten zerlegt werden.

Nach Funktion planen

Nachdem die Merkmalsliste erstellt wurde, kann der Entwicklungsplan gestartet werden. Features werden in Klassen übersetzt, sodass die Klasseneigentümerschaft mit den Hauptprogrammierern verknüpft werden kann.

Design nach Funktion

Für jede Funktion wird ein Design erstellt. Der leitende Programmierer wählt eine Reihe von Funktionen aus, die innerhalb von zwei Wochen entwickelt werden können. Danach entwickeln die Klasseneigentümer gemeinsam mit den Hauptprogrammierern das Design zu Sequenzdiagrammen und schließlich findet eine Designinspektion statt.

Nach Funktion erstellen

Ist die Designprüfung erfolgreich, werden die Features implementiert. Die Klasseneigentümer implementieren ihre eigenen Klassen und nach a Gerätetest und Code Inspection kann das fertige Feature als Hauptbuild fungieren.

Trainieren

FDD entstand aus einer Reihe von Best Practices aus der Softwareindustrie. Mit diesen Praktiken führt wirklich kein Weg an FDD vorbei.

  • Domain Object Modeling: Hierbei wird der zu lösende Problembereich untersucht und erläutert. Dies führt zu einem Domänenobjektmodell, das ein globales Framework darstellt.
  • Entwicklung nach Feature: Alle Features, die nicht innerhalb von zwei Wochen implementiert werden können, sollten aufgeteilt werden, bis jedes Feature weniger als zwei Wochen benötigt.
  • Komponenten-/Klassenbesitz: Besitz bedeutet, dass Codeteile und Klassen einem Besitzer zugewiesen werden, der für deren Konsistenz, Leistung und Integrität verantwortlich ist.
  • Feature-Teams: Ein Feature-Team ist ein kleines, dynamisches Team, das jede Designentscheidung sorgfältig prüft, indem es alle Meinungen auswertet.
  • Inspektionen: Inspektionen stellen eine gute Qualität von Design und Code sicher, hauptsächlich durch die Erkennung von Fehlern.
  • Konfigurationsmanagement: Das Konfigurationsmanagement sorgt dafür, dass der Quellcode der Features leicht nach Datum identifiziert werden kann und auch eine Versions- und Änderungshistorie verwaltet wird.
  • Reguläre Builds: Diese regulären Builds sollen sicherstellen, dass das System immer auf dem neuesten Stand ist und dem Kunden demonstriert werden kann. Dadurch können Integrationsfehler schneller entdeckt werden.
  • Sichtbarkeit von Fortschritt und Ergebnissen: Durch die häufige Berichterstattung über den Fortschritt an alle müssen die Führungskräfte Einblick in die Arbeit haben und somit das Projekt gut steuern können.

Werkzeuge

FDD verwendet verschiedene Tools, die speziell für diese Softwareentwicklungsmethode entwickelt wurden.

  • FDD Manager (eingestellt ab Oktober 2006)
  • FDD-Projektmanager-Anwendung
  • FDD-Tools
  • FDD-Tracker
  • FDD-Viewer
  • TechExcel DevSuite

Externe Links