• Keine Ergebnisse gefunden

Entwicklung von Softwaresystemen mit der PAC- und Metalevel-Architektur

N/A
N/A
Protected

Academic year: 2021

Aktie "Entwicklung von Softwaresystemen mit der PAC- und Metalevel-Architektur"

Copied!
35
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1/35

Entwicklung von Softwaresystemen mit der PAC- und Metalevel-Architektur

Vortrag Robert Bosch Gmbh CM-DI Frankfurt Mai 2002

Burkhardt Renz

Fachhochschule Gießen-Friedberg

Fachbereich Mathematik, Naturwissenschaften und Informatik Wiesenstr. 14

D-35390 Gießen

Burkhardt.Renz@mni.fh-giessen.de

V 1.1, Copyright2002 by Burkhardt Renz. Alle Rechte vorbehalten.

(2)

2/35

Entwicklung von Softwaresystemen mit der PAC- und Metalevel-Architektur

Übersicht

1. Was sind Muster, und was Architekturmuster? – 3

2. Muster interaktiver und adaptiver Systeme – Von MVC über PAC zur Metalevel-Architektur – 6

3. Ein Beispiel eines solchen Systems – 27 4. Quellen – 34

(3)

3/35

Was sind Muster, und was Architekturmuster?

»Jedes Muster ist eine dreiteilige Regel, die eine Beziehung zwischen einem bestimmten Kontext, einem Problem und einer Lösung beschreibt.« Christopher Alexander

Was macht ein Muster aus?

Ein Muster beschreibt ein in einem speziellen Kontext auftretendes konzeptionelles Problem und präsentiert eine erprobte generische Lösung dafür.

Ein Muster besteht also aus:

Kontext: eine Situation, in der ein Problem auftritt,

Problem: das in diesem Kontext oft entsteht und

Lösung: eine erprobte Auflösung des Problems.

(4)

4/35

Eigenschaften von Mustern

Muster helfen dabei, die Qualität von Software zu verbessern, weil das Wissen aus guten Architekturen und Entwürfen genutzt wird.

Muster haben die folgenden Eigenschaften:

• Muster dokumentieren bekannte, erprobte Lösungen.

• Muster beschreiben ein gemeinsames Vokabular von Entwurfsprinzipien.

• Muster sind ein Mittel der Dokumentation von Software-Architekturen.

• Muster unterstützen das Erreichen qualitativer Anforderungen.

• Muster reduzieren die Komplexität von Software-Systemen.

(5)

5/35

Arten von Mustern

Man spricht beim Entwurf von Softwaresystemen von folgenden Arten von Mustern.

Die Begriffe werden jedoch nicht wirklich einvernehmlich verwandt!

• Architekturstil (Shaw/Garlan)

• Architektonischer Mechanismus (Bosch, Kruchten)

• Architekturmuster (Buschmann et al. POSA1)

• Entwurfsmuster (Gamma et al.)

• Sprachidiome (Coplien)

(6)

6/35

Muster interaktiver und adaptiver Systeme – Von MVC über PAC zur Metalevel-Architektur

Wir wollen ein wohlbekanntes Beispiel betrachten und drei Muster entwickeln, die auf einander aufbauen. Wir beginnen mit dem Standard für interaktive Systeme, erweitern ihn für komplexere Anwendungen und mischen einen Schuss Adaptierbarkeit hinein:

Model – View – Controller MVC

Presentation – Abstraction – Control PAC

• Metalevel-Architektur

(7)

7/35

Model – View – Controller MVC

Kontext Interaktive Anwendungen mit einer flexiblen Benutzerschnittstelle.

Problem Die Benutzerschnittstelle muss leicht änderbar sein, für bestimmte Benutzer anpassbar sein.

Lösung Unterteilung der Anwendung in drei Komponenten.

Die Komponenten haben folgende Aufgaben:

(8)

8/35

Das Model enthält die Funktionalität und die Daten,

die Views präsentieren die Inhalte am Benutzer und

die Controler steuern die Verarbeitung der Eingaben des Benutzers.

Struktur

(9)

9/35

Objekte Beispiel Wahlprogramm

(10)

10/35

Dynamik I Initialisierung von MVC

(11)

11/35

Dynamik II Reaktion auf eine Benutzereingabe

