3. Architektur von Software-...

87
SEW, © Prof. Uwe Aßmann 1 3. Architektur von Software- Entwicklungsumgebungen Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de Version 08-0.7, 27.11.08 1) Werkzeugintegration 2) Architektur von SEU 3) ECMA-Referenzmodell 4) Efektkategorien von Werkzeugen und Komposition mit Werkzeug-Blutgruppen 5) Werkzeugobjekte (tool objects) 6) Graph-Logik- Isomorphismus

Transcript of 3. Architektur von Software-...

SEW, © Prof. Uwe Aßmann 1

3. Architektur von Software- Entwicklungsumgebungen

Prof. Dr. Uwe Aßmann

Technische Universität Dresden

Institut für Software- und Multimediatechnik

http://st.inf.tu-dresden.de

Version 08-0.7, 27.11.08

1) Werkzeugintegration

2) Architektur von SEU

3) ECMA-Referenzmodell

4) Efektkategorien von Werkzeugen und Komposition mit Werkzeug-Blutgruppen

5) Werkzeugobjekte (tool objects)

6) Graph-Logik-Isomorphismus

Prof. U. Aßmann, CBSE 2

Literatur

► Johannes Siedersleben. Moderne Softwarearchitektur - Umsichtig planen, robust bauen mit Quasar, dpunkt-Verlag, 2004, Heidelberg

■ www.openquasar.de

► ECMA, Reference Model for Frameworks of Software Engineering Environments, Technical Report 55, 3rd Edition, Juni 1993

■ http://www.ecma-international.org/publications/fles/ECMA-TR/TR-055.pdf

SEW, © Prof. Uwe Aßmann 3

3.1 Konzepte der Werkzeug- integration

Prof. U. Aßmann, CBSE 4

Integrierter Werkzeugsatzzur inkrementellen Softwareentwicklung

Werkzeugsatz 1 Werkzeugsatz 2

Werkzeugsatz 3 Werkzeugsatz 4

Dokumententyp 1 (D 1)

Dokumententyp 2 (D 2)

Dokumententyp 3 (D 3)

Dokumententyp 4 (D 4)

Quelle : [ ES89, 6, S. 11 ]

Prof. U. Aßmann, CBSE 5

Werkzeugintegration

Benutzerschnitt-stellen-Integration

CASE-Werkzeug

Prozess-Integration

Steuer-Integration

Daten-Integration

Daten-austausch

Daten-verbindung

Daten-teilung

Verbindung möglicherWerkzeugfunktionen durch:

• Interprozesssteuerung (Inf.austausch direkt zwischen Werkzeugen)• Metasteuerung (Aufruf über Metaagenten)

Werkzeugintegration zur Unterstützung eines definierten Prozesses/ Vorgehens bestehend aus mehreren Schritten

Forderungen: • Interoperabilität - u. U. Formatwandlung• Redundanzfreiheit - Einmalspeicherung• Datenkonsistenz - Persistenz• Synchronisation - Abstimmung des Werkzeugzugriffs

Quelle: [ Balzert-II 3, S. 605 ]

Zusammenarbeit unter einheit-licher Benutzungsoberfläche

Zusammenarbeit mehrerer Werkzeuge mit gleicher Präsentation, gleichem Verhalten und Interaktionsformen

Prof. U. Aßmann, CBSE 6

Werkzeuge ohne Datenintegration

DFD Editor Masken Editor Masken Generator

datum maskedatum datum maske

programm

wz1 wz2 wz3

DB1 DB2 DB3

Quelle: nach [ Hesse 4. S. 196 ]

► .. benötigen hohen Aufwand zum Austausch von Daten

Prof. U. Aßmann, CBSE 7

Datenverbindung/Datenaustausch

DFD Editor Masken Editor

datum maskedatum

wz1 wz2

DB1 DB2

Datenverbindung ist die Einführung semantischer Beziehungen zwischen Teilen von Datenbeständen, die von verschiedenen Werkzeugen be- reit gestellt werden.

Datenaustausch ist die Übertragung von strukturierten Informationen zwischen Werkzeugen in gegenseitig verständlicher Form (z. B. XMI, CDIF).

Prof. U. Aßmann, CBSE 8

CASE Austauschformate

Quelle: http://www.omg.com/technology/documents/formal/xmi.htm

Austauschformat: Hersteller- und methodenunabhängigen (Meta-)Datenkonzept für die Modellierung von Austauschdaten zwischen CASE sowie die Spezifkation von Repositories► XML Metadata Interchange (XMI)

■ Nutzung der Meta Object Facility (MOF) als Metamodell (u.a. Basis des Austausches von UML-Diagrammen)

► CASE Tool Data Interchange Format (CDIF) - MetaModelle in ERD für■ Data Flow Model, Data Defnition, State Event Model ■ Object Oriented Analysis and Design■ Presentation Location and Connectivity Subject ■ http://www.ecma-international.org/publications/fles/ECMA-ST/Ecma-

270.pdf

► Universal Object Language UOL■ Beschreibung von UML-Modellen, Basis Eifel

Einigung auf gemeinsame Weiterentwicklung und Einmündung aller Bemühungen in XMI

Prof. U. Aßmann, CBSE 9

Datenteilung (Shared Repository)

wz1 wz2

Privatkunde Zeichngsber.Person Person

transienteObjekte

transienteObjekte

KlassePrivatkunde

Klasse PersonKlasseZeichngsber.

OOA-Dokument-WurzelArtefaktbank

Editor 1 Editor 2

Vererbung Vererbung

Quelle: Platz, D.,Kelter, U.: Konsistenzerhaltung von Fensterinhalten in SEU; http://pi.informatik.uni-siegen.de

► Werkzeuge greifen direkt auf Daten zu, die in einem gemeinsam verfügbaren Speicher (Repository) nach einem einheitlichen Datenmodell abgelegt sind.

► Repository (Repositorium, Datenbasis, Objektbank, Artefaktbank): Datenverwaltungssystem zur Speicherung aller Daten- und Projektinformationen bei der Anwendung von CASE-Tools.

SEW, © Prof. Uwe Aßmann 10

3.2 Architektur von SEU

Prof. U. Aßmann, CBSE 11

Architektur einer SEU

Gemeinsame Benutzungs-Schnittstelle

CASE - Repositorium

Phasenbezogeneund Life Cycle

Werkzeuge

Front EndWerkzeuge

Back EndWerkzeuge

Schicht 3

Schicht 2

Schicht 1

Schicht 0

Kommunikations- schnittstelle

Tool-Export-Im-port-Schnittstelle

System-schnittstelle

CASE – DatenbankDateisystem Web

Prof. U. Aßmann, CBSE 12

Schalenmodell am Beispiel Delphi

Bediensystem - Shell

Formular-Designer

Quelltext-Editor

Bild-Editor

ObjektinspektorD

aten

ban

k-A

nb

ind

er

Klassen

-

Bro

wser

Com

pile

r,Li

nkerR

apid

Pro

toty

pin

g

Debugger

Testhilfe

Hilfe-Tool

Packag

e-

Ed

itor

RepositoryProjektbibliothek

Bibliothek

Komponen

ten-

VCL

