A classification and comparison framework for software architecture description languages



Ähnliche Dokumente
Grundlagen Software Engineering

Erfassung von Umgebungskontext und Kontextmanagement

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Microsoft SharePoint 2013 Designer

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

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

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

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

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress

Modellierung biologischer. Christian Maidorfer Thomas Zwifl (Seminar aus Informatik)

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Workflow, Business Process Management, 4.Teil

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

FUTURE NETWORK REQUIREMENTS ENGINEERING

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Softwaretechnik (Allgemeine Informatik) Überblick

Rapide An Event-Based Architecture Definition Language

Professionelle Seminare im Bereich MS-Office

Guide DynDNS und Portforwarding

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

Windows Server 2012 R2 Essentials & Hyper-V

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Übung - Konfigurieren einer Windows Vista-Firewall

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

Anleitung zur Nutzung des SharePort Utility

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Architekturbeschreibung im C2-Stil

IAC-BOX Netzwerkintegration. IAC-BOX Netzwerkintegration IACBOX.COM. Version Deutsch

Step by Step Webserver unter Windows Server von Christian Bartl

Petri-Netze / Eine Einführung (Teil 2)

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

Kapitel 2: Der Software-Entwicklungsprozess

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Switch 1 intern verbunden mit onboard NICs, Switch 2 mit Erweiterungs-NICs der Server 1..6

Anforderungen an die HIS

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Use Cases. Use Cases

SharePoint Demonstration

SDD System Design Document

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

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

HTBVIEWER INBETRIEBNAHME

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Fragebogen zur Anforderungsanalyse

:: Anleitung Hosting Server 1cloud.ch ::

Softwaretechnische Anforderungen zu Opale bluepearl Version 1.0 vom

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

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

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Fragen und Antworten

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

Einführung und Motivation

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Was ist Software-Architektur?

Prinzipien Objektorientierter Programmierung

SE2-10-Entwurfsmuster-2 15

How to do? Projekte - Zeiterfassung

Motivation. Motivation

teischl.com Software Design & Services e.u. office@teischl.com

Switching. Übung 7 Spanning Tree. 7.1 Szenario

1 Mathematische Grundlagen

Requirements Engineering für IT Systeme

Übung - Konfigurieren einer Windows 7-Firewall

Objektorientierte Programmierung OOP

Was versteht man unter Softwaredokumentation?

Übung - Konfigurieren einer Windows-XP-Firewall

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

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

Vorlesung Programmieren

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

White Paper. Fabasoft Folio Zugriffsdefinitionen Winter Release

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Unified Modeling Language (UML)

Grammatiken. Einführung

Homebanking-Abkommen

Ideation-Day Fit für Innovation

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

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

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Local Control Network Technische Dokumentation

Kurzanleitung OOVS. Reseller Interface. Allgemein

1. Bearbeite Host Netzgruppen

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

MSDE 2000 mit Service Pack 3a

Was ist Sozial-Raum-Orientierung?

Verwendung des IDS Backup Systems unter Windows 2000

ISA Einrichtung einer DFUE VErbindung - von Marc Grote

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

Schulung Marketing Engine Thema : Einrichtung der App

ecall sms & fax-portal

Nachricht der Kundenbetreuung

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihr vorhandenes PMS-System mit der IAC-BOX verbinden und konfigurieren.

Musterfragen ALLGEMEINE Systemlehre

Transkript:

A classification and comparison framework for software architecture description languages Christian Gerth Seminar Architekturbeschreibungssprachen Prof. Dr. Heike Wehrheim Fachgebiet Spezifikation und Modellierung von Softwaresystemen

0. Gliederung 1. Einleitung 2. ADL Classification & Comparison Framework 1. Was ist keine ADL? - Statecharts 2. Vergleich der Komponenten 3. Vergleich der Konnektoren 4. Vergleich der Konfigurationen 3. Fazit 2/30

1. Einleitung Softwarearchitektur Jede Software besitzt eine Softwarearchitektur Softwarearchitektur beschreibt die grundlegenden Elemente und die Struktur eines Softwaresystems Softwareeigenschaften, wie Modifizierbarkeit, Wartbarkeit, Sicherheit oder Performance sind von der Architektur abhängig Deshalb: kritischer und wichtiger Punkt im Software- Entwicklungsprozess 3/30

