SA/RT - Wiki

Gliederung
1.
2.
Erweiterung der Strukturierten
Analyse zu SA/RT
SW Engineering und der
menschliche Faktor
Teil 1. Erweiterung der Strukturierten
Analyse zu SA/RT
Strukturierte Analyse (SA)
(Wiederholung – Überblick)
Kombination von drei (nicht neuen!) Konzepten:
• Hierarchisch angeordnete DFDs,
• Data Dictionary-Einträge (DDs),
• Mini-Spezifikationen (MiniSpecs).
Hierarchisierung zur Steigerung der Übersichtlichkeit
• Kontextdiagramm steht als abstraktes DFD in der
obersten Hierarchieebene.
• Jeder Prozess eines DFD kann in untergeordneten
Diagrammen verfeinert werden.
• Ist keine Verfeinerung mehr möglich, wird eine textuelle
Mini-Spezifikation erstellt.
• Balanciertes Datenmodell durch Data Dictionary.
SA/RT
SWT
P. Forbrig und A. Dittmar
3
KontextDiagramm
HierarchieKonzept SA
Diagramm 0
Diagramm 3
MiniSpec 3.1
SA/RT
SWT
P. Forbrig und A. Dittmar
4
aus (Balzert, 2000)
Datenflussdiagramme (DFD)
• Zeigen die funktionalen Beziehungen der von einem System
transformierten Daten, einschl. Eingabe-, Ausgabedaten
und interne Datenbestände.
• Beschreiben Daten-, aber keine Steuerflüsse!
• Innerhalb der Strukturierten Analyse (SA) entwickelt
(Tom deMarco, 1979).
Preis
Kunde
Preis bestimmen
Artikelname
SA/RT
SWT
P. Forbrig und A. Dittmar
5
DFD: Beschreibungsprimitive
Prozesse (Funktionen):
• beschreiben Funktionalität des Systems
• haben Ein- und/oder Ausgabedatenflüsse
Datenflüsse:
• Transport von Daten zwischen Teilen des Systems
• sind getypt
• besitzen Quelle und/oder Ziel
Speicher (Lager):
• ruhende Daten im System,
• lesender und/oder schreibender Zugriff
• sind getypt
• weisen i.allg. auf Dateien oder Datenbanken
im späteren System hin
Schnittstellen (Begrenzer):
• Schnittstelle des Systems zur Außenwelt
• nicht Gegenstand der Anforderungsermittlung
SA/RT
SWT
P. Forbrig und A. Dittmar
Prozessname
Datenname
Speichername
Schnittstellenname
6
Das Kontextdiagramm
• Beschreibt die Schnittstellen des Systems zur Umwelt,
• Repräsentiert das Gesamtsystem,
• Syntaktische Regeln
- Enthält nur einen Prozess (Nr. 0),
- Enthält mindestens eine Schnittstelle,
- Zwischen Schnittstellen keine Datenflüsse,
- Enthält keinen Speicher.
D1E
S1
D1A
Schnittstelle zur
Umwelt
SA/RT
Datenflußname
SWT
P
0.
D2E Eingabedatenfluß
S2
D2A Ausgabedatenfluß
Prozeß, repräsentiert das
Gesamtsystem, gekennzeichet durch 0.
P. Forbrig und A. Dittmar
7
Kontextdiagramm (Forts.)
• Beschreibt Anwendungsbereich des Systems.
• Zeigt Datenflüsse über die Systemgrenzen.
• Kann es von derselben Schnittstelle mehrere Instanzen geben,
wird sie einmal dargestellt.
• Gibt es wenige gleichartige Schnittstellen mit unterschiedlichen
Datenflüssen, dann getrennte Darstellung.
• Schnittstelle muss ursprüngliche Quelle oder Senke einer
Information angeben.
• Datenflüsse müssen auf angemessenem Abstraktionsniveau
beschrieben werden
- nicht zu detailliert, nicht zu abstrakt (also nichtssagend),
- die wesentlichen Informationen über die Umwelt
müssen erkennbar sein,
- problembezogene Namensgebung.
SA/RT
SWT
P. Forbrig und A. Dittmar
8
Funktionsbäume und SA
DFD
D1
Funktionsbaum
D4
A1
D2
A2
S
A
A3
A1
...
A2
A 21
A3
A 22
D3
...
Wenn eine Funktion F aus dem Funktionsbaum auf einen Prozess P
in einem DFD eines entsprechenden SA-Modells abgebildet werden
kann, entsprechen die Teilfunktionen von F den Prozessen in dem
DFD, das P verfeinert.
SA/RT
SWT
P. Forbrig und A. Dittmar
9
Tom DeMarco
• nicht nur bedeutende Beiträge zur SA, sondern auch zum
Software-Management.
• In “Peopleware” (1987, mit T. Lister)  Behandlung von
menschlichen Aspekten bei der Software-Entwicklung
(z.B. Auswahl der Mitarbeiter, Projektplanung und –management,
Motivation, Gruppenarbeit, Einfluss der Arbeitsumgebung)
- Die Produktivität bei der Programmierung ist nicht nur von den
verwendeten Methoden, Sprachen, Tools... abhängig, sondern
in großem Maße von politischen und sozialen Aspekten
der Projekte.
- Wie erreicht man eine gute Moral im Projektteam?
- Vielfalt ist z.B. wichtig! Auch bei der Zusammenstellung von
Teams:
“A little bit of heterogeneity can be an enormous aid to create a
jelled team... It is a clear signal that it’s okay not to be a clone,
okay not to fit into the corporate mold of Uniform Plastic Person.”
SA/RT
SWT
P. Forbrig und A. Dittmar
10
Structured Analysis/Real Time Analysis (SA/RT)
• SA verzichtet bewusst auf die Beschreibung der Initialisierung
und Terminierung eines Systems.
• Zeitanforderungen und Reihenfolgen können nicht festgelegt
werden.
RT erweitert SA, so dass ereignisgesteuerte Systeme mit
Zeitanforderungen und komplexen Prozessaktivierungen
(-steuerungen) modelliert werden können.
• Ward/Mellor 1985:
»Structured Development for Real-Time Systems«
• Hatley/Pirbhai 1987:
»Strategies for Real-Time System Specification«
SA/RT
SWT
P. Forbrig und A. Dittmar
11
SA/RT: neue bzw. modifzierte Konzepte
• Flussdiagramm (FD)
- um Kontrollflüsse erweitertes DFD,
• Kontrollflussspezifikation (CSpec)
- optional zu einem FD zugeordnet,
- beschreibt die Prozessaktivierung im FD,
• Prozess-Spezifikation (PSpec)
- beschreibt einen elementaren (nicht verfeinerten) Prozess,
- entspricht MiniSpec in SA,
• Requirements Dictionary (RD)
- beschreibt alle Speicher, Daten- und Kontrollflüsse,
- entspricht DD in SA,
• Zeitspezifikation
- beschreibt absolute Zeitanforderungen zwischen externen
Ein- und Ausgabeereignissen in einer Tabelle.
SA/RT
SWT
P. Forbrig und A. Dittmar
12
Modellierungsaufgabe (Balzert, 2000)
- Ein einfaches Softwaresystem
steuert das Füllen und Leeren eines
Tanks, indem es den Flüssigkeitsstand im Tank überwacht und die
Ventile entsprechend öffnet und
schließt.
- Es gibt ein Einlass- und ein
Auslassventil.
- Jedes Ventil kann zwei Zustände
einnehmen: geöffnet und
geschlossen.
- Das Einlassventil besitzt beim Öffnen eine Zeitverzögerung von 2 sec.
- Der Bediener kann das gewünschte Flüssigkeitsniveau ins System eingeben,
wenn der Tank leer ist.
- Das System akzeptiert folgende Kommandos:
- Tank auf das gewünschte Niveau füllen (bei leerem Tank): Beim Füllen des
Tanks wird das Einlassventil geöffnet und die Flüssigkeit strömt in den Tank ein,
bis die vorgegebene Füllhöhe erreicht ist.
- Tank leeren (bei vollem Tank): Das Entleeren des Tanks wird mit entsprechenden
Auslassventilkommandos (Auf, Zu) gesteuert.
SWT
P. Forbrig und A. Dittmar
13
- Ein SA/RT
Geber meldet den aktuellen Flüssigkeitsstand des Tanks.
Kontextdiagramm im Beispiel
Bediener
Soll-Füllstand
.0
Kommando
überwache
Tankfüllstand
Geber
Einlassventil
EV_Status
Datenfluss
AV_Status
Auslassventil
Ist-Füllstand
Kontrollfluss
Einträge im Requirements Dictionary (RD):
Kommando
EV_Status
AV_Status
Ist_Füllstand
Soll_Füllstand
SA/RT
SWT
::= [Eingabe_Soll | Füllen | Leeren]
::= [Zu | Auf]
::= [Zu | Auf]
::= Integer
::= Integer
P. Forbrig und A. Dittmar
14
Datenflüsse vs. Kontrollflüsse
Datenflüsse:
• Werden in den Prozessen verarbeitet bzw. transformiert.
• Elementare Datenflüsse sind meistens kontinuierliche Signale
(Beispiel: 0..250 km/h).
• Ein Datenfluss kann auch ein diskretes Signal sein, wenn es
selbst verarbeitet wird.
Kontrollflüsse:
• Steuern die Verarbeitung.
• Sind immer diskrete Signale.
(Beispiel: Startknopf = [ gedrückt | nicht gedrückt ]).
Unterscheidung zwischen Kontroll- und Datenflüssen oft schwierig!
SA/RT
SWT
P. Forbrig und A. Dittmar
15
FD 0: Verfeinerung von „überwache Tankfüllstand“
Soll-Füllstand
.1
setze
Soll-Niveau
.2
prüfe Tank
Ist-Füllstand
Soll-Niveau
.3
öffne
Auslassventil
.4
schließe
Auslassventil
.6
schließe
Einlassventil
Balkendiagramm:
AV_Status
.5
öffne
Einlassventil
Kommando
EV_Status
Tank_Status
SA/RT
SWT
P. Forbrig und A. Dittmar
16
FD 0 und aktualisiertes Requirements Dictionary
Soll-Füllstand
.1
setze
Soll-Niveau
.2
prüfe Tank
Soll-Niveau
.3
öffne
Auslassventil
Ist-Füllstand
AV_Status
EV_Status
Kommando
Tank_Status
.6
aktualisiertes RD:
schließe
Kommando
::= [Eingabe_Soll | Füllen | Leeren]
Einlassventil
EV_Status
::= [Zu | Auf]
.5
AV_Status
::= [Zu | Auf]
öffne
::= Integer
Einlassventil Ist_Füllstand
Soll_Füllstand
::= Integer
Tank_Status
::= [Voll | Leer] // internes Ereignis
Soll-Niveau
::= Integer
.4
schließe
Auslassventil
SA/RT
SWT
P. Forbrig und A. Dittmar
17
Kontrollspezifikationen (CSpecs)
• SA: Verarbeitungsinformationen stehen nur in den MiniSpecs.
• RT: ermöglicht die Beschreibung der Prozesssteuerung in
Abhängigkeit von externen Ereignissen auf höhereren
Hierarchieebenen (m.H. von CSpecs).
• Jedem FD kann eine CSpec zugeordnet werden:
- enthält Entscheidungstabelle(n) und/oder
- Zustandsautomat.
AV_Status
Kommando
EV_Status
• Zusammenhang zwischen CSpec und FD:
Tank_Status
- wird durch Balkendiagramm im FD beschrieben,
- Kontrollflüsse, die Eingangsgrößen für eine CSpec sind,
werden mit der Pfeilspitze zum Balken gezeichnet,
- Kontrollflüsse, die eine CSpec verlassen, führen vom
Balken weg.
SA/RT
SWT
P. Forbrig und A. Dittmar
18
Im Beispiel: Zustandsautomat als CSpec von FD 0
[Kommando=Eingabe_Soll ]/ .1
[Tank_Status=Leer ]/ .4
Tank ist leer
Tank wird geleert
do: .2
Tank wird gefüllt
do: .2
[Kommando=Leeren] / .3
Prozesse aus FD 0:
.1 setze Soll-Niveau
.2 prüfe Tank
.3 öffne Auslassventil
.4 schließe Auslassventil
.5 öffne Einlassventil
.6 schließe Einlassventil
SA/RT
[Kommando=Füllen] / .5
SWT
Tank ist voll
[Tank_Status=Voll ]/ .6
Einträge aus dem RD:
Kommando ::= [Eingabe_Soll | Füllen | Leeren]
EV_Status ::= [Zu | Auf]
AV_Status ::= [Zu | Auf]
Tank_Status ::= [Voll | Leer]
P. Forbrig und A. Dittmar
19
Zusammenhang FD und CSpec
Fall A: CSpec ist ein Zustandsautomat
• Eingabepfeile des Balkens im FD verweisen auf die Kontroll-
flüsse, deren Werte die Ereignisse im Zustandsautomaten bilden.
• Alle Prozessnamen werden als Aktionsnamen im Zustandsautomaten benutzt.
• Ausgabepfeile des Balkens im FD verweisen auf die Kontrollflüsse, deren Werte als Ausgabeereignisse nach außen gesendet
werden (im Zustandsautomaten bzw. in den PSpecs von
elementaren Prozessen des FDs).
Fall B: CSpec ist eine Entscheidungstabelle
Fall C: CSpec ist Kombination aus Zustandsautomat und
Entscheidungstabelle(n)
... siehe (Balzert, 2000)
SA/RT
SWT
P. Forbrig und A. Dittmar
20
Prozessspezifikation (PSpec) für elementare Prozesse
3 Möglichkeiten zur Prozesssteuerung
• Prozess läuft während der gesamten Systemlaufzeit:
- darf in keiner CSpec erscheinen.
• Prozess wird aktiviert und terminiert sich selbst:
- Aktivierung durch Zustandsübergang oder durch
Eintreten einer Bedingung in einer Entscheidungstabelle
(in CSpec),
- In PSpec muss das Schlüsselwort Issue vor den
Prozessnamen geschrieben werden.
• Prozess wird aktiviert und beim nächsten Zustandsübergang
automatisch deaktiviert:
- Aktivierung durch Zustandsübergang oder Bedingung in der
Entscheidungstabelle (in CSpec).
SA/RT
SWT
P. Forbrig und A. Dittmar
21
Im Beispiel: PSpec für Prozess .2 („prüfe Tank“)
// Erzeugung von internen Ereignissen
while true
if Ist_Füllstand = 0
then erzeuge_Ereignis:“Tank_Status=Leer“
else if Ist_Füllstand >=Soll_Füllstand
then erzeuge_Ereignis:“Tank_Status=Voll“
end_while
Ausschnitt aus FD 0:
Soll-Füllstand
.1
setze
Soll-Niveau
.2
prüfe Tank
Ist-Füllstand
AV_Status
Soll-Niveau
EV_Status
Kommando
Tank_Status
SA/RT
SWT
P. Forbrig und A. Dittmar
22
PSpec für Prozess .3 („öffne Auslassventil“)
// Erzeugung eines externen Ereignisses
Issue
erzeuge_Ereignis:“AV_Status=Auf“
Ausschnitt aus FD 0:
.3
öffne
Auslassventil
AV_Status
EV_Status
Kommando
Tank_Status
SA/RT
SWT
P. Forbrig und A. Dittmar
23
Zeitspezifikationen
RT ermöglicht die Spezifikation von externen Zeitanforderungen.
2 Arten von Zeitspezifikationen:
• Wiederholungszyklen für externe, elementare Ausgabesignale:
- werden im RD durch das Attribut “Rate” festgelegt
(z.B.: Stunden = 0..23, Rate: alle 100 msec)
• Eingabe-Ausgabe-Antwortzeiten:
- Legen den erlaubten Antwortzeitbereich für jedes
Eingabeereignis und das resultierende Ausgabeereignis
durch Zeitspezifikationstabelle fest.
Zeitspezifikationstabelle im Beispiel:
Eingabesignal Ereignis
Ausgabesignal Ereignis
Antwortzeit
Kommando
EV_Status
2 sec.
SA/RT
“Füllen”
SWT
P. Forbrig und A. Dittmar
“Auf”
24
Beispiel Uhr
• Flussdiagramm (FD):
– Enthält sowohl Daten- als auch Kontrollflüsse
• Beispiel:
Druck– RT-Kontextdiagramm »Digitaluhr«
knopf_1
Kno
pf 2
o
pf 1
n
K
.0
stelle
Uhr
Batterie
blink
ende
Anze
ige
t
Star
SA/RT
Anzeige
SWT
P. Forbrig und A. Dittmar
Druckknopf_2
Uhrendisplay
25
f2
• FD0
a
St
»Digitaluhr«
Anzeige
aktualisiere
Zeit
Zeit
auf 0
stellen
rt
.4
Stunden
blinken
.2
Normalzeit
anzeigen
Zeit
blinkende
Sekunden
SA/RT
.8
Sekunden
blinken
SWT
erhöhte
Minuten
ak
Se t u e l
ku le
nd
en
Null
de
Sekun
e
ell n
u
t
ak nde
u
St
erhö
hte
Stun
den
.5
Stunde
um 1
erhöhen
lle
tue n
ak ute
n
Mi
.9
Sekunde
auf 0
stellen
blinkende
Stunden
Kn
op
f1
8.2 Flussdiagramme
.3
.1
op
n
K
.7
Minuten
um 1
erhöhen
P. Forbrig und A. Dittmar
.6
Minuten
blinken
blinkend
e
Minuten
26
Automat für Uhr
• Zustandsautomat von CSpec 0
SWT
P. Forbrig und
A. Dittmar
SA/RT
27
Beziehung Aktionen aus Automat zu
Prozessen
• ET von CSpec 0
SA/RT
SWT
P. Forbrig und A. Dittmar
28
Überblick SA/RT
Konzepte:
• hierarchisch angeordnete FDs
• Requirements Dictionary (RD)
• Prozess-Spezifikationen (PSpecs)
• Kontrollflussspezifikationen (CSpecs)
• Zeitspezifikationen
Kontextdiagramm beschreibt die
Umgebung des Systems:
SA/RT
SWT
P. Forbrig und A. Dittmar
29
Überblick SA/RT (Forts.)
Verfeinerung von Prozessen (hier: P) durch weitere DFs:
SA/RT
SWT
P. Forbrig und A. Dittmar
30
Überblick SA/RT (Forts.)
CSpec0 (hier als Zustandsautomat) zur
Aktivierung von Prozessen aus FD0:
FD0:
SA/RT
SWT
P. Forbrig und A. Dittmar
31
Kontext8.6 Das
Diagramm Hierarchiekonzept
Zeitspezifikationstabelle
0
FD 0
1
CSpec 0
2
3
Spec 1
Spec 3
FD 2
2.1
RD
2.2
X
2.3
CSpec 2
Spec 2.2
SWT
P. Forbrig und
A. Dittmar
SA/RT
Spec 2.1
Spec 2.3
32
Zusammenfassung SA/RT
Vorteile:
+ Gut geeignet zur Modellierung ereignisgesteuerter
Systeme.
+ Komplexe Steuerungszusammenhänge können
beschrieben werden.
+ Gute Werkzeugunterstützung.
Nachteile:
– Schwieriger als SA zu erlernen und zu verstehen.
– Wird leicht unübersichtlich.
Zur Methodik und Qualitätssicherung bei der
Strukturierten Analyse  siehe (Balzert, 2000)
SA/RT
SWT
P. Forbrig und A. Dittmar
33
Teil 2:
SW Engineering und
der menschliche Aspekt
Die Rolle der Menschen im SW Engineering
Human-Centered Software Engineering
Software wird von Menschen gemacht!
- Können
- Motivation
- Arbeitsumfeld
Rollen und Verantwortlichkeiten:
• Entwickler und seine Spezialisierungen
• Projektleiter und Gruppenleiter
• Kunde, Anwender und andere Betroffene (Stakeholder)
Rolle Mensch
SWT P. Forbrig & A. Dittmar
35
Produktivitätsfaktoren in Projekten
(Ludewig, Lichter, 2007)
• Schwankungsbreiten
bis zu 20:1
• in Gruppen noch 4:1
Rolle Mensch
SWT P. Forbrig & A. Dittmar
36
Arbeitstreffen effektiv gestalten
“Common complaints about meetings include
• The purpose of the meeting is unclear.
• The attendees are unprepared.
• Essential people are absent or late.
• The conversation veers away from its purpose.
• Some meeting participants do not discuss substantive
issues. Instead, they argue, dominate the conversation,
or do not participate.
• Decisions made at the meeting are never enacted
(Pfleeger, 2001)
afterward.”
Rolle Mensch
SWT P. Forbrig & A. Dittmar
37
Rationale Erkenntnis vs. emotionale Befindlichkeit
In der Praxis werden viele Maßnahmen nicht ergriffen,
deren Nutzen und Wirksamkeit längst erwiesen ist, z.B.
• Größe und Komplexität
- Denken im Kleinen vs. Arbeiten im Großen
• Ego der Entwickler
- Individuum vs. Kollektiv
- Kreativität vs. Systematik
- Bedrohung durch Überprüfung vs. Qualität durch Prüfung
• Lust und Frust
- Programmieren ist selbstmotiviert, dokumentieren nicht
- Debuggen ist selbstmotiviert, testen nicht
• Zeiteffekte
- Trägheit vs. Fortschritt
- kurzfristiges Denken vs. langfristige Wirkung von
SE-Maßnahmen
(Glinz, 2006)
Rolle Mensch
SWT P. Forbrig & A. Dittmar
38
Motivation
• Selbstmotivation ausnutzen
• Explizite Anreize für nicht selbstmotivierte Arbeiten
• “Egoless programming” ohne Ego-Verlust der
Entwickler ermöglichen
• Gute Arbeitsbedingungen schaffen
• Leute ernst nehmen und fördern
• Selbstwertgefühl steigern
• Software Ingenieure sollen stolz sein können
auf ihre Produkte!
• Auch Software-Ingenieure brauchen ein Berufsethos
(Glinz, 2006)
Rolle Mensch
SWT P. Forbrig & A. Dittmar
39
4.3 Values and Ideals
I must act with professional
responsibility and integrity in
xxx
my dealings with the community and clients, employers, employees
and students. I acknowledge:
4.3.1 Priorities
I must place the interests of the community above those
of personal or sectional interests.
4.3.2 Competence
I must work competently and diligently for my clients and
employers.
4.3.3 Honesty
I must be honest in my representation of skills, knowledge,
services and products.
4.3.4 Social Implications
I must strive to enhance the quality of life of those affected by
my work.
4.3.5 Professional Development
I must enhance my own professional development, and that of
my colleagues, employees and students.
4.3.6 Information Technology Profession
I must enhance the integrity of the information technology
profession and the respect of its members for each other.
Rolle Mensch
SWT P. Forbrig & A. Dittmar
40
Zusammenfassung als Gegenüberstellung
von Entwicklungsansätzen
technikzentriert
menschenzentriert
• Systeme werden vollständig
geplant
• Systeme evolvieren,
fortlaufende Planung
• Systeme werden aus Komponenten konstruiert
• Systeme wachsen
• Fokus auf Konstruktion
• Fokus auf Verstehen
• Systeme realisieren/erzwingen Prozesse und
Organisationsformen
• Systeme helfen Menschen,
ihre Arbeit besser/einfacher
zu tun
• Prozesse sind detailliert
beschrieben und exakt zu
befolgen (Workflow)
• Prozesse sind Leitplanken /
Checklisten
• Spezifikationen sind vollständig,
exakt, möglichst formal
• Spezifikationen sind partiell und
evolutionär (aber wohlorganisiert,
Konfigurationsmanagement)
(Glinz, 2006)
Rolle Mensch
SWT P. Forbrig & A. Dittmar
41