Be Software Architecture Wise
Be Wise Apps

Read in English · Leer en español · Lire en français

Kapitel 2 von 12 · Mittelstufe

Qualitätsmerkmale und architekturrelevante Anforderungen

Architektur ist dazu da, Qualitäten zu liefern: Geschwindigkeit unter Last, Betrieb auch dann, wenn Teile ausfallen, gefahrlose Änderbarkeit, Geheimhaltung von Daten. Dieses Kapitel zeigt, wie man vage Wünsche wie „schnell“, „zuverlässig“ und „sicher“ in präzise, testbare Anforderungen verwandelt, die Designentscheidungen lenken können. Es behandelt den Unterschied zwischen funktionalen Anforderungen, Qualitätsmerkmalen und Randbedingungen, das Qualitätsmodell nach ISO/IEC 25010, Qualitätsszenarien, die Arithmetik von Performance und Verfügbarkeit, das Auslegen auf Veränderung, Sicherheit, Benutzbarkeit und Kosten als Qualitäten sowie das Erheben, Priorisieren und Abwägen von Qualitätsmerkmalen. Es eignet sich für Entwicklerinnen und Entwickler auf dem Weg zur Architektur und für alle, die Anforderungen schreiben oder prüfen.

Videoeinführung in Kapitel 2

6 Min. · auf Englisch gesprochen, mit Untertiteln
Nur anhören (Audio)
Transkript lesen

Willkommen zu Kapitel 2: Qualitätsmerkmale und architekturrelevante Anforderungen. Architektur ist dazu da, Qualitäten zu liefern: Geschwindigkeit unter Last, Betrieb trotz ausfallender Teile, gefahrlose Änderbarkeit, Geheimhaltung von Daten. Dieses Kapitel zeigt, wie man vage Wünsche wie schnell, zuverlässig und sicher in präzise, testbare Anforderungen verwandelt, die Designentscheidungen lenken können.

Fragen Sie eine Gruppe von Stakeholdern, was ein System tun muss, und Sie erhalten eine Liste von Features: einen Flug suchen, einen Warenkorb bezahlen, einen Termin buchen. Fragen Sie, wie gut es das tun muss, und die Antworten werden vager: Es soll schnell sein, nicht ausfallen, sicher sein. Diese zweiten Antworten sind Qualitätsmerkmale, und um sie geht es in der Architektur vor allem. Eine Anforderung, die eine messbare Wirkung auf die Struktur eines Systems hat, heißt architekturrelevante Anforderung. Die meisten davon erweisen sich als Qualitätsmerkmale oder Randbedingungen, nicht als Funktionen.

Dieses Diagramm aus Abschnitt zwei Punkt eins verdeutlicht das. Zwei Ticketsysteme haben identische Features: Veranstaltungen ansehen, Plätze reservieren und bezahlen. Das eine verkauft Tickets für einen Gemeindesaal mit dreihundert Plätzen. Sein geschäftigster Moment bringt ein paar Anfragen pro Sekunde, also ist eine Webanwendung mit einer Datenbank die richtige Antwort: günstig, einfach und leicht zu ändern. Das andere verkauft eine Stadiontournee mit sechzigtausend Plätzen. Es muss einen tausendfach größeren Ansturm abfangen und darf nie denselben Platz zweimal verkaufen. Deshalb braucht es einen Seiten-Cache, einen virtuellen Warteraum, einen sorgfältig entworfenen Sitzplatzbestand, partitionierte Speicherung und eine Zahlungswarteschlange. Gleiche Funktionen, völlig verschiedene Architekturen. Der Unterschied kommt allein von Qualitätsmerkmalen und Randbedingungen.

Dieses Kapitel eignet sich für Entwicklerinnen und Entwickler auf dem Weg zur Architektur. Es eignet sich auch für alle, die Anforderungen schreiben oder prüfen. Sie brauchen etwas Sicherheit im einfachen Rechnen: Prozente, Multiplikation und Division. Es baut auf dem Gedanken aus Kapitel 1 auf, dass Architektur dazu da ist, die Anliegen der Stakeholder durch Abwägungen zu erfüllen. Dieses Kapitel macht diese Anliegen präzise. Und es führt zu Kapitel 3, das die Designprinzipien vorstellt, mit denen Architekten diese Qualitäten erreichen.

