3 Folien/Seite

Transcription

3 Folien/Seite
4.
Softwarearchitektur und Softwareentwurf
4.3
Architektur von eingebetteten und
Echtzeitsystemen
.KVGTCVWT
5QOOGTXKNNG
$CN\GTV.'
,CNQVG
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Echtzeit-Systeme
• Echtzeit-System bzw. Realzeit-System (real time system):
– Korrektes Funktionieren für eine gegebene Eingabe definiert als:
» richtige Ausgabe und rechtzeitige Ausgabe
– Zeitbegrenzung in "echter" Zeit, d.h. nicht relativ zu systeminternen
Maßgrößen
• "harte" Echtzeitanforderungen:
– Funktion verfehlt bei Nichteinhalten der Zeitbedingung
(z.B. Flugzeugsteuerung, Ampelsteuerung)
• "weiche" Echtzeitanforderungen:
– Funktion verschlechtert bei Nichteinhalten der Zeitbedingung
(z.B. Telefonvermittlung, Videopumpe)
• "feste" Echtzeitanforderungen:
– Kombination aus weicher Echtzeitanforderung und harter Schranke
(z.B. Beatmungsmaschine)
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Besonderheiten von Echtzeitsystemen
• Oft: Hardware- und Software-System oder embedded system
– Spezielle Peripheriegeräte, spezielle Hardwarearchitektur
• Reaktivität
– Bereitschaft zur Reaktion auf Ereignisse, die in nicht vorhersehbarer
Reihenfolge und zu nicht vorhersehbarer Zeit erfolgen
• Nebenläufigkeit (concurrency)
– Gleichzeitigkeit von Ereignissen der Umgebung
– Interne Nebenläufigkeit des Systems
• Verteilung (distribution)
– Manchmal durch die Anwendung unvermeidbar
(z.B. Telekommunikation)
– Hilfsmittel zur Erreichung von schneller Reaktion und hoher
Zuverlässigkeit (Redundanz)
• Dynamische Anpassung an die Umgebung
– z.B. Umbau einer rechnergesteuerten Produktionsanlage
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Seite 1
Realzeitsystem: Grundsätzliche Architektur
Systemumgebung
Sensor 1
...
Sensor n
Effektor 1
...
Effektor n
Hardware-Interface
Anwendungs-Software
Echtzeit-Systemsoftware
• Oft sehr kleine ergänzbare "microkernel" (z.B. 8 kByte)
Beispiele: OS-9, Chorus, QNX, LynxOS, VxWorks
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Softwareentwurf für Echtzeitsysteme und
eingebettete Systeme
• Weitgehend vorgegebene physikalische Sicht der Architektur
– Architekturdiskussion in der Analyse
• Berücksichtigung gegebener Architektur im Entwurf
– Hardwareschnittstellen
– Betriebssystemschnittstellen
– Kommunikation und Verteilung
• Modellierung verwendbar für praktische Realisierung
– Relativ kleine Differenz
Analysemodell-Entwurfsmodell-Implementierung
– Gute Werkzeugunterstützung
– Effektive Codegenerierung aus Modellen möglich
• Deshalb: Diskussion von weiteren (implementierungsnahen)
Modellierungssprachen
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Entwicklungsmethoden für Echtzeitsysteme
• Aufbauend auf Strukturierter Analyse:
– Structured Analysis/Real Time (SA/RT) – "Industriestandard"
» Ward/Mellor 1985, Hatley/Pirbhai 1987
• Aufbauend auf Objektorientierter Analyse:
– Real-Time Object-Oriented Modeling (ROOM)
» Selic/Gullekson/Ward 1994
– UML for Real-Time Systems
» Selic/Rumbaugh 1998
• Aufbauend auf Programmablaufplänen (Kontrollflußdiagrammen):
– System Design Language (SDL)
» Standard in der Telekommunikation
» Derzeit in Integration mit objektorientierten Ansätzen (SDL-2000)
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Seite 2
Beispiel: Alarmanlage
• Zu überwachen sind mehrere (im Beispiel 2) Räume
• Jeder Raum hat (im Beispiel):
1 Bewegungsmelder, 1 Türsensor, 1 Fenstersensor
• Die Anlage wird über eine Schalteinrichtung aktiviert und
deaktiviert.
• Nach Aktivierung gelten drei Minuten Vorlauf,
bevor die Anlage "scharf" geschaltet wird.
• Reaktionszeit für Alarm: 1/2 Minute
• Bei Alarm ist folgendes zu tun:
– Notruf absetzen (Sprachsynthese)
– Licht einschalten
– Sirene auslösen
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
SA/RT: Kontextdiagramm
Bewegungsmelder
Türsensor
Fenstersensor
Signal TS
Signal BM
Hauptschalter
Bedienfeld
Einstellungen
SirenenStg.
Signal FS
steuere
Alarmanlage
LichtStg
Sirene
Kontrollfluß
Datenfluß
NotrufStg.
Licht
Technische Universität Dresden
Ansage
Notruf
Prof. Hußmann
Softwaretechnologie II
SA/RT: Ebene 0
BM
angebundene
Kontrollspezifikation
TS
FS
FS
TS
Aktivierung
BM
BM TS
überwache
Raum 1
überwache
Raum 2
FS
Hauptschalter
Aktivierung
betreibe
Bedienfeld
überwache
Objekt
Anruf
Li
erz.
Ansage
rufe
Hilfe
Einstellungen
Einstellungen
Technische Universität Dresden
Sir
Prof. Hußmann
Softwaretechnologie II
Seite 3
SA/RT: Kontrollspezifikations - Automat
• Kontrollspezifikation:
– besteht aus Zustandsautomat und/oder Entscheidungstabelle
– wird an das Flußdiagramm durch Balkennotation angebunden
Aktivierung = ein
Initialisierung
Inaktiv
Aktiv
BM, TS, FS
Auslösen
Aktivierung = aus
Alarm
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
SA/RT: Kontrollspezifikations - Tabelle
Prozeß
Steuerüberw.
aktion
Raum 1
aus Automat
Initialisierung
Auslösen
überw.
Raum 2
Sir.
Licht
erz.
Ansage
rufe
Hilfe
1
2
0
0
0
0
0
0
4
3
1
2
• Im allgemeinen: Entscheidungstabelle
• Bedeutung: Prozeßaktivierungstabelle
• Einträge: Reihenfolge der Aktivierung
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
SA/RT: Zeitspezifikationen
Eingabesignal Ereignis
Hauptschalter
ein
BM, TS, FS
ein
Ausgabesignal Ereignis
Aktivierung
Anruf
ein
wählen
Zeitbedingung
180 sec
< 30 sec
• Weitere Zeitbedingungen (z.B. Frequenz einer Sensor-Abfrage)
im Data Dictionary (Requirements Dictionary)
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Seite 4
SA/RT: Zusammenfassung
• Ausgereifte, aber komplexe Darstellungsformen
– Zusammenspiel verschiedener Diagramme
– Nicht einfach zu verstehen
• Methodische Unterstützung vorhanden
• Relativ geringe Unterschiede zwischen Analyse, Entwurf und
Implementierung
– Spezifikation = abstrakte Sicht auf Implementierung
– Simulation von Spezifikationen
• Konsistenzbedingungen sehr komplex
• Keine Daten- oder Verhaltenskapselung
• Schlechte Unterstützung für mehrfache Instanzen desselben
Verhaltens
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Objektorientierte Realzeit-Modellierung
• Verfeinerte Zustandsmodellierung:
– Shlaer/Mellor 1992 ("Modelling the World in States")
• Einführung zusätzlicher Strukturelemente ("Aktoren")
– Selic/Gullekson/Ward 1994
(ROOM - Real-Time Object-Oriented Modelling)
• Realzeit-Modellierung mit "purem" UML
– Douglass (1998, 1999)
(Angelehnt am Werkzeug "Rhapsody" der Firma i-Logix)
• Von ROOM zu UML/ROOM:
– ROOM-Werkzeug: ObjecTime Ltd. (Kanada), B. Selic et al.
– 1998: "White Paper" von B. Selic (ObjecTime)/J. Rumbaugh (Rational)
– 1999: Fusion von ObjecTime und Rational
» ObjecTime-Werkzeug nun spezielle Version von Rose (Rose-RT)
• Entscheidung über "offizielle" Realzeit-Version von UML noch
offen.
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Sprachelemente von ROOM/UML
• ROOM/UML gibt zusätzlich zu den UML-Sprachelementen
bewährte Architekturmuster für Echtzeitsysteme mit einer
einfachen Kurznotation vor.
• Kapsel (capsule):
(in ROOM: Aktor (actor))
– Komplexes, möglicherweise verteiltes physikalisches Objekt, das mit
seiner Umgebung über Signale kommuniziert.
• Port:
– Physikalischer Teil der Implementierung einer Kapsel, über den die
Kapsel mit der Außenwelt durch Austausch von Signalen
kommuniziert.
– Assoziiert mit dem Port ist ein Protokoll, das die über den Port
ausgetauschten Informationen beschreibt.
• Konnektor (connector):
(in ROOM: Bindung (binding))
– Abstrakte Sicht auf einen Kommunikationskanal, der zwei oder mehr
Ports verbindet.
– Partner-Ports eines Konnektors müssen aufeinander abgestimmte
Protokolle benutzen (komplementäre Protokoll-Rollen)
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Seite 5
Metamodell für Kapseln
Kapsel
1..*
Protokoll- 2..*
Rolle
Port
Protokoll
*
Konnektor
• Alle aufgeführten Klassen sind Spezialfälle des UML-Konstrukts
"Klasse".
– Stereotypen <<capsule>>, <<port>>, <<protocol>>, <<protocolRole>>
• Für Port-, Protokoll- und Protokoll-Rolle-Klassen werden i.a. keine
individuellen Attribute spezifiziert
• Kapsel-Klassen enthalten private Attribute und Operationen.
• Protokolle definieren Signale (Operationen der Protokoll-Rollen)
zur Kommunikation zwischen Kapseln.
• Die meisten Protokolle kennen zwei Standard-Rollen
(z.B. master und slave genannt)
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
ROOM/UML-Notation für Kapsel-Klassen
<<capsule>>
Raumüberwachung
• Spezialisierung der UMLKlassennotation:
ports
+ s[0..5]: SensorStg~
+ c: RaumStg
• Abkürzung für unten dargestelltes
Klassendiagramm
– zusätzliches "compartment" (ports)
<<capsule>>
Raumüberwachung
0..5 s
<<port>>
RÜberwSensPort
1 c
<<port>>
RÜberwRStgPort
<<protocol role>>
slave
<<protocol role>>
master
<<protocol>>
SensorStg
<<protocol>>
RaumStg
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Protokoll-Spezifikation in ROOM/UML
• Zwei-Partner-Protokolle:
<<protocol>>
SensorStg
– Master- und Slave-Rolle
"konjugiert", d.h. ableitbar
aus demGegenstück
– Kurznotation:
Protokollname (=Master)
Protokollname~ (=Slave)
incoming
status(): Integer
rücksetzen()
outgoing
auslösen()
• Mehr-Partner-Protokolle:
– selten
<<protocolRole>>
Master
incoming
status(): Integer
rücksetzen()
outgoing
auslösen()
Technische Universität Dresden
<<protocolRole>>
Slave
incoming
auslösen()
outgoing
status(): Integer
rücksetzen()
Prof. Hußmann
Softwaretechnologie II
Seite 6
Beispiel: Klassendiagramm in ROOM/UML
Alarmsystem
• Alle Kapsel-Klassen mit
Port-Information
• Alle Ports mit zugehörigem
Protokoll und jeweiliger
Rolle
Sensor
*
1
1..10
RaumÜberwachung
– Details später
• Assoziationen: "Kenntnis"
voneinander
*
1
Bedienung
1
– Auf Instanzenebene:
Konnektoren
1
1
Alarmsteuerung
1
1
1
1
1
Sirene
Licht
Technische Universität Dresden
1
1 Nachrichtensynthese
1
Notruf
Prof. Hußmann
Softwaretechnologie II
Spezifikation des Verhaltens einer Kapsel
• Zwei Möglichkeiten (je Port wählbar):
• Spezifikation durch Zustandsdiagramm
– end port
– Zur Kapsel assoziierte Zustandsmaschine behandelt alle Signale des
dem Port zugeordneten Protokolls
• Verfeinerung durch enthaltene Kapseln
– relay port
– Port dient nur zum Weiterreichen von Signalen an Unterkapseln
– Das Gesamtsystem kann als eine Kapsel verstanden werden
» Hierarchische Zerlegung des Gesamtsystems in Kapseln
– In ROOM/UML beschrieben durch Kollaboration von Instanzen innerer
Kapseln
» Spezialfall des UML-Kollaborationsdiagramms
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Einfaches Zustandsdiagramm für Kapsel
<<protocol>>
SensorStg
<<capsule>>
Sensor
incoming
status(): Integer
rücksetzen()
outgoing
auslösen()
ports
+ a: SensorStg
• Zugeordnetes Zustandsdiagramm für Kapsel Sensor:
nicht
ausgelöst
ext.Signal / auslösen()
ausgelöst
stg.rücksetzen()
stg.status()/return=1
stg.status()/return=0
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Seite 7
ROOM/UML Instanzendiagramm
(Strukturdiagramm)
TS1:
Sensor
a: SensorStg
R1:Raumüberwachung
s[k]: SensorStg~
ist Kurzform für:
<<capsule>>
<<capsule>>
TS1:
Sensor
R1: Raumüberwachung
<<connector>>
<<port>>
<<port>>
a:SensorPort
s[k]: RSensorPort
<<protocolRole>>
<<protocol>>
<<protocolRole>>
Master
SensorStg
Slave
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Beispiel: Innere Kapseln
Alarmsystem
s: SensorStg~
0..5
R[k]:Raum-1..10
überwachung
c: RaumStg
BedienKdo
stg:Alarmsteuerung
SirStg
LiStg NotrStg
Technische Universität Dresden
NachrStg
Prof. Hußmann
Softwaretechnologie II
Beispiel: ROOM/UML-Instanzendiagramm
für Gesamtsystem
TS1:
Sensor
:SensorStg
FS1:
Sensor
BM1:
Sensor
:SensorStg
TS2:
Sensor
...
k:BedienKdo
:Bedienfeld
...
:Alarmsystem
FS2:
Sensor
BM2:
Sensor
...
n:NachrStg
...
:Nachrichtensynthese
nr:RufStg
s:GerStg
:Sirene
Technische Universität Dresden
l:GerStg
:Licht
Prof. Hußmann
:TelefonAnlage
Softwaretechnologie II
Seite 8
Sequenzdiagramme für Echtzeitsysteme
:Bedienfeld
:Alarmsystem
ein()
: Sensor
: Sirene
: Licht
: Telefonanlage
auslösen()
180 s
a
{30s£
b–a£ 60s}
b
(wird
aktiv)
auslösen()
erzeugeNotruf()
ein()
{c–b£ 60s}
c
ein()
Zeitbedingungen schon in Anforderungsbeschreibung und -Analyse!
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Zustandsdiagramme in UML/ROOM
Beispiel: Zustandsdiagramm für Kapsel "Alarmsteuerung"
k.ein()
/ setTimer(t1, 180)
t1.timeOut()
/ forall i: r[i].start()
Aktiv.Vorlauf
Aktiv
forone i: r[i].alarm()
/ setTimer(t2, 30)
Inaktiv
k::aus()
/ s::aus()
k::aus()
Alarm
AlarmVorlauf
t2.timeOut()/
m=n.synthNotruf();
nr.call(polizei); nr.transmit(m);
s.ein(); l.ein()
Hinweis: Darstellung ist nur angelehnt an realen Aktionssprachen!
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Aktionssprachen für Realzeitsysteme
• Eingebettet in UML als "Aktionen" von Zustandsdiagrammen
• Programmiersprache:
– Sequentielle Komposition
– Evtl. Schleifenkonstrukte
– Berechnungen
– Senden von Signalen über Ports
– Aufrufen von Systemdiensten (z.B. Timer = Stoppuhr)
» ROOM/UML: Interner Port "TimeServiceSAP"
• Ablauflogik und Fallunterscheidungen in Zustandsdiagramm
• Ereignisse:
– Eintreffen von Signalen auf Ports
– Systemereignisse (z.B. timeout)
• Simulierbar und compilierbar zu Programmcode
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Seite 9
UML/ROOM: Zusammenfassung
• Ausgereifte, in UML eingebettete Darstellungsformen
– Vorgabe wichtiger, allerdings fixierter, Standard-Architekturelemente
– Abgrenzung zu Standard-UML etwas unklar
– Konkurrierender Ansatz basierend auf Rhapsody
• Sehr gute Werkzeug-Unterstützung vorhanden,
Dokumentation/Methodik leider unbefriedigend
• Fliessender Übergang zwischen Analyse, Entwurf und
Implementierung
– Spezifikation = abstrakte Sicht auf Implementierung
– Simulation von Spezifikationen
• Daten- und Verhaltenskapselung wird unterstützt
• Unterstützung für mehrfache Instanzen desselben Verhaltens
– Prinzipiell gegeben (besser als z.B. in SA/RT)
– Relativ kompliziert
(warum keine Konnektoren in Klassendiagrammen?)
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
4.
Softwarearchitektur und Softwareentwurf
4.4
Objektorientierter Systementwurf
Analyse
Entwurf
Grobentwurf
Implementierung
Test,
Integration
Wartung
Feinentwurf
.KVGTCVWT
5QOOGTXKNNG
$CN\GTV.'
,CNQVG
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Objektorientierter Komponentenentwurf
• Ausgangspunkt:
– Grobdefinition der Architektur:
» Zerlegung in Subsysteme
» Verteilungskonzept
» Ablaufmodell
• Ergebnis:
–
–
–
–
OO-Modell für jedes Subsystem der Architektur
OO-Modell für unterstützende Subsysteme
Spezifikationen der Klassen
Spezifikationen von externen Schnittstellen
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Seite 10
Verfeinerung des Analysemodells
•
•
•
•
Entwurfsmodell ist detaillierter als Analysemodell
Listen der Attribute und Operationen: vollständig
Attribute und Operationen: Datentypen, Sichtbarkeit
Operationen: Spezifikation
– z.B. Vor- und Nachbedingungen
• Assoziationen/Aggregationen: Optimierung der Navigation
– Navigationsrichtung, Ordnung, Qualifikation
• Einbindung in Infrastruktur, Altsysteme etc.
• Verwaltungsklassen
• Zusammenhang zu den Anforderungen:
– Schlüsselszenarien als detaillierte Sequenzdiagramme
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Beispiel: Analysemodell
Session
Owner
Party
IsVirtual
Number
0..1
Session
joins
2..*
Connection
Owner
0..*
Connection
0..*
0..*
Status
is connected by
0..*
Leg
Status
Direction
0..*
Auszug aus einem realen Projekt im Bereich der Telekommunikation
(Session-Management)
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Beispiel: Entwurfsmodell (Überblick)
Line Access COBI
Call Service
Calling Party
CCF
Database
Communication
Object for Dialled
Connections
Third Party Call
Manager
TDP-Manager
give_TDP_N_List
give_TDP_R
Detection Point
DP_Number
Monitor_Mode
3
DP-Manager
armEDP
SCP_Request
SCP_Notification
SCP_Response_Info
Drop_SSF
EDP
TDP
SCP_ID
Service_Key
SSM Object
ID
Read_ID
SSM Leg
SSM Connection
*Notification
0..2 *End_Of_Call
GetDPManager
ArmStatusChange
*Notification
*Request
*EndOfCall
*Exception
*Release
ArmStatusChange
Report_SSM
SSM Party
0..2
Is_Virtual
Address
SSM Session
Bearer
independent
Connection
Release
User initiated
Bearer
Connection
Release
Complete
Continue
Protocol stack
TCAP Component
Handler
TCAP Transaction
Handler
Technische Universität Dresden
Third Party initiated
Bearer Connection
Release
Establish
SCF Access Manager
Send_Invoke
Send_Error
TC_CONTINUE
TC_END
TC_U_ABORT
TC_P_ABORT
SendSTUI
Add_Bearer
Add_Parties_And_Bearer
Join_Party_And_Bearer
Join_Party_And_Link_Leg
Drop_Party
Release_Connection
Release_Session
Request_Report_SSM_Change
Continue
Error
SSFTimerExpiry
SSMTimerExpiry
ServiceRequest
Report_SSM_Change
Connection_Released
Notation: OMT
Prof. Hußmann
Softwaretechnologie II
Seite 11
Teilaufgaben beim Objektorientierten Entwurf
• Verfeinerung des Analysemodells
– OOD umfaßt mehr Detailinformation als OOA
• Vervollständigung der Architektur
–
–
–
–
Anbindung an Benutzungsoberfläche
Anbindung an Datenhaltung
Anpassung an gewählte Verteilung
Ablaufsteuerung
Entwurfsmuster
• Optimierung des Entwurfs
• Anpassung an Implementierungssprache
Technische Universität Dresden
Prof. Hußmann
Softwaretechnologie II
Seite 12

Similar documents