SEW, © Prof. Uwe Aßmann 13

3.3 Das ECMA Referenzmodell

.. Der ECMA-Toaster

Prof. U. Aßmann, CBSE 14

European Computer Manufacturing Association (ECMA)

► Weltweite Normierung der Informationstechnologie und Nachrichtentechnik

■ Mehr als 365 ECMA-Standards■ 2/3 sind als internationale Standards und/oder technische Reports

angenommen worden.

► Ziele:■ Zusammenarbeit mit nationalen, europäischen und internationalen

Normierungsorganisationen über die Standardisierung von Kommunikationstechnologien (ICT) und Verbraucherelektronik (CER).

■ korrekten Gebrauch von Standards anregen und kontrollieren.■ Veröfentlichung von Standards und technischer Reports, Unterstützung

ihrer Verbreitung auch in elektronischer Formu. a. folgende Technischen Ausschüsse:� TC 32: Kommunikation, Netze und Systemverbindungen� TC 39: Programmieren und Script-Sprachen� TC 43: Universal 3D (U3D)� TC 12: Sicherheit

Quelle: http://www.ecma-international.org/

Prof. U. Aßmann, CBSE 15

Sichten des ECMA-Referenzmodells

konzeptionelle Sicht beschreibt die Semantik (Funktionalität), ohne Imple- tierung oder Verfügbarkeit für den Nutzer zu beachten

externe Sicht beschreibt die externe Nutzung des Dienstes durch andere Dienste bzw. durch Werkzeuge od. den Nutzer

interne Sicht beschreibt die spezifische Implementierung (Betriebs- system, andere Tools) für die Dienstausführung

Sicht auf Operationen führt die Menge von Operationen eines Dienstes auf, die zur Erreichung der Funktionalität (konzeptionelle Sicht) benötigt wird

Sicht auf Typen beschreibt das Datenmodell des Dienstes einschließ- lich der Informationen über dieses Datenmodell (Metadatenmodell)

Sicht auf Regeln beschreibt Regelmenge, die mögliche Menge der Ope- rationen (Sicht auf Operat.) und annehmbare Zustände der Daten definiert

Sicht auf Dienst-zu- anhand typischer Beispiele wird gezeigt, wie einDienst-Beziehungen Dienst mit einem anderen kommunizieren kann

Prof. U. Aßmann, CBSE 16

ECMA-Referenzmodell

Object Management Services (Repository)

CommunikationServices

Process Management Services

User Interface Services

Tool Slots

Quelle: ECMA, Reference Model for Frameworks of Software Engineering Environments, Technical Report 55, 3rd Edition, Juni 1993http://www.ecma-international.org/publications/files/ECMA-TR/TR-055.pdf

+ Policy Enforcement Services+ Framework Administration and Configuration Services

Prof. U. Aßmann, CBSE 17

BenutzungsschnittstelleUSER INTERFACE SERVICES

Bereitstellung einer Reihe von Diensten (services, Schnittstellen) , die zur Gewährleistung der Benutzungsschnittstellen-Integration (konsistente Bedienung) benötigt werden: User Interface Metadata Service dient der Defi nition, Steuerung und Hand-

habung von Schemata zur Unterstützung der Benutzungsschnittstelle (z. B. X-Window)

Session Service gewährleistet volle Funktion, unabhängig von Nutzer oder Hardwareumgebung (z. B. Farb- oder Monochrommonitor)

Security Service gewährleistet Sicherheitsanforderungen, wie Nutzerauthen- tifi kation, Dunkelsteuerung unbenutzbarer Funktionen u. a.

Profi le Service gestattet mögliche Veränderungen, wie z. B. Systemeinstel- lungen (Farbe), Menge zu verwendender Werkzeuge u.a.

User Interface Name and Location Service stellt fest, wer sich wo zum Sy-stem Zutritt verschafft hat. Er gewährleistet das Einloggen an allen Termi-

nals einer Multi-User-Umgebung unter gleichem Namen. Internationalization Service stellt nationale Besonderheiten (z. B. Zeichen-

sätze, Datumsformate) zum Zugriff auf das Rechnersystem bereit und gewährleistet ihre Konvertierbarkeit zwischen unterschiedlichen Ländern.

Prof. U. Aßmann, CBSE 18

ProzessverwaltungPROCESS MANAGEMENT SERVICES

Defi nieren und organisieren die Ausführung aller Werkzeuge und Aktivitäten für den Softwareentwicklungsprozess von den rein technischen Maßnahmen bis hin zur Steuerung betriebswirtschaftlicher Aspekte: Process Defi nition Service defi niert aus den im Repository gespeicherten

Projektdaten die Bedingungen zur Ausführung neuer Aktivitäten Process Control Service steuert Prozesse im allgemeinen auf dem Niveau

eines bestimmten Vorgehensmodells zur Beeinfl ussung anderer Prozesse, wodurch der Nutzer entsprechend seiner Rolle unterstützt wird

Process Enactment Service unterstützt und bietet Möglichkeiten der Steue- rung vorher defi nierter Aktivitäten (Analyse-, Hilfe-, Simulationsfunkt.)

Process Visibility and Scoping Service legt zum Zwecke der Kommunika- tion und Koordination Sichtbarkeit, Zeitpunkt und Ort von Aktivitätsteilen für andere Aktivitäten fest

Process State Service sammelt und wertet Ereignisse von Aktivitäten wäh- rend ihrer Ausführung aus, die für die Koordination und spätere Entschei- dungsplanung anderer Projektaktivitäten notwendig sind

Process Ressource Management Service verwaltet das Festlegen von Ressourcen zur Ausführung defi nierter Prozesse für Werkzeuge und Nutzer

Prof. U. Aßmann, CBSE 19

Werkzeuge (TOOL SERVICES)

Die gesamte Toolmenge soll nach außen hin durch eine einzige Schnittstelle repräsentiert werden.

Die Menge der Tools soll den Softwareentwicklungsprozess vollständig abdecken.

Die Werkzeuge (funktionale Elemente) sind auswechselbar und kommunizieren über den Communication Service oder Object Management Service mit anderen Werkzeugen und Diensten der SEU.

Wenn Werkzeuge in die SEU integriert werden, ist zu prüfen, ob sie Frameworkdienste bieten. Wenn ja, ist zu entscheiden, diese Dienste weiterhin separat zu ermöglichen oder doch auf die Dienste des SEU-Frameworks überzugehen.

Um für alle Werkzeuge ein gleiches Erscheinungsbild zu erhalten, müssen Basisdienste und Dienste eines SEU-Framework nach den standardisierten Vorschriften realisiert werden.

Prof. U. Aßmann, CBSE 20

RepositoriumOBJECT MANAGEMENT SERVICES

dienen der Defi nition, der Speicherung, der Handhabung, der Verwaltung und dem Zugriff auf Objekte/Dokumente (Dateien, Programme, Bibliotheken, Projekte, Geräte usw.) und den Beziehungen zwischen ihnen: Metadata Service gestattet die Defi nition, Steuerung und Handhabung von z.B.

Schemata, um den Aufbau des Datenmodells (Daten über die Struktur von Objekten) zu unterstützen.