Es gibt acht Abschnitte. Abschnitt zwei Punkt eins trennt funktionale Anforderungen, Qualitätsmerkmale und Randbedingungen und spielt ein Konzertticketsystem am ersten Verkaufstag einer großen Tournee durch. Abschnitt zwei Punkt zwei stellt die internationale Norm für Produktqualität mit ihren neun Merkmalen vor und zeigt, wie man sie als Gedächtnisstütze statt als Formular nutzt. Abschnitt zwei Punkt drei vermittelt die nützlichste Technik des Kapitels: das sechsteilige Qualitätsszenario, das „muss schnell sein“ in eine testbare Aussage verwandelt.

So ist es aufgebaut. Ein Szenario erzählt eine kurze Geschichte, von links nach rechts. Eine Quelle, jemand oder etwas, erzeugt einen Stimulus: ein Ereignis, auf das das System reagieren muss, etwa ein Ansturm von Anfragen oder ein Serverabsturz. Der Stimulus trifft ein Artefakt, das ganze System oder einen Teil davon, in einer Umgebung: Normalbetrieb, Spitzenlast, ein eingeschränkter Zustand oder ein Angriff. Das Artefakt antwortet, und die Antwort wird an einem Antwortmaß gemessen: der Zahl. Stimulus und Antwortmaß sind die beiden Teile, die am häufigsten fehlen, und die beiden wichtigsten. Das Beispiel darunter fügt alles zusammen: Am Black Friday rufen fünfhundert Kunden pro Sekunde den Checkout auf, und Bestellungen werden im neunundneunzigsten Perzentil innerhalb von anderthalb Sekunden bestätigt, ohne verlorene Bestellungen.

Die Abschnitte zwei Punkt vier bis zwei Punkt sieben besuchen die Qualitäten, die Architekturen am häufigsten prägen. Abschnitt zwei Punkt vier behandelt Performance und Skalierbarkeit mit echter Arithmetik: Latenz und Durchsatz, Perzentile, Warteschlangen und die Grenzen zusätzlicher Prozessoren. Abschnitt zwei Punkt fünf tut dasselbe für Verfügbarkeit und Zuverlässigkeit: die Neunen, die Zeit zwischen Ausfällen, die Reparaturzeit und das Zusammenwirken von Komponenten in Reihe und parallel. Abschnitt zwei Punkt sechs behandelt die Qualitäten der Veränderung: Änderbarkeit, Testbarkeit und Deploybarkeit. Abschnitt zwei Punkt sieben fasst Sicherheit, Benutzbarkeit und Barrierefreiheit, Interoperabilität, Kosten, Energieeffizienz, Betriebssicherheit und regulatorische Qualitäten zusammen.

In diesem Kapitel beginnt der Kurs zu rechnen. Sie sehen, warum eine Anfrage an einen zu neunzig Prozent ausgelasteten Server im Mittel das Zehnfache seiner Bedienzeit braucht. Keine der Rechnungen ist schwerer als Schularithmetik. Zahlen entlarven auch falsche Sicherheit. Eine mittlere Antwortzeit von hundertzwanzig Millisekunden kann verbergen, dass eine von fünfzig Anfragen länger als eine Sekunde dauert. Deshalb spezifizieren Fachleute Perzentile. Abschnitt zwei Punkt acht schließt den Kreis. Kein System kann zugleich schnell, verfügbar, sicher, günstig und leicht änderbar sein. Er zeigt, wie ein Workshop und ein Utility Tree aus einer Vielzahl von Meinungen eine Rangliste machen und welche Qualitäten im Konflikt stehen.

Wenn Sie sich nur eines aus diesem Kapitel merken, dann dies: Eine Qualität ist erst dann eine Anforderung, wenn sie einen Stimulus, einen Kontext und ein Maß hat. „Der Bezahlvorgang muss schnell sein“ ist ein Wunsch. Wenn in der Freitagabendspitze zweitausend Kunden pro Minute Bestellungen absenden, werden neunundneunzig Prozent der Bezahlvorgänge innerhalb von anderthalb Sekunden abgeschlossen: Das ist eine Anforderung. Man kann darauf hin entwerfen, sie testen, überwachen und mit Belegen über sie streiten.

Die Abschnitte zwei Punkt eins bis zwei Punkt drei lesen Sie am besten der Reihe nach, weil der Rest des Kapitels ihr Vokabular verwendet. Danach können Sie gezielt zu den Qualitäten springen, die Sie brauchen. Das ganze Kapitel zu lesen dauert etwa drei Stunden. Wenn ein Abschnitt rechnet, rechnen Sie selbst mit. So werden die Zahlen zu Werkzeugen, die Sie in einem echten Gespräch nutzen können. Jeder Abschnitt endet mit einigen Fragen zur Selbstkontrolle. Beantworten Sie sie im Kopf, bevor Sie nachsehen. Wenn Sie so weit sind, legen Sie den optionalen Kapiteltest ab: zwanzig Multiple-Choice-Fragen und zwei schriftliche Antworten, in etwa fünfundvierzig Minuten. Die Bestehensgrenze liegt bei achtzig Prozent.