1. Einleitung Definition: Softwarearchitektur Software architecture [is a level of design that] involves the description of elements from which systems are built, interactions among those elements, patterns that guide their composition, and constraints on these patterns. (M. Shaw, D. Garlan. Software Architecture: Perspectives on an Emerging Discipline.) 4/30

1. Einleitung Softwarearchitektur im Entwicklungsprozess Systemdesign Architektur Programmierung Modultest Anforderungsanalyse Integrations- System-Test Auslieferung, Wartung frühe Phasen späte Phasen 5/30

1. Einleitung Architekturbeschreibungssprachen (ADLs) beschreiben die Softwarearchitektur hohes Abstraktionsniveau keine Implementierungsdetails Ziel: Verständlichkeit und High-Level Analysen Es existiert große Anzahl unterschiedlicher ADLs Forschungsgemeinschaft ist sich uneinig, was Gegenstand einer Softwarearchitektur ist 6/30

1. Einleitung Elementare Bestandteile von ADLs Komponenten sind physische, austauschbare Teile eines Systems, die über Schnittstellen mit ihrer Umgebung interagieren. (Klassenbibliotheken, Datenspeicher und Binärprogramme) Konnektoren modellieren die Interaktion zwischen Komponenten und bieten Möglichkeiten die Interaktion zu regulieren. Konfigurationen (Topologien) sind verbundene Graphen aus Komponenten und Konnektoren, die die Struktur der Architektur beschreiben 7/30

1. Einleitung Unterschiedliche ADLs (1/3) ACME stellt den kleinsten gemeinsamen Nenner aktueller ADLs dar und wurde entwickelt um ein Austausch-Format zur Verfügung zu stellen. Mit AcmeStudio existiert eine grafische Benutzeroberfläche. Komponente client rpc server Konnektor System 8/30

1. Einleitung Unterschiedliche ADLs (2/3) Darwin beschreibt reguläre Strukturen von Parallelprogrammen, in degenerierter Form ist auch die Beschreibung von Netzwerk- Topologien möglich. Komponenten verbergen ihr Verhalten hinter hinter wohldefinierten Schnittstellen. Rapide ist eine Simulationssprache, um Softwarearchitekturen zu definieren und ihr dynamisches Verhalten zu simulieren. Das Ergebnis der Simulation ist ein Ablaufplan. 9/30

1. Einleitung Unterschiedliche ADLs (3/3) SADL (Structural ADL) wird eingesetzt um Softwarearchitektur- Hierarchien zu spezifizieren. Sowohl Struktur als auch Semantik der Architektur wird beschrieben. Es sind explizite Abbildungen zwischen unterschiedlichen Abstraktionsebenen möglich. Wright ist eine sehr formale Sprache. Dies ermöglicht Tests auf Deadlock-Freiheit auf verschiedenen Ebenen. 10/30

2. ADL Classification & Comparison Framework ADL Architecture Modeling Features Components (Interface, Types, Semantics, Constraints, Evolution, Non-functional properties) Connectors (Interface, Types, Semantics, Constraints, Evolution, Non-functional properties) Architectural Configurations (Understandability, Compositionality, Refinement, Heterogeneity, Scalability, Evolution, Dynamism, Constraints, Non-functional properties) Tool Support (Active Specification, Multiple Views, Analysis, Refinement, Implementation, Dynamism) 11/30

2.1 Was ist keine ADL? Statecharts basieren auf endlichen Automaten Um Statecharts mit ADLs zu vergleichen, betrachten wir: states = Komponenten transitions = Konnektoren interconnections = Konfiguration Statecharts modellieren Konfigurationen nicht explizit d.h. eine Statechart Architektur kann nur durch Betrachten der einzelnen Komponenten bestimmt werden. Es ist nicht möglich die Details der Komponenten und Konnektoren zu abstrahieren 12/30

