Rollen
- Alle Rollen bei der komponentenbasieren Entwicklung nennen
- (auswendig lernen)
- Component Developer: spezifiziert Komponenten und Interfaces, erstellt Composite Components, erstellt SEFFs, speichert Modelle und Implementierungen in Repository, implementiert Komponenten, testet Komponenten, wartet Komponenten
- Software Architect: spezifiziert die Architektur, spezifiziert neue Komponenten und Interfaces, benutzt Architekturstile und Architekturmuster, analysiert Architektur, macht Performanzvorhersage mit Hilfe der Simulationen, delegiert Implementierung zu Component Developers
- System Deployer: Modeliert Resouce Environment (middleware, OS, hardware), modelliert die Allokation von Komponenten zu Ressources, Setup von Resource Environment, Deployment
- Domain Expert: kennt Business Domaene, Spezifiziert Usage Model (erstellt Usage Scenarios) (erstellt keine SEFFs)
- Wie spielen die Component Developer und der Software Architekt zusammen?
- Software Architekt baut aus Komponenten das System zusammen, und baut Composite Komponents, legt die Interfaces fest,
- Component Developer implementiert die Komponente
- Gibt es Situationen, in denen der System Architekt auch selber Komponenten im Repository ablegen kann?
- Ja, Architekt kann Composite Components erstellen
- Wenn Sie die Rollen in Palladio mit der objektorientierten Softwareentwicklung vergleichen, welche zwei Rollen fallen zusammen?
- In der objektorientierten Softwareentwicklung hat man keine Komponente. Normalerweise die Personen, die fuer Entwurfsentscheidungen zustaendig sund, auch fuer Implementiertung zustaendig sind.
- Das heist, dass Software Architect und Component Developer zusammenfallen koennen
- Kann es in Palladio passieren, dass Rollen wegfallen?
- Benoetigt man keine Performance Analyse, dann koennte man Domain Expert weglassen. Die anderen rollen sind notwendig.
Viewpoints
- Was ist View Point und was ist View Type
- View Point ist eine Menge von View Types, die fassen verschiedene Informationen ueber System zusammen
- Welche Viewpoints gibt es?
- (auswendig Views und Types lernen)
- Structural View Point: fasst die Komponenten und Abhaengigkeiten zusammen
- Behavioral View Point: Internal Behavior vom Komponent (beschrieben mit SEFF), External Behavior zwischen Komponenten (beschrieben mit UML Sequenzdiagrammen), Scenario Behavior
- Deployment View Point: Spezifikation von Execution Environment. Allokation von Software Komponenten auf Ressourcen von diesem Execution Environment.
- Decision View Point: Dokumentation von Architektur- und Designentscheidungen. Verbindet alle andere Viewpoints. Dokumentation von Alternativen, oder von “was mache ich bewusst nicht”. Triplet “Requirement → Desicion → Architecture”.
- Welche View Types hat Structural View Point?
- Repository view type: interfaces, data types, components (Software Architect, Component Developer)
- Assembly view type: Innere Struktur von System oder von Composite Component Software Architect)
- Was ist SEFF?
- Service Effect Specification (SEFF) beschreibt das Internal Behaviour vom Komponent.
- Internal Calls: innere Arbeit vom Komponent
- External Calls: make Call an External Service und warte auf Return
- Ifs, Loops
- Welche View Types hat Behavioral View Point, mit welchen Artefakten werden sie beschrieben?
- Intra-Component Behavior: Internals von Komponent, SEFF (Component Developer)
- Inter-Component Behavior: Interaktion Zwischen Komponenten, UML Sequence Diagram (Domain Expert)
- Scenario Behavior: User Scenarios: UML Action Diagram (Domain Expert)
- Was ist Usage Model?
- Model fuer Abbildung von Benutzerverhlaten
- Besteht aus Usage Szenarios, 1 Szenario pro use case
- Szenario kann als SEFF betrachtet werden, aber nicht pro Komponent, sondern fuer System (E2E SEFF), mit Workload Spezifikation (wie viel Benutzer, wie viel Zeit zwischen Aktionen). Welche Komponenten werden mit welcher Wahrscheinlichkeit aufrefufen werden.
- Welche View Types hat Deployment View Point:
- Resource Environment: wie viel CPU, Drives Capacity, Netzwerk Speed, Database Connections Pool usw. hat ein Rechner (System Deployer)
- Allocation: Welche Komponenten auf welchem Rechner laufen (System Deployer)
- Beim Deployment View Point gab es 2 View Types, einen systemunabhaengigen und einen systemabhaengigen. Welche? Welchen brauchen wir immer, und welchen nur zur Performance Analyse?
- Allocation View Type brauchen wir immer
- Resource Environment: nur zur Performance Analyse
- Was war der systemunabhaengige View-Type bei dem Structural View?
- Was ist der Unterschied zwischen Usage Model und SEFF?
- SEFF (Service Effect Specification) modelliert ein Komponent, seine innere Arbeit und External calls
- Usage Model modelliert stochastisch das Systemverhalten in verschiedenen Usage Szenarios. Usage Model kann als eine Menge von E2E SEFFs fuer das ganze System betrachtet werden
Komponenten
- Welche Typen von Komponenten gibt es?
- Basic Component: Provided/Required Interfaces mandatory, Service Effect Specifications
- Composite Component: Component gebildet aus mehreren Basic und/oder Composite Components. Composite Components werden in Repository abgelegt und betractet als Black Box.