Softwarearchitektur

Aus Thoms Wiki
Zur Navigation springenZur Suche springen


„Softwarearchitektur ist die Summe aller wichtigen Entscheidungen. Wichtige Entscheidungen sind alle Entscheidungen, die im Verlauf der weiteren Entwicklung nur schwer zu ändern sind."
Philippe Kruchten

Softwarearchitekt

  • Übersetzer
  • Techniker
  • Visionär
  • Planer
  • Analyst
  • Manager
  • Problemlöser
  • Hausmeister - z.B. Codereview - Aufpassen, dass der Quellcode nicht verschmutzt
  • Verantwortung (dass die Software langfristig funktionstüchtig bleibt)
  • Vetoerecht - darf auch mal Nein sagen

Dokumentation

  • Verständnis schaffen
  • Aufwände verringern (vorher und nachher)
  • Vorgehen nachvollziehbar machen
  • Entscheidungen begründen
  • UML: https://de.wikipedia.org/wiki/Unified_Modeling_Language
  • https://arc42.org
  • Tutorials, FAQs, Guidelines/Checklisten, Entscheidungs- und Bewertungstabellen, Gesprächsprotokolle
  • So viel beschreiben wie nötig, nicht so viel wie möglich!

UML

MV*

MV*

  • MVC - Model View Controller
  • MVP - Model View Presenter
    • Passive View
    • Supervising Presenter
  • MVVM - Model View ViewModel (DataBinding zwischen View und ViewModel)
    • Presentation Model

Die Darstellung ist die View. Die Datenhaltung/die Geschäftslogik ist das Model. Trennung der Verantwortlichkeiten.

  • PAC - Presentation Abstraction Control
  • Flux (insbesondere bei Vue.js, React oder Angular)

Weiteres

  • CQRS Command Query Responsibility Segregation

Literatur

  • Lilienthal, Carola: Langlebige Software-Architekturen: Technische Schulden analysieren, begrenzen und abbauen. 2. Aufl. Heidelberg: Dpunkt.Verlag GmbH, 2017.
  • Design Patterns: Elements of Reusable Object-Oriented Software (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) (= GOF)