Twin Peaks Model. Entwicklung der Architektur und Anforderungen
eines Software-Systems.
Was ist das Twin Peaks Model? Welche Vorteile bringt es und wie wenden Sie es in der Software-Entwicklung an?
Was ist das Twin Peaks Model? Welche Vorteile bringt es und wie wenden Sie es in der Software-Entwicklung an?
Das Twin Peaks Model befasst sich mit der Entwicklung der Anforderungen und der Architektur eines Software-Systems. Erfunden von Bashar Nuseibeh, einem IT-Professor an der Open University in der UK, soll es das „Hennen-Ei-Problem“ der Software-Entwicklung lösen:
Bevor Sie eine Architektur entwerfen, müssen die Anforderungen definiert sein. Anforderungen lassen sich jedoch auch erst ableiten, wenn die Architektur bekannt ist.
In der Praxis ergab sich oftmals ein klassisches Wasserfallmodell: Erst spezifizierte man die Anforderungen, dann entwickelte man darauf basierend die Architektur. Diese Vorgehensweise führte jedoch zum Beispiel zu Anforderungen, die sich nicht durch die zu Verfügung stehenden technischen Mitteln umsetzen ließen; oder zu einer schlecht performanten Architektur, die nicht die Erwartungen der Stakeholder erfüllte.
Daher schlug Nuseibeh mit dem Twin Peaks Model vor, Architektur und Anforderungen als zwei gleichhohe und gleichwertige Berge (“twin peaks”) zu sehen, die sich iterativ und im gegenseitigen Wechselspiel immer weiter entwickeln und verfeinern. Somit bilden die Spitzen der Berge den Anfangspunkt und man arbeitet sich weiter bis zum Boden vor.
Definition des Twin Peak Model – kurz und knapp:
Das Twin Peaks Model hilft Ihnen bei folgenden Problemstellungen:
I’ll Know It When I See It (IKIWISI – “Ich weiß es, wenn ich es sehe.”).
Oftmals lassen sich erst Anforderungen ermitteln, wenn Anwender das System testen konnten. Mit dem Twin Peaks Model beim Software-Engineering können Sie frühzeitig Prototypen entwickeln, mit denen Sie Feedback der Anwender einholen und dadurch iterativ zur gewünschten Lösung gelangen.
Reaktion auf Veränderung.
Projekte müssen mit Veränderung umgehen. Häufig ändern zum Beispiel Stakeholder ihre Meinung, wodurch sich auch die Anforderungen ändern. Wie im agilen Manifest niedergeschrieben, müssen Sie auf Veränderungen reagieren, anstatt am Plan festzuhalten. Mit dem Twin Peaks Model gelingt es Ihnen, trotz sich wandelnder Anforderungen eine stabile Architektur zu erarbeiten.
Lesen Sie hier, um mehr über das agile Manifest und das agile Projektmanagement zu erfahren >>
Commercial off-the-shelf software (COTS – “Kommerzielle Produkte aus dem Regal“).
Softwarearchitekten stehen in der Regel bereits existierende Komponenten zur Verfügung, um ihre Architektur zu entwerfen. Durch den Einsatz geeigneter Lösungen können Sie die Kosten bei der Entwicklung senken. Das Twin Peaks Model hilft Ihnen dabei, solche “kommerziellen Produkte aus dem Regal” frühzeitig zu identifizieren und einzusetzen.
Mit objectiF RPM entwickeln Sie Architektur und Anforderungen parallel zueinander.
Um das Twin Peaks Model erfolgreich anwenden zu können, müssen Sie also einen Software-Architekt in Ihr Projektteam integrieren – natürlich schon vor Start des Projekts. Was bedeutet das Twin Peaks Model für Software-Architekten und Requirements Engineer?
Der Architekt arbeitet mit bereits existierenden Lösungskomponenten und muss Randbedingungen sowie Schnittstellen wie zum Beispiel zu anderen Systemen berücksichtigen. Darüber hinaus behält er den gesamten Lebenszyklus des Systems im Blick. Daher arbeitet ein Software-Architekt mit unterschiedlichen Bereichen bzw. Rollen zusammen wie beispielsweise Requirements Engineers, Entwickler, Designer, Qualitätsmanager und Produktverantwortliche. Im Sinne des Twin Peaks Models hat ein Software-Architekt folgende Aufgaben:
Ein Requirements Engineer liefert funktionale und nicht-funktionale Anforderungen, die die Architektur erfüllen muss. Gleichzeitig beeinflusst die Architektur die definierten Anforderungen, indem sie ihnen z.B. technische Grenzen oder Zielkonflikte mit anderen Anforderungen aufzeigt. Im Kontext des Twin Peaks Models hat ein Requirements Engineer folgende Aufgaben zu bewältigen:
Diese Aufgaben führen die Rollen nach dem Twin Peaks Model iterativ und inkrementell durch – also fortlaufend in Kommunikation mit allen Beteiligten.
Lesen Sie hier, um mehr über Ziele und Zielkonflikte zu erfahren >>
Und wie verknüpfen Sie diese beiden Aufgabenbereiche in der Praxis? Wenn sich z.B. eine Anforderung ändert, müssen Sie wissen, welchen Komponenten davon betroffen sind. Vor allem in großen Projekten mit über Tausend Anforderungen mit dazugehörigen Systemelementen lässt sich dann schnell den Überblick verlieren. Um daher Requirements Engineering und Architekturentwurf miteinander in der Praxis zu verbinden, ist eine Tool-Unterstützung notwendig. Mit einem Tool können Sie z.B. Diagramme modellieren und so einzelne Anforderungen mit Blockdiagrammen oder individuellen Komponenten über realize-, refine– oder satisfy-Beziehungen verknüpfen. Auf diese Weise stellen Sie die notwendige Traceability sicher.
Lesen Sie hier, wie Sie den Systementwurf mit Tool durchführen >>
Entwickeln Sie Anforderungen und Architektur iterativ
Um zu einer Software-Lösung zu gelangen, die alle Stakeholder zufriedenstellt, dürfen Sie die Entwicklung der Anforderungen und Architektur nicht einfach streng voneinander trennen. Vielmehr müssen Sie – wie es das Twin Peaks Model vorschlägt – beide Tätigkeiten parallel und mit regelmäßiger Abstimmung aller Beteiligten durchführen. Aber wie lassen sich Anforderungen und Architekturmodelle effizient erstellen, parallel verfeinern und die Nachvollziehbarkeit wahren, wenn diese kontinuierlich Änderungen ausgesetzt sind? Wie stellen Sie die Qualität Ihrer Spezifikationen und Modelle sicher? Und wie können Sie die Kommunikation und den Austausch der Informationen zwischen allen Projektbeteiligten garantieren?
Diese Aufgaben erfordern Unterstützung durch ein Tool: Mit objectiF RPM können Sie zentral Ihre Anforderungen erfassen und Architekturmodelle erstellen. Dafür lassen sich zum Beispiel visuelle Darstellungsmittel wie Anforderungs-, Klassen- und Blockdiagramme einsetzen. Auf diese Weise können Sie u.a. Systemkomponenten mit zugehörigen Anforderungen einfach verbinden und die Traceability jederzeit sicherstellen. Das Tool unterstützt weiterhin Ihre Qualitätssicherung , indem Sie Ihre Anforderungen durch Reviews prüfen. Neugierig geworden?