Entwickeln und Dokumentieren von Softwarearchitektur



Ähnliche Dokumente
Hochschule Darmstadt Fachbereich Informatik. Softwaretechnik II. 4.1 Darstellung der Architektur

Grundlagen Software Engineering

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Was ist Software-Architektur?

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

RUP Analyse und Design: Überblick

Der Rational Unified Process

Cloud Architektur Workshop

Product Line Engineering (PLE)

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Was ist Softwarearchitektur?

Business-Analyse Probleme lösen, Chancen nutzen

Software Engineering

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

THREAD ARCS: An Thread Visualization

3.4 Unified Process Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

Unified Communication Client Installation Guide

Software Engineering. Produktivitätsfaktoren! Kapitel 18

Review und Analyse von Softwarearchitekturen

Anwendungsbeispiele Sign Live! Secure Mail Gateway

Software-Engineering SS03. Zustandsautomat

Musterfragen ALLGEMEINE Systemlehre

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

Softwareentwicklungsprozess im Praktikum. 23. April 2015

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

System-Modellierung. statisches & dynamisches Modell. System Model. System Model

Sicherheit und Gesundheit in Kleinbetrieben Die Schlüssel zum Erfolg

Kapitel 1 Applikations-Architektur VI

conuno - WIR GESTALTEN FÜR SIE Development Services

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Softwareentwicklungspraktikum Sommersemester Grobentwurf

17 Architekturentwurf Vorgehen und Dokumentation

SEA. Modellgetriebene Softwareentwicklung in der BA

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

(BABOK-v3-Technik 10.41)

Jürgen Schwab, debis Systemhaus

SMS/ MMS Multimedia Center

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Übungsklausur vom 7. Dez. 2007

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Pragmatisches User Experience Design. Thomas Schmudde

Use Cases. Use Cases

Anforderungsgetriebene Webentwicklung mit Grails:

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

ELitE Bestell- und Lieferplattform für Informationen & Literatur

Phasen. Gliederung. Rational Unified Process

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

Best Practices für RM/RE in einem Prozess Framework Thomas Schröder

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Gliederung. Einführung Phasen Ten Essentials Werkzeugunterstützung Aktivitäten, Rollen, Artefakte Werkzeug zur patternorientierten Softwareentwicklung

Softwareanforderungsanalyse

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Test zur Bereitschaft für die Cloud

IT-Beratung: Vom Geschäftsprozess zur IT-Lösung

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Anforderungsmanagement Wo die Qualität beginnt...

Erfahrungsbreicht... Von der Auswahl bis zur Verwendung von Contour im Grossunternehmen.

Entwicklung mit Arbortext Editor 6.1

Prozess-Modelle für die Softwareentwicklung

München, Themenvorschläge für Abschlussarbeiten Zur Abstimmung mit Prof. Brecht

esearch one-single-point-of-information Federated Search Modul

ÜBUNG. Einführung in das IT- Projektmanagement WS 2012/13. Dr. The Anh Vuong

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

12.4 Sicherheitsarchitektur

Dreibeinige Stühle kippeln nicht Fachbereich und IT als gemeinsames Projekt-Team

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

1 Mathematische Grundlagen

Sicherheitsprofile Software as a Service. Sichere Nutzung von Cloud-Diensten

Unified Modeling Language (UML)

ECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN

Xesar. Die vielfältige Sicherheitslösung

Jochen Bauer

Software-Engineering

Rundum-G. Die Anforderungen durch ständig steigende

Arbeiten mit UMLed und Delphi

Inhaltsverzeichnis. 1. Fragestellung

Agile Softwareentwicklung in der Versicherungs-IT Fehlschlag oder Heilsbringer?

PUBLIC Dokumentationsübersicht

Tag des Datenschutzes

Requirements Engineering I

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Techniken der Projektentwicklungen

Arbeiten mit Workflows Installationsleitfaden Zur Installation des d3 Workflows

Presseinformationen CONATIVE CONTENT EDITORIALS SKALIERBARE DISTRIBUTION VON BRAND CONTENT AUF THEMENAFFINEN UMFELDERN