Data Storage and Persistence Service unterstützt das Anlegen und Speichern von Objekten nach der Metadatenbeschreibung über den Zeitraum des Pro- zesses hinaus bis zum endgültigen Löschen des Objektes.

Relationship Service erlaubt die Defi nition und Handhabung von Beziehungen (selbst wiederum eigener Typ) zwischen Objekten und Objekttypen.

Derivation Service legt Wege fest, welche Objekte von anderen abgeleitet sind (z. B. Objektcode aus Quellcode ähnlich Make-Files). Er schließt Mechanismen zur Vererbung von Datenbeschreibungen ein.

Concurrency Service sichert den gleichzeitigen zuverlässigen Zugriff für Nut- zer und Prozesse zum gleichen Objekt der Datenbasis.

Version Service unterstützt das Anlegen, Zugreifen und Verbinden von Objekt- und Konfi gurationsversionen der SEU.

Prof. U. Aßmann, CBSE 21

Weitere Services

► POLICY ENFORCEMENT SERVICES sind für Sicherheitsaspekte, Integritätsüberwachung und Verwaltungsfunktionen zuständig:

■ Mandatory Confdentiality Service legt auf eigenen Wunsch Zugrifsrechte und Sicherheitsanforderungen (geheim, str. geheim) für Objektinfomationen fest.

■ Mandatory Integrity Service gestatten den Schutz von SEU-Objekten vor unauthorisierten Änderungen, z. B. Eintragung "read only"usw.

■ Mandatory Conformity Service überwacht alle Aktivitäten zur Einhaltung von Konformitätsanforderungen, die z.B. aus der Qualitätssicherung stammen.

► COMMUNICATION SERVICES dienen der Kommunikation zwischen Werkzeugen, zwischen Basisdiensten sowie Diensten verschiedener SEU.

■ Basismechanismen sind Nachrichten (Punkt-zu-Punkt, Broadcast, Multicast), Betriebs- systemaufrufe, Remote Procedure Calls und der Datenaustausch

► FRAMEWORK ADMINISTRATION AND CONFIGURATION SERVICES übernehmen die sorgfältige Installation der SEU und ihre laufende Pfege u.a.:

■ Tool Registration Service übernimmt das An- und Abmelden neuer Tools.

■ User Administration Service unterstützt das An- und Abmelden von Nutzern zum System

Prof. U. Aßmann, CBSE 22

Abhängigkeiten zwischen Dienstendes ECMA - Referenzmodells

UserInterfaceMetadataService

UserAssistance

Service

PresentationService

ProfileService

ToolService

SessionService

SecurityService

User Admi-nistrationService

Internationali-zation Service

ToolRegistration

Service

MandatoryConformity

Service

MandatoryIntegrityService

MandatoryConfidentiality

Service

Prof. U. Aßmann, CBSE 23

AD/CYCLE-Architektur

User Interface

Workstation Service

Work Management

Tool Services

AD Information Model

LibraryService

RepositoryService

ADPlatform

ADTools

Quelle: [11, S. 141]

SEW, © Prof. Uwe Aßmann 24

3.4 Efektkategorien für Werkzeuge (Blutgruppen) zur Komposition in SEU

Prof. U. Aßmann, CBSE 25AS-Werkzeug

AQ-Werkzeug

AC-Werkzeug

XM-Werkzeug

RR-Werkzeug

XC-Werkzeug

RN-Werkzeug

RD-Werkzeug

XA-Werkzeug

RE-Werkzeug

RO-Werkzeug

MT-Werkzeug

MR-Werkzeug

XX-Werkzeug

AV-Werkzeug

XE-Werkzeug

Analysieren (A)‏

KonservativErweitern (X)‏

InvariantenerhaltendRestrukturieren (R)‏

Modifizieren (M)‏

Efektkategorien für Werkzeuge

Prof. U. Aßmann, CBSE 26

Werkzeugkomposition

Wie kann man Werkzeuge einfach zu grösseren Werkzeugen komponieren?

► Realistische Werkzeuge verarbeiten immer eine DDL, DCL, DQL, DML, sowie Verhaltensspezifkationssprachen (BSL)

► Die individuelle Fertigung von solchen Werkzeugen ist zu teuer.

Prof. U. Aßmann, CBSE 27

Idee zur Lösung

Übertrage Software-Blutgruppen-Gesetze auf Werkzeuge

► [Siedersleben, Quasar]

Prof. U. Aßmann, CBSE 28

Software Blood Groups (Blutgruppen) (Softwarekategorien nach Wiederverwendbarkeit)

► 0: independent of application and technology■ JDK collections, C++ STL, GNU regexp

► A: application- or domain-related. Stems from domain model.

■ Client, Customer, ...► T: technology-oriented APIs, independent of

application, but not of technology■ JDBC, CORBA CosNaming

► AT: depending on application and technology■ To be avoided: hard to maintain, to reuse, to

evolve► R: for representation changes of business objects

into external representations and back■ Serialization, deserialization, encryption,

decryption, packing, unpacking■ Transporting an object from one language's

representation to anothers (e.g., Java to Cobol)

0-Software

► USES relationships:

T-Software

AT-Software

A-Software

R-Software

Prof. U. Aßmann, CBSE 29

Architectural Components

► 0-interfaces contain only technical types (strings, collections etc)■ well reusable

► A-interfaces contain domain types (account, bill,..)■ A-components live in the Application-Logic and the Database tier■ Hard to reuse

► T-interfaces provide technical APIs■ Necessary everywhere

► R-interfaces contain both, because they change representation■ Are necessary in the middleware and data layer■ Special kind of A■ Can often be generated from specifcations, hence not reusable, but re-

generatable. XML tools, e.g., XMI (model interchange). OMG MOF tools (Model-driven development)

Prof. U. Aßmann, CBSE 30

Zweck der Blutgruppen

► Zweck der Blutgruppen ist es, Anwendung und Technik möglichst weit voneinander zu trennen, um sie getrennt besser wiederverwenden zu können.

Siedersleben's Blutgruppen-Gesetz: Jede Schnittstelle, Klasse, und Komponentegehört genau zu einer Softwarekategorie.

Prof. U. Aßmann, CBSE 31

Wiederverwendbarkeit der Blutgruppen

► Die Wiederverwendbarkeit der Gruppen nimmt von 0 nach AT hin ab.

■ Technisch orientierte Komponenten sind leichter wiederzuverwenden

■ Anwendungsspezifsche schwerer.

■ Problemfall AT

► Die Blutgruppen durchziehen alle Schichten der BCED-Architektur

■ Auf jeder Ebene gibt es Technik, Applikation, Repräsentation

0-Software

T-Software

AT-Software

A-Software

R-Software

--

++

+

-

--

Prof. U. Aßmann, CBSE 32

Efektkategorie Analyse-Werkzeuge (Blutgruppe A)

► Analysewerkzeuge lesen das Repositorium, verändern aber die Artefakte nicht,

■ so dass alle bearbeiteten Artefakte unabhängig voneinander bleiben

► AS-Werkzeuge (Search, Automatisierungsgrade (1)-(3))■ Der Entwickler will also etwas über den Artefakt, seine Struktur, oder

