C) Review, Heuristiken, Metriken, Prototypen A) Technische Einflussfaktoren System Requirements Specification Architektur erstellen D) Architektur Dokument Architektur prüfen B) Organisatorische Einflussfaktoren 1 Einflussfaktoren zu A) Technische Einflussfaktoren ­ Werkzeuge, Programmiersprache ­ Architekturstile ­ ... zu B) Organisatorische Einflussfaktoren ­ Zeit ­ Budget ­ Team: Qualifikation, Anzahl ­ "Make or Buy", Möglichkeit zur Unterbeauftragung ­ Risiko durch Produkt (z.B. Kernkraftwerk) für Projekt Wartbarkeit Mit zusätzlichen teuren externen Mitarbeitern, kann man ggf. Zeit sparen Zeit Risiko Stored Procedures sind schnell aber schädigen die Wartbarkeit Einfachheit Geld Performanz Eine einfache Architektur hat keine Möglichkeiten für Erweiterungen vorgesehen Flexibilität 2 ad C) Prüfung von Architekturen i) mit Reviews ­ Beteiligte: Architekt, SRS­Verantwortlicher, Entwickler, (Komponenten­/Integrations)­Tester ­ Testaspekte > Berücksichtigung aller Systemanforderungen > Berücksichtigung aller Einflussfaktoren > Umsetzbarkeit > Verständlichkeit ­ Güte der Architektur: Weak Coupling und Strong Cohesion Ein "weak coupling" würde man zerstören durch - Breite Schnittstellen > viele public Methoden > Methoden mit vielen Übergabeparametern - Vererbung über Komponentengrenzen hinweg - Fehlerwerfen über Komponentengrenzen hinweg - Zyklische Abhängigkeit der Komponenten Vollständigkeit mit Traceability­Matrix dokumentieren Anforderungen aus SRS SRS_LZ_001 (auf Windows und Mac laufen) Beschreibung, Stichwort zur Umsetzung in Architektur Programmiersprache: Java 3 ii) Heuristiken Sichtbarkeit von Klassen, Methoden, Variablen einschränken (private, ...) Zerlegt in Komponenten? durchgängige Entwurfsentscheidung 4 Durchgängige (integre) Architektur Verletzung der Integrität 5 YAGNI You ain't gonna need it 6 iii) Prüfung mit Metriken z.B. mit dem Distanzmaß instabil stabil Instabilität konkret abstrakt Distanzmaß Abstraktheit 7 8 iv) Validieren mit Prototypen Alle Stakeholder-Anforderungen erfüllt? Alle Systemanforderungen (insbesondere Performanz und Effizienz betreffen) erfüllt? 9 techn. + org. Einflussfaktoren siehe arc42.de ad D) Architekturdokument Ein Architekturdokument enthält üblicherweise vier Sichten 1) Kontextsicht: Grenzen und Einbettung des Systems und damit Schnittstellen erkennen (müsste aus SRS folgen) (Kontextdiagramm) 2) Statische Sicht/Baustein­Sicht: Internen hierarchischer Aufbau des Systems aus Komponenten und Subkomponenten erkennen (Klasendiagramme, Komponentendiagramme) 3) Dynamische Sicht: Welche Bausteine rufen welche anderen in welcher Reihenfolge auf (Sequenzdiagramme), mit welcher "Logik" laufen diese ab (Aktivitätsdiagramm) 4) Verteilungssicht: Beschreiben welche Artefakte es gibt, auf welcher physikalischen Infrastruktur dies Laufen (Deploymentdiagramme) "Cross cutting concerns" - Persistenz - Fehlerbehandlung - Logging - Authorisierung - ... 10 11 ad 1.) Kontextsicht Zur Erinnerung: Alle Schnittstellen beschreiben - Nutzer-System-Schnittstellen - System-System-Schnittstellen (4 IO-Ebenen) (nicht sichtbar: Laufzeitumgebung) 12 ad 2) Bausteinsicht typische Diagramme: Komponenten und Klassendiagramme UML 1.0 Elemente eines Komponentendiagramms: ­ Komponenten ­ Schnittstellen (Lollipop) ­ Port ­ Beziehung (uses) ­ Klassen (sind auch erlaubt) UML 2.x Oracle IDB := SQL, Connection 13 Beispiele für Schnittstellen ­ Methodenaufruf: API der Komponente > Methoden mit Name, Übergabe­ und Rückgabeparametern > Nach außen sichtbares Verhalten der Komponente (auch im Fehlerfall) (z.B. Rückgabeparameter, Fehler, die geworfen werden, ...) (Komponenten aus Blackbox­Sicht beschreiben) ­ Dateischnittstelle ­ Webservice ­ ... Falls keine API: Immer alle IO­Ebenen bedenken 14 ad 3.) Dynamische Sicht Sequenzdiagramme synchroner Aufruf asynchroner Aufruf Unbekannter Sender 15 Aktivitätsdiagramme Parallelisierungsknoten Synchronisationsknoten AND Signale: Senden bzw. empfangen an/von alle(n) 16 Sonderfall Objektknoten Modellierung von Funktionen, nicht von Daten Input = Output Input (hier Laborwert) muss zu Output (hier Hämoglobin) passen, d.h. muss allgemeiner sein 17 ad 4.) Verteilungssicht Notationselemente ­ Knoten / Node ­ Artefakte / Dateien ­ Verteilungsbeziehung ­ Kommunikationsbeziehungen Verschiedene Stereotypen - artifact (das allgemeinste) - file - document - source - library - executable 18 19