Wiederverwendung von automotive Software- Reifegradmodell, Technologie, Praxisbericht

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Die Anwendung von Work of Leaders in drei Schritten

Software Systems Engineering

Wien = Menschlich. freigeist.photography

Kapitel 10: Dokumentation

Formale und gesetzliche Anforderungen an die Software-Entwicklung für deutsche Banken. Markus Sprunck

8 Design Patterns. Events

«PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.»

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Software Engineering Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen

Transkript:

Entwickeln und Dokumentieren von Softwarearchitektur Best Practices in Entwurf und Kommunikation Burkhardt Renz Institut für SoftwareArchitektur der Technischen Hochschule Mittelhessen Sommersemester 2015

Übersicht Entwurf einer Softwarearchitektur Entwicklungsprozess und Architektur Best Practices Voraussetzungen Vorgehen Komponenten für die Funktionalität Qualitätsmerkmale und Mechanismen Detaillierung und Refactoring Dokumentation von Softwarearchitektur Perspektiven und Sichten Notationen Beispiele

Entwicklungsprozess und Softwarearchitektur Architektur ist nicht Phase des Entwicklungsprozesses, sondern Daueraufgabe Architektur als initialer Bauplan Interative Entwicklung fl Architekturverfeinerung und Architekturrefactoring Überprüfung architektonischer Richtlinien fl Erosion der Architektur verhindern Architektur und agiles Vorgehen Diskussion

Entwurf einer Softwarearchitektur Kein Königsweg oder Rezept Denn: Softwareentwicklung oft auf Neuland Leitlinie: Best Practices Erfahrungsschatz nutzen Architekturstile und -muster kennen Mechanismen für Qualitätsmerkmale kennen

Voraussetzungen Geschäftsziele Funktionale Anforderungen (einigermaßen) vollständig definiert; möglichst samt Anwendungsfälle Gegebenheiten des Anwendungsgebiets Einschränkungen/Festlegungen bezüglich der Infrastruktur Gegebenheiten des Softwareproduktionsprozesses definiert

Übersicht Entwurf einer Softwarearchitektur Entwicklungsprozess und Architektur Best Practices Voraussetzungen Vorgehen Komponenten für die Funktionalität Qualitätsmerkmale und Mechanismen Detaillierung und Refactoring Dokumentation von Softwarearchitektur Perspektiven und Sichten Notationen Beispiele

Initialen Achitekturentwurf finden Systemkontext definieren. Grundlage: Funktionale Anforderungen, Infrastruktur Domänenmodell erstellen. Grundlage: Funktionale Anforderungen, Anwendungsgebiet Techniken: Objektorientierte Modellierung, Informationsmodellierung, Geschäftsprozessmodellierung,... Typ der Problemstellung ò Architekturstil auch: Kombination von Stilen für Subsysteme Dekomposition in Komponenten und Konnektoren auf Basis der funktionalen Eigenschaften Initiale Architektur

Qualitätsmerkmale und Mechanismen Gewünschte Qualitätsmerkmale ermitteln Qualität für den Benutzer; Qualität der Entwicklung Qualitätsszenarien ermitteln Szenarien gegeneinander abschätzen: Trade-offs? Prioritäten? Mechanismen für Kernszenarien entwickeln und in die Architektur einbringen.

Detaillierung und Refactoring Anwendung von Mechanismen ñ Transformation von Qualitätsanforderungen in funktionale Komponenten ñ neue Komponenten, neue Konnektoren Anwendung von Entwurfsmustern ñ Einfluss auf Designzentren? Festlegung der Codestruktur: Abhängigkeiten von Code-Komponenten ñ Planung und Überwachung von Struktur im Code ñ Gleichzeitig Überprüfung der Architektur

Risiko im Vordergrund Architekturentwurf und agiles Vorgehen Lange Architekturphase up front nicht notwendig Stattdessen: Risiko im Fokus Identifizieren von Risiken, Priorisierung Mechanismus überlegen, der das Risiko vermindert Noch ein wichtiges Risiko?