Das ist der Überblick über Kapitel 2. Beginnen Sie mit Abschnitt zwei Punkt eins, wo wir funktionale Anforderungen, Qualitätsmerkmale und Randbedingungen trennen und ein Ticketsystem an seinem geschäftigsten Tag kennenlernen. Bis gleich.

Kapitel herunterladen (PDF)In der App lesen

Auf einen Blick

Das lernen Sie

  • Funktionale Anforderungen, Qualitätsmerkmale und Randbedingungen unterscheiden und eine architekturrelevante Anforderung erkennen.
  • Das Produktqualitätsmodell ISO/IEC 25010:2023 als Checkliste nutzen, ohne dass es zu Papierkram wird.
  • Sechsteilige Qualitätsszenarien mit messbaren Antwortmaßen schreiben und vage Aussagen in testbare verwandeln.
  • Mit Perzentilen, Littles Gesetz, einfachen Warteschlangenformeln und dem Amdahlschen Gesetz rechnen, um über Performance und Skalierbarkeit zu urteilen.
  • Verfügbarkeit aus den Neunen, aus MTBF und MTTR sowie für in Reihe und parallel geschaltete Komponenten berechnen.
  • Erklären, wie Änderbarkeit, Testbarkeit, Deploybarkeit, Sicherheit, Benutzbarkeit, Kosten und Nachhaltigkeit spezifiziert und erreicht werden.
  • Qualitätsanforderungen mit einem Utility Tree erheben und priorisieren und die Abwägungen zwischen konkurrierenden Qualitäten erklären.

Bevor Sie beginnen

Kapitel 1, besonders die Abschnitte über Stakeholder und Anliegen sowie über Entscheidungen und Abwägungen. Etwas Sicherheit im einfachen Rechnen (Prozente, Multiplikation und Division).

Zeit

Etwa 3 Stunden Lesezeit; 45 Minuten für den Test.

Schlüsselbegriffe

Qualitätsmerkmal · Randbedingung · architekturrelevante Anforderung · ISO/IEC 25010 · Qualitätsszenario · Antwortmaß · Latenz und Durchsatz · Perzentil · Littles Gesetz · Verfügbarkeit · MTTR · Taktik · Utility Tree · Fitness Function

Warum Qualitäten und nicht Features über die Architektur entscheiden

Fragen Sie eine beliebige Gruppe von Stakeholdern, was ein System tun muss, und Sie erhalten eine Liste von Features: einen Flug suchen, einen Warenkorb bezahlen, einen Termin buchen. Fragen Sie, wie gut es das tun muss, und die Antworten werden meist vager: Es soll schnell sein, es soll nicht ausfallen, es soll sicher sein, es soll leicht zu ändern sein. Diese zweiten Antworten sind Qualitätsmerkmale, und um sie geht es in der Architektur vor allem. Dieselbe Liste von Features lässt sich mit einem einzigen Programm auf einem Server umsetzen oder mit vierzig Services, verteilt über drei Kontinente. Was diese Designs unterscheidet, ist nicht, was das System tut, sondern wie viele Menschen es gleichzeitig bedienen muss, wie viel Ausfallzeit das Unternehmen verkraften kann, wie oft sich der Code ändern wird und wie sensibel die Daten sind.

Kapitel 1 beschrieb Architektur als die Menge der bedeutsamen Entscheidungen, die die Anliegen der Stakeholder durch Abwägungen erfüllen. Dieses Kapitel macht diese Anliegen präzise. Eine Anforderung, die eine messbare Wirkung auf die Struktur eines Systems hat, ist eine architekturrelevante Anforderung, und die meisten davon erweisen sich als Qualitätsmerkmale oder Randbedingungen statt als Funktionen. Sie früh zu finden und so zu formulieren, dass sie sich testen lassen, gehört zum Wertvollsten, was ein Architekt tut.

Wie das Kapitel zusammenhängt

