Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Wenn's gut werden muss - Qualität für Softwarearchitekturen

Wenn's gut werden muss - Qualität für Softwarearchitekturen

Wie können Softwarearchitekten die Qualität von Systemen erreichen?
Was sollen sie tun, wenn es besonders (sicher/robust/performant ...) werden muss?

Dr. Gernot Starke

December 24, 2013
Tweet

More Decks by Dr. Gernot Starke

Other Decks in Programming

Transcript

  1. A R C H I T E K T Da

    es Qualität werden muss. 42
  2. Organisationen glauben immer noch, an Einzelaktionen. Beispiele aus 2011 und

    2012: • neues Vorgehensmodell -> bessere Software • neuer Chef -> Team wird „inhaltlich besser“ • neue Hardware -> Performance ab jetzt ok • ganzes Team auf Schulung -> Dokumentation ab jetzt besser • nur noch Standardsoftware -> Fehlerrate sinkt • nur noch ein externer Partner -> nur noch gute (externe) Mitarbeiter
  3. Was Stakeholder wollen... fast flexible foolproof (robust) nice'n easy (useable)

    correct secure User new features Manager: Kosteneffizienz Security-Officer: ?? Betreiber: Monitorbarkeit BSI:... TÜV:... <YFS>:
  4. Da es Qualität werden muss.... 42 Q Qualitätsziele genau festlegen

    Maßnahmen für Qualitätsziele planen Maßnahmen umsetzen Zielerreichung prüfen
  5. Qualitätsziele genau festlegen Requirements Engineering: Anforderungen klären, einfordern, finden, managen,

    abgleichen, beschreiben Methodische*Kompetenz* Technische*Kompetenz* Kommunika4ve* Kompetenz*
  6. Qualitätsziele genau festlegen Requirements Engineering: Anforderungen klären, einfordern, finden, managen,

    abgleichen, beschreiben Qualitätsbaum + Q-Szenarien [SEI] Planguage [Tom Gilb]
  7. Q-Baum und -szenarien • Spezifisch für Stakeholder und System •

    Gemeinsam mit Stakeholdern erarbeiten • Angemessen dokumentieren! Methodische*Kompetenz* Technische*Kompetenz* Kommunika4ve* Kompetenz*
  8. Maßnahmen für Qualitätsziele planen Methodische*Kompetenz* Technische*Kompetenz* Kommunika4ve* Kompetenz* Software Engineering:

    Lösungsansätze, Strategien, Taktiken für alle (!) Qualitätsziele Gegenseitige Konsequenzen berücksichtigen
  9. Maßnahmen für Qualitätsziele planen Ziel / Anforderung Maßnahme / Idee

    System kann pro Stunde 50 GByte an Schnittstelle X annehmen Input-Buffer für Schnittstelle „ Hardware-Cluster für Schnittstelle-X „ Asynchrone Verarbeitung Kunden erhalten <15 Min nach Einlieferung von Daten über X eine Quittung Trenne Verarbeitung in Einzelschritte Stelle Quittung nach möglichst wenigen Prüfschritten aus
  10. Maßnahmen für Qualitätsziele planen Ziel / Anforderung Maßnahme / Idee

    Ihr Ziel (Q-Szenario) #1 Ihre Maßnahme #1.1 „ Maßnahme #1.2 Q-Szenario #2 Maßnahme #2.1 „ Maßnahme #2.2 Maßnahme #2.3 ... ... explizit, schriftlich
  11. Methodische*Kompetenz* Technische*Kompetenz* Kommunika4ve* Kompetenz* (Some) Delivery Practices: Frühes Feedback Kommunikation

    und Transparenz im Team Fundierte Entscheidungen Methodische Architektur Clean Code Klare Schnittstellen Angemessene Dokumentation Passende Werkzeuge Wiederverwendung Konsistenz, Kohärenz, Kopplung Modularisierung Ausgewogenes Know-How <u.v.a.m.>
  12. Methodische*Kompetenz* Technische*Kompetenz* Kommunika4ve* Kompetenz* (Some) Delivery Practices: Frühes Feedback Kommunikation

    und Transparenz im Team Fundierte Entscheidungen Methodische Architektur Clean Code Klare Schnittstellen Angemessene Dokumentation Passende Werkzeuge Wiederverwendung Konsistenz, Kohärenz, Kopplung Modularisierung Ausgewogenes Know-How <u.v.a.m.>
  13. Methodische*Kompetenz* Technische*Kompetenz* Kommunika4ve* Kompetenz* (Some) Delivery Practices: Frühes Feedback Kommunikation

    und Transparenz im Team Fundierte Entscheidungen Methodische Architektur Clean Code Klare Schnittstellen Angemessene Dokumentation Passende Werkzeuge Wiederverwendung Konsistenz, Kohärenz, Kopplung Modularisierung Ausgewogenes Know-How <u.v.a.m.>
  14. Anforderungen & Randbedingungen klären technische Konzepte entwerfen Umsetzung begleiten Architektur

    kommunizieren Strukturen entwerfen Methodische*Kompetenz* Technische*Kompetenz* Kommunika4ve* Kompetenz*
  15. Methodische*Kompetenz* Technische*Kompetenz* Kommunika4ve* Kompetenz* (Some) Delivery Practices: Frühes Feedback Kommunikation

    und Transparenz im Team Fundierte Entscheidungen Methodische Architektur Clean Code Klare Schnittstellen Angemessene Dokumentation Passende Werkzeuge Wiederverwendung Konsistenz, Kohärenz, Kopplung Modularisierung Ausgewogenes Know-How <u.v.a.m.>
  16. Schnittstellen (Ressourcen-orientiert) Actor Ressource Baustein (Komponente, System) provided Interface Implementation

    konsumiert enthält, besteht aus interagiert mit Baustein über Interface required Interface Ressourcen: Methoden Funktionen Message-Endpunkt Daten Dateien Datenstruktur <...>
  17. Fazit • Betreiben Sie Architektur systematisch statt ad-hoc evaluate architecture

    clarify goals and constraints design technical concepts monitor implementation communicate architecture design structures
  18. Fazit • Bilden Sie sich (und Ihr Team) in allen

    Kompetenzbereichen voran! Methodische*Kompetenz* Technische*Kompetenz* Kommunika4ve* Kompetenz*
  19. Fazit • Definieren Sie Maßnahmen zu Ihren Qualitätsanforderungen Ziel /

    Anforderung Maßnahme / Idee System kann pro Stunde 50 GByte an Schnittstelle X annehmen Input-Buffer für Schnittstelle „ Hardware-Cluster für Schnittstelle- X „ Asynchrone Verarbeitung Kunden erhalten <15 Min nach Einlieferung von Daten über X eine Quittung Trenne Verarbeitung in Einzelschritte Stelle Quittung nach möglichst wenigen Prüfschritten aus