Systemmodellierung und FMC
- + -System
- ein konkretes oder konkret vorstellbares Gebilde aus Komponenten
- zeigt Verhalten als Ergebnis des Zusammenwirkens der Systemteile
- + -Modellierung
Ziel: Erfassen der wesentlichen bzw. interessierenden Merkmale eines Systems zwecks Bewahrung oder Weitergabe dieses Wissens
schafft die Grundlage für die effiziente Kommunikation bei der arbeitsteiligen Softwareentwicklung
erstellt eine Beschreibung für Menschen Sinn ist die Komplexitätsbeherrschung
Vorgang des Modellierens
1. Finden/Festlegen eines/mehrerer Systemmodelle
2. Darstellung des/der Modelle und damit Erstellung einer Beschreibung ein oder mehrerer für menschliches Verständnis optimierter Teile (Pläne)
bei komplexen Systemen sind stets mehrere, unterschiedliche Systemmodelle gegeben, entsprechend der unterschiedlichen Abstraktionsebenen
die Betrachtungsebene ergibt sich aus dem jeweiligen Interesse: - nur ein bestimmter Teil des Systems - nur ein bestimmter Anwendungsfall - gewählte Abstraktionshöhe
besondere Anforderungen
+ - Anschaulichkeit
- primär graphische Darstellung
- semiformal
- anschauliche begriffliche Basis
+ - Einfachheit
- wenige einfache grafische Elemente bzw. Grundbegriffe
+ - Universalität
- Grundelemente so einfach aber auch so vielseitig als möglich
- möglichst alle Systeme (Typen) sollen beschreibbar sein
"Separation of Concerns"
- gedanklich trennbare Aspekte müssen getrent beschreibbar sein
+ - Ästhetik
- anschauliches klares Layout steigert Akzeptanz und Nutzen der Beschreibung
im Gegensatz dazu: Maschinenbeschreibung: - formal, Syntax und Semantik explizit formal festgelegt - Vollständigkeit - konsistent, keine Widersprüche
- + -Systemmodell
- + - grundlegende Aspekte
Unterscheidung verschiedener Systemmodellen und ihrer Beziehungen
Strukturtypen _innerhalb eines_ Modells: - Verhalten (dynamisches System) - Aufbau (dynamisches System) - Wertestrukturen (informationelles System!)
- + - 3 Strukturtypen
- im Zeitpunkt vorliegende
- + - Aufbaustruktur
- Wie ist das System aufgebaut?
- + - Wertestruktur
- welche Information (Art) ist im System vorhanden
- + - Aufbaustruktur
- in Zeitintervallen betrachtbare
- + - Ablaufstruktur
- Welche Vorgänge passieren im System?
- + - Ablaufstruktur
- diese 3 Typen findet man auch in FMC
- im Zeitpunkt vorliegende
- + - Implementierung
ein Modell B ist die Implementierung von Modell A, wenn sich Modell B durch Entwurfsentscheidungen von A herleitet.
Auswahl aus alternativen Mitteln treffen
elementare vs. nicht-elementare Entwurfsentscheidungen...
unabhängige vs. abhängige Entwurfs- entscheidungen: zwei Entwurfsent- scheidungen sind unabhängig wenn keine die andere voraussetzt
- aufgabenvollständige vs. aufgaben- unvollständige Modelle...
- + - grundlegende Aspekte
- + -Architektur
- nach Hofmeister, Nord & Soni: "Applied Software Architecture"
- Grundaussagen für gute SW-Architektur
kritischer Faktor für den Produkterfolg (Überschaubarkeit/Verständlichkeit für alle Stakeholder muß gewährleistet sein)
"design plan", "blue print" des Systems (Aushandeln/Festlegen der Anforderungen an das System, wichtige Grundlage für die Arbeitsteilung)
dient der Komplexitätsbeherrschung
gibt den aktuellen Entwurfsstand wieder
- es gibt im Wesentlichen 4 Sichten
- + - Code Architecture View
- Strukturierung der Sourcen bzgl. ihrer Form (SW Paketierung)
- + - Format der Komponenten
- object code
- library
- binary
- byte code
- Aufteilung/Ablage (als Datei, in Verzeichnis, welche Versionierung...)
- wirkt sich aus auf...
- CM
- Installation
- Änderbarkeit im Betrieb
- Wiederverwendung (bei Komponenten)
- + - Module Architecture View
- inhaltliche Strukturisierung der Sourcen = MODULARISIERUNG
- + - Aufteilung in
- Prozeduren
- Klassen
- Interfaces
- Kapselung
- (Aufruf-)Schichtung
- wirkt sich auf aus...
- Änderbarkeit des Source
- Arbeitsteilung
- Wiederverwendbarkeit
- + - Execution Architecture View
- Systemstrukturen auf tiefer "technischer" Ebene (entspricht "fertigungsvollständigem Modell")
- + - Abbildung konzeptioneller, abstrakter Modellelemente auf...
- Hardwarestruktur: - Rechnerknoten - Kommunikationsmittel
- Softwarestruktur: - BS-Prozesse, Threads - Shared Memory - Locks
- wirkt sich aus auf...
- Verteilung
- load balancing
- Replikation
- Ausfallen
- + - conceptional Architecture View
- aufgaben- bzw. anwendungsnahe Sicht
- Systemkomponenten (Akteure) mit bestimmter Funktionalität
- besteht typischerweise aus interagierenden Komponenten (components and connectors)
- abstrahiert von der Hardware
- zeigt prinzipiell wie das System seine Aufgaben/Anforderungen erfüllt
- + -FMC
Fundamental Modelling Concepts
Erfassung der _Systemarchitektur_, d.h. aller interessierender Systemmodelle und ihrer Beziehungen. Nicht jedoch: Visualisierung von Codestrukturen (der Software-Architektur)!
+ - Grundelemente der Darstellung: FMC-Pläne
- + - Aufbaustruktur
hat aktive Systemkomponenten = AKTEURE
hat passive Systemkomponenten - Orte zu denen Akteure Zugang haben = SPEICHER - Orte über die Information ausgetausch wird = KANÄLE
+ - Programmnetz
stellt Programmstrukturen kompakt und sprachunabhängig dar, kennzeichend ist: jeder Stelle im PN läßt sich eindeutig eine Position im Programm (ein bestimmter Befehlszählerzustand) zuordnen
+ - Aktionsnetz
Dient der Verallgemeinerung von Programm- strukturen, ist jedoch kein Programmnetz! Wenigstens eine Stelle im AN ist nicht eindeutig auf eine Position im Programm abbildbar!
- + - Werte(bereichs)struktur
- Objekte die Attribute haben und untereinander in Beziehung stehen können = ENTITÄTEN + ATTRIBUTE
- Beziehungen dieser Objekte = RELATIONEN
- + - Ablaufstruktur
elementare Aktivität eines Akteurs: = OPERATION Akteur liest Info/Werte von einem oder mehreren Orten und schreibt abgeleiteten Wert (das Operationsergebnis) auf einen Ort.
Wertewechsel an einem Ort in einem Zeitpunkt = EREIGNIS
KAUSALE BEZIEHUNGEN: Ereignisse stoßen Operationen an, die wiederum Ereignisse auslösen können.
Systemarchitektur
Menge der Systemmodelle (jeweils Aufbau, Ablauf und Wertebereich) und deren Beziehungen untereinander
treibende Kraft bei der Aufstellung/Beschreibung von Systemarchitekturen: Verständlichkeit und Nachvollziehbarkeit der Systemkonstruktionen
Vorstellung eines Aufbaus aus interagierenden Komponenten ist weit verbreitet
- components in FMC: primär operationelle Akteure
- connectors in FMC: primär steuernde Akteure und Kommunikationsakteure aber auch Orte
die Funktionalität läßt sich im System lokalisieren
Softwarearchitektur
- + - Aufbaustruktur
- + -über diese Mindmap
Autor: Lars Windolf
Digitalisierung einer Mitschrift aus der Vorlesung Systemmodellierung 3 von Prof. Tabeling am HPI.
last update: 18.01. 14:30
- + -Begriffe
- + - Modul
- SW-Einheit die Entwurfsentscheidung enthält (Parmas 1972).
- in OOP: Klassen
- + - Komponente
"binär wiederverwendbarer" (besser in unmittelbar auf dem Abwicklersystem abwickelbarer Form/ installierbarer Form vorliegender) Softwarebestandteil
wiederverwendbar heißt dabei, universell und breit einsetzbar
es gibt einen "Markt" für die Komponente
nach Szyperski: - unit of independent deployment - unit of third party composition - has no (externally) observable state
- + - Schnittstelle
es gibt Software- und Systemschnittstellen
Teil eines Moduls auf den aus anderen Modulen heraus Bezug genommen werden kann und in dem implementierte Prozeduren, Datentypen... benannt werden.
aber auch: Stelle an der ein System gedanklich "zerschnitten" werden kann, d.h. in aktive Systemkomponenten getrennt werden kann.
- + - ADT
- ein Speichertyp mit bestimmten Wertebereich
- mit bestimmten repertoirezulässigen Operationstypen
- + - Ereignis
- elementar bezüglich Beobachtbarkeit
- findet in einem Zeitpunkt statt
- findet an einem Ort statt
- verursacht eine Wertänderung
- + - Operation
elementar bezüglich Verarbeitung
ein Akteur bestimmt einen "neuen" Wert (Operationsergebnis)
auf einem Ort (Zielort der Operation)
Ergebnis hängt von Werten ab, die i.d.R. (beachte Zufallswerte) von mindestens einem Ort gelesen werden.
- + - Akteur
- aktive (aktivitätstragende) Komponente
- + - Ort
- passive Komponente
- + - Speicher
- für dauerhafte Informationsspeicherung
- + - Kanäle
- für flüchtigen Informationsaustausch
- + - Transition
- stellt Typen dar
- Operationen
- Ereignisse
- Aktivitäten (mehrere Operationen)
- + - Stellen
- Steuerzustände
- zusätzliche Bedingungen
- + - Objekt
- auch Instanz oder Exemplar
- gegenständliches oder abstraktes Objekt
- eindeutig identifizierbar
- eindeutig unterscheidbar
- hat Werte für seine Attribute
- steht zu anderen Objekten in Relation
- + - Attribut
- gehört immer zu Objekt
- nicht immer scharfe Abgrenzung zu Objekten
- + - Aspekt
ausgewählter (einzelner) Sachverhalt auf einer bestimmten Betrachtungsebene: - Aufbau - Ablauf - Wertebereich
aber auch (Beispiele) - Beschreibung eines Teils des Aufbau - Beschreibung einer Betriebsphase
- + - Modul