Verdoppelung des Katalogumfangs:
Name, Kurzform | Single-Responsibility Prinzip |
Synonyme |
Eine-Verantwortlichkeit
Prinzip,
Prinzip
einer einzigen Verantwortung,
SRP |
Beschreibung |
Unter
dem Namen Single-Responsibility Prinzip findet man häufig
fälschlicherweise die Bedeutung eines anderen Prinzips, und zwar
„Separation of Concerns“ (SoC). Alle Formulierungen der Art
sind jedoch nicht das SRP, da dieses ansonsten nur ein leicht modifiziertes SoC wäre.
Die
Bezeichnung Single-Responsibility Prinzip wurde jedoch erstmalig
von Robert C. Martin eingeführt und setzt einen anderen Schwerpunkt:
„Es sollte nie mehr als einen Grund geben, eine Klasse zu ändern.“ [Martin2002] |
Erläuterung |
Das
Besondere an Martins Definition ist die Definition der
Verantwortung als „reason for change“. Die Modularisierung
erfolgt nicht nach den realweltlichen Entitäten, sondern auf der
Basis von Änderungserwartungen. In dieser Form ist das SRP
deutlich näher mit dem Prinzip der hohen Kohäsion verwandt.
Das
Prinzip drückt demnach eine Beziehung zwischen einer
Software-Entität und einer außerhalb der Software
liegenden Eigenschaft (einer Annahme über künftige
Anforderungsänderungen) aus.
Es
postuliert als Idealbild, dass die Änderung einer Anforderung
innerhalb eines Software-Systems nur in einem eng umgrenzten
Bereich zu Software-Änderungen führt.
Insgesamt wird durch diesen
Ansatz das Prinzip der hohen Kohäsion auf der Basis von
Änderungserwartungen präzisiert.
|
Beispiele |
Verantwortlichkeiten
nach [Larman 2002]:
Architektonisch:
|
Historie |
|
Art des Prinzips |
|
Grad der formalen Spezifikation | Gering auf Grund des starken Anteils außerhalb der Software liegender Eigenschaften (Änderungserwartungen). |
Vorteile | Liefert eine Operationalisierung des ansonsten nur schwer fassbaren Prinzips der hohen Kohäsion. Die Frage: „Was macht Software-Elemente zusammengehörig?“ wird auf neue Weise beantwortet. |
Nachteile |
|
Übergeordnete Prinzipien |
|
Abgleitete Prinzipien | - |
Qualitätsmerkmale |
Änderbarkeit
(+), Erweiterbarkeit (+)
Verständlichkeit (-),
Einfachheit (-) |
Links
Quellen
[DeMarco79]: Structured Analysis and System Specification, Tom DeMarco, Yourdon Press Computing Series (1979)
[Larman 2002] – Applying UML and Patterns, Second Edition, frei verfügbar unter http://www.cs.bgu.ac.il/~oosd051/uploads/stuff/ApplyingUMLandPatterns.pdf, Larman, C. (2002)
[Larman 2002] – Applying UML and Patterns, Second Edition, frei verfügbar unter http://www.cs.bgu.ac.il/~oosd051/uploads/stuff/ApplyingUMLandPatterns.pdf, Larman, C. (2002)
[Martin 2002] – Agile Software Development. Principles, Patterns, and Practices, Robert C. Martin (2002)
[PageJones88]: The Practical Guide to Structured Systems Design, 2d. ed., Meilir Page-
Jones, Yourdon Press Computing Series (1988)
[Yourdon
1979] - Structured
design. Fundamentals of a discipline of computer program and systems
design, Yourdon,
E., Constantine, L. (1979)