Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Kai Kopp Geändert vor über 5 Jahren
1
Dokumentationsverfahren für Software Architekturen
Jan Weinschenker
2
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Agenda Motivation Grundlagen „Views & Beyond“ Zusammenfassung Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
3
Motivation
4
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Motivation Wozu der Aufwand? Kommunikationsgrundlage Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
5
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Motivation Wozu der Aufwand? Damit man weiß, was vor sich geht Planvolles Vorgehen Sinn und Zweck der Software? Laufzeitverhalten? Ressourcenverbrauch? Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
6
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Motivation Wozu der Aufwand? (Formale) Architektur-Analyse Beschreibungssprachen / ADL ATAM1-Methode [CKK02] Jemand braucht einen Plan „Jagt auf roter Oktober“: Ein Russe geht nicht mal aufs Klo ohne einen Plan! foo(); 1 Architecture Tradeoff Analysis Method Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
7
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Motivation Motivation Je komplexer ein Projekt, desto … mehr Beteiligte, desto … mehr Kommunikation ist erforderlich Verteilte Systeme sind i.d.R. sehr komplex Dokumentation ist unbeliebt. Niemand schreibt gerne Dokus Wer vorschlägt, dokumentiert (=hat verloren) Dennoch: Doku macht Sinn Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
8
Grundlagen
9
Was ist Software Architektur?
Grundlagen / Wiederholung(?) Was ist Software Architektur? Die Software Architektur eines Programms oder Informationssystems ist die Struktur oder sind die Strukturen des Systems, welche Software Elemente, die extern sichtbaren Bestandteile dieser Elemente, die Beziehungen unter ihnen beinhalten. [BCK03] Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
10
Was ist Software Architektur?
Grundlagen / Wiederholung(?) Was ist Software Architektur? The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution [IEEE1471] 40+ weitere Definitionen: [SEI05] Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
11
Was ist Software Architektur?
Grundlagen / Wiederholung(?) Was ist Software Architektur? Eine Grundlage für Arbeitsteilung Salopp gesagt: „Divide and Conquer“ „Now mind your own Business“ „So how do these things work together?“ [CBB+03] Nothing works until everything works Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
12
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Grundlagen / Wiederholung(?) Stakeholder Wer ist am Projekt beteiligt? Projektteam(s) Entwickler / Tester Architekt(en) Vorwissen / Interessen sind unterschiedlich Kunde(n) Geldgeber Anwender Chef Externe Nicht-Techniker Marketing Verkauf Controlling Anwender … Architekt steht eventuell über den Projektteams Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
13
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Grundlagen / Wiederholung(?) Stakeholder Welche Information ist für wen interessant? Notation: Formal oder nicht Formal? Welche Details … … sind von Bedeutung? … sind überflüssig? … bergen Risiken? Wer braucht eher den groben Überblick? In wie weit abstrahieren? Win32-API -> Gefahr PDF? Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
14
Dokumentation & Beschreibung
Grundlagen Dokumentation & Beschreibung Dokumentation Soll der zwischenmenschlichen Kommunikation dienen Beschreibungssprachen sind Im Sinne dieses Vortrags formale Notationen Bestandteil der Dokumentation Von Fachleuten für Fachleute Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
15
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Grundlagen - Dokumentation und Beschreibung Sichten / Views Bla „Documenting an architecture is a matter of documenting the relevant views and then adding documentation that applies to more than one view.“ [Cle05] Bla Bla Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
16
Dokumentation & Coding
Grundlagen Dokumentation & Coding Architecture is what makes the sets of parts work together as a successful whole. Architecture documentation is what tells developers how to make it so. [CBB+03] You are here! Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
17
Dokumentation & Information
Grundlagen Dokumentation & Information In vielen Fällen soll Dokumentation nur einen schnellen Überblick verschaffen Ohne: Formale Notationen Vollständigkeit Wau-Effekt! Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
18
ADL - Beschreibungssprachen
Grundlagen ADL - Beschreibungssprachen Aesop Adage Meta-H C2 Rapide SADL UniCon Wright ACME xACME ADML UML 1.* ? UML 2.0 ? Informal Architectural Interchange Description Language Simulation und Analyse von Architekturen zur Laufzeit Flugzeug-navigation und –steuerung (IBM) Echtzeitsysteme für Flugzeuge Spezifikation und Analyse von Interaktion Objektorientierte Modellierung Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
19
Hauptteil
20
Dokumentationsverfahren
Views & Beyond (V&B) Umfassender Ansatz zur Dokumentation von softwareorientierten Architekturen Carnegie Mellon University [CBB+03, SEI05] ANSI-IEEE „Best practice“, nicht auf Software beschränkt [IEEE1471] Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
21
Architektonische Sichten
Dokumentationsverfahren Architektonische Sichten Bla Jeder Stakeholder hat seine eigene Sicht Jede Architektur hat n Seiten / Sichten Bla Bla Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
22
Sichten in V&B: Viewtypes
Dokumentationsverfahren – Module Viewtype Sichten in V&B: Viewtypes Module Viewtype Statische Sicht der Elemente Implementationseinheiten Component-And-Connector Viewtype Laufzeitverhalten der Elemente Interaktion der Elemente Allocation Viewtype Interaktion mit der (Nichtsoftware-)Umgebung Menschen, Hardware, Dateisysteme, … Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
23
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Module Viewtype Module Viewtype Konzeptioneller Überblick Zerlegung der Architektur in implementierbare Einheiten Statische Strukturen Elemente Module Relationen Is part of Depends on Is a Uses … Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
24
Konzeptioneller Überblick
Dokumentationsverfahren – Module Viewtype Konzeptioneller Überblick Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
25
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Module Viewtype Module Viewtype - UML Key: UML Servicebus Architektur im Ferienclub Uses-Style Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
26
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Module Viewtype Module Viewtype - ACME System Ferienclub = { Component enterpriseServiceBus = { Port outBound; Port inBound; }; Component service = { Connector upLink = { Role caller; Role callee; Connector downLink = { Attachment enterpriseServiceBus.outBound to downLink.caller; Attachment service.inBound to downLink.callee; Attachment enterpriseServiceBus.inBound to upLink.callee; Attachment service.outBound to upLink.caller; Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
27
Module Viewtype - Informal
Dokumentationsverfahren – Module Viewtype Module Viewtype - Informal Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
28
Module Viewtype - Informal
Dokumentationsverfahren – Module Viewtype Module Viewtype - Informal Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
29
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Module Viewtype Module Viewtype Wahl der Notation abhängig vom Stakeholder „Overloading“ sollte vermieden werden Wo möglich, abstrahieren! In Architekturen denken, nicht in Datenstrukturen! Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
30
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Module Viewtype Zusammenfassung Module sind die Grundbausteine Im Module Viewtype werden die Module und ihre Beziehungen untereinander dokumentiert Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
31
Component-and-Connector
Dokumentationsverfahren – Component-and-Connector Viewtype Component-and-Connector Dokumentation von Elementen, die zur Laufzeit existieren Flüssen von Informationen Verhalten/Interaktion Elemente Komponenten Konnektoren Relationen attachment Verbinden Komponenten mit Konnektoren Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
32
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Component-and-Connector Viewtype C&C Komponenten Komponenten sind für Applikationslogik oder Speicherung zuständig Komponenten kommunizieren mit der Umgebung über ihre Ports Unterschied Port zu UML-Interface Interface Statisch; Port zur Laufzeit Interface Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
33
C&C Komponenten - Ports
Dokumentationsverfahren – Component-and-Connector Viewtype C&C Komponenten - Ports Interfaces der Komponenten Keine Interfaces im Sinne von UML Interfaces können in UML nicht instantiiert werden Trennung zwischen Interface und realisierender Klasse Gebraucht wird die semantische Trennung von Port und Komponente Unterschied Port zu UML-Interface Interface Statisch; Port zur Laufzeit Interface Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
34
C&C Komponenten - Ports
Dokumentationsverfahren – Component-and-Connector Viewtype C&C Komponenten - Ports Diagrammtyp: Konnektoren Ports UML 2.0 Composite Structure Provides / Requires Ports, Konnektoren und Provides/Requires in UML 2.0 Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
35
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Component-and-Connector Viewtype C&C - Konnektoren Interaktion, die zur Laufzeit stattfindet Steht für eine spezifische Form der Kommunikation Interface zu den Komponenten: Rolle Beispiele Transaktionen, RPC, Multicast-Messaging, … Konnektoren können für sehr Komplexe zusammenhänge stehen Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
36
Rollen von Konnektoren
Dokumentationsverfahren – Component-and-Connector Viewtype Rollen von Konnektoren Konnektoren können für sehr Komplexe zusammenhänge stehen Key: UML Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
37
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Component-and-Connector Viewtype C&C – Naiv mit UML Schlecht! Key: UML Servicebus Architektur im Ferienclub C&C-Style Igitt, Pfeile Minimalistisch, aber es fehlen: Interna der Schnittstellen/Ports Rollen Interfaces Ports Kardinalitäten der Ports -> Ein Objekt ESB könnte mehrere Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
38
C&C – Overloading mit UML
Dokumentationsverfahren – Component-and-Connector Viewtype C&C – Overloading mit UML Schlecht! Port – Schnittstelle klar getrennt, aber jetzt sind die Ports auch Objekte, genau wie ESB und Service -> unglücklich Wäre so als würde man für eine Tür und ein Haus das selbe Symbol nehmen Assoziationen mit Rollen Kardinalitäten der Ports Key: UML Servicebus Architektur im Ferienclub – C&C-Style Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
39
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Component-and-Connector Viewtype C&C – UML 2.0 Erkläre: was will ich Architektonisch darstellen? Warum geht das mit dieser Darstellung so gut? Begriffe gab es so auch schon in ACME: Port, Connector, Roles Key: UML2.0 Servicebus Architektur im Ferienclub C&C-Style Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
40
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Interfaces Interfaces Treffpunkt zweier unabhängiger Entitäten, an dem sie miteinander interagieren oder kommunizieren [CBB+03] Jedes Element einer Architektur hat Interfaces Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
41
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Interfaces Interfaces Was muss kommuniziert / dokumentiert werden? Syntax / Signatur Semantik Ausnahmen / Fehler Pre-/Postconditions Qualitätsattribute Wie läuft die Interaktion ab? Nicht: Wie ist die Implementierung? Semantik Was ist das Ergebnis eines Aufrufs? Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
42
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Component-and-Connector Viewtype Zusammenfassung Der C&C Viewtype dokumentiert das Laufzeitverhalten einer Architektur Arbeitende Elemente Kommunikation Ressourcenzugriffe Wichtig, wenn es um Performance und Verfügbarkeit geht Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
43
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Allocation Viewtype Allocation Viewtype Dokumentation der Architektur und der Umgebung der Nutzung von Hardware der Zuständigkeiten Grafische Notation nicht immer notwendig Elemente Software Elemente Hardware Dateisysteme Personen/Gruppen Relationen Allocated-to Responsible Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
44
Allocation Viewtype Key: UML – Deployment eines Webservices
Dokumentationsverfahren – Allocation Viewtype Allocation Viewtype Key: UML – Deployment eines Webservices Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
45
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Allocation Viewtype Allocation Viewtype Key: Informal Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
46
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Dokumentationsverfahren – Allocation Viewtype Zusammenfassung Allocation ► Mapping der Software Architektur auf ihre Umgebung und beteiligte Personen Zuständigkeiten Hardware Räumlichkeiten Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
47
Masterarbeit
48
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Masterarbeit Masterarbeit Evaluierung von ADLs Dokumentationsverfahren im Kontext Verteilte Systeme Tauglichkeit / Untauglichkeit für Aspekt x Verbesserungsvorschläge Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
49
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Fragen Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
50
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Literatur [BCK03] Len Bass, Paul Clements, and Rick Kazman. Software Architecture in Practice. Series in Software Engineering. Addison Wesley, 2. Edition, 2003. [BKB02] Leonard J. Bass, Mark Klein, and Felix Bachmann. Quality attribute design primitives and the attribute driven design method. In PFE '01: Revised Papers from the 4th International Workshop on Software Product-Family Engineering, pages , London, UK, ACM, Springer-Verlag. [BKM01] Len Bass, Mark Klein, and Gabriel Moreno. Applicability of general scenarios to the architecture tradeoff analysis method. Technical Report CMU/SEI-2001-TR-014, School of Computer Science - Carnegie Mellon University, 2001. Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
51
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Literatur [CBB+03] Paul Clements, Felix Bachmann, Len Bass, et al. Documenting Software Architectures. Series in Software Engineering. Addison Wesley, 1. edition, 2003. [Cle05] Paul Clements. Comparing the sei’s views and beyond approach for documenting software architectures with ansi-ieee Technical Report CMU/SEI-2005-TN-017, School of Computer Science - Carnegie Mellon University, Juli 2005. [CKK02] Paul Clements, Rick Kazman und Mark Klein: Evaluating Software Architectures. Series in Software Engineering. Addison Wesley, 1. Auflage, 2002. [GMW97] David Garlan, Robert Monroe, and David Wile. Acme: an architecture description interchange language. In CASCON '97: Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research, page 7. ACM, IBM Press, 1997. Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
52
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Literatur [GS94] David Garlan and Mary Shaw. An introduction to software architecture. Technical Report CMU-CS , Carnegie Mellon University, January 1994. [SEI05] SEI: Carnegie Mellon Software Engineering Institute, Software Architecture for Software-Intensive Systems, Oktober 2005. [Sha01] Mary Shaw. The coming-of-age of software architecture research. In ICSE '01: Proceedings of the 23rd International Conference on Software Engineering, page 656, Washington, DC, USA, IEEE Computer Society. Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
53
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Literatur [SWLM02] Mikael Svahnberg, Claes Wohlin, Lars Lundberg, and Michael Mattsson. A method for understanding quality attributes in software architecture structures. In SEKE '02: Proceedings of the 14th international conference on Software engineering and knowledge engineering, pages ACM, ACM Press, 2002. [IEEE 1471] IEEE Std 1471 Recommended Practice for Architectural Description, 2000 [OMG_UML] Definition von UML2.0 der OMG [CG01] Cheng, Shang-Wen und David Garlan: Mapping Architectural Concepts to UML-RT. In: Proc. Parallel and Distributed Processing Techniques and Applications Conference, Las Vegas, NV, Seite 7. ACM, June 2001. Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
54
Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Köpfe Rick Kazman Linda Northrop, Henk Obbink, Len Bass David Garlan Dokumentationsverfahren für Softwarearchitekturen Jan Weinschenker
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.