Dokumentation von Software-Architekturen

Slides:



Advertisements
Ähnliche Präsentationen
1 Referenzmodelle für HISinOne Dr. Uwe Hübner, 02. Juli 2009.
Advertisements

Integrations- und Funktionstests im Rahmen des V-Modelles
Dokumentation von Software Architekturen unter Berücksichtigung von IEEE 1471 Vortrag an der FH Regensburg © Dr. Ulrich Margull, 2004 Dr. Ulrich.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme I nstitut für K ernenergetik und E nergiesysteme Rational Unified Process (RUP) - Definitionen.
Rational Unified Process (RUP) - Definitionen
UML Begleitdokumentation des Projekts
Institut für Theoretische Informatik TU Carolo-Wilhelmina zu Braunschweig Teamprojekt in Software Systems Engineering und Theoretischer Informatik Einsatz.
Vorgehensmodelle: Schwergewichtige Modelle
Spezifikation von Anforderungen
UML-Kurzüberblick Peter Brusten.
Vom Geschäftsprozess zum Quellcode
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Aufbau der Architekturdokumentation nach
Name des Vortragenden ‌ Klasse ‌‌‌ Ort / tt.mm.jjjj Anwendungsfalldiagramm.
Hessisches Sozialministerium Einführung eines betrieblichen prozessorientierten Arbeitsschutzmanagementsystems AMS-Workshop „Dokumentation“ Datum.
SE 2010, Paderborn Produktlinien-Engineering im SOA-Kontext.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
Key-Value Paare (KVP) - Metadaten für Kanäle speichern und nach MDF4 exportieren PM (V1.0)
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
A nwendungsfalldiagramm. Ü berblick  Allgemein  Anwendungsfalldiagramm in Stichpunkten  Zusammenhang  Anwendungsbereich  Diagramm.
Domänenmodellierung Georg Marth. Definition Domänenmodell ● Eine Zusammenfassung von Funktionen, Objekten, Daten und Relationen in einer Domäne. -Kang.
DEKRA Qualification. Eine Annäherung auf neun Seiten. entscheiden – machen – Wissen.
1 Das Dilemma des Architekten Ziel: ein gut designtes System, welches mit zukünftigen Anforderungen umgehen kann, ohne dass es zu Einschränkungen in der.
Wechsel von Oracle Cloud Control 12c zu 13c
Fachrichtung Technische Informatik
Modul 124, Woche 2 R. Zuber, 2015.
Unser neues Traditionen-arbeitsbuch—Praktische Anwendung
Architektur von Web-Anwendungen
Lösung der Aufgabe 1: Die Erweiterung des Diagramms auf „Winged Egde“ besteht in zwei Beziehungen, nr-Kante und vl-Kante, zwischen der Klasse Kante. Jede.
Präsentation "Geschäftsplan"
Entwicklung von produktionsorientierten Simulationskomponenten zur Stoffstromsimulation auf Basis einer Open Source Platform Referenten: Paul Jahr, Lars.
Konzept Blog/ePortfolio
Stefan Kurz, Werner Heinrich Universität Passau, Projekt InteLeC
Bei dieser Präsentation wird sicher eine Diskussion mit dem Publikum entstehen, die zu Aktionsschritten führt. Verwenden Sie PowerPoint, um diese Aktionsschritte.
Teamname „Projekttitel“
Digitalisierung erfolgreich umsetzen
Compiler für Eingebettete Systeme [CS7506]
Mensch-Maschine-Interaktion
Datenbanken Eine Einführung Kerstin Fröhlig, HHBK.
Geschäftsregeln in XÖV-Standards XÖV-Konferenz 2018
Compliance und betriebswirtschaftliche Integrität sicherstellen
Ein Sohn fragt den Vater
PI Infrastruktur in der Max-Planck-Gesellschaft
Geschäftsplanpräsentation
ER-Modell und Relationales Schema
Methodische Grundlagen des Software-Engineering
Titel der Schulungspräsentation
Geschäftsprojektplan
Studiengang Informatik FHDW
Datenbanksystem Von Anna und Robin.
Projektvorschlag für ISO 9001:2008-Implementierung
Geschäftsplanpräsentation
Da·ten·bank /Dátenbank/ Substantiv, feminin [die]
Studienphase 2.
9. Vererbung und Polymorphie
Geschäftsplanpräsentation
Präsentation von Darleen und Michèle
Use Cases Anwendungsfälle
The MIAMI Herald, 3rd-Party-Libraries, JBF WIKI
Neues aus der dezentralen Entwicklung
Wissenschaftliches Projekt
OO Analyse und Entwurf für Anwender
Service-Design in SEPA
Neues aus HORIZON Lessons Learned
OO Analyse und Entwurf für Anwender
Once Upon A Time In Austria
Was ändert sich im Vergleich zu Version 1.0?
Ein Sohn fragt den Vater
Hack2Sol – Powered by SAP
 Präsentation transkript:

