Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die...

34
© ITech Progress GmbH 2012 Bewertung von Software- Architekturen Dipl.-Ing. Mahbouba Gharbi @email: [email protected]

Transcript of Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die...

Page 1: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012

Bewertung von Software-

Architekturen

Dipl.-Ing. Mahbouba Gharbi

@email: [email protected]

Page 2: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 2

Agenda

Motivation

Bewertung von Software-Architekturen

Qualitative Bewertung

Quantitative Bewertung

Wie tief, wie gut, wie sinnvoll?

Page 3: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 3

Symptome von degeneriertem Design

Degeneriertes

Design

Zerbrechlich •Änderungen an

einer Stelle

führen zu

unvorhergesehen

en Fehlern an

anderer Stelle

Starr •Modifikationen sind

schwierig

•Betreffen eine Vielzahl

an abhängigen

Komponenten

Schlechte

Wiederverwendung •Komponenten können

aufgrund zu vieler

Abhängigkeiten nicht

einzeln wiederverwendet

werden

Page 4: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 4

Agenda

Motivation

Bewertung von Software-Architekturen

Qualitative Bewertung

Quantitative Bewertung

Wie tief, wie gut, wie sinnvoll?

Page 5: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 5

Warum wird eine Architektur bewertet?

Wissen über das zu entwickelnde System

Machbarkeit

Kosten

Qualität

You cannot control what you cannot measure

Tom DeMarco

Page 6: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 6

Bewertung in Software-Projekten

Bewertung

Bewertung von Prozessen: • Entwicklungs- oder Betriebsprozesse

• organisatorische Aspekte

• Einsatz von Ressourcen

• kaum Aussagen über Qualität

Bewertung von Artefakten: • Anforderungen

• Entwürfe

• Quellcode

• Dokumente

Page 7: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 7

Bewertung von Software-Architekturen

Bewertung nach Beschaffenheit oder Güte

Bewertung von Qualitätsmerkmalen

Hilft Risiken zu identifizieren

Bewertung sollte regelmäßig und so früh wie möglich stattfinden

Bewertung der Artefakte in Zahlen

Geben gute Hinweise für strukturelle Veränderungen

Keine Aussage über Funktionsfähigkeit und Qualität zur Laufzeit

Benötigen fachlichen und technischen Kontext um vergleichbar zu sein Tipp: Daten sammeln aus

Vergleichsprojekten

Qualitativ Quantitativ

Page 8: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012

Methoden zur Bewertung – qualitativ

8

Software-Qualität

Qualitäts-

merkmal 1

Qualitäts-

merkmal 2

Qualitäts-

merkmal n

Qualitäts-

teilmerkmal 1 Qualitäts-

teilmerkmal 2

Qualitäts-

teilmerkmal 3

Qualitäts-

teilmerkmal m

Qualitätsindikatoren

Page 9: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012

Qualitätsmerkmale nach ISO/IEC 9126 (ab 2005

25000)

9

Funktionalität

Zuverlässigkeit

Benutzbarkeit Effizienz

Übertragbarkeit

Änderbarkeit

Page 10: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 10

Qualitative Bewertung von Software-Architekturen

ATAM

Architecture Tradeoff Analysis Method

Methodisches Vorgehen zur Architekturbewertung

Ziel der Architekturbewertung

Definition der von den maßgeblichen Stakeholdern geforderten Qualitätsmerkmale in möglichst konkreter Form

Hilfsmittel

Szenarien

Qualitätsbäume

Liste möglicher Risiken der Architektur

Page 11: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 11

ATAM

Entwickelt am ‚Software Engineering Institute‘ der Carnegie

Mellon Universität

Dient dazu, eine passende Software Architektur für ein Software

System auszuwählen

Führende Methode im Bereich der Architektur-Software-

Bewertung

Eine Bewertung mit der ATAM dauert normalerweise drei bis vier

Tage

Page 12: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 12

Bewährte Vorteile von ATAM

eindeutige Attributs-Qualitätsanforderungen

verbesserte Architektur-Dokumentation

dokumentierte Grundlage für architektonische Entscheidungen

identifiziert Risiken frühzeitig im Lebenszyklus

verbesserte Kommunikation zwischen den Beteiligten

Page 13: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 13

Voraussetzungen für ATAM

Benötigt wird

Architekt des Systems

Verantwortlicher fachlicher

Ansprechpartner oder Auftraggeber

Architekturdokumentation

Page 14: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 14

ATAM - Konzeptionelles Schema