2.2 Vergleich Komponenten - Interfaces Interfaces Menge von Schnittstellen zw. Komponenten und deren Umwelt Spezifizieren die Dienste einer Komponente Umsetzung Alle ADLs unterstützen die Spezifizierung von Komponenten Interfaces Bezeichnung variiert (interface point SADL, port Wright, ) ADLs unterscheiden zwischen Schnittstellen die Dienste anbieten und Dienste erfordern. MetaH & Rapide unterscheiden zusätzlich synchrone und asynchrone Interfaces 13/30

2.2 Vergleich Komponenten - Types Types Komponenten Typen sind Abstraktionen, die Funktionalität in wieder verwendbare Blöcke kapseln OO Prinzip: Klasse und Instanz unterstützt die Verständlichkeit und Analysierbarkeit Umsetzung Bis auf MetaH und UniCon unterstützen alle ADLs erweiterbare Komponenten Typen MetaH und UniCon unterstützen nur vordefinierte Typen ACME, Darwin, Rapide, SADL und Wright können Interfacetypen parametrisiert werden 14/30

2.2 Vergleich Komponenten - Semantics Semantics Modell des Verhaltens der Komponente, das die Funktionalität auf der Anwendungsebene beschreibt Benötigt für Analysen und um architektonische Beschränkungen sicherzustellen Umsetzung Alle ADLs unterstützen die Definition von Komponenten Verhalten zu unterschiedlichen Graden UniCon: semantische Informationen in Listen (property lists) Rapide: dynamisches Komponenten Verhalten type Application is interface extern action Request(p : params); public action Results(p : params); behavior (?M in String) Receive(?M) => Results(?M); end Application; 15/30

2.2 Vergleich Komponenten - Constraints Constraints Beschränkung als Eigenschaft der Komponente Verletzung führt zu fehlerhaften bzw. unerwünschtem Verhalten der Komponente Umsetzung Alle ADLs ermöglichen die Beschränkung der Benutzbarkeit von Komponenten über deren Interfaces (Typen) Bei einigen ADLs kann über die Semantik der Komponente Beziehungen und Abhängigkeiten innerhalb der Komponente spezifiziert werden. (C2, Darwin, Rapide, UniCon, ) 16/30

2.2 Vergleich Komponenten - Evolution Evolution Komponenten als architektonische Einheiten entwickeln sich stetig, z.b. durch Modifikation von Interfaces, Verhalten oder der Implementierung Durch den Einsatz von Subtypen können ADLs die Entwicklung von Komponenten systematisieren Umsetzung MetaH, Darwin, Weaves & UniCon unterstützen keine Subtypen Rapide erstellt Komponenten über OO-Vererbung SADL erlaubt die Definition von Eigenschaften, die Subtypen erfüllen müssen 17/30

2.2 Vergleich Komponenten Non-Functional Properties Non-Functional Properties Sicherheit, Performanz, Erweiterbarkeit, nicht direkt vom Verhalten ableitbar Aber: Spezifizieren der Eigenschaften wird benötigt für Simulationen und Analysen Umsetzung sehr dürftig umgesetzt Aesop, ACME & Weaves erlauben die Spezifikation von einigen Komponenten Eigenschaften machen aber keinen Gebrauch davon UniCon & MetaH unterstützen nicht funktionale Eigenschaften etwas mehr 18/30

Halbzeit Es ist Halbzeit! 19/30

2.3 Vergleich Konnektoren - Interfaces Interfaces Menge von Schnittstellen zwischen den Konnektoren und den Komponenten Interfaces stellen sicher, dass Komponenten richtig angebunden sind und interagieren können Umsetzung Nur ADLs die Konnektoren als First-Class Entities modellieren, erlauben die Spezifikation von Interfaces unterschiedliche Bezeichnungen: roles (ACME, Aesop, UniCon, Weaves), port (C2) C2 und Weaves Konnektoren sind generisch 20/30