Dokumentation von Software-Architekturen … nicht nur für Weicheier! Dr. Andreas Hörmann, Anwendungsentwicklung/Architektur/SE | JBFOne 2008

Ziel dieses Vortrags Sie verstehen, weshalb die Dokumentation von Software-Architekturen wichtig ist Sie haben eine Vorstellung davon, was wesentliche Bestandteile einer guten Architektur- Dokumentation sind Sie kennen die entsprechende Umsetzung der FIDUCIA in Form von SWAD

Agenda Hintergründe und Motivation Hintergründe und Motivation Einführung in SWAD Die wichtigsten Sichten von SWAD Umsetzung mit Dokumentationsbausteinen

Einordnung in den Software-Entwicklungsprozess Technisch Fachlich Anforderungs-spezifikation Konstruktion Einführung Betrieb Entwurf Entwicklungsphasen Plattform Guidelines (Host, JBF etc.) agree Standard- (aSA) und Subsystemarchitektur Fachliche Zielarchitektur (fZA) Richtlinien

Einordnung in den Software-Entwicklungsprozess Pflichtenheft Fachliche Konzeption Technische Programm- dokumentation Abnahme- Betriebs- Ergebnistypen Fachkonzept Programmkommentierung (Javadoc etc.) Programmhandbuch Systemhandbuch Vorlagen Technisch Fachlich Anforderungs-spezifikation Konstruktion Einführung Betrieb Entwurf Entwicklungsphasen Plattform Guidelines (Host, JBF etc.) agree Standard- (aSA) und Subsystemarchitektur Fachliche Zielarchitektur (fZA) Richtlinien

Einordnung in den Software-Entwicklungsprozess Technisch Fachlich Anforderungs-spezifikation Konstruktion Einführung Betrieb Entwurf Entwicklungsphasen Plattform Guidelines (Host, JBF etc.) agree Standard- (aSA) und Subsystemarchitektur Fachliche Zielarchitektur (fZA) Richtlinien Technische Konzeption Programm- dokumentation Software-Architektur- Dokumentation (SWAD) Pflichtenheft Fachliche Konzeption Technische Programm- dokumentation Abnahme- Betriebs- Ergebnistypen Fachkonzept Programmkommentierung (Javadoc etc.) Programmhandbuch Systemhandbuch Vorlagen

These: Echte Entwickler brauchen keine Dokumentation … Separates the men from the boys!

These: Die Wahrheit steckt im Programmcode …

Antithese: Darum ist Architektur-Dokumentation wichtig! Primäres Mittel zur effektiven Kommunikation über IT-Systeme Quellcode ist keine Architekturdokumentation: Umfang, Abstraktion etc. Auch Richtlinien (fZA, aSA) enthalten Freiräume, Optionen und ... weiße Flecken Grundlage für verteilte Entwicklung (imove, Vergabe externer Gewerke etc.) Überblick und Einstieg in IT-Systeme Lebensdauer übersteigt signifikant Erstellungszeit „Brainware“ ist keine geeignete Dokumentations- und Kommunikationsplattform Basis für Analyse und Bewertung Validieren durch Ausformulieren: Erst denken, dann tippen! Grundlage für Code- und Architektur-Reviews Bewertung von Qualitätseigenschaften Auswirkungsanalyse (impact analysis) bei Änderungen und Erweiterungen

Warum ein neuer Ergebnistyp? Existierende potentielle Kandidaten sind in die Jahre gekommen: Systemhandbuch Programmhandbuch … geben (zu) viele, oft spezifische Kapitel vor, die häufig leer bleiben … vermischen Aspekte von Konzeption, Installation und Betrieb … sind einseitig auf eine Plattform (Host) ausgerichtet … passen nicht zum HORIZON-Paradigma: EAM, SOA, Komponenten

Eine Vorgabe aus dem Elfenbeinturm? Nein! Grundlage für SWAD sind Ideen bzw. Vorarbeiten der so genannten „arc42“ Gruppe um Peter Hruschka und Dr. Gernot Starke ... die Erfahrungen aus vielen Entwicklungsprojekten in unterschiedlichen Branchen berücksichtigen … zahlreiche Best Practices zu diesem Thema umsetzen … hervorragend dokumentiert sind: Buch „Effektive Software-Architekturen“ Portal „www.arc42.de“