seine Attribute wissen und setzt dazu ein AS-Werkzeug ein. ■ Bsp.: Browser (Brauser), Lister, Editoren, Suchmasken-Programme oder

Web-Browser.

AS-Werkzeug

AQ-Werkzeug

AC-WerkzeugAV-Werkzeug

Analysieren (A)‏

Prof. U. Aßmann, CBSE 33

AQ-Werkzeuge

► AQ-Werkzeuge (Query, Automatisierungsgrad (4)).■ Diese Kategorie fragt komplexere Sachverhalte in Repositorien ab. ■ Hier berechnet man Wissen, das implizit in den Artefakten vorhanden,

aber nicht direkt ablesbar ist.

► AQ-Werkzeuge benötigen AS-Funktionalität, im Allgemeinen müssen aber weitergehende, komplexe Abfragesprachen und spezielle Abfragewerkzeuge eingesetzt werden

■ Auch die Ergebnisse sind oft so komplex strukturiert, so dass sie einer speziellen Aufbereitung bedürfen.

■ AQ-Werkzeuge sind also Query-Werkzeuge (query engines), die Wissen über Artefakte explizit darstellen.

► Beispiele: ■ logische Programmiersprachen, spezialisierte Code-Query-Werkzeuge wie

Semmle [Semmle07] bieten SQL-ähnliche Anfragesprachen an, um Codebasen zu analysieren.

■ Aufrufgraphvisualisierer, Metrikwerkzeuge und Informationssysteme für Geschäftsanalyse (business intelligence)

Prof. U. Aßmann, CBSE 34

AC-Werkzeuge

► AC-Werkzeuge (syntactic checking, syntaktische Prüfung, Automatisierungsgrad (5)).

■ Diese Art von Werkzeugen prüft Konsistenzbedingungen über Repositorien (Integritätsregeln, integrity constraints, context conditions, validity checks).

■ Bei der Prüfung von Integritätsbedingungen muß zwischen syntaktischen und semantischen Integritätsregeln unterschieden werden.

■ Syntaktische Integritätsregeln lassen sich ohne Rückgrif auf die Semantik eines Programms überprüfen und bilden die Klasse der AC-Werkzeuge.

■ Bei der syntaktischen Prüfung wird das Ergebnis gemeldet und am Zustand des Repositoriums nichts geändert.

■ Natürlich werden zur Informationssammlung beim Prüfen AQ-Werkzeuge eingesetzt. Der Entwickler kann also mit einem AC-Werkzeug die syntaktische Konsistenz seines Artefakts prüfen.

■ Beispiele bilden z.B. ein Parser, Typprüfer oder Bedingungsprüfer (constraint checker) , Stilprüfer.

Prof. U. Aßmann, CBSE 35

AD-Werkzeuge

► AD-Werkzeuge (diference, Diferenz- bzw. Ähnlichkeitsbestimmung) ■ Um zwei Artefakte eines Metamodells miteinander vergleichen zu

können, müssen ihre Gemeinsamkeiten und Unterschiede bestimmt werden.

■ Artefakte können bezüglich eines Gleichheitskriteriums gleich, ähnlich oder völlig verschieden sein.

■ AD-Werkzeuge werden zum Beispiel in Regressionstests eingesetzt, um Ausgabedaten verschiedener Programmversionen mit auf Übereinstimmung zu prüfen. Schlägt der Vergleich fehl, hat sich das Programm semantisch verändert, was auf einen Fehler in der Entwicklung hinweist

Prof. U. Aßmann, CBSE 36

AV-Werkzeuge

► AV-Werkzeuge (Validation, semantic checking, semantische Prüfung. Automatisierungsgrad (6)).

■ AV-Werkzeuge prüfen die Semantik eines Programms. Zum Beispiel stellt ein Regressionstest eine semantische Prüfung dar, bei der validiert wird, ob eine neue Version die gleichen Ausgabedaten erzeugt wie eine vorhergehende.

■ Theorembeweiser wie Key beweisen, jenseits der Validierung durch Testen, die Korrektheit von Software.

■ Theorembeweiser können auch eingesetzt werden, um Verträge für Prozeduren und Methoden zu prüfen.

■ Auch können sie Anwendungen, die Frameworks benutzen, daraufhin überprüfen, ob sie das Framework korrekt benutzen.

Prof. U. Aßmann, CBSE 37

A-Werkzeuge

► Analysewerkzeuge arbeiten idempotent, das heisst, sie können immer wieder angewendet werden, ohne dass sich ihre Ergebnisse oder auch die Artefakte sich ändern.

► Damit können Analysewerkezeuge auf einfache Weise mit Werkzeugen, die andere Efekte auf das Repositorium erzeugen, kombiniert werden.

► Insbesondere bedeutet das für die transaktionsorientierte Kopplung solcher Werkzeuge innerhalb von Softwareentwicklungsumgebungen (SEU), dass sie als Leser und nicht als Schreiber gelten, und somit parallel durchgeführt werden können.

Prof. U. Aßmann, CBSE 38

Konservativ erweiternde Werkzeuge (X-Werkzeuge, Blutgruppe X)

► Konservativ erweiternde Werkzeuge (X-Werkzeuge) fügen den Artefakten oder dem Repositorium Informationen hinzu, zerstören aber keine Information.

► Dadurch sind sie von A-Werkzeugen unabhängig und einfach mit ihnen kombinierbar.

► X-Werkzeuge besitzen i.W. Automatisierungsgrad (4), Informationsaufbereitung, oder auch (5) Produkt-Generierung.

XM-WerkzeugXC-Werkzeug

XA-Werkzeug

XX-Werkzeug

XE-Werkzeug

KonservativErweitern (X)‏

Prof. U. Aßmann, CBSE 39

XM-Werkzeuge

► XM-Werkzeuge (Materialisierung)■ Diese Art von Werkzeugen manifestiert Wissen, das schon implizit im

Repositorium vorhanden war, in expliziter Form. ■ Das beinhaltet AQ-Funktionalität, bedeutet aber gleichzeitig, dass das

ermittelte Wissen im Repositorium eingetragen wird.

► Somit erhöhen XM-Werkzeuge die Redundanz des Repositoriums, verbessern aber den Zugrif auf die enthaltene Information.

■ Für die Entwicklung bedeutet das, dass der Entwickler seinen Artefakt um Wissen anreichert, das implizit schon vorhanden war.

■ Dies kann nötig sein, um mit weiteren Operationen fortfahren zu können.

► Beispiele■ Erstellung von Symbol- oder Defnitionstabellen, die im Kontext

vorhandene Defnitonen von Namen zusammenfassen und zum Zugrif bereithalten.

■ Ersetzungssysteme wie Termersetzungssysteme oder Graphersetzungssysteme können eingesetzt werden

Prof. U. Aßmann, CBSE 40

XR-Werkzeuge

► XR-Werkzeuge (Repräsentationswechsel, representation change)■ Diese Art von Werkzeugen erzeugt für einzelne Artefakte oder sogar das

ganze Repositorium eine weitere Repräsentation, ohne die existierenden Daten zu verändern.