Literatur Jan Bosch Design and Use of Software Architectures Harlow, UK: Addison-Wesley, 2000. Rick Kazman, Paul Clements, Len Bass Software Architecture in Practice Part Two Boston: Addison-Wesley, Third Edition 2012. George Fairbanks Just Enough Software Architecture: A Risk-Driven Approach Boulder, CO: Marshall & Brainard, 2012. Michael Stal, Stefan Tilkov, Markus Völter, Christian Weyer SoftwareArchitekTOUR - Podcast für den professionellen Softwarearchitekten Episode über Architektur-Refactoring www.heise.de/developer/podcast/

Übersicht Entwurf einer Softwarearchitektur Entwicklungsprozess und Architektur Best Practices Voraussetzungen Vorgehen Komponenten für die Funktionalität Qualitätsmerkmale und Mechanismen Detaillierung und Refactoring Dokumentation von Softwarearchitektur Perspektiven und Sichten Notationen Beispiele

Sichten der Softwarearchitektur Das Wesentliche der Architektur lässt sich in der Regel nicht in einer Sicht allein darstellen. Man unterscheidet deshalb verschiedene Sichten. Im konkreten Fall wählt man die passenden Sichten, um die Architektur darzustellen. Es gibt verschiedene Methoden, Softwarearchitektur darzustellen: Das 4+1-Sichten-Modell von Phillipe Kruchten, verwendet im (Rational) Unified Process 4 Sichten von Hofmeister, Nord und Soni Viewtypes und Styles des SEI Canonical Model Structure von George Fairbanks FMC Fundamental Modeling Concepts, gelehrt am Hasso-Plattner-Institut

Kruchten & UML End User Functionality Programmers Software management Logical View Implementation View Analysts/Tester Behavior Use-Case View Process View System Integrators Performance Scalability Throughput Deployment View System Engineers System Topology Delivery, Installation Communication The 4+1 view model (Phillipe Kruchten 1995)

Charakteristik der 4+1-Sichten Für jede Sicht wird angegeben: I Inhalt, K Komponenten, B Beziehungen und S Stakeholder. Use Case Sicht I: Verhalten des Systems K: Akteure, Anwendungsfälle B: Interaktion, Verwendung, Vererbung S: Anwender, Analytiker, Tester Logische Sicht I: Vokabular des Gebietes, Funktionalität K: Klassen, Verantwortlichkeiten, Kollaborationen B: Assoziation, Vererbung, Abhängigkeit, Steuerung S: Anwender, Analytiker, Designer, Bereichsexperte

Charakteristik der 4+1-Sichten Prozess-Sicht I: Performanz, Skalierbarkeit, Verfügbarkeit K: Prozesse, Threads B: Aktivierungssteuerung, (gemeinsame) Resourcen S: Designer, Deployer Implementierungs-Sicht I: Systembestandteile, Konfigurationsmanagement K: Dateien, Repositories B: Enthaltensein, Abhängigkeit S: Designer, Entwickler, Konfigurationsmanager Physische Sicht I: Hardwaretopologie K: Hardwareresourcen B: Kommunikationskanäle, Abhängigkeit S: Hardwareingenieur, Deployer.

Hofmeister, Nord und Soni Konzeptionelle Sicht beschreibt Komponenten und Konnektoren und wie sie zusammenarbeiten Modulsicht beschreibt Subsysteme, bestehend aus Modulen mit ihren Schnittstellen, eventuell angeordnet in Schichten Ausführungssicht beschreibt Ausführungseinheiten (z.b. Prozesse), die auf einer bestimmten Plattform laufen und kommunizieren Codesicht beschreibt Quelldateien, binäre Komponenten, Bibliotheken, ausführbare Programme und weitere Dateien

UML Composite Structure Diagram (c) Warren Tang