Agenda Hintergründe und Motivation Einführung in SWAD Die wichtigsten Sichten von SWAD Umsetzung mit Dokumentationsbausteinen

Anforderungen an eine „gute“ Architektur-Dokumentation Lesbar und verständlich Kurze und prägnante Beschreibungen Einheitliche Begrifflichkeit und Darstellungsstrukturen Steigender Detaillierungsgrad, Leser kann „Zoomfaktor“ wählen Konsistenz zu fachlichem Design und implementiertem Code „Keep it small and simple (KISS)“ Prinzip Keine Redundanzen – Verweise statt „Copy & Paste“ Flexibilität durch angemessene Vorgaben: Fixe Grobstruktur plus variabler Inhalt Wenige, klar abgegrenzte Dokumentationsbausteine Neutralität hinsichtlich Zielplattformen und Technologien „Single Documentation“ Ansatz Eine Dokumentation von Entwurf bis Konstruktion, die sukzessive verfeinert wird Anfängliches DV-Konzept (Soll) wächst zur Architekturdokumentation (Ist) heran

Diese Antworten gibt SWAD So fügt sich ein System in Strukturen seiner Umgebung ein Kontextsicht Verteilungssicht So ist es als eine Menge von Implementierungseinheiten strukturiert Bausteinsicht Datensicht So verhalten sich diese Elemente zur Laufzeit Laufzeitsicht Darum wurde so (und nicht anders) entworfen Entwurfsentscheidungen Architekturaspekte Bedeutung von Namen Glossar

Abgrenzung zur fachlichen Konzeption Informationen zum Projekt Anwendungsfälle Einbettung in fachliche Zielarchitektur Fachlicher Entwurf • Kanalspezifische Interaktion • Fachliche Komponenten und Services • Geschäftsobjekte • … Testfälle und -strategien Nichtfunktionale Anforderungen • Antwortzeiten • Mengengerüste • IT-Sicherheit • … Fachliche Konzeption Kontextsicht • Fachlich: Verweis auf Fachkonzept • Logisch: Einbettung in Gesamtsystem • Physisch: Kommunikationsbeziehungen Bausteinsicht • Überblick über alle Software-Bausteine • Black-/White-Box-Sicht pro Baustein Laufzeitsicht • Zusammenspiel der Bausteine Verteilungssicht • Abbildung auf Infrastruktur Datensicht Entwurfsentscheidungen Architekturaspekte Technische Konzeption Fach- konzept SWAD Ziel: Redundanzfreie, vollständige und angemessene Dokumentation von der Fachlichkeit bis zur Implementierung

Sichten als grundlegende Dokumentationselemente Herausforderung: IT-Systeme sind hochkomplexe Gebilde mit vielen Aspekten Lösung: Reduktion durch Abstraktion Einnahme eines Standpunktes Entfernung davon unnötiger Eigenschaften Schaffung einer vereinfachten Sicht auf Konzepte Analogie: Gebäudearchitektur

Sichten als grundlegende Dokumentationselemente /2 Für SWAD sind Sichten Modelle eines IT-Systems, die … von der Realität abstrahieren jeweils nur Teile einer Architektur aufzeigen sich auf bestimmte Details oder Aspekte konzentrieren die Darstellungskomplexität reduzieren Keine Sicht kann alle Aspekte einer Architektur aufzeigen! Best Practices für die Beschreibung von Sichten Sichten bestehen aus Diagrammen UND Erläuterungen … werden bei Bedarf Top-Down verfeinert werden … haben in der Regel 7+/- 2 Elemente pro Diagramm

Beispiel einer Sicht mit Optimierungspotential

Beispiel einer Sicht mit Optimierungspotential Das fällt auf … (Zu) Viele Aspekte in einer Sicht (Zu) Viele Details in einer Darstellung (Zu) Viele Elemente in einem Diagramm So könnte eine Optimierung aussehen … Eigene Sichten für Topologie, Infrastruktur, Software und Verteilung Bei Bedarf hierarchische Verfeinerung

Agenda Hintergründe und Motivation Einführung in SWAD Die wichtigsten Sichten von SWAD Umsetzung mit Dokumentationsbausteinen