■ Dies kann eine externe Repräsentation des Artefaktes sein, um den Artefakt zu serialisieren, zu ver- und entpacken, zu verschlüsseln oder in eine andere Sprache überführen.

► Zu XR-Werkzeugen gehören neben Transformatoren auch Generatoren, die binäre Formen von Quelldateien erzeugen, indem sie nur die Repräsentation des Quellcodes verändern, aber die Semantik erhalten.

■ Bauwerkzeuge (build tools) sind ebenfalls zu XR-Werkzeugen zu zählen, da sie den kompletten Aufbau der Systeme beschreiben und Eingabefles für die Übersetzung in eine ausführbare Form liefern

Prof. U. Aßmann, CBSE 41

XA-Werkzeuge

► XA-Werkzeuge (Adaption, Anpassung). ■ Oft besteht der Bedarf, eine Softwareartefakt auf bestimmte

Randbedingungen anzupassen, z.B. auf die Plattform, auf der er ausgeführt werden soll, auf den Benutzer oder auf bestimmte funktionale Varianten hin.

■ Typisches Problem ist die Installation von Produkten, die sehr stark von der Umgebung des Systems abhängen und vielfältige Anpassungen erfordert.

■ Installationswerkzeuge, interaktives Adaptionswerkzeuge (Assistent, wizard).

Prof. U. Aßmann, CBSE 42

XX-Werkzeuge

► XX-Werkzeuge (Extension, Erweiterung), Automatisierungsgrad(4)■ XX-Werkzeuge bringen in ein Repositorium eine Erweiterung ein, ohne

seinen Inhalt zu zerstören. ■ Hierunter kann man Annotationswerkzeuge für Modelle zählen oder auch

Werkzeuge, die zusätzliche Sichten auf einen Artefakt einbringen, wie zum Beispiel aspektorienterten Weber

. Trennung von Belangen (separation of concerns) in einen Kern und einen Aspekt

. Ein Weber muss eingesetzt werden, der Kern und Aspekt vereinigt.

. Für einzelne Webevorgänge kann das durchaus automatisch geschehen, für komplexere Prozesse wie z.B. die modellgetriebene Entwicklung jedoch ist das nicht unbedingt der Fall.

Prof. U. Aßmann, CBSE 43

XE-Werkzeuge

► XE-Werkzeuge (Detaillierung, Elaboration, Automatisierungsgrad (8), (9): Entscheidungshilfe bzw. Übernahme).

■ Solche Werkzeuge werden dazu eingesetzt, um einen partiell spezifzierten Artefakt, z.B. ein Modell, zu vervollständigen. XE-Werkzeuge unterstützen dies durch die Präsentation der “Lücken” des Modells, d.h. durch die Präsentation von zu verfeinernden Teilen oder generischen Parametern.

■ Sie unterstützen also den Entwickler bei seinen Entscheidungen und sind somit Hilfswerkzeuge, die dem Entwickler bei der Vervollständigung seines Artefakts helfen.

► Bsp: ■ Elaborations-Assistenten (refnement wizards), die dem Entwickler helfen,

Parameter einzugeben, Masken, die noch fehlende Spezifkationsteile einfordern.

■ Zu dieser Kategorie zählen auch AC-Prüfwerkzeuge, die Inkonsistenzen entdecken und beim Entwickler fehlende Informationen abfragen.

Prof. U. Aßmann, CBSE 44

X-Werkzeuge

► X-Werkzeuge verfetten die Repräsentation des Artefakts, d.h. sie führen Redundanz ein.

► Konservativ erweiternde Werkzeuge sind ebenfalls idempotent, wenn sie die bei vorhergehener Ausführung erzeugten Informationen überschreiben.

► Beispiel: ■ Back-End eines Übersetzers: besteht aus XA-Werkzeugen, die für die

Plattform, den Chip und die Laufzeitumgebung angepassten Code erzeugen, die Zwischenrepräsentation aber unangetastet lassen.

Prof. U. Aßmann, CBSE 45

R-Werkzeuge (Blutgruppe R)

► Restrukturierende Werkzeuge verändern die Information im Repositorium, also auch die enthaltenden Artefakte.

► Allerdings vermeiden sie beliebige Änderungen, sondern erhalten bestimmte Invarianten, zum Beispiel die Semantik eines Artefakts.

■ Dadurch bleiben die Ergebnisse von anderen Werkzeugen erhalten, insofern sie auf den Invarianten Informationen aufsetzen.

► Auch diese Werkzeuge können daher oft mit A- und X-Werkzeugen auf einfache Art kombiniert werden

RR-Werkzeug

RN-Werkzeug

RD-Werkzeug

RE-Werkzeug

RO-Werkzeug

InvariantenerhaltendRestrukturieren (R)‏

Prof. U. Aßmann, CBSE 46

RR-Werkzeuge

► RR-Werkzeuge (Refakturierung, refactoring), Automatisierungsgrad (4).

■ Refakturierung meint, die Struktur eines Artefakts oder sogar des ganzen Repositoriums zu ändern, ohne die Semantik anzutasten.

■ Für den Einsatz eines RR-Werkzeugs bedeutet dies, dass es die Semantik des Artefakts im Repositorium invariant lässt, obwohl es an seiner Struktur Veränderungen vornimmt.

► Beispiel:■ Ein RR-Werkzeug Namen von Variablen, Klassen oder Methoden

verändern; so lange es das konsistent tut, bleibt die Programmsemantik erhalten.

► In den letzten 10 Jahren haben Refakturierungswerkzeuge große Bedeutung gewonnen; mittlerweile gibt es keine Entwicklungsumgebung mehr, die keine Funktionalität für Umbenennung, Verschieben von Methoden, Aufsplitten von Klassen, etc. bietet.

Prof. U. Aßmann, CBSE 47

RN-Werkzeuge

► RN-Werkzeuge (Normalisierung), Automatisierungsgrad (4).► Diese Art von R-Werkzeugen restrukturiert die Datenbasis, um sie in

eine Normalform zu bringen (spezielle Refakturierung). ■ Dabei kann Redundanz eingeführt oder auch eliminiert werden;

entscheidend ist, dass der Endzustand eine normalisierte Form besitzt, die für zukünftige Operationen leichter auszuwerten ist.

► Mit einer normalisierten Darstellung kann z.B. die Zahl der Fälle reduziert werden, die ein Folgewerkzeug zu untersuchen hat (vereinfachte Fallanalyse), oder es kann einfacher sein, einen Repräsentationswechsel durchzuführen.

► Normalisierungen werden häufg in einem Übersetzer oder Refakturierungswerkzeug angewandt, z.B. werden Mehrfachzuweisungen in mehrere Einfachzuweisungen umgewandelt, abkürzte Pfade entfaltet, etc.

Prof. U. Aßmann, CBSE 48

RD-Werkzeuge

► RD-Werkzeuge (Reduktion, vertikale Transformation), Automatisierungsgrad (7).

■ Werkzeuge dieser Kategorie normalisieren in spezieller Weise, denn sie wandeln Schritt für Schritt ein Programm in einer höheren Sprache in eine Programm einer niederen Sprache.