Elemente des Composite Structure Diagrams Structured Class Klasse, die eine interne Struktur hat, bestehend aus Eigenschaften (properties), Teilen (parts) mit bestimmten Rollen (roles) und Konnektoren (connectors), sowie Ports. Property, Part, Role Properties sind Instanzen, die Teil der Structured Class sind, Parts speziell Aggregationen von Properties, sie können bestimmte Rollen spielen Connectors sind Assoziationen innerhalb der Komponente, die einen Kommunikationskanal repräsentieren Ports sind Interaktionspunkte einer strukturierten Klasse (1) nach außen (service port) oder (2) zu inneren Teilen (behavior port).

Viewtypes des SEI Viewtype = Perspektive auf das System A viewtype defines the element types and relationship types used to describe the architecture of a software system from a particular perspective Drei Viewtypes 1 Module viewtype 2 Component-and-connector viewtype 3 Allocation viewtype

Styles Style = Spezielle Ausprägung/Muster der Perspektive A style guide is the description of an architectural style that specifies the vocabulary of design (set of element and relationship types) and the rules (sets of topological and semantic constraints) for how that vocabulary can be used. Beispiel Pipes & Filters ist ein Style des Component-and-Connector Viewtypes.

Canonical Model Structure (George Fairbanks) George Fairbanks: Just Enough Software Architecture, S.116

Sichten auf das Domain Model Concepts Domain Model «view» «view» Snapshots Model Relationship «view» Scenarios George Fairbanks: Just Enough Software Architecture, S.119

Sichten auf das Design Model Use Cases «view» «view» «view» «view» «view» System Context Module Views Runtime Views Module diagram Component, connector, port types Use case diagram Responsibilities System context diagram Components, connectors, ports Functionality scenarios Component assembly «view» Allocation Views Allocation diagram Environmental elements Spanning Views Quality attribute scenarios Tradeoffs George Fairbanks: Just Enough Software Architecture

Fundamental Modeling Concepts Ausgehend von einer Klassifikation dynamischer Systeme schlägt Siegfried Wendt eine Darstellung der fundamentalen Strukturen eines Softwaresystems vor, die die grundlegende konzeptionelle Architektur des Systems verständlich machen Drei fundamentale Strukturen in informationellen dynamischen Systemen: Aufbaustrukturen Wertebereichsstrukturen Ablaufstrukturen

Notation von FMC Bipartite Graphen Aufbaustrukturen bestehen aus aktiven, verarbeitenden Komponenten (Agenten) passiven, datenhaltenden Komponenten (Kanälen und Speichern) Struktur: Agenten verarbeiten Daten, Ergebnisse werden an Kanälen oder in Speichern beobeachtbar Darstellung der Wertebereichsstukturen durch Mengen und Relationen, optisch ähnlich den Venn-Diagrammen, inhaltlich Entity-Relationship-Modelle Ablaufstrukturen durch Petri-Netze, genauer Stellen-Transitions-Netze

Beispiel Aufbaustruktur in FMC Customers Interested persons place order, R R get ticket advertising, consulting Reservation system Information help desk Travel agency Reservations Customer data Travel information Travel organization FMC Research Staff http://fmc.hpi.uni-potsdam.de

Beispiel Architektur von AutiSta

Beispiel Architektur von Apache Lucene Original- Dokument Document Converter Anfrage Document QueryParser Document R IndexWriter R Analyzer Query IndexSearcher R IndexReader Lucene Index Apache Lucene Architektur -- Überblick

Literatur Philippe Kruchten Architectural Blueprints The 4+1 View Model of Software Architecture IEEE Software 12(6), November 1995 Christine Hofmeister, Robert Nord, Dili Soni Applied Software Architecture Reading, MA: Addison-Wesley, 2000. Paul Clements et al. Documenting Software Architectures: Views and Beyond Boston: Addison-Wesley, 2003.

Literatur George Fairbanks Just Enough Software Architecture Boulder, CO: Marshall & Brainerd, 2012. Andreas Knöpfel, Bernhard Gröne, Peter Tabeling Fundamental Modeling Concepts John Wiley & Sons, 2005. http://www.fmc-modeling.org/