• Keine Ergebnisse gefunden

Entwickeln und Dokumentieren von Softwarearchitektur

N/A
N/A
Protected

Academic year: 2021

Aktie "Entwickeln und Dokumentieren von Softwarearchitektur"

Copied!
33
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Entwickeln und Dokumentieren von Softwarearchitektur

„Best Practices“ in Entwurf und Kommunikation

Burkhardt Renz

Fachbereich MNI

Technische Hochschule Mittelhessen

Wintersemester 2020/21

(2)

Übersicht

Entwurf einer Softwarearchitektur Entwicklungsprozess und Architektur

„Best Practices“

Voraussetzungen

Vorgehen

Dokumentation von Softwarearchitektur

(3)

Entwicklungsprozess und Softwarearchitektur

Architektur ist nichtPhase des Entwicklungsprozesses, sondern Daueraufgabe

Architektur als initialer Bauplan

Iterative Entwicklung flArchitekturverfeinerung und Architekturrefactoring

Überprüfung architektonischer Richtlinien flErosion der Architektur verhindern

Architektur und agiles Vorgehen – Diskussion, siehe zum Beispiel das Paper von Wils und Van Baelen

(4)

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

(5)

Voraussetzungen

Geschäftsziele

Funktionale Anforderungen (einigermaßen) vollständig definiert; möglichst samt Anwendungsfälle/User Stories Gegebenheiten des Anwendungsgebiets

Einschränkungen/Festlegungen bezüglich der Infrastruktur Gegebenheiten des Softwareproduktionsprozesses definiert

(6)

Übersicht

Entwurf einer Softwarearchitektur Vorgehen

Komponenten für die Funktionalität Qualitätsmerkmale und Mechanismen Detaillierung und „Refactoring“

Dokumentation von Softwarearchitektur

(7)

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

(8)

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.

(9)

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

(10)

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?

(11)

Methode: Attribute-Driven Design

ADD ist eine systematische und iterative Methode für die Entwicklung einer Softwarearchitektur

Pro Iterationsschritt:

Wähle zu betrachtende Komponenten und definiere Ziel Identifiziere relevante Geschäftsziele, Qualitätsattribute und Constraints

Finde geeignete Mechanismen dafür und verfeinere die Architektur entsprechend

Resultat jeweils: Skizzen der Konzepte

Der iterative Ansatz eignet sich zu Verwendung der Methode in agilen Prozessen

(12)

Literatur und Links zu ADD

Humberto Cervantes, Rick Kazman Designing Software Architectures Harlow, UK: Addison-Wesley, 2016.

Humberto Cervantes et al.

Smart Decisions: A game about architecting modern software systems

https://smartdecisionsgame.com

(13)

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/

(14)

Übersicht

Entwurf einer Softwarearchitektur Vorgehen

Dokumentation von Softwarearchitektur Perspektiven und Sichten

Notationen Beispiele

(15)

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

(16)

Kruchten & UML

2

Logical View Implementation View

Process View Deployment View Use-Case View

Programmers Software management End User

Functionality

The “4+1” view model (Phillipe Kruchten 1995) System Integrators

Performance Scalability Throughput Analysts/Tester Behavior

System Engineers System Topology Delivery, Installation Communication

(17)

Charakteristik der 4+1-Sichten

Für jede Sicht wird angegeben:

IInhalt, KKomponenten,B Beziehungen undSStakeholder.

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

(18)

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.

(19)

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

(20)

UML Composite Structure Diagram

(c) Warren Tang

(21)

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).

(22)

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

(23)

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.

(24)

Canonical Model Structure (George Fairbanks)

George Fairbanks: Just Enough Software Architecture, S.116

(25)

Sichten auf das Domain Model

Model Relationship Domain

Model

Concepts

Snapshots

Scenarios

«view»

«view»

«view»

George Fairbanks: Just Enough Software Architecture, S.119

(26)

Sichten auf das Design Model

George Fairbanks: Just Enough Software Architecture Use Cases

System Context

«view»

«view»

Module Views Runtime

Views Allocation

Views Spanning

Views

«view»

«view»

«view»

«view»

• Module diagram

• Component, connector, port types

• Use case diagram

• Responsibilities

• System context diagram

• Components, connectors, ports

• Functionality scenarios

• Component assembly

• Allocation diagram

• Environmental elements

• Quality attribute scenarios

• Tradeoffs

(27)

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

(28)

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 beobachtbar

Darstellung der Wertebereichsstukturen durch Mengen und Relationen, optisch ähnlich den Venn-Diagrammen, inhaltlich Entity-Relationship-Modelle

Ablaufstrukturen durch Petri-Netze, genauer Stellen-Transitions-Netze

(29)

Beispiel Aufbaustruktur in FMC

© FMC Research Staff – http://fmc.hpi.uni-potsdam.de Travel agency

place order, get ticket

Reservation system

R R

Reser- vations Customer

data Travel

information Information help desk

Travel organization

Customers Interested persons

advertising, consulting

(30)

Beispiel Architektur von AutiSta

(31)

Beispiel Architektur von Apache Lucene

Original- Dokument

Document Converter

Document

IndexWriter Analyzer

IndexReader IndexSearcher

Document

Query Anfrage

QueryParser

R R

R

Lucene Index Apache Lucene

Architektur -- Überblick

(32)

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.

(33)

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/

Referenzen

ÄHNLICHE DOKUMENTE

Finding a code snippet of the right type is closely related to the type inhabitation problem, where we ask whether for a type environment and some calculus, there exists an

This paper contributes to a more sophisticated understanding of the third-party developers’ individual perception of platform openness by identifying concrete facets of openness

In this paper, we present our experiments with hierarchical clustering algorithm CHAMELEON for circles cluster shapes with different densities using hMETIS program that used

In this case, the adolescents feel that they might be less important in their peers’ lives than smartphones, which might lead to bigger issues in their interpersonal

Chancellor Merkel made it clear that this is not only a traditional ritual of German foreign politics, but rather that the quick inaugural visit underlines her deep conviction

As a first source, we obtained occurrence records of all terrestrial ‘habitat specialist’ species (those considered to occur only in a single Level 2 habitat class according to

1 Ecosystems Services and Management Program (ESM), International Institute for Applied Systems Analysis (IIASA), Schlossplatz 1, A-2361 Laxenburg, Austria; 2 Global Mammal

This paper presents a Bayesian nonparametric approach to survival analysis based on arbitrarly right censored data. The first aim will be to show that the neutral to the right