Software- und Systementwurf - Softwarearchitektur -



Ähnliche Dokumente
Software- und Systementwurf - Softwarearchitektur -

Seite 2. Arbeitsteilung beim Entwurf. Kriterien für "guten" Entwurf. Kohäsion. Architekturentwurf. Schnittstelle Schnittstelle. Entwurf Subsystem 2

4. Softwarearchitektur und Softwareentwurf. 4.1 Entwurfsprinzipien

Softwareentwicklungspraktikum Sommersemester Grobentwurf

4. Softwarearchitektur und Softwareentwurf. 4.1 Entwurfsprinzipien

Systemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski

Requirements Engineering I

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Kapitel 2: Der Software-Entwicklungsprozess

Übungen zur Softwaretechnik

Software Engineering

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

16 Architekturentwurf Einführung und Überblick

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Systeme 1. Kapitel 10. Virtualisierung

Softwaretechnik. Fomuso Ekellem WS 2011/12

Übungen zur Softwaretechnik

Grundlagen Software Engineering

17 Architekturentwurf Vorgehen und Dokumentation

Übungsklausur vom 7. Dez. 2007

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Übungen zur Softwaretechnik

Die Softwareentwicklungsphasen!

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Vortrag von: Ilias Agorakis & Robert Roginer

Architektur und Qualität. Tjard Köbberling

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Java Enterprise Architekturen Willkommen in der Realität

SDD System Design Document

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Übungen zu Softwaretechnik

Softwareentwicklungsprozess im Praktikum. 23. April 2015

HOMEPLANE. Home Media Platform and Networks

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

Anforderungen an die HIS

Objektorientierte Programmierung OOP

Client/Server-Systeme

Parallels Mac Management 3.5

Lizenzierung von System Center 2012

Was ist Software-Architektur?

Software-Engineering

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Aufbau eines virtuellen privaten Netzes mit Peer-to-Peer-Technologie

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Use Cases. Use Cases

EIDAMO Webshop-Lösung - White Paper

12.4 Sicherheitsarchitektur

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

HANDBUCH LSM GRUNDLAGEN LSM

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

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

Hochschule Darmstadt Fachbereich Informatik. Softwaretechnik II. 4.1 Darstellung der Architektur

Effizienz und Sicherheit im RZ durch RFID gestützte AIM Systeme

Ein mobiler Electronic Program Guide für Android

Applikationsvirtualisierung in der Praxis. Vortrag an der IHK Südlicher Oberrhein, Freiburg Thomas Stöcklin / 2007 thomas.stoecklin@gmx.

Was versteht man unter Softwaredokumentation?

Functional Safety. Systems Engineering als Schlüsseldisziplin in Projekten mit funktionaler Sicherheit

Evaluation of Database Design and Reverse Engineering Tools for a Large Software System

Windows Small Business Server (SBS) 2008

Some Software Engineering Principles

Software-Engineering

Qualitätsmanagement im Projekt

RUP Analyse und Design: Überblick

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Ad-hoc Chatsystem für mobile Netze

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

<thema> Projektdokumentation zum Softwareentwicklungsprojekt. (Entwicklerdokumentation) 28. Mai 2015

Softwaretechnik. Fomuso Ekellem

Empirische Softwaretechnik Kosten und Nutzen von UML in der Wartung Dr. Victor Pankratius Andreas Höfer Wintersemester 2009/2010

Transfer von Prozessen des Software-Produktlinien Engineering in die Elektrik/Elektronik- Architekturentwicklung von Fahrzeugen

Architekturmuster. Übung MSE,

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Exkurs: Formatvorlage für Anforderungsanalyse-Dokument

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Gliederung des Vortrages

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

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Modul 2: Grundlegende Managementkonzepte

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

Intelligente Updateverwaltung Inventarisierung von Softwareprodukten Remoteunterstützung, mobile Endgeräte u.v.m.

Softwaretechnik 3. Klausurnachbesprechung , Phillip Ghadir

FUTURE-PATCH Das RFID gestützte AIM System

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

Eine technische Plattform für Smart-Client-Systeme. Alexander Ziegler

Agenda. Ziel Problematik OS-Installation Softwareverteilung Inventarisierung Stufenplan