2.3 Vergleich Konnektoren Types Types Konnektoren Typen sind Abstraktionen, die die Kommunikation, Koordination und Interaktion der Komponenten kapseln Damit Konnektoren wieder verwendbar sind, müssen ADLs diese als Typen modellieren Umsetzung Nur ADLs die Konnektoren als First-Class Entities modellieren, unterscheiden zwischen Typen und Instanzen Konnektoren in ACME, Aesop, C2, SADL und Wright basieren auf Interaktions-Protokollen UniCon hat einige vordefinierte Typen von Konnektoren 21/30

2.3 Vergleich Konnektoren Semantics Semantics Semantik ist definiert als Modell des Konnektoren Verhaltens, das Interaktionsabläufe beschreibt (Protokolle) ADLs die Semantik spezifizieren, ermöglichen Interaktions Analysen Umsetzung Einige ADLs benutzen für Konnektoren und Komponenten den gleichen Mechanismus um semantische Infos zu spezifizieren (Rapide, Wright und UniCon) SADL, C2 und Weaves benutzen ein anderes Model 22/30

2.4 Vergleich Konfigurationen - Understandability Understandability unterschiedliche Abstraktionsniveaus einfache und verständliche Syntax grafische Darstellung der Architektur, die auch genügend Eigenschaften der textuellen Form enthält Umsetzung ADLs mit expliziter Konfiguration sind tendenziell leichter verständlich als die mit in-line Konfiguration. C2, Darwin und UniCon haben eine gute, grafische Darstellung SADL und Wright nicht 23/30

2.4 Vergleich Konfigurationen - Compositionality Compositionality Können Subsysteme, die aus Komponenten und Konnektoren bestehen, zusammengefasst werden und auf höheren Hierarchieebenen eingesetzt werden? Umsetzung Wird von allen ADLs unterstützt Bsp: (Darwin) Komponente Composite besteht aus den beiden Komponenten C1 und C2, die wiederum zusammengesetzt sein können 24/30

2.4 Vergleich Konfigurationen - Heterogeneity Heterogeneity ADLs sollen die Entwicklung von großen Systemen vereinfachen, die aus unterschiedlichen Komponenten und Konnektoren bestehen können ADLs müssen offen sein und Möglichkeiten bieten mit heterogenen Infrastrukturen umzugehen Umsetzung keine ADL unterstützt mehrere formale Spezifikationssprachen ADLs die Architekturen implementieren können sind meist auch auf die Wirts Sprache beschränkt Ausnahmen: C2 und Weaves 25/30

2.4 Vergleich Konfigurationen - Scalability Scalability ADLs müssen die Vergrößerung des Systems unterstützen (am Rand oder im Inneren) Erweiterbarkeit Unterstützung von Änderungen im Entwicklungsverlauf der Architektur Umgang mit unvollständigen Architekturbeschreibung 26/30

2.4 Vergleich Konfigurationen Dynamism Dynamism Möglichkeit laufenden Systeme zu modifizieren Konfigurationen sind dynamisch, wenn sie das Einfügen, Entfernen und Umstrukturieren von einzelnen Elementen bis hin zu ganzen Architekturen erlauben Umsetzung Bis auf C2, Darwin, Rapide und Weaves betrachten ADLs Konfigurationen als statisch C2 stellt Operationen bereit, die zur Laufzeit das Einfügen, Entfernen und neu Verbinden ermöglichen 27/30

2.4 Vergleich Konfigurationen Constraints Constraints Werden auf drei Ebenen eingesetzt: Komponenten, Konnektoren und Konfigurationen Spezifizieren Anforderungen an das System Wichtig für die Analyse Non-Functional Properties Anforderungen an das System werden damit in die Architektur eingefügt Eigenschaften werden benötigt um Analysen durchzuführen und Constraints einzuhalten. 28/30

3. Fazit Medvidovic und Tayler haben erstmals für bestehende ADLs eine Definitions- und Klassifikations-Framework geliefert Es wurde gezeigt, wie mit Hilfe des Frameworks, bestimmt werden kann, was eine ADL ist. Der Vergleich offenbarte Stärken von existierende ADLs: starke formale Notationen, Architektur Visualisierung und Analyse aber auch Schwächen: mangelnde Spezifikationsmöglichkeiten für nicht-funktionale Eigenschaften 29/30

4. Ende Vielen Dank! Fragen? 30/30