Abschnitt 2.1 trennt funktionale Anforderungen, Qualitätsmerkmale und Randbedingungen, erklärt, warum viele Architekten den Begriff „nichtfunktionale Anforderungen“ meiden, und spielt ein Konzertticketsystem an dem Tag durch, an dem der Vorverkauf für eine große Tournee beginnt. Abschnitt 2.2 stellt das Produkt-Qualitätsmodell nach ISO/IEC 25010:2023 mit seinen neun Merkmalen vor und zeigt, wie man es als Gedächtnisstütze statt als auszufüllendes Formular nutzt. Abschnitt 2.3 vermittelt die nützlichste Technik des Kapitels: das sechsteilige Qualitätsszenario, das „muss schnell sein“ in eine testbare Aussage verwandelt.

Die Abschnitte 2.4 bis 2.7 besuchen dann die Qualitäten, die Architekturen am häufigsten prägen. Abschnitt 2.4 behandelt Performance und Skalierbarkeit mit echter Arithmetik: Latenz und Durchsatz, Perzentile, Tail-Latenz, Littles Gesetz, Warteschlangen und das Amdahlsche Gesetz. Abschnitt 2.5 tut dasselbe für Verfügbarkeit und Zuverlässigkeit: die Neunen, die Mean Time Between Failures und die Mean Time to Repair sowie die Verfügbarkeit von Komponenten in Reihe und parallel. Abschnitt 2.6 behandelt die Qualitäten der Veränderung (Änderbarkeit, Testbarkeit und Deploybarkeit), und Abschnitt 2.7 fasst Sicherheit, Benutzbarkeit und Barrierefreiheit, Interoperabilität, Kosten, Energieeffizienz, Betriebssicherheit und regulatorische Qualitäten zusammen.

Abschnitt 2.8 schließt den Kreis. Er zeigt, woher Qualitätsanforderungen kommen, wie ein Quality Attribute Workshop und ein Utility Tree aus einer Vielzahl von Meinungen eine Rangliste machen, welche Qualitäten mit welchen im Konflikt stehen und wie Fitness Functions die wichtigen Qualitäten nach dem Bau der Architektur weiter automatisch prüfen.

Von vagen Wünschen zu Zahlen

In diesem Kapitel beginnt der Kurs zu rechnen. Sie ermitteln, wie viele Anfragen aus einer Ankunftsrate und einer Antwortzeit gleichzeitig in Bearbeitung sind, warum eine Anfrage an einen Server, der zu 90 % ausgelastet ist, im Mittel das Zehnfache seiner Bedienzeit braucht, warum ein Job, der zu 10 % seriell ist, auf sechzehn Prozessoren verteilt nur eine 6,4-fache Beschleunigung bringt und wie viele Minuten Ausfallzeit pro Jahr ein Versprechen von „vier Neunen“ tatsächlich zulässt. Keine der Rechnungen ist schwerer als Schularithmetik, aber sie verändern Gespräche: Aus „die Datenbank ist langsam“ wird „der Connection Pool ist für 100 gleichzeitige Anfragen ausgelegt, und laut Littles Gesetz brauchen wir in der Abendspitze 400“.

Zahlen entlarven auch falsche Sicherheit. Eine mittlere Antwortzeit von 120 Millisekunden kann verbergen, dass eine von fünfzig Anfragen länger als eine Sekunde dauert; deshalb spezifizieren Fachleute das 95. oder 99. Perzentil. Eine Anforderung ohne Antwortmaß lässt sich nicht testen, und eine Anforderung, die sich nicht testen lässt, wird stillschweigend geopfert, sobald ein Termin näher rückt.

Abwägungen sind die eigentliche Aufgabe

Kein System kann zugleich maximal schnell, verfügbar, sicher, günstig und leicht änderbar sein. Caching erhöht die Geschwindigkeit, erschwert aber die Konsistenz; Verschlüsselung und zusätzliche Prüfungen schützen Daten, erhöhen aber die Latenz; Redundanz steigert Verfügbarkeit und Kosten zugleich; flexible Plug-in-Designs erleichtern Änderungen und erschweren die Vorhersage der Performance. Das Kapitel behandelt Qualitäten daher als konkurrierende Ziele, die im Kontext gewichtet werden müssen, nicht als abzuhakende Kästchen. Die Kunst des Architekten besteht darin zu wissen, welche zwei oder drei Qualitäten für dieses System am wichtigsten sind, sie präzise zu formulieren und Designs zu wählen, deren Schwächen dort liegen, wo das Unternehmen sie sich leisten kann.