Business

Drivers

Quality

Attributes

Architectural

Plan

Architectural

Approaches

Scenarios

Architectural

Decisions

Tradeoffs

Sensitivity

Points

Non-Risks

Risks Risk Themes

Analysis

Impacts

Distilled into

Page 15: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 15

Vorgehen bei der Bewertung

Vorbereitung

Kickoff-Phase

Bewertungsphase

Abschluss

Maßgebliche Stakeholder identifizieren

Bewertungsmethode vorstellen

Geschäftsziele und Architekturziele vorstellen

Architektur des Systems vorstellen

Qualitätsbaum und Szenarien erstellen

Architekturansätze bzgl. Szenarien analysieren

Resultate präsentieren

Page 16: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 16

Qualitätsbaum erstellen

Hierarchische Form

Allgemeine Merkmale stehen links (bzw. oben)

Speziellere Anforderungen stehen rechts (bzw. unten)

Spezifische Qualität

Performance

Latenz Durchsatz

Erweiterbarkeit

Neue Middleware

Neue Produktkategorie

Verfügbarkeit

Bei Hardwarefehler

Bei Bedienfehler

Page 17: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 17

Qualitätsbaum erstellen

Wichtigste Qualitätsziele durch Szenarien beschreiben

Spezifische Qualität

Performance

Latenz Durchsatz

Erweiterbarkeit

Neue Middleware

Neue Produktkategorie

Verfügbarkeit

Bei Hardwarefehler

Bei Bedienfehler

Szenario:

System bedient > 1000 echt parallele

Benutzer mit Antwortzeit < 1 sek.

Szenario:

Neue Kategorie in < 30 PT Entwicklungsaufwand

realisierbar.

Page 18: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 18

Qualitätsbaum erstellen

Qualitätsmerkmale und Szenarien priorisieren

Spezifische Qualität

Performance

Latenz Durchsatz

Erweiterbarkeit

Neue Middleware

Neue Produktkategorie

Verfügbarkeit

Bei Hardwarefehler

Bei Bedienfehler

1 2 3 1 3 1

Priorität

Szenario:

System bedient > 1000 echt parallele

Benutzer mit Antwortzeit < 1 sek.

Szenario:

Neue Kategorie in < 30 PT Entwicklungsaufwand

realisierbar.

Page 19: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 19

Bewertung hinsichtlich der Qualitätsmerkmale

In kleinen Gruppen gemeinsam mit dem Architekten

Reihenfolge gemäß Prioritäten

Beantwortung verschiedener Fragen

Page 20: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 20

Bewertung hinsichtlich der Qualitätsmerkmale

Welche Architekturentscheidungen wurden zur Erreichung eines

Szenarios getroffen?

Welcher Architekturansatz unterstützt die Erreichung des Szenarios?

Welche Analysen, Prototypen oder Untersuchungen stützen diese

Entscheidung?

Wurden andere Qualitätsmerkmale oder

Architekturziele beeinflusst?

Welche Kompromisse wurden eingegangen?

Welche Risiken bestehen?

Page 21: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 21

Ergebnis

Überblick über

Die Güte hinsichtlich konkreter Szenarien und der

spezifischen Architekturziele

Risiken bei der Umsetzung der wichtigsten

Szenarien

Maßnahmen zur Verhinderung der Risiken

Szenarien die ohne Risiken erreicht werden können

Page 22: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 22

Bewertung von Software-Architekturen

Bewertung nach Beschaffenheit oder Güte

Bewertung von Qualitätsmerkmalen

Hilft Risiken zu identifizieren

Bewertung sollte regelmäßig und so früh wie möglich stattfinden

Bewertung der Artefakte in Zahlen

Geben gute Hinweise für strukturelle Veränderungen

Keine Aussage über Funktionsfähigkeit und Qualität zur Laufzeit

Benötigen fachlichen und technischen Kontext um vergleichbar zu sein Tipp: Daten sammeln aus

Vergleichsprojekten

Qualitativ Quantitativ

Page 23: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 23

Quantitative Metriken

Anforderungen

Anzahl der geänderten Anforderungen pro Zeiteinheit

Tests und Testfälle

Anzahl der Testfälle

Anzahl der Testfälle pro Klasse/Paket

Anzahl der Testfälle pro Anforderung

Testabdeckung

Fehler

Mittlere Zeit bis zur Behebung eines Fehlers

Anzahl der gefundenen Fehler pro Paket

Page 24: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 24

Quantitative Metriken

Prozesse