SharePoint Demonstration

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

Look Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M.

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

EXCHANGE Neuerungen und Praxis

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

Softwaretechnik Vorlesung. 5. Software- und Systementwurf. Farbe!

Transkript:

Software- und Systementwurf - Softwarearchitektur - Software Engineering 1 WS 2011/2011 Dr. Ina Schaefer Software Systems Engineering Technische Universität Braunschweig (Folien von Prof. B. Rumpe)

Überblick Softwareentwurf Ziele Entwurfsprinzipien Architekturentwurf Architekturmuster Unified Modeling Language (UML) - Überblick Dr. Ina Schaefer Software Engineering 1 Seite 2

Software-Entwurf Ausgangspunkt: Systemspezifikation (Pflichtenheft) Ziel: Vom WAS" zum WIE": Vorgabe für Implementierung Zentrale Begriffe: Subsystem in sich geschlossen eigenständig funktionsfähig mit definierten Schnittstellen besteht aus Komponenten Komponente Baustein für ein Softwaresystem (z.b. Modul, Klasse, Paket) benutzt andere Komponenten wird von anderen Komponenten benutzt kann auch aus Unterkomponenten bestehen Dr. Ina Schaefer Software Engineering 1 Seite 3

Von der Analyse zum Entwurf Analyse Anforderungs- Ermittlung Anforderungs- Spezifikation (Lastenheft) System- Spezifikation (Pflichtenheft) System- Modellierung Entwurf Dr. Ina Schaefer Software Engineering 1 Seite 4

Gliederung des Entwurfsprozesses Architekturentwurf Subsystem-Spezifikation Schnittstellen-Spezifikation Gesamtstruktur des Systems (Grobentwurf) Komponentenentwurf Datenstrukturentwurf Algorithmenentwurf Detailstruktur des Systems (Feinentwurf) Grobentwurf: weitgehend unabhängig von Implementierungssprache Feinentwurf angepasst an die Implementierungssprache und Plattform Dr. Ina Schaefer Software Engineering 1 Seite 5

Arbeitsteilung beim Entwurf Architekturentwurf Entwurf Subsystem 1 Entwurf Schnittstelle 1 2 Entwurf Subsystem 2 Entwurf Schnittstelle 2... Entwurf Subsystem... Entwurf der Komponenten Dr. Ina Schaefer Software Engineering 1 Seite 6

Kriterien für "guten" Entwurf Korrektheit Erfüllung der Anforderungen Wiedergabe aller Funktionen des Systemmodells Sicherstellung der nichtfunktionalen Anforderungen Verständlichkeit & Präzision Gute Dokumentation Anpassbarkeit Hohe Kohäsion innerhalb der Komponenten Schwache Kopplung zwischen den Komponenten Wiederverwendung Diese Kriterien gelten auf allen Ebenen des Entwurfs (Architektur, Subsysteme, Komponenten). Dr. Ina Schaefer Software Engineering 1 Seite 7

Kohäsion Kohäsion ist ein Maß für die Zusammengehörigkeit der Bestandteile einer Komponente. Hohe Kohäsion einer Komponente erleichtert Verständnis, Wartung und Anpassung. Frühere Ansätze zur Kohäsion wie: ähnliche Funktionalitäten zusammenfassen führten nicht unbedingt zu stabiler Systemstruktur Bessere Kohäsion wird erreicht durch: Prinzipien der Objektorientierung (Datenkapselung) Einhaltung von Regeln zur Paketbildung Verwendung geeigneter Muster zu Kopplung und Entkopplung "Kohärente" Klasse: Es gibt keine Partitionierung in Untergruppen von zusammengehörigen Operationen und Attributen Dr. Ina Schaefer Software Engineering 1 Seite 8

Kopplung Kopplung ist ein Maß für die Abhängigkeiten zwischen Komponenten. Geringe Kopplung erleichtert die Wartbarkeit und macht Systeme stabiler. Arten der Kopplung: Datenkopplung (gemeinsame Daten) Schnittstellenkopplung (gegenseitiger Aufruf) Strukturkopplung (gemeinsame Strukturelemente) Reduktion der Kopplung: Kopplung kann nie auf Null reduziert werden! Schnittstellenkopplung ist akzeptabel, da höhere Flexibilität Datenkopplung vermeiden! aber durch Objektorientierung meist gegeben Strukturkopplung vermeiden! z.b. keine Vererbung über Paketgrenzen hinweg Entkopplungsbeispiel: getter/setter-methoden statt direkter Attributzugriff Dr. Ina Schaefer Software Engineering 1 Seite 9