Diese Antworten gibt SWAD (Reloaded) So fügt sich ein System in Strukturen seiner Umgebung ein Kontextsicht Verteilungssicht So ist es als eine Menge von Implementierungseinheiten strukturiert Bausteinsicht Datensicht So verhalten sich diese Elemente zur Laufzeit Laufzeitsicht Darum wurde so (und nicht anders) entworfen Entwurfsentscheidungen Architekturaspekte Bedeutung von Namen Glossar Vogelperspektive & Nachbarsysteme Kontextsicht Statische Struktur: Bausteine & Beziehungen Bausteinsicht A B B1 B2 B3 Wie arbeiten Bausteine zusammen? Laufzeitsicht C In welcher Umgebung laufen Bausteine ab? Verteilungssicht JBF IMS ORA

Diese Antworten gibt SWAD (Reloaded) So fügt sich ein System in Strukturen seiner Umgebung ein Kontextsicht Verteilungssicht So ist es als eine Menge von Implementierungseinheiten strukturiert Bausteinsicht Datensicht So verhalten sich diese Elemente zur Laufzeit Laufzeitsicht Darum wurde so (und nicht anders) entworfen Entwurfsentscheidungen Architekturaspekte Bedeutung von Namen Glossar Vogelperspektive & Nachbarsysteme Kontextsicht Statische Struktur: Bausteine & Beziehungen Bausteinsicht A B B1 B2 B3 Wie arbeiten Bausteine zusammen? Laufzeitsicht C In welcher Umgebung laufen Bausteine ab? Verteilungssicht JBF IMS ORA Vogelperspektive & Nachbarsysteme Kontextsicht

Die Kontextsicht Stellt eine Vogelperspektive oder konzeptionelle Übersicht dar Zeigt das System als Black-Box sowie dessen Verbindungen und Schnittstellen zur Umwelt Ist eine Sicht von außen auf hoher Abstraktionsebene Gliedert sich in folgende Aspekte: Fachlicher Kontext = die wichtigsten Anwendungsfälle (Use-Cases), in der Regel als Referenz auf fachlichen Entwurf Logischer Kontext = Schnittstellen zur Außenwelt, zu Anwendern, Betreibern und Fremdsystemen, inklusive der über diese Schnittstellen transportierten Daten oder Ressourcen Physischer Kontext = Technische Systemumgebung, Prozessoren, Kommunikationskanäle und -beziehungen

Beispiel: Logischer Kontext von System A

Beispiel: Physischer Kontext von System A

Beispiel: Logischer Kontext von System B

Beispiel: Physischer Kontext von System B

Diese Antworten gibt SWAD (Reloaded) So fügt sich ein System in Strukturen seiner Umgebung ein Kontextsicht Verteilungssicht So ist es als eine Menge von Implementierungseinheiten strukturiert Bausteinsicht Datensicht So verhalten sich diese Elemente zur Laufzeit Laufzeitsicht Darum wurde so (und nicht anders) entworfen Entwurfsentscheidungen Architekturaspekte Bedeutung von Namen Glossar Vogelperspektive & Nachbarsysteme Kontextsicht Statische Struktur: Bausteine & Beziehungen Bausteinsicht A B B1 B2 B3 Wie arbeiten Bausteine zusammen? Laufzeitsicht A B C In welcher Umgebung laufen Bausteine ab? Verteilungssicht JBF IMS ORA

Die Bausteinsicht Beschreibt die Zerlegung des Systems in Implementierungs- und Architekturbausteine Nutzt bei Bedarf eine hierarchische Abfolge von Black-Box- und White-Box- Beschreibungen Zeigt primär die statische Struktur des Systems Beantwortet folgende Fragen: Wie wird das System in Komponenten, Pakete, Klassen oder Subsysteme aufgeteilt? Welche notwendigen Abhängigkeiten zwischen Bausteinen gibt es?

Hierarchische Verfeinerung der Bausteinsicht Black-Box Beschreibung = Baustein-Außensicht Zweck/Verantwortung Schnittstellen Ablageort/Quellcodeverwaltung … White-Box Beschreibung = Baustein-Innensicht Zeigt Aufbau mit lokalen Bausteinen 1-n Enthält dafür jeweils eine eigene Black-Box Beschreibung

Beispiel: Bausteinsicht von System C

Beispiel: Bausteinsicht von System C

Diese Antworten gibt SWAD (Reloaded) So fügt sich ein System in Strukturen seiner Umgebung ein Kontextsicht Verteilungssicht So ist es als eine Menge von Implementierungseinheiten strukturiert Bausteinsicht Datensicht So verhalten sich diese Elemente zur Laufzeit Laufzeitsicht Darum wurde so (und nicht anders) entworfen Entwurfsentscheidungen Architekturaspekte Bedeutung von Namen Glossar Vogelperspektive & Nachbarsysteme Kontextsicht Statische Struktur: Bausteine & Beziehungen Bausteinsicht A B B1 B2 B3 Wie arbeiten Bausteine zusammen? Laufzeitsicht A B C In welcher Umgebung laufen Bausteine ab? Verteilungssicht JBF IMS ORA