(12)

12/35

Varianten und Beispiele Klassisches Beispiel ist Smalltalk, von

diesem Beispiel stammt das Muster her.

Eine Variante ist die Document-View-Architektur, in der View und Controller zusammenfallen und das Document die Rolle des Models übernimmt. Prominentes Beispiel sind die Microsoft Foundation Classes.

Auswirkungen Vorteile sind

• Mehrere synchrone Ansichten eines Modells.

• »Einsteckbare« Views und Controller.

• Austauschbarkeit von Oberflächenelementen ohne Änderung der Kernfunktionalität.

• Verwendbar in Frameworks.

Nachteile sind

• Komplexität.

• Enge Kopplung von Views und Controllers.

• Eventuell zuviele Aktualisierungen.

• Ineffizienter Datenzugriff in Views.

(13)

13/35

Presentation – Abstraction – Control PAC

Kontext Interaktive Anwendung mit vielfältigen Aufgaben und flexibler Benutzerschnittstelle.

Problem Einheitliche Struktur spezialisierter Agenten und ihrer Zusammenarbeit mit hohem Grad an Änderbarkeit und

Erweiterbarkeit.

Agenten verwalten ihren eigenen Zustand und ihre eigenen Daten und kommunizieren mit einem gemeinsamen Protokoll zur

Erreichung der Gesamtaufgabe.

Agenten haben spezialisierte Benutzerschnittstelle, entsprechend ihrer Aufgabe.

Benutzerschnittstellen ändern sich. Änderungen an einzelnen

Agenten oder die Erweiterung des Systems durch neue Agenten soll nicht das ganze System beeinflussen.

(14)

14/35

Lösung Hierarchie von Agenten mit drei Komponenten:

Hierarchie kooperierender, kommunizierender Agenten, die jeweils aufgebaut sind aus Presentation, Abstraction und Control;

die Presentation stellt das sichtbare Verhalten des Agenten dar (Ausgabe und Eingabe),

die Abstraction verwaltet das Datenmodell des Agenten und operiert auf diesen Daten und

die Komponente Control steuert die Verarbeitung zwischen Presentation und Abstraction.

(15)

15/35

Struktur

(16)

16/35

Objekte Wieder das Beispiel Wahlprogramm

(17)

17/35

Dynamik I Initialisierung eines Agenten (BarViewAgent)

(18)

18/35

Dynamik II Reaktion auf eine Benutzereingabe

(19)

19/35

Varianten und Beispiele Die Architektur stammt von Joëlle

Coutaz (1987) und wird für große spezialisierte Systeme eingesetzt.

Eine Variante ist ein Framework für ein System auf Basis von Windows, in dem die Hierarchie von Windowselementen als

Hierarchie von Agenten abgebildet wird. Eine solche Architektur erlaubt eine hochgradig interaktive Oberfläche, deren konkretes Verhalten durch Informationen in der Abstraction gesteuert wird.

PAC kann mit MVC kombiniert werden, indem ein Agent nicht nur eine Presentation, sondern mehrere hat, die er synchronisiert.

Auswirkungen Vorteile sind

• Trennung der verschiedenen Belange, verschiedene semantische Konzept in spezialisierten Agenten.

• Austauschbarkeit von Agenten, Erweiterbarkeit durch neue Agenten.

• Verwendbar in Frameworks, auch für verteilte Anwendungen.

Nachteile sind

• Hohe Komplexität.

(20)

20/35

• Komplexe Control-Komponente.

• Agenten müssen Protokoll teilen.

• Hohe Kommunikationskosten in der PAC-Triade und zwischen den Agenten.

Vergleich mit MVC

• Beide trennen funktionellen Kern von Oberfläche.

• PAC steuert die Konsistenz zwischen Daten und Oberfläche durch eigene Komponente.

• PAC ist ein allgemeineres Architekturmuster.

(21)

21/35

Metalevel Architektur, auch Reflection

Kontext Entwicklung von Systemen, die ihre eigene Adaptierbarkeit von vorneherein unterstützen.

Problem Anwendungen sind auf rasch wechselnde oder optionale Anforderungen nur aufwändig anpassbar, wenn jeweils der Code geändert werden muss.

Lösung

• Trenne die Anwendung in eine Basisebene und eine Metaebene.