Interne Wiederverwendung Interne Wiederverwendung (reuse) ist ein Maß für die Ausnutzung von Gemeinsamkeiten zwischen Komponenten Reduktion der Redundanz Erhöhung der Stabilität und Ergonomie Hilfsmittel für Wiederverwendung: im objektorientierten Entwurf: Vererbung, Parametrisierung im modularen und objektorientierten Entwurf: Module/Objekte mit allgemeinen Schnittstellen (Interfaces) Aber: Wiederverwendung kann die Kopplung erhöhen: Schnittstellenkopplung und Strukturkopplung Dr. Ina Schaefer Software Engineering 1 Seite 10

Entwurfsschritte Analyse Anforderungs- Ermittlung Anforderungs- Spezifikation (Lastenheft) System- Spezifikation (Pflichtenheft) System- Modellierung Architektur- Spezifikation Architektur- Entwurf Klassen- bzw. Modul- Spezifikationen Entwurf Detail- Entwurf Dr. Ina Schaefer Software Engineering 1 Seite 11

Architekturentwurf im Kontext der SW-Entwicklung Anforderungsanalyse, Domänenanalyse Entwurf der Softwarearchitektur Entwurf der Systemarchitektur, Auswahl der Hardware Feindesign, Programmierung, Integration, Testen, Auslieferung Dr. Ina Schaefer Software Engineering 1 Seite 12

Softwarearchitektur in der Praxis Architekturspezifikation wird zu oft nicht als separates Dokument gefordert. Häufig wird funktionale Spezifikation und Architekturspezifikation in einem Dokument realisiert. denn WAS zu spezifizieren, ohne auf grobe Strukturen des WIE einzugehen ist oft nicht möglich. Dennoch: die grobe Systemarchitektur wird der Entwurfs-Aktivität zugeordnet Ist Hardware involviert (Steuergeräte im Auto, Telekommunikations- Anlagen etc.), so wird oft bereits dadurch eine physische Architektur vorgegeben. (Sinnvoll: Architekturskizzen bereits in der Anforderungsbeschreibung.) Logische Systemarchitektur und physische Architektur sind nicht notwendig identisch. Dr. Ina Schaefer Software Engineering 1 Seite 13

Beispielarchitektur Dr. Ina Schaefer Software Engineering 1 Seite 14

4+1 Sichten -Modell der Softwarearchitektur Logische Sicht Struktursicht Szenarien Ablaufsicht Physikalische Sicht Philippe Kruchten, The 4+1 view model of architecture, IEEE Software, November 1995, 12(6), pp. 42-50 (Verwendung im Rational Unified Process - RUP) Dr. Ina Schaefer Software Engineering 1 Seite 15

Bestandteile der 4+1 Sichten Logische Sicht Klassenmodell Verfeinerung des Analysemodells Ablaufsicht Prozesse Koordination Szenarien Use-Cases Struktursicht Subsysteme Schnittstellen Grobentwurf Physikalische Sicht Komponenten Hardwaresysteme Netze Feinentwurf Dr. Ina Schaefer Software Engineering 1 Seite 16

Primäre Zielgruppe und Aufgabe der Sichten Logische Sicht Endanwender Struktursicht Programmierung Wartung Grobentwurf Ablaufsicht System-Integratoren (Performanz, Durchsatz...) Physikalische Sicht Kommunikation Verteilung Auslieferung, Installation Feinentwurf Dr. Ina Schaefer Software Engineering 1 Seite 17

Blockdiagramme Blockdiagramme sind kein Bestandteil von UML! (Gleichwertige Notation in UML: Implementierungsdiagramm) Blockdiagramme sind ein verbreitetes Hilfsmittel zur Skizzierung der logischen Struktur einer Systemarchitektur. Schnittstelle Subsystem umfasst Objekte bestimmter Klassen. Schnittstelle ist klar definiert. (z.b. Aufrufschnittstelle, Kommunikationsprotokoll) Subsystem Umfassendes Subsystem Dr. Ina Schaefer Software Engineering 1 Seite 18

