170 likes | 289 Views
Architektur, Design oder Implementation?. Ulrich Schulz, Sebastian Ordyniak. Einführung. Ziel: qualitative Spezifikation der Begriffe Architektur, Design und Implementation Bisher: rein quantitative Unterscheidung dieser Begriffe (unterschiedliche Level der Abstraktion). Einführung.
E N D
Architektur, Design oder Implementation? Ulrich Schulz, Sebastian Ordyniak
Einführung • Ziel: qualitative Spezifikation der Begriffe Architektur, Design und Implementation • Bisher: rein quantitative Unterscheidung dieser Begriffe (unterschiedliche Level der Abstraktion) A, D oder I ?
Einführung • Architektur, Design und Implementation stellen Anforderungen an ein Softwaresystem (sind Spezifikationen) • Architektur, Design und Implementation sind also verschiedene Arten der Spezifikation (von Softwaresystemen) A, D oder I ?
Einführung • Wie lassen sich Spezifikationen unterscheiden? • Qualitative Unterscheidung anhand der Arten der Spezifikationen (Wie werden Eigenschaften von Systemen spezifiziert?) A, D oder I ?
The Intension/Locality criteria • Es werden 2 Kriterien zur Unterscheidung von Spezifikationen aufgestellt: • intentional/extensional:Wie viele Instancen erfüllen die Spezifikation (unendlich oder endlich viele?) A, D oder I ?
The Intension/Locality criteria • local/global: Aussagen der Form: • Ein bestimmter Teil im System erfüllt bestimmte Eigenschaften sind local • Alle Teile einer bestimmten Form haben bestimmte Eigenschaften sind global • mögliche Unterscheidung durch Untersuchung der Erweiterbarkeit eines Systems: • Lässt sich das System so erweitern, das es eine zuvor erfüllte Spezifikation nicht mehr erfüllt (dann global) ? A, D oder I ?
The Intension/Locality criteria • Behauptung: A, D oder I ?
The Intension/Locality criteria • Begründung: • Implementation ist local und extensional • Bleibt Architektur und Design A, D oder I ?
The Intension/Locality criteria Design ist intentional und local: Beispiel Design Patterns (Factorymethoden) A, D oder I ?
The Intension/Locality criteria • Menge von Factoryklassen, Menge von Produktklassen • Jede Factoryklasse erzeugt genau ein Produkt und umgekehrt Jede Erweiterung eines Programms welches das Design Pattern erfüllt, behält diese Eigenschaft ??? A, D oder I ?
The Intension/Locality criteria Architektur ist intentional und global! Beispiele: • Layered Architecture • Pipes and filters • Law of Demeter A, D oder I ?
The Intension/Locality criteria • Layered Architecture: • Jede Klasse gehört zu einem bestimmten Layer • Eine Klasse hängt nur von Klassen ab, die auf einem niedrigeren ( bzw. demselben ) Layer liegen Eine Klasse, die sich auf Klassen höherer Layer bezieht, durchbricht diese Architektur A, D oder I ?
The Intension/Locality criteria • Pipes and Filters: • Jede Task hat entweder Input-, OutputStreams oder beides • Alle aus einer Task herausgehenden Streams gehen in dieselbe Task A, D oder I ?
The Intension/Locality criteria • Lay of Demeter: • Jede Methode innerhalb einer Klasse ruft nur Methoden Ihrer bzw. „Freunden“ der eigenen Klasse auf • Freunde einer Klasse sind alle membervariablen • Freunde einer Methode ist die eigene Klasse, globale Variablen (Klassen) sowie die Argumente der Methode A, D oder I ?
The Intension/Locality criteria Eine Methode ruft also nie direkt Methoden entfernter Verwandter auf! A, D oder I ?
UML • Wozu zählen Klassendiagramme? A, D oder I ?
UML • Klassendiagramme: • Local • Intentional ( Instancen sind immer Erweiterungen – Was ist dann nicht intentional?) A, D oder I ?