Die Designtechniken, mit denen jede Qualität erreicht wird, die sogenannten Taktiken, werden hier nur in Grundzügen vorgestellt. Spätere Kapitel bauen sie aus: Designprinzipien in Kapitel 3, Architekturstile in den Kapiteln 5 und 6, Daten-, Sicherheits-, Resilienz- und Cloud-Praktiken in den Kapiteln 7 bis 10 und Bewertungsmethoden wie die ATAM und Fitness Functions in Kapitel 11.

Der eine Gedanke, den Sie mitnehmen sollten

Wenn Sie sich nur eines aus diesem Kapitel merken, dann dies: Eine Qualität ist erst dann eine Anforderung, wenn sie einen Stimulus, einen Kontext und ein Maß hat. „Der Bezahlvorgang muss schnell sein“ ist ein Wunsch. „Wenn in der Freitagabendspitze 2000 Kunden pro Minute Bestellungen absenden, werden 99 % der Bezahlvorgänge innerhalb von 1,5 Sekunden abgeschlossen“ ist eine Anforderung. Man kann darauf hin entwerfen, sie testen, überwachen und mit Belegen über sie streiten, und sie sagt allen, vom Product Owner bis zum Betriebsteam, wie Erfolg aussieht.

Die 8 Abschnitte

2.1 · Mittelstufe · 18 Min.Funktionale und QualitätsanforderungenWas ein System tun muss, wie gut es das tun muss und welche Entscheidungen bereits feststehen. Lernen Sie, die architekturrelevanten Anforderungen zu erkennen, die ein Design wirklich bestimmen.Lesen →2.2 · Mittelstufe · 18 Min.QualitätsmodelleDas Produktqualitätsmodell ISO/IEC 25010:2023 und seine neun Merkmale, was sich seit 2011 geändert hat, andere Listen wie FURPS+ und wie man ein Modell als Checkliste nutzt, ohne in Papierkram zu versinken.Lesen →2.3 · Mittelstufe · 18 Min.QualitätsszenarienDas sechsteilige Szenario, das „schnell“, „sicher“ und „leicht zu ändern“ in testbare Anforderungen verwandelt, mit Beispielen für sechs Qualitäten, typischen Fehlern und dem Weg vom Szenario zur Fitness Function.Lesen →2.4 · Mittelstufe · 24 Min.Performance und SkalierbarkeitLatenz und Durchsatz, Perzentile und Tail-Latenz, Littles Gesetz, Warteschlangen und die Auslastungsklippe, Amdahlsches Gesetz und das Universal Scalability Law, mit durchgerechneten Beispielen und einem Überblick über Performance-Taktiken.Lesen →2.5 · Mittelstufe · 22 Min.Verfügbarkeit und ZuverlässigkeitWas Verfügbarkeit, Zuverlässigkeit und Fehlertoleranz wirklich bedeuten, wie man Neunen, MTBF und MTTR berechnet, wie sich Komponenten in Reihe und parallel verbinden und mit welchen Taktiken, RTO und RPO man sie erreicht.Lesen →2.6 · Mittelstufe · 22 Min.Änderbarkeit und DeploybarkeitWie man Veränderung spezifiziert und darauf hin entwirft: was sich ändert, wer es ändert und wann, Taktiken gegen Folgeänderungen, Testbarkeit durch Steuerbarkeit und Beobachtbarkeit, Deploybarkeit und die DORA-Metriken für die Auslieferung.Lesen →2.7 · Mittelstufe · 22 Min.Sicherheit, Benutzbarkeit und mehrSicherheit als messbare Qualität, die Teilmerkmale und Taktiken der Sicherheit nach ISO/IEC 25010, Benutzbarkeit und Barrierefreiheit nach WCAG 2.2, Interoperabilität, Kosten pro Transaktion, Software Carbon Intensity, Betriebssicherheit, Observability und regulatorische Qualitäten.Lesen →2.8 · Mittelstufe · 22 Min.Erheben und priorisierenWoher Qualitätsanforderungen kommen, wie der Quality Attribute Workshop des SEI und der Utility Tree der ATAM sie aufdecken und gewichten, wie man mit Konflikten zwischen Qualitäten umgeht und wie Fitness Functions sie dauerhaft absichern.Lesen →

Kapiteltest

Prüfen Sie Ihr Verständnis von Kapitel 2

Optional: 20 Multiple-Choice-Fragen und 2 kurze schriftliche Antworten, jedes Mal neu aus einem Pool von 72 Fragen gezogen. Bestehensgrenze 80 %. Wer jeden Kapiteltest und anschließend die Abschlussbewertung besteht, erhält das Be Wise Abschlusszertifikat.

Den Test zu Kapitel 2 in der App ablegen

Weiterführende Literatur