UML Komponentendiagramme Das Komponenten-Diagramm stellt die (logischen) Komponenten des Systems und deren Schnittstellen (Ports) dar. Architektur: Anwendung UI Bank UI = User Interface = Benutzerschnittstelle/ Benutzeroberfläche GUI = Graphical User Interface = grafische Benutzerschnittstelle Dr. Ina Schaefer Software Engineering 1 Seite 19

Komponenten Name der Komponente HTTP Webservice «component» WebInterface optionaler grafischer Stereotyp Database bereitgestellte Schnittstelle benötigte Schnittstelle Dr. Ina Schaefer Software Engineering 1 Seite 20

Komposition von Komponenten Port benötigte Schnittstelle Komponente A bereitgestellte Schnittstelle Zusammengesetzte Komponente D B C D A analoges Blockdiagramm B C Dr. Ina Schaefer Software Engineering 1 Seite 21

Konfigurationsdiagramme Konfigurationsdiagramme sind (noch) nicht Bestandteil von UML! Konfigurationsdiagramme sind das meistverbreitete Hilfsmittel zur Beschreibung der physikalischen Verteilung von System- Komponenten. Rechner, Knoten Lokales Kommunikationsnetz Speicherndes System Datenkommunikations- Netz Dr. Ina Schaefer Software Engineering 1 Seite 22

UML: Verteilungsdiagramm engl.: deployment diagram zeigt die physische Verteilung von Systemen Node (Knoten) <<processor>> Client Stereotypen kennzeichnen die Arten von Knoten <<network>> local network <<processor>> Server 1 A <<processor>> Server 2 B Komponenten können zugeordnet werden Dr. Ina Schaefer Software Engineering 1 Seite 23

Beispiel Terminverwaltung PC1... PCn PDA1 PDAm Physikalische Konfiguration Termin- Server Anzeigetafel- Steuerung PC Client PDA Client Blockdiagramm PDA Sync Termin-Manager Daten- Export Termin-Datenbank Dr. Ina Schaefer Software Engineering 1 Seite 24

Kriterien für guten Entwurf Wie bereits diskutiert ist auf Kohäsion und Kopplung zu achten: Hohe Kohäsion: Kohäsion = "Zusammenhalt" Die Dinge sollen in Struktureinheiten zusammengefasst werden, die inhaltlich zusammengehören. Niedrige Kopplung: Kopplung = Abhängigkeiten Einzelne Struktureinheiten sollen möglichst unabhängig voneinander sein. Daneben allgemeine Eigenschaften, z.b.: Korrektheit, Anpassbarkeit, Verständlichkeit, Ressourcenschonung Dr. Ina Schaefer Software Engineering 1 Seite 25

Hohe Kohäsion und Niedrige Kopplung Subsystem A (z.b. Benutzungsoberfläche) Subsystem B (z.b. fachlicher Kern) Hohe Kohäsion: Subsystem B darf keine Information und Funktionalität enthalten, die zum Zuständigkeitsbereich von A gehört und umgekehrt. Niedrige Kopplung: Es muss möglich sein, Subsystem A weitgehend auszutauschen oder zu verändern, ohne Subsystem B zu verändern. Änderungen von Subsystem B sollten nur möglichst einfache Änderungen in Subsystem A nach sich ziehen. Beispiele zur konkreten technischen Realisierung siehe später (MVC-Architektur, Entwurfsmuster) Dr. Ina Schaefer Software Engineering 1 Seite 26

Qualitätssicherung mittels Szenarien Szenarien (für Anwendungsfälle) sind von zentraler Bedeutung: Integration der verschiedenen Sichten Kriterium für Architekturbewertung (Auswahl alternativer Muster) Qualitätssicherung (Review) Bewertung für Softwarearchitekturen: Architektur(en) festlegen Im Architekturentwurf: Alternativen Bei der abschließenden Qualitätssicherung: gewählte Architektur Szenarien durchspielen Direkte Szenarien : Auf der Architektur gut realisierbar Indirekte Szenarien : Nur nach Architekturerweiterung realisierbar Architekturen bewerten nach: Anzahl der direkten Szenarien Aufwand zur Modifikation für indirekte Szenarien Abschätzung der Effizienz Dr. Ina Schaefer Software Engineering 1 Seite 27