■ Im Gegensatz zum allgemeinen Fall des Übersetzens wandelt dabei ein Reduktionsschritt genau ein Konstrukt der höheren Sprache in die niedere Sprache um (Flachklopfen, lowering). Damit werden RD-Werkzeuge oft als Präprozessoren eingesetzt.

► Beispiel:■ Codegeneratoren für domänenspezifsche Programmiersprachen (DSL).

Diese wandeln ein Programm nicht direkt in Maschinensprache, sondern in eine Hochsprache um.

■ Content-Management-Systeme: Über mehrere Stufen werden die Dokumentformate in Web- und Grafkformate umgesetzt, um sie dem Benutzer anzeigen zu können. die dazu notwendigen Schritte sind oft Reduktionen.

Prof. U. Aßmann, CBSE 49

RE-Werkzeuge

► RE-Werkzeuge (Elimination, Entfettung, Verschlankung), Automatisierungsgrad (4).

■ RE-Werkzeuge bilden den Gegenpart zu XM-Werkzeugen. ■ Sie suchen nach redundanten Teilen der Datenbasis, die aus anderen

rekonstruiert werden können und eliminieren diese (Verschlankung).

► Beispiele ■ Entfernen von abgeleiteten Relationen■ Elimination gemeinsamer Teilausdrücke■ Ausfaktorisieren von Prozeduren oder Oberklassen.

► RE-Werkzeuge sind auf AS-Werkzeuge zurückführbar, da■ Redundanzen nur dann gefunden werden können, wenn Muster mehrfach

im Artefakt gefunden werden können (Mustersuche nach Redundanzen). ■ Zusätzlich muß dann natürlich das Replikat eliminiert werden, was einer

einfachen Transformation entspricht.

Prof. U. Aßmann, CBSE 50

RO-Werkzeuge

► RO-Werkzeuge (Optimierung), Automatisierungsgrad (7). Optimierende Werkeuge transformieren den Artefakt bezüglich einer Optimalitätsfunktion, z. B. einer Kosten-Nutzen-Zielfunktion, die auf einem Kosten-Nutzen-Modell beruht.

► Dabei bleibt die Semantik des Programms erhalten, es ändern sich aber seine Qualitätseigenschaften, z.B. der Verbrauch an Speicher, Rechenzeit oder an Energie.

Prof. U. Aßmann, CBSE 51

R-Werkzeuge

► R-Werkzeuge können nur dann mit A- und X-Werkzeugen kombiniert werden, wenn die Invarianten, die sie erhalten, mit dessen Funktionalität harmonieren.

► R-Werkzeuge sind kompatibel zu A- und X-Werkzeugen, falls jene auf Teilen des Repositoriums arbeiten, die nicht von der Invariante erfasst sind.

Prof. U. Aßmann, CBSE 52

R-Werkzeuge - Beispiele

► Frontend eines Übersetzers: besteht aus RR-, XM-, und XX-Werkzeugen.

► Lexikalische Analysator:■ wandelt die Zeichen der Eingabedatei in einen Strom von Lexemen

(token), die dann vom

► Zerteiler: in einen Baum verwandelt werden, der der abstrakten Grammatik der Programmiersprache entspricht (RR).

■ Eigentlich müsste der Parser die Kontextbedingungen des Programms mitprüfen, da aber die Analyse von kontextsensitiven Grammatiken mindestens quadratischen Aufwand besitzt, spaltet man die Analyse der Namen, Typen, und Werte in eine separate AC-Phase ab (statische semantische Analyse).

■ Dabei zeigt jede Fehlermeldung der semantischen Analyse eine Verletzung der Kontextbedingungen des untersuchten Programms an, z.B. das Fehlen der Defnition einer Variablen.

► Daneben werden zur semantischen Analyse Namensrelationen in Defnitionstabellen manifestiert (XM-Werkzeug).

Prof. U. Aßmann, CBSE 53

R-Werkzeuge - Beispiele

► Optimierer: enthält■ RE-Werkzeuge (Entfernung von gemeinsamen Teilausdrücken in

Grundblöcken), ■ normalisierende Vereinfachungen (RN-Operationen) ■ und RO-Werkzeuge (Operatorvereinfachung oder Befehlsanordnung).

Prof. U. Aßmann, CBSE 54

Modifzierende Werkzeuge (M-Werkzeuge, Blutgruppe M)

► Modifzierende Werkzeuge ändern das Repositorium in beliebiger Art und Weise, sodass alle anderen Werkzeuge mit ihnen interagieren und alle Artefakte, die sie bearbeiten, voneinander abhängig werden.

MT-Werkzeug

MR-WerkzeugModifizieren (M)‏

Prof. U. Aßmann, CBSE 55

MR-Werkzeuge

► MR-Werkzeuge (Reparatur, Automatisierungsgrad (4)) ■ MR-Werkzeuge ermöglichen die Beseitigung von inkonsistenten

Zuständen eines Softwareartefakts. ■ Angewandt nach AC oder AV-Werkzeugen■ Hat man mit Hilfe von Prüfwerkzeugen der Kategorie AC oder AV

Inkonsistenzen festgestellt, muß entweder durch Handprogrammierung oder mit Hilfe von geeigneten Werkzeugen Abhilfe geschafen werden.

► Als Beispiel mögen Versionsmanagementsysteme dienen, die nebenläufge, in Konfikt stehende Änderungen an einem Produkt miteinander abstimmen und beseitigen können

Prof. U. Aßmann, CBSE 56

MT-Werkzeuge

► MT-Werkzeuge (allgemeine Transformation, Automatisierungsgrad (7): Generierung).

► MT-Werkzeuge transformierent einen zugrundeliegenden Artefakt in beliebiger Weise in eine andere Form.

► Es werden keinerlei Invarianten erhalten, sondern der Artefakt wird erweitert, restrukturiert, verändert, sodass alte und neue Version sich stark unterscheiden können.

Prof. U. Aßmann, CBSE 57

M-Werkzeuge

► M-Werkzeuge sind am schwierigsten zu komponenieren, da sie auf dem Repositorium zwischen den Artefakten vielfältige Abhängigkeiten erzeugen.

► Beispiel: Übersetzer sollten, obwohl sie Programme transformieren, keine MT-Werkzeuge sein, da sie die Semantik des Quellprogramms im Zielprogramm wiederspiegeln müssen; sie sind daher RD-Werkzeuge.

■ Sie enthalten aber normalerweise RO-Werkzeuge, RN-Werkzeuge, und RE-Werkzeuge, sowohl im Back-End, dem Codegenerator, als auch im Middle-End, dem Optimierer.

■ Fehlerkorregierende Parser, die leichte Eingabefehler des Programmierers verbessern, entsprechen MR-Werkzeugen.

Prof. U. Aßmann, CBSE 58

Werkzeug-Blutgruppen

► Die Efektkategorien der Werkzeuge bilden Blutgruppen für Werkzeuge [Siedersleben, Quasar]

► Die Blutgruppen drücken für verschiedene Klassen von Werkzeugen Kompatibilität bzw. Komponierbarkeit aus

■ Genauso, wie im wirklichen Leben Blutgruppen zueinander nur teilweise kompatibel sind, was sich durch eine Matrix der Kompatibilitätsrelation ausdrücken lässt, lassen sich nun Werkzeuge verschiedener Klassen anhand einer Kompatibilitätsrelation miteinander kombinieren.