• Die Metaebene enthält Metaobjekte, die die Eigenschaften der Objekte der Basisebene beschreiben.

Die Metaobjekte erlauben die dynamische Veränderungen der Eigenschaften der Objekte der Basisebene, die sich oft ändern.

• Wenn ein Objekt der Basisebene verwendet wird, verhält es sich gemäß seiner Beschreibung in der Metaebene.

• Das Metaobjektprotokoll MOP erlaubt den Zugriff auf die Metaebene, es wird durch Experten verwendet.

(22)

22/35

Struktur Die Struktur kann man nur schwer allgemein angeben,

deshalb gibt die folgende Graphik mehr eine Idee des Musters:

(23)

23/35

Objekte Wenden wir die Idee auf unser Wahlprogramm an:

(24)

24/35

Dynamik Wenn im Beispiel des Wahlprogramms die

Metainformation in der Abstraktionskomponente des PACAgenten bei der Erzeugung hinterlegt wird, dann hat man folgende Dynamik innerhalb eines Agenten:

(25)

25/35

Varianten und Beispiele Variante, die Metaebene nur bei der

Konstruktion von Objekten der Basisebene verwendet.

Metaebene wird zum Teil der Abstraction innerhalb eines PACAgenten.

Editoren für die Metaebene, graphische Oberfläche für MOP.

Adaptive Objektmodelle als Technik der Modellierung mit einer Reihe von Analysemustern: TypeObject, RuleObjects, Strategy. . . Reflektion in Programmiersprachen wie CLOS, C# und Java.

Viele Spezialanwendungen wie Autohändlersystem NEDIS,

Standesamtssoftware Autista, Systeme im medizinischen Bereich.

Auswirkungen Vorteile sind

• Leicht an neue Anforderungen anpassbar.

• Geringere Zahl von Klassen, weil viele Objekte durch Metaobjekte gesteuert werden.

• Änderungen können ohne Kompilieren ins System eingebracht werden.

(26)

26/35

• Experten des Fachgebiets können über das MOP Änderungen und Anpassungen vornehmen (ohne Änderung des Codes).

• Varianten eines Systems mit dieser Architektur können mit geringem Aufwand erstellt werden.

Nachteile sind

• Architektur schwierig: was wird sich ändern, was nicht?

• Infrastruktur für Metaebene erforderlich.

• Entwicklung aufwändiger.

• Durch zusätzliche Indirektion schwerer zu verstehen und zu warten.

• Hohes Abstraktionsvermögen bei Entwicklern erforderlich.

• Kann mäßige Performance haben.

(27)

27/35

Beispiel eines interaktiven und adaptierbaren Systems zur

Vorgangsbearbeitung

Funktionale und qualitative Anforderungen

Die Anwendung dient der Vorgangsbearbeitung in einer Behörde (Standesamt).

Es werden etwa 50 verschiedene Arten von Vorgängen bearbeitet.

Es gibt sehr detaillierte rechtliche Vorgaben für die

Vorgehensweise, diese Vorgaben ändern sich oft, auch kurzfristig;

bestimmte Vorschriften sind von Bundesland zu Bundesland verschieden.

(28)

28/35

Funktionale Anforderungen

• Rechtlich korrekte Bearbeitung von Vorgängen im Amt.

• Hochgradig angepasste Benutzeroberfläche für Anwender verschiedener Kenntnisstufe bis hin zum Experten.

• Expertenmodus in eigener Verantwortung des Beamten.

• Abbildung der Abläufe in der Behörde.

Qualitative Anforderungen

• Rasche Adaptierbarkeit bei rechtlichen Änderungen.

• Anpassbarkeit an regionale und lokale Gegebenheiten.

• Datensicherheit und Datenschutz.

• Performanz.

• Wiederverwendbarkeit von Komponenten für ähnliche Programme (Produktlinie).

(29)

29/35

Architektur: PAC plus Metalevel

(30)

30/35

Kooperation mit dem Betriebssystem Windows

(31)

31/35

Varianten der Implementierung der Metaebene

(32)

32/35

Heute würde man anders verfahren:

• Erzeugung der Steuerung für FiniteStateMachine aus

UML-Diagramm oder aus XML-Beschreibung (MS Excel nicht geeignet).

