Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Dokumentationsverfahren für Software Architekturen

Ähnliche Präsentationen


Präsentation zum Thema: "Dokumentationsverfahren für Software Architekturen"—  Präsentation transkript:

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


Herunterladen ppt "Dokumentationsverfahren für Software Architekturen"

Ähnliche Präsentationen


Google-Anzeigen