Analyze eXtend Rearrange Modify

Analyze A/+ X/+ R/+ M/+-

eXtend X/+ R/+- M/+-

Rearrange R/+- M/-

Modify M/-

Prof. U. Aßmann, CBSE 59

Softwareinfektion und Werkzeuginfektion

► Daher gilt die Regel des Softwareinfekts für Software-Blutgruppen auch für unsere Werkzeug-Efektkategorien (Werkzeug-Infekt) [Siedersleben Quasar]:

► Beispiel:■ ein A-Werkzeug, das Normalisierungen oder Reduktionen aufruft, wird

selbst zu einem RN- oder RD-Werkzeug.

► Mit den Werkzeug-Blutgruppen können auch komposite Werkzeuge in einer SEU klassifziert werden, in dem man sie auf die Kategorien der Teilwerkzeuge zurückführt.

Wenn ein Werkzeug niederer Kategorie ein Werkzeug höherer Kategorie aufruft,

wird es selbst zu einem solchen.

SEW, © Prof. Uwe Aßmann 60

3.5 Objektorientierte Defnition eines Werkzeugs

Ein Werkzeug (tool) ist ein Objekt, das einen externen Zustand über Material-Objekten in

einem Repositorium verwaltet.

Siehe “Design Patterns and Frameworks”, Kapitel

“Tools and Materials”

Prof. U. Aßmann, CBSE 61

Tools and Materials as Special Role Model

► The tool is active, has control► The material is passive and hands out data

<<use>>MaterialTool

Prof. U. Aßmann, CBSE 62

Tool-Material Collaboration Pattern

► A tool-material collaboration (T&M role model, T&M access aspect) expresses the relation of a tool and the material

■ Characterizes a tool in the context of the material■ The material in the context of a tool■ The tool's access of the material. The tool has a view on the material,

several tools have diferent views

► More specifcally: ■ A role of the material, in collaboration with a tool

. An interface of the material, visible by a tool, for a specifc task

. An abstract class

■ Roles of a material defne the necessary operations on a material for one specifc task

. They refect usability: how can a material be used?

. Express a tool's individual needs on a material

Prof. U. Aßmann, CBSE 63

Tools and Their Views on Material

Tool Material<<use>>

T-M Role

Tool

Material

<<use>>T-M Role

T-M Role

T-M RoleTool

MaterialClient

MaterialClient

MaterialClient

Prof. U. Aßmann, CBSE 64

Implementing Tool-Material Roles With Interfaces

Tool MaterialView<<use>> <<inherit>>

Tool MaterialView<<use>>

<<inherit>>

View

View

► Roles can be realized by mixin inheritance or interface inheritance

Prof. U. Aßmann, CBSE 65

Implementing Tool-Material Roles With Role Objects

Tool MaterialRole<<use>> <<has-role>>

Tool MaterialRole<<use>>

<<has-role>>

Role

Role

► Roles can be realized by role objects

Prof. U. Aßmann, CBSE 66

Werkzeug

Material

Werkzeug

Lesbar

Schreibbar

Zusammenarbeitsschicht(collaboration layer)

Leser

Leser

Schreiber

Zusammenarbeitsschichten aus Rollen-Kollaborationen

Prof. U. Aßmann, CBSE 67

Werkzeug

Material

Werkzeug

Zusammenarbeitsschicht

Material

Lesbar

Schreibbar

Leser

Leser

Schreiber Lesbar

Erweiterung einer Zusammenarbeitsschicht

Prof. U. Aßmann, CBSE 68

:Werkzeug

:Material

:Werkzeug

Zusammenarbeitsschicht

:Schreiber

:Material

:Leser

:Schreibbar

:Lesbar

:Lesbar

:Leser

Implementierung mit Rollenobjekten

SEW, © Prof. Uwe Aßmann 69

Schichtung der Material-Zugrifsrollen für Werkzeugobjekte (tool objects)

Prof. U. Aßmann, CBSE 70

Werkzeug

Material

Werkzeug

Material

Leseschicht

Schreibschicht (synchronisiert)

Verteilungsschicht

Authentifikationsschicht

Werkzeug

Material

Überblick über die Schichten

Prof. U. Aßmann, CBSE 71

Werkzeug Werkzeug

Material

Leseschicht

Schreibschicht

Verteilungsschicht

Authentifikationsschicht

Werkzeug

Verteilungs-rolle

Authentifikations-rolle

Lese-rolle

Schreib-rolle

Material-Kern

Material mit Delegationen

Prof. U. Aßmann, CBSE 72

Werkzeug Werkzeug

Material

Leseschicht

Schreibschicht

Verteilungsschicht

Authentifikationsschicht

Werkzeug

Verteilungs-rolle

Authentifikations-rolle

Schreib-rolle

Material-Kern

Material-Rolle

Lese-rolle

Material als Rollenobjekt-Muster

Prof. U. Aßmann, CBSE 73

Werkzeug-Efekte auf Materialien und Ihre Prägung für Rollen

► Erweiterungs-Rolle■ Erweitert den Zustand des Objektes, zerstört ihn aber nicht■ Atomare Erweiterung

. Erweitert den Zustand der atomaren Attribute des Objektes

■ Strukturelle Erweiterung. Erweitert die strukturellen Attribute des Objektes, d.h. Des Objektnetzes, ohne

die atomaren Attribute zu modifzieren

► Modifkation■ Atomare Modifkation

. Ändert den Zustand der atomaren Attribute des Objektes

■ Strukturelle Modifkation. Ändert den Zustand des Objektnetzes, ohne die atomaren Attribute zu

modifzieren

► Allgemeine Modifkation■ Alle obigen Efekte.

Prof. U. Aßmann, CBSE 74

AllgemeineSchreibschicht

WerkzeugWerkzeug

Material

Leseschicht

Schicht strukturelles Schreiben

Werkzeug

Erweiterungsrolle

AtormareSchreibrolle

Schreib-rolle

Material-Kern

Material-Rolle

Strukturelle Schreibrolle

Leserolle

Schicht atomares Schreiben

Efekte auf Materialien und Ihre Prägung für Rollen

Schicht atomares Erweitern

Schicht strukturelles Erweitern

Prof. U. Aßmann, CBSE 75

Leser-Schreiber-Kompositionsgesetze für Werkzeuge

► Folgende Werkzeugobjekte (tool objects) können komponiert werden:

■ Atomare und strukturelle Schreiber sind voneinander unabhängig■ Leser sind untereinander unabhängig■ Struktur-Leser und Atomare-Schreiber sind unabhängig■ Erweiterungs-Werkzeuge

Tool

Material

<<extend>> <<extend>>T-M Role

<<structural write>>T-M Role

<<read>>T-M Role

Tool

MaterialClient

MaterialClient

<<read>>

<<structural write>>

<<structural write>>

SEW, © Prof. Uwe Aßmann 76

3.6 Der Graph-Logik-Isomorphismus

Ein typisierter Multigraph ist äquivalent zu einer Logik-Faktenbasis erster Ordnung. [COU90]

Prof. U. Aßmann, CBSE 77

