Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:lehre:programmierkonzepte:ws2017:23:index

23. Single-Responsibility-Prinzip

Themen
Das Single-Responsibility-Prinzip
Beispiele für seinen Einsatz
Bedeutung im Gesamtkontext der Software-Architektur
Folien
PDF


Zentrale Aspekte

  • Ein Modul sollte nur Verantwortung
    gegenüber genau einem Akteur haben.
  • Jede Verantwortlichkeit ist eine
    (potentielle) Quelle für Veränderungen.
  • Verantwortlichkeiten richtig zu trennen,
    ist ein zentraler Aspekt jeglicher Software-Architektur.
  • Trennung der Verantwortlichkeiten ist nur dann wichtig,
    wenn unabhängige Änderungen real auftreten.
  • Eines der einfachsten Prinzipien für Software-Architektur –
    und eines der am schwersten korrekt umzusetzenden.

Weiterführende Literatur

Eine kommentierte und handverlesene Liste mit weiterführender Literatur zum Thema. Die Auswahl ist zwangsläufig subjektiv.

Das SRP wurde in dieser Form von Robert C. Martin formuliert, entsprechend findet es sich in seinen Büchern, vgl. dazu Kapitel 8 in [Martin, 2003Martin, Robert C. (2003): Agile Software Development. Principles, Patterns, and Practices, Prentice Hall, Upper Saddle River, New Jersey]. Eine leicht unformulierte und mit (in meinen Augen) deutlich zugänglicheren Beispielen versehene Fassung findet sich in Kapitel 7 in [Martin, 2018Martin, Robert C. (2018): Clean Architecture. A Craftman's Guide to Software Structure and Design, Prentice Hall, Boston].

Der Artikel, in dem „Conways Gesetz“ formuliert wurde, stammt aus dem Jahr 1968: [Conway, 1968Conway, Melvin E. (1968): How do committees invent?, Datamation 14:28-31].

  • Conway, Melvin E. (1968): How do committees invent?, Datamation 14:28-31
  • Martin, Robert C. (2003): Agile Software Development. Principles, Patterns, and Practices, Prentice Hall, Upper Saddle River, New Jersey
  • Martin, Robert C. (2018): Clean Architecture. A Craftman's Guide to Software Structure and Design, Prentice Hall, Boston
de/lehre/programmierkonzepte/ws2017/23/index.txt · Zuletzt geändert: 2020/09/30 21:35 von 127.0.0.1