Architekturmuster für die Struktursicht Struktursicht der Architektur: Zerlegung in Subsysteme eigenständiger Funktionalität Keine Aussage über physikalische Verteilung Darstellung meist durch Blockdiagramme: Subsystem Datenfluss-Schnittstelle Aufrufschnittstelle Muster (Architekturmuster, Architekturstile): Kette (Chain) Schichten Interpreter Dr. Ina Schaefer Software Engineering 1 Seite 28

Architekturmuster Pipes & Filters Phase 2.1 Phase 1 Phase 3 Phase 2.2 Zwischenprodukt 1.1 Zwischenprodukt 1.2 Zwischenprodukt 2.1 Zwischenprodukt 2.2 Deutsch auch Kette Inkrementelle oder phasenweise Verarbeitung Beispiele: UNIX pipes Batch-sequentielle Systeme Compiler-Grundstruktur Dr. Ina Schaefer Software Engineering 1 Seite 29

Beispiel: Compiler-Architektur Quell- Programm Tokens Syntaxbaum Ziel- Programm Scanner Parser Code- Generator Fehlermeldungen Symboltabelle Fehlermeldungen Fehler- Ausgabe Kombination von Ketten Dr. Ina Schaefer Software Engineering 1 Seite 30

Architekturmuster "Schichten" Benutzer Schicht 2 Schicht 1 Systemkern Jede Schicht bietet Dienste (nach oben) und nutzt Dienste (von unten) Beispiele: Kommunikationsprotokolle Datenbanksysteme, Betriebssysteme Dr. Ina Schaefer Software Engineering 1 Seite 31

Architekturmuster "Interpreter" Benutzer Programm Abstrakte Maschine Basissystem Schichtenarchitektur mit Parametrisierung Beispiele: Portable Sprachimplementierung (z.b. Java Virtual Machine) Emulation von Systemarchitekturen (z.b. Soft Windows) Dr. Ina Schaefer Software Engineering 1 Seite 32

Beispiel: 3-Schichten-Referenzarchitektur Benutzungsschnittstelle Fachlicher Kern Persistenzschicht Entwurfsregeln: Benutzungsschnittstelle greift nie direkt auf Datenhaltung zu. Persistenzschicht verkapselt Zugriff auf Datenhaltung, ist aber nicht identisch mit dem Mechanismus der Datenhaltung (z.b. Datenbank). Fachlicher Kern basiert auf dem Analyse-Modell Erlaubt das Aufsetzen von interaktiven, batch, etc. Benutzerschnittstellen und den Austausch von Datenbanken Dr. Ina Schaefer Software Engineering 1 Seite 33

Variante: 3-Schichten-Referenzarchitektur Benutzungsschnittstelle Fachlicher Kern Systemfunktionen Persistenzschicht Beispiele für Systemfunktionen: Verkapselung von plattformspezifischen Funktionen Schnittstellen zu Fremdsystemen Dr. Ina Schaefer Software Engineering 1 Seite 34

Architekturmuster für die physikalische Sicht Physikalische Sicht der Architektur: Aufteilung der Funktionalität auf Knoten (Rechner) eines Netzes Darstellung meist durch Konfigurationsdiagramme: Knoten Kommunikation Muster (Verteilungsmuster): Zentrales System Client/Server: Two-Tier (Thin-Client, Fat-Client) Three-Tier (GUI; Applikationskern, Datenhaltung) Föderation Dr. Ina Schaefer Software Engineering 1 Seite 35

Verteilungsmuster "Zentrales System" "Unintelligentes" Terminal Zentrales System Beispiele: Klassische Großrechner-("Mainframe"-)Anwendungen Noch einfachere Variante: Lokale PC-Anwendungen (identifizieren Zentrale und Terminal) Dr. Ina Schaefer Software Engineering 1 Seite 36