► Ein Artefakt kann■ als Graph mit typisierten Knoten und Kanten im Repositorium

gespeichert werden (Schema: Relationale Algebra, ERD, UML-CD)■ als Faktenbasis für eine Logikmaschine verwendet werden ■ Umwandlung möglich

Prof. U. Aßmann, CBSE 78

Graphersetzungs-werkzeuge

Termersetzungs-werkzeuge

Logik-werkzeuge

Interpretation als Fakten

Spezial-Werkzeuge

GraphenIm Repositorium

Persistente Graphen

Architektur

Prof. U. Aßmann, CBSE 79

Nutzung beim Bau von A-Werkzeugen

► Queries:■ Relationale Anfragesprachen verwendbar (siehe Semmle, SPARQL, oder

SQL)■ Datalog verwendbar■ Kantenadditionssysteme (EARS) verwendbar (s. ST-II)

► Beispiele:■ Analysierende Übersetzerphasen, wie die semantische Analyse oder die

Programmanalyse. . Insbesondere bilden Konsistenzregeln und Kontextbedingungen der

semantischen Analyse Integritätsbedingungen auf dem Programm. . Reengineering-Werkzeuge können mit Logik Informationen aus Altsystemen

ziehen

■ Klassengraphen können als Faktenbasis einer Logikmaschine behandelt werden

. Entwurfsmuster können als Logikregeln ausgedrückt werden

■ Konfgurationsmanagement kann als Deduktion über Konfgurationsgraphen ausgedrückt werden

Prof. U. Aßmann, CBSE 80

Bau von XM-Werkzeugen mit Logik

► Um Erweiterungen von Graphen zu berechnen und zu materialisieren, kann ebenfalls Logik verwendet werden.

► Da Logik ohne Seitenefekte auf die Datenbasis arbeitet, muss Information, die berechnet werden soll, mitgeschleift werden

■ Die Graphen, die materialisiert werden sollen, müssen, als Parameter durch Anfragen durchgeschleift und durch Suchergebnisse sukzessive erweitert werden,

■ während die Datenbasis unangetastet bleibt.

► Danach kann man die Ergebnisse der Anfrage materialisieren, d.h., der Faktenbasis zugeben.

► Das bedeutet, dass ein logikbasiertes X-Werkzeug, das einen Artefakt erweitern will, zunächst Graphen zunächst als Parameter von logischen Queries berechnen muss, und dann erst materialisieren kann.

Prof. U. Aßmann, CBSE 81

Bau von RM und RC-Werkzeugen

► können mit Logik spezifziert werden. ► Beispiel:

■ Generatoren, die ein Repositorium serialisieren, können durch Logik beschrieben werden.

Prof. U. Aßmann, CBSE 82

Bau von M-Werkzeugen mit Logik: Schwierig

► Die Erstellung von weitergehende Transformationen ist mit Logik -- wegen ihrer Dekarativität - nur durch Wechsel des Repositoriums möglich,

■ wenn während der Abarbeitung daser gesamte transformierte Graph Repositoriums als Parameter der Query berechnet wird und man das Repositorium nach der Query komplett auf das Resultat umsetzt.

► Teuer: Da diese Operation relativ viel Speicher kostet, jedenfalls mehr als eine Veränderung des Repositoriums, wird in diesen Fällen Logik selten eingesetzt.

► Zur echten Transformation eines Artefakts können eingesetzt werden:

■ Metaprogramme■ Ersetzungssysteme.

. Termersetzungssysteme

. Graphersetzungssysteme

Prof. U. Aßmann, CBSE 83

Metaprogramme

► Metaprogramme sind Programme, die Programme erzeugen oder Transformieren.

■ Sie haben seit Lisp eine lange Tradition

► Statische Metaprogramme produzieren ein Programm, in dem sie selbst nicht enthalten sind.

■ Sie funktionieren also als reiner Generator.

► Dynamische Metaprogramme laufen ständig mit der Anwendung mit und regenerieren Teile neu.

■ Dynamische Metaprogramme sind allerdings laufzeitintensiv und verhindern eine statische Analyse der dynamisch produzierten Programme.

Prof. U. Aßmann, CBSE 84

Termersetzungssysteme

► Termersetzungssysteme setzen voraus, dass baumartige Datenstrukturen vorliegen und operieren daher meist auf dem abstrakten Syntaxbaum (AST).

► Einsatz:■ Identifkation von Baummustern, ■ Verschlankungen■ oder Normalisierungen.

► Strategien:■ Freies Ersetzen (chaotic rewriting): alle Regeln solange angewendet

werden, bis das Repositorium sich nicht mehr ändert■ Spezialstrategien: Die Spezifkation von Strategien möglich, die die

Regeln in bestimmter Reihenfolge auf das Repositorium anwenden . Beispiel: Das alternierende Suchen und Löschen von gefundenen

Informationen.

■ Strategien sind also Regeln zweiter Ordnung, die Regelanwendungen steuern können

Prof. U. Aßmann, CBSE 85

Graphersetzungssysteme

► Graphersetzungssysteme unterliegen der Einschränkung auf Baumdaten nicht.

■ Sie suchen und ersetzen Graphmuster in Graphen.

► Beispiel: Softwareentwicklungsumgebung (PROGRES)■ Reduziert vielfältige Aufgaben im Entwicklungsprozess auf

Graphersetzung (und Logik) ■ Übersetzung [Nagl]■ Verfeinerung im Entwurf [Schürr, Lewerentz]■ Konfgurationsmanagement [Westfechtel].

► Das Nachfolge-Werkzeug FUJABA www.fujaba.de setzt diese Entwicklung fort

■ Findet direkte Anwendung in der modellgetriebenen Entwicklung.

Prof. U. Aßmann, CBSE 86

Konsequenz des Graph-Logik-Isomorphismus

► Wegen des Graph-Logik-Isomorphismus ist ein nahtloser Übergang zu Werkzeugen möglich, die mit Logik spezifziert sind.

► Daher können in einer SEU logikbasierte Werkzeuge mit ersetzungsbasierten Werkzeugen eng zusammenarbeiten:

■ die unterliegenden Graphen der Artefakte können je nach Bedarf als Fakten oder Graphen interpretiert werden.

Prof. U. Aßmann, CBSE 87

Ausblick

► Der Einsatz von Logik, Graphersetzungssystemen und Termersetzungswerkzeugen in Entwicklungsumgebungen ist noch kein Standard.

► Es ist aber vorauszusehen, dass diese generischen Werkzeuge wesentliche Bestandteile liefern werden,

■ sobald sie schnell und robust genug geworden sind ■ die Ausbildung die Konzepte in genügender Tiefe und Breite gelehrt hat.

► Viele der im Folgenden vorgestellten Werkzeuge können vereinheitlicht werden, indem Logik- und Ersetzungsspezifkationen Werkzeugt beschreiben und zu ihrer Generierung eingesetzt werden

► Damit könnten Werkzeugkomponenten und -rahmenwerke entstehen,

■ Die die Kosten für den Softwarewerkzeugbau senken■ In einer SEU wären Logikmaschinen und Ersetzungssysteme

Standardwerkzeuge