• Beschreibung des Logikmoduls nicht durch Ini-Dateien sondern durch XML-Dateien. Durch XSL-Transformationen kann man jede denkbare Form für die Verwendung erzeugen.

• Datenzugriff: Beschreibung der Datenobjekte durch eine XPath-Notation, Zugriff durch XPath oder XQuery. Werkzeuge heute sehr weit entwickelt, siehe auch Microsoft ADO.NET

• Erweiterung der Metaprotokoll-Ebene denkbar durch das Interception-Muster: man sieht vor, dass der Zugriff auf die Metaebene durch Interceptors aufgefangen und so adaptiert werden kann (siehe [4]).

(33)

33/35

Konsequenzen für Qualitätsmerkmale

Performanz: je höher der Grad der Adaptierbarkeit (Zeitpunkt!?) sein soll, desto höher ist die Einbuße an Performanz. Andererseits:

Varianten können sehr schnell sein.

Speicherbedarf: »Redundanter« Code entfällt, Beschreibungen können zur Laufzeit geladen werden.

Wartbarkeit: Änderungen entlang der Adaptionsstellen sind sehr leicht möglich. Andererseits: Designzentren kaum änderbar.

Testbarkeit: PAC und Metalevel hat klare Schnittstellen und Protokolle, die gut testbar sind. Andererseits: Sprachen für den Metalevel können für Überraschungen sorgen.

Erweiterbarkeit: gut durch Einbauen neuer Agenten, gut durch Erweiterung der Fähigkeiten des Metalevels. Andererseits: schlecht gegen die Adaptionslinien.

Aufwand: sehr hoch; lohnt nur, wenn Adaptierbarkeit ein Muss ist oder Wiederverwendung in Produktlinie vorgesehen ist.

(34)

34/35

Literatur

[1] Mary Shaw, David Garlan Software Architecture:

Perspectives on an Emerging Discipline, Upper Saddle River, New Jersey: Prentice-Hall, 1996.

[2] Jan Bosch Design and Use of Software Architectures, Harlow, England: Addison-Wesley, 2000.

[3] Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal Pattern-orientierte

Software-Architektur: Ein Pattern-System, Bonn:

Addison-Wesley-Longman, 1998.

[4] Douglas Schmidt, Michael Stal, Hans Rohnert, Frank

Buschmann Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects,

Chichester: John Wiley, 2000.

(35)

35/35

[5] Michael Jackson Problem frames: Analysing and structuring

software development problems, Harlow, England:

Addison-Wesley, 2000.

[6] Joseph W. Yoder, Federico Balaguer, Ralph Johnson Architecture and Design of Adaptive Object-Models, Web:

www.joeyoder.com, 2001.

Referenzen

ÄHNLICHE DOKUMENTE

Wir nehmen an, dass uns m Datenpunkte mit korrekten Labels gegeben sind.. Sei h a 0 die vom einfachen Lernalgorithmus berechnete Hypothese, der als Eingabe ein Sample von m

Ein grundlegender Lernalgorithmus im Maschinellen Lernen ist der N¨achste-Nachbarn-Algo- rithmus. Die Idee ist sehr einfach. Daf¨ ur m¨ ussen wir die ¨ Ahnlichkeit zun¨achst

In this example, h correctly classifies all of S (indicated by the points) but incorrectly classifies the dotted area.. If D is the uniform distribution, then err D (h) corresponds

À fin 2019, environ 800 contrôles aléatoires avaient été effectués (cf. graphique ci-dessous). L’éva- luation des contrôles aléatoires montre qu’ils contribuent de

La rentabilité de ce projet est fortement atténuée par le prix de vente de l'énergie thermique à seulement 16 cts/kWh, par le prix d'achat de l'énergie électrique de 20.6 cts/kWh,

Après plusieurs réunions en 2018 et avec l’autorisation de l’organisme responsable, le canton de Fribourg et la direction de projet PAC-SM ont décidé de lancer un projet pilote :

Un PAC système-module correspond à une installation de chauffage fiable et économe en énergie, avec une pompe à chaleur et ses composants, son intégration avec

QR-Code-Reader können auch unerbetene Daten auf dem Handy oder Smartphone ablegen, unerwünschte Installationen auf dem mobilen Gerät vornehmen oder den Benutzer