Verteilungsmuster "Client/Server" "Intelligenter" Client Server Sogenannte "Two-Tier" Client/server-Architektur Andere Namen: "Front-end" für "Client", "Back-end" für "Server" Client: Benutzungsschnittstelle Einbindung in Geschäftsprozesse Entkoppelt von Netztechnologie und Datenhaltung Server: Datenhaltung, evtl. Fachlogik Dr. Ina Schaefer Software Engineering 1 Seite 37

"Thin-Client" und "Fat-Client" Thin-Client: Nur die Benutzungsschnittstelle auf dem Client-System Ähnlich zu Zentralem System, aber oft Download- Mechanismen Anwendungen: "Screen-Scraping" (Umsetzung traditioneller Benutzungsschnittstellen in moderne Technologie) Fat-Client: Teile der Fachlogik (oder gesamte Fachlogik) auf dem Client- System Hauptfunktion des Servers: Datenhaltung Entlastung des Servers Zusätzliche Anforderungen an Clients (z.b. Installation von Software) Dr. Ina Schaefer Software Engineering 1 Seite 38

Verteilungsmuster "Three-Tier Client/Server" "Intelligenter" Client Anwendungs- Server Server Client: Benutzungsschnittstelle evtl. Fachlogik Anwendungsserver: evtl. Fachlogik Verteilung von Anfragen auf verschiedene Server Server: Datenhaltung, Rechenleistung etc. Kommunikation unter Servern meist breitbandig. Heute üblich! Dr. Ina Schaefer Software Engineering 1 Seite 39

Verteilungsmuster "Föderation" Knoten 1 Knoten 2 Knoten 5 Knoten 3 Knoten 4 Gleichberechtigte Partner (peer-to-peer) Unabhängigkeit von der Lokation und Plattform von Funktionen Verteilte kommunizierende Objekte Dr. Ina Schaefer Software Engineering 1 Seite 40

Architekturmuster der Ablaufsicht Ablaufsicht der Architektur: Definition nebenläufiger Systemeinheiten (z.b. Prozesse) Steuerung der Abfolge von Einzelfunktionen Synchronisation und Koordination Reaktion auf externe Ereignisse Darstellung z.b. durch Sequenzdiagramme Muster (Steuerungsmuster): Zentrale Steuerung Call-Return Master-Slave Ereignis-Steuerung Selective Broadcast Interrupt Dr. Ina Schaefer Software Engineering 1 Seite 41

Steuerungsmuster "Call-Return" Hauptprogramm Unterprogramm 1 Unterprogramm 1.1 Unterprogramm 1.2 Dr. Ina Schaefer Software Engineering 1 Seite 42

Steuerungsmuster "Master-Slave" Manager Benutz.- oberfläche Sensor Aktuator Dr. Ina Schaefer Software Engineering 1 Seite 43

Steuerungsmuster "Selective Broadcast" Event Handler Subsystem 1 Subsystem 2 Subsystem 3 Ereignis e e Ereignis e' e' e e' e e' Dr. Ina Schaefer Software Engineering 1 Seite 44

Steuerungsmuster "Interrupt" Interrupt Dispatcher Handler 1 Handler 2 e Prozess 2 e Prozess 1 Verwendet Interrupt-Vektor Dr. Ina Schaefer Software Engineering 1 Seite 45

Zusammenfassung Architekturmuster Architekturmuster beschreiben erprobte Strukturierungsformen für die Architektur eines Systems Architekturmuster beschreiben: Struktur physikalische Verteilung Zuordnung von Prozessen auf Prozessoren Kommunikationsformen und protokolle Schichtenbildung ist ein mächtiges Strukturierungsmittel Dr. Ina Schaefer Software Engineering 1 Seite 46

Unified Modeling Language (UML) graphische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von Teilen von Software und anderen Systemen Kombiniert die Modellierung von Strukturen (Architektur, Daten, ), Prozessen, Verhalten und Interaktionen von der Object Management Group (OMG) entwickelt und standardisiert ISO standardisiert (ISO/IEC 19501 für UML 2.1.2) Aktuelle Version: UML 2.3 (Mai 2010) Dr. Ina Schaefer Software Engineering 1 Seite 47

Historische Entwicklung von UML Dr. Ina Schaefer Software Engineering 1 Seite 48

Diagrammtypen der UML Dr. Ina Schaefer Software Engineering 1 Seite 49