Die Laufzeitsicht Beschreibt, welche Bestandteile des Systems zur Laufzeit existieren und wie diese zusammenwirken Ergänzt die Bausteinsicht um die dynamische Struktur des Systems Elemente sind Instanzen von Implementierungsbausteinen sowie deren Informations- und Kontrollflüsse Dokumentiert primär spezielle Aspekte der Laufzeit: Wie arbeiten die Systemkomponenten zur Laufzeit zusammen? Wie werden die wichtigsten Anwendungsfälle (Use-Cases) durch die Architekturbausteine bearbeitet? Welche Instanzen von Architekturbausteinen gibt es zur Laufzeit und wie werden diese gestartet, überwacht und beendet? Wie arbeiten Systemkomponenten mit externen und vorhandenen Komponenten zusammen? Wie startet das System (etwa notwendige Startskripte, Abhängigkeiten von externen Subsystemen, Datenbanken, Kommunikationssystemen etc.)?

Beispiel: Laufzeitsicht von System C

Beispiel: Laufzeitsicht von System D

Diese Antworten gibt SWAD (Reloaded) So fügt sich ein System in Strukturen seiner Umgebung ein Kontextsicht Verteilungssicht So ist es als eine Menge von Implementierungseinheiten strukturiert Bausteinsicht Datensicht So verhalten sich diese Elemente zur Laufzeit Laufzeitsicht Darum wurde so (und nicht anders) entworfen Entwurfsentscheidungen Architekturaspekte Bedeutung von Namen Glossar Vogelperspektive & Nachbarsysteme Kontextsicht Statische Struktur: Bausteine & Beziehungen Bausteinsicht A B B1 B2 B3 Wie arbeiten Bausteine zusammen? Laufzeitsicht A B C In welcher Umgebung laufen Bausteine ab? Verteilungssicht JBF IMS ORA

Die Verteilungssicht Beschreibt die Abbildung der Implementierungsbausteine auf die zugrunde liegende Infrastruktur Ergänzt die Baustein- und Laufzeitsicht um die Deployment-Struktur des Systems Elemente dieser Sicht sind Hardware-Knoten, ihre Verbindungen untereinander sowie die dort installierten Laufzeitkomponenten Zeigt bei Bedarf auch Leistungsdaten und Parameter der beteiligten Elemente Speichergrößen Kapazitäten Mengengerüste

Beispiel: Verteilungssicht von System C

Agenda Hintergründe und Motivation Einführung in SWAD Die wichtigsten Sichten von SWAD Umsetzung mit Dokumentationsbausteinen

Umsetzung mit Dokumentationsbausteinen Hauptdokument „Software-Architektur-Dokumentation (SWAD)“ Ist auf jeden Fall zu erstellen Vorlage für Microsoft Word in DB „EW-Richtlinien“, Kapitel 4.1.3.1

Umsetzung mit Dokumentationsbausteinen /2 Optionale Ergänzung durch „Software-Baustein-Dokumentation (SWBD)“ Für Implementierungseinheiten mit umfangreicher Funktionalität und/oder Reuse Kann zusätzlich erstellt werden Vorlage für Microsoft Word in DB „EW-Richtlinien“, Kapitel 4.1.3.1

SWAD – The Big Picture Software- Dokumentation (SWAD) Baustein- (SWBD) White-Box-Beschreibung B1 B2 B3 Black-Box-Beschreibung Verteilungssicht JBF IMS ORA Kontextsicht Laufzeitsicht A C Bausteinsicht Entwurfs- entscheidungen Architektur- aspekte Einführung, Überblick Datensicht Software- Dokumentation (SWAD) Baustein- (SWBD) Fachkonzept Code

… nicht nur für Weicheier! Zusammenfassung … nicht nur für Weicheier! Architektur-Dokumentation ist primäres Mittel zur Kommunikation über IT-Systeme Gute Dokumentation ist redundanzfrei, strukturiert, vollständig und angemessen Sichten fokussieren auf wichtige Aspekte und reduzieren die Darstellungskomplexität Die Software-Architektur-Dokumentation „SWAD“ ist die Umsetzung dieser Prinzipien in der FIDUCIA

… nicht nur für Weicheier! Fragen? – Diskussion? … nicht nur für Weicheier! Dr. Andreas Hörmann Anwendungsentwicklung └ Architektur └ Software Engineering (SE) andreas.hoermann@fiducia.de +49 721 4004 2057

Ihr IT-Partner Danke!