Anzahl der implementierten/getesteten

Features pro Zeiteinheit

Anzahl der neuen Codezeilen pro Zeiteinheit

Zeit für Meetings in Relation zur gesamten

Arbeitszeit

Verhältnis der geschätzten zu den benötigten

Arbeitstagen (pro Artefakt)

Page 25: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 25

Quantitative Metriken

Quellcode

Anzahl der Codezeilen (Lines of Code, LOC)

Abhängigkeitsmaße (Kopplung)

Anzahl der Kommentare in Relation zur Anzahl der Programmzeilen

Anzahl statischer Methoden

Komplexität (der möglichen Ablaufpfade, zyklomatische Komplexität)

Anzahl der Methoden pro Klasse

Vererbungstiefe

Page 26: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 26

Beispiel: Zyklomatische Komplexität

Niedrige zyklomatische Komplexität

Modul ist sehr komplex und zu schwer zu testen

Warnung kann unterdrückt werden, wenn

sich die Komplexität nur schwerlich verringern lässt

die Methode einfach zu verstehen, zu testen und zu

warten ist

Beispiel: Methoden mit umfangreichen switch-

Anweisungen

Modul ist einfach zu verstehen, zu

testen und zu pflegen

Hohe zyklomatische Komplexität

McCabe-Metrik, 1976 durch Thomas J. McCabe eingeführt

Zeigt die Anzahl voneinander unabhängiger linearer Pfade eines Softwaremoduls

Zyklomatische Komplexität = e − n + 2p e: Anzahl Kanten im Graphen

n: Anzahl Knoten im Graphen

p: Anzahl der einzelnen Kontrollflussgraphen (ein Graph pro Funktion/Prozedur)

Page 27: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 27

Agenda

Motivation

Bewertung von Software-Architekturen

Qualitative Bewertung

Quantitative Bewertung

Wie tief, wie gut, wie sinnvoll?

Page 28: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012

Architekturanalyse

begleitet den Entwicklungsprozess

Nicht nur die Architektur

muss bewertet werden,

28

sondern auch die

Umsetzung!

Page 29: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012

Wie tief?

29

qualitativ quantitativ

Beschaffenheit

Qualitätsmerkmale

Risiken Fehler

frühzeitig

kontinuierlich

Kennzahlen

Strukturelle

Veränderungen

Kontext

Page 30: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012

Wie tief?

30

Die eingesetzten Methoden

und Werkzeuge orientieren sich

an der Projektphase.

Die Werkzeugauswahl

orientiert sich an den zu

prüfenden Metriken.

Anzahl der Metriken sollte

minimiert werden

Analyse sollte auf

überschaubare Ausschnitte

konzentriert werden

Page 31: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012

Wie gut?

Codemetriken können gute Hinweise für strukturelle

Veränderungen von Software geben. Über Funktionsfähigkeit und

Qualität zur Laufzeit sagen sie hingegen nichts aus.

Effizienz und Effektivität der Architekturanalyse werden durch die

Werkzeugauswahl mitbestimmt.

Über Kennzahlen können Qualitätsmerkmale messbar und

verfolgbar und Architekturen vergleichbar gemacht werden.

Die Ergebnisse der Architekturanalyse müssen kommuniziert

werden.

31

Page 32: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012

Wie sinnvoll? Die Architekturanalyse

begleitet den Software-

entwicklungsprozess wie

z.B. Reviews und Tests.

Die Architekturanalyse

schafft einen gemeinsamen

Blick auf die Architektur.

Die Architekturanalyse

macht Architekturen

vergleichbar.

32

Architektur-

analyse

Regressions

-test

Akzeptanz-

test

Unittests Review

Die Architekturanalyse deckt Fehler und Risiken frühzeitig auf

und liefert Ansatzpunkte für Gegenmaßnahmen.

Page 33: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012

Fazit:

Architekturbewertung: Keine Noten aber mehr

Durchblick!

33

Page 34: Bewertung von Software- Architekturensich die Komplexität nur schwerlich verringern lässt die Methode einfach zu verstehen, zu testen und zu warten ist Beispiel: Methoden mit umfangreichen

© ITech Progress GmbH 2012 34

Referenzen

VL Software-Qualitätsmanagement, Universität Leipzig

Effektive Software-Architekturen – Ein praktischer Leitfaden

Gernot Starke, Hanser Verlag

DIN ISO/IEC 9126

ATAM: Method for Architecture Evaluation, R.Kazman, M. Klein,

P.Clements