Architekturstil (architectural style) Leitlinien für die Gestaltung der Architektur

Ähnliche Dokumente
16 Architekturentwurf Einführung und Überblick

17 Architekturentwurf Vorgehen und Dokumentation

Systemmetaphern! Informatik II: Modellierung Prof. Dr. Martin Glinz. Kapitel 11. Institut für Informatik!

Softwaretechnik (Allgemeine Informatik) Überblick

Modellierung Zusammenfassung WS2000

ObjectBridge Java Edition

Objektorientierte Modellierung (1)

Client/Server-Systeme

Von UML 1.x nach UML 2.0

Requirements Engineering I

15 Verwaltung von Anforderungen (Requirements Management)

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken

Lernziele zur Vorlesung Software Engineering I

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

12 Nicht-funktionale Anforderungen

Grundlagen des Software Engineering

Client/Server-Systeme

Software-Engineering

DIPLOMARBEIT. Entwurf und Implementierung eines modularen USB-Stacks für eingebettete Controller ohne Betriebssystem. Uwe Pfeiffer

Kapitel 5: Das Design

Die OSGi Service Plattform

Software Engineering. Produktivitätsfaktoren! Kapitel 18

Probeklausur: Programmierung WS04/05

Repetitorium Informatik (Java)

Software Engineering. Dokumentation! Kapitel 21

Objektorientierte Analyse (OOA) Inhaltsübersicht

Knasmüller.book Seite vii Mittwoch, 28. März : vii. Inhaltsverzeichnis

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Struktur und Architektur

Objektbasierte Entwicklung

Installation des edu-sharing Plug-Ins für Moodle

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Systemarchitektur des Innotrucks

Applikationsentwicklung Architekturübungen

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Requirements Engineering (Anforderungstechnik)

VBA-Programmierung: Zusammenfassung

Software-Qualität Ausgewählte Kapitel

Modellbasierte und komponentenorientierte Programmierung von Steuerungen

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Software-Design. Definition Der Prozess Prinzipien Strategien und Methoden Notationen. Aufgabe. HS Mannheim

Inhalt. Einleitung Liebe Leserin, lieber Leser, Wer dieses Buch aus welchem Grund lesen sollte Ihre Meinung ist uns sehr wichtig.

Objektorientierte Programmierung Teil 1: Einführung

Objektorientierte Programmierung

EDV-Umstellung Sparkassen-Rechenzentrum

Objektorientierter Software-Entwurf Ergebnisse der funktionalen Zerlegung 3 1. Die Zerlegungsmethoden sollen in zwei Dimensionen betrachtet werden:

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand:

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Was ist Software-Architektur?

1. Java ist Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Virtualisierter Terminalserver

C1: Tabellenkalkulation Daten und Relationen (14)

Informationsverarbeitung im Bauwesen

24 Transformation der Anforderungsspezifikation

Objektorientierte und Funktionale Programmierung SS 2014

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Softwaretechnik Folge 8 Methoden für Entwurf und Realisierung

Requirements Engineering Die Dinge von Anfang an richtig machen

codia Schriftgutverwaltung / Aktenplan

Block R (Rahmen): SE Aktivitäten Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung

Software Engineering. Dokumentation. Wintersemester 2005/06. Kapitel 21. Universität Zürich Institut für Informatik

SEAL Systems Integrationen für SAP PLM 7 und Web UI Anwendungen

6 Produktqualität Systeme: Integrationstest [sehr stark gekürzt]

VS Praktikum 03 Konzept

Softwarearchitekturen I Softwareentwicklung mit Komponenten

Requirements Engineering I. Verwalten von Anforderungen!

1. Grundbegriffe des Software-Engineering

Softwarearchitekturstile (Stichworte)

nessbase Projekte Über Projekte I

Berichte aus der Medizinischen Informatik und Bioinformatik. Günther Schadow. Krankenhauskommunikation mit HL7

Praxis-Workshop Tipps & Tricks zur Arbeit mit BSCW

Objektorientiertes Software-Engineering

Entwicklungswerkzeuge

Java Einführung Objektorientierte Grundkonzepte

Informatik mit Delphi

Message Oriented Middleware am Beispiel von XMLBlaster

Installation des edu- sharing Plug- Ins für Moodle

Netzwerk Technologien in LabVIEW

01. Grundprinzipien der Vererbung

Informationssystemanalyse Use Cases 11 1

Kapitel 2: Der Software-Entwicklungsprozess

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

(27 - Selbstanordnende lineare Listen)

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches...

Referenzarchitekturmodell Industrie 4.0 (RAMI 4.0) Eine Einführung

Projektmanagement: Werkzeuge & Methoden

Requirements Engineering. Requirements Engineering. Requirements Engineering. Requirements Engineering. Requirements Engineering

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

Leistungsbeschreibung. PHOENIX Archiv. Oktober 2014 Version 1.0

. TYPO3-Plug-in u:cris

Software Engineering I Prof. Dr. Martin Glinz. Fallstudie: Ariane Flug 501. Universität Zürich Institut für Informatik

SEP 114. Design by Contract

B.4. B.4 Betriebssysteme Prof. Dr. Rainer Manthey Informatik II 1

Übungen zur Softwaretechnik

Komponentenbasierte Softwareentwicklung

UML 2 glasklar Praxiswissen für die UML-Modellierung

6 Architektur-Mittel (WOMIT)

Umstellung des Schlüsselpaares der EU von A003 auf A004

Transkript:

18 Architekturstile und -metaphern 18.1 Architekturstile Architekturstil (architectural style) Leitlinien für die Gestaltung der Architektur Verwendete Modularten Verwendete Arten von Kooperation zwischen den Modulen Benutzung passender Architekturmuster Orientierung an einer Architekturmetapher Architekturstil Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-1 2002, 2003 by Martin Glinz. Alle Rechte vorbehalten. Reproduktion zum nicht kommerziellen Gebrauch mit Quellenangabe gestattet. Reproduktion - auch auszugsweise - zum kommerziellen Gebrauch nur mit schriftlicher Bewilligung des Verfassers gestattet.

Was fällt hier auf? Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-2

Modularten bestimmt durch die Art der Modularisierung zum Beispiel Funktionen, abstrakte Datentypen oder Prozesse als Einheiten der Modularisierung Kooperationsarten zum Beispiel: direkter Aufruf, indirekter Aufruf, Datenfluss müssen zur Art der Module passen Architekturmuster Kapitel 20 Architekturmetapher Gestaltungs-Leitbild, siehe 18.2 unten Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-3

18.2 Architekturmetaphern Metapher (metaphor) sprachlicher Ausdruck, bei dem ein Wort aus seinem Bedeutungszusammenhang in einen anderen übertragen, als Bild verwendet wird. Architekturmetaphern sind Leitbilder für die Gliederung und das Verstehen einer Architektur erschließen das Verständnis über analoge, vertraute Bilder Beispiele (siehe auch Vorlesung Informatik II, Systemmetaphern): Virtuelle Maschinen WAM (Werkzeug-Automat-Material) Steckersystem Organisationshierarchie Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-4

Die Virtuelle-Maschinen-Metapher Leitgedanke: Das System besteht aus aufeinander aufbauenden Schichten realer oder künstlicher Maschinen. Jede Schicht besteht aus einer oder mehreren virtuellen Maschinen erbringt Leistungen für die darüberliegende Schicht benutzt Leistungen der darunterliegenden Schicht Die unterste Schicht besteht aus realen Maschinen Die oberste Schicht erbringt die für Anwender zugänglichen Leistungen Typisches Beispiel: OSI-Referenzmodell für die Kommunikation von Rechnern Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-5

Die WAM (Werkzeug-Material-Automat) Metapher Leitgedanke: Ein System besteht aus Materialien, deren verschiedene Aspekte durch aspektspezifische Werkzeuge bearbeitet werden. Werkzeug: gegenüber Materialien aktiv: bearbeitet Materialien gegenüber Menschen assistierend: Mensch bedient Material: passiv, speichernd, wird bearbeitet ist Arbeitsgegenstand oder Arbeitsergebnis Automat: aktiv, arbeitet vollautomatisch Werkzeuge Editor Formulareditor Grafikeditor Texteditor Automat Sicherung Materialien Dokument Brief Publikation Formular Ordner Archiv Mappe sichert einmal täglich alle bearbeiteten Dokumente Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-6

Die Steckersystem-Metapher Leitgedanke: Komponenten werden flexibel in ein Grundsystem mit einer Reihe von Steckplätzen eingesteckt (analog zu Rechner-Hardware, Lichtschienen, etc.) Ein System besteht typisch aus dem Rahmen Datenverwaltungsdienste, Kommunikationsdienste, Benutzerschnittstelle Steckplätzen für Anwendungen in der Regel vorgefertigt Anwendungen in Steckplätze des Rahmens eingesteckt nutzen Dienste und Benutzerschnittstelle des Rahmens in der Regel problem- und kundenspezifisch angefertigt Anwendung Kommunikation Benutzungsschnittstelle Datenverwaltung Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-7

18.3 Ausgewählte Architekturstile 18.3.1 Funktionsorientierte Architektur (Structured Design) Jeder Modul berechnet eine Funktion Zur Realisierung einer Funktion können andere, einfachere Funktionen aufgerufen werden Datenaustausch über Parameter oder gemeinsame Speicherbereiche Prozess beobachten Entwurf = Hierarchie aufeinander aufbauender Funktionen Prozesswert erfassen Trend berechnen Alarm auslösen Prozessabbild anzeigen Messwert lesen Grenzwertüberschreitung prüfen Sensor abfragen Sensorwert skalieren Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-8

Meist nach dem Prinzip Eingabe Verarbeitung Ausgabe strukturiert Typischer Vertreter: Structured Design Problem: Daten und funktionsübergreifende Probleme können nicht gekapselt werden Ungenügende Abstraktion Verständnis und Änderbarkeit erschwert Liefert in vielen Fällen keine gute Modularisierung Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-9

18.3.2 Datenorientierte Architektur (Datenabstraktionen) Modularisierung nach dem Geheimnisprinzip Datenstruktur und alle darauf möglichen Operationen sind zusammengefasst: Datenabstraktion notwendig zum Verbergen von Entwurfsentscheidungen Realisierung durch abstrakte Datentypen System besteht aus Menge aufeinander aufbauender Datenabstraktionen Jeder Modul bietet Leistungen an Module benutzen die Leistungen anderer Module zur Realisierung der eigenen Leistungen Benutzungshierarchie Regelung der Zusammenarbeit durch Verträge (Design by Contract) Zusätzlich häufig Gliederung in Schichten Gute Abstraktion Entwürfe sind leicht verstehbar und änderbar Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-10

Beispiel: Datenorientierte Architektur eines Geldautomaten Bancomat Steuerschicht Karte Auswahl Transaktion Tastatur Konto Quittung Anwendungsschicht Dienstleistungsschicht Anzeige Kartenleser Tastaturtreiber Terminal Window Telecom Printer Infrastrukturschicht Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-11

18.3.3 Objektorientierte Architektur ( Kapitel 19) Modul repräsentiert Objekt des Problembereichs oder Informatik-Element System besteht aus Menge kooperierender Objekte, gruppiert zu Klassen Geeignet gebildete Klassen beachten das Geheimnisprinzip gute Modularisierung Systematischer Zusammenhang zwischen allgemeinen und speziellen Objekten: Objekte von Spezialklassen erben alle Strukturen und Operationen der übergeordneten allgemeinen Klassen Spezialisierungs- (Generalisierungs-) Hierarchie ermöglicht problemnahe Modellierung schränkt jedoch Anwendbarkeit des Geheimnisprinzips ein Durch Vererbung massiv erhöhte Flexibilität + Software ist erweiterbar bei unsachgemäßer Verwendung starke Nebenwirkungen auf Verstehbarkeit und Änderbarkeit Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-12

18.3.4 Prozessorientierte Architektur ( Kapitel 21) System besteht aus Menge unabhängig arbeitender, untereinander kooperierender Akteure Akteure sind typisch als Prozesse realisiert Prozesse kooperieren durch Austausch von Nachrichten oder durch Zugriff auf gemeinsame Speicherbereiche Prozesse sind die Module der obersten Stufe Jeder Prozess ist typisch ein sequentiell ablaufender Systemteil Kurse Wechselkursrechner Kurse erfassen aktuelle Kurse und Trends Zeitreihen bilden Archivrechner Archiv Suchen Archivieren Anfragen Prozesse sind selbst wieder modularisiert, z.b. in objektorientiertem Stil Trends bilden Prozess gemeinsamer Speicherbereich Werte verteilen aktuellewerte Arbeitsplatzrechner Kommunikation über Speicher Kommunikation über Nachrichten Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-13

18.3.5 Komponentenorientierte Architektur ( Kapitel 23) Weiterentwicklung objektorientierter Architekturen Komponente (component) [im engeren Sinn] Stark gekapselte Menge zusammengehöriger Objekte / KIassen, die eine gemeinsame Aufgabe lösen System besteht aus einer Menge von (möglicherweise geographisch verteilten) Komponenten, die über einen Makler kommunizieren Komponenten kennen Schnittstellen ihrer Partnerkomponenten Komponenten kennen nicht Art der Realisierung der Kommunikation Geografische Lokalisierung Implementierung der Partnerkomponenten Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-14

18.3.6 Datenflussorientierte Architektur Die Software wird in Aktivitäten und Datenflüsse (sowie ggf. Speicher) gegliedert Aktivitäten arbeiten, wenn die von ihnen benötigten Daten vorliegen Systemsteuerung durch Datenfluss Typische Vertreter Leitung-Filter-Architekturen, z.b. UNIX pipes Regler Strukturierte Analyse Spezifikation und Entwurf von Software 18. Architekturstile und -metaphern Martin Glinz Seite 18-15