Beruflich Dokumente
Kultur Dokumente
1. Verständnisfragen
a) Siehe Folien zur Vorlesung.
b) Technisches System besteht aus Anteilen Software, mechanischer und elektronischer
Hardware. Je nach Anwendung können z.B. physikalische, biochemische oder andere Teil-
systeme wesentlich die Funktion des technischen Systems beeinflussen. Das Teilsystem
Software muss das bestimmungsgemäße Zusammenspiel aller Teilsysteme ermöglichen.
Der Softwareentwicklungsprozess muss also mit den Entwicklungsprozessen für die ande-
ren Teilsysteme gekoppelt werden. Die SW-Entwickler müssen die Aufgabenstellung des
Gesamtsystems verstehen. Zusatzhinweis: Aus betriebswirtschaftlicher Sicht gilt, dass ca.
15-20% der Gesamtprojektkosten, nämlich die Kosten für das Softwaresystem, über den Er-
folg oder Misserfolg des gesamten Projekts (!) entscheiden. Ohne funktionsfähiges Soft-
waresystem ist das Gesamtprodukt für den Kunden wertlos !
c) Siehe Tabelle
Qualitätsmerkmal Kommentar
Zuverlässigkeit Das Softwaresystem / Gesamtsystem verhält sich jederzeit korrekt
und insbesondere wie vom Anwender erwartet. Beispiel Schubum-
kehr beim Flugzeugtriebwerk wird nicht ausgelöst, wenn der Flug-
kapitän versehentlich den entsprechenden Steuerhebel bedient, die
Fluglage eine Schubumkehr aber nicht zulässt. Die Software teilt
den Grund der Funktionsablehnung klar verständlich mit.
Leistungsfähigkeit Das Softwaresystem steuert das technische Gesamtsystem derart,
dass es im vom Anwender geforderten Betriebsbereich mit höchster
Effizienz arbeitet. Beispiel: Eine Software sortiert und gruppiert die
eingehenden Proben für ein Messgerät so, dass sie mit höchstmög-
lichem Durchsatz gemessen werden können. Selten eintreffende
Notfallproben, d.h. Proben, die sofort gemessen werden müssen,
überholen die gebildeten Gruppen, so dass der Gesamtdurchsatz
kurzfristig abnimmt.
Flexibilität Das Softwaresystem optimiert den Produktionsprozess in Abhän-
gigkeit vom aktuellen Zustand der Produktionsanlage, von den Ei-
genschaften der zur Verfügung stehenden Vorstufen und vom ge-
forderten Produktionsergebnis. Beispiel: Berechnung der notwendi-
gen Vorverdünnung einer Blutprobe auf Basis einer ersten
(Fehl)Messung so, dass die zweite Messung im erlaubten Messbe-
reich liegt.
Robustheit Das Softwaresystem steuert das technische Gesamtsystem derart,
dass typischerweise messtechnisch nicht erfasste Umwelteinflüsse
(Störungen) die Leistungsfähigkeit des Gesamtsystems nicht merk-
lich beeinflussen.
Übung und Selbstkontrolle zu Software Engineering (SEA)
Prof. Dr.-Ing. Stefan Kreiser
Qualitätsmerkmal Kommentar
Verfügbarkeit Das Softwaresystem liefert jederzeit die in diesem Moment vom
Nutzer geforderte Funktion. Ausfallzeiten, d.h. Zeiträume in denen
die geforderte Funktion nicht bereitgestellt werden kann, sind mini-
mal bzw. im Idealfall nicht vorhanden. Verfügbarkeit wird üblicher-
weise angegeben als Anteil der Betriebsstunden ohne Funktions-
einschränkung im Verhältnis zur Gesamtheit der Betriebsstunden im
Beobachtungszeitraum (typ. 99,98%). Der Verfügbarkeitstest erfolgt
über einen zuvor vertraglich vereinbarten Beobachtungszeitraum im
Rahmen der Systemabnahme ausschließlich mit Mitarbeitern des
Systembetreibers (Kunden). Mitarbeiter des Systemherstellers dür-
fen nicht in den Verfügbarkeitstest eingreifen, ohne dass dies als
Betriebszeit mit Funktionseinschränkung gewertet würde. Beispiel:
Selbstdiagnose der Motorsteuerung eines Kfz bei jedem Start ermit-
telt potenzielle Defekte, die ohne vorbeugende Wartung zukünftig
zum Ausfall des Kfz führen könnten.
Sicherheit Das Softwaresystem steuert das technische Gesamtsystem derart,
dass die zuvor im Rahmen der Risikoanalyse ermittelten potenziel-
len Gefahren für Menschen, Umwelt oder Vermögen nicht eintreten.
Beispiel: Nothaltfunktion beim Riss d. Zugseils einer Aufzugkabine.
Anpassungsfähigkeit Das Softwaresystem ist auf potenzielle zukünftige Kundenanforde-
rungen vorbereitet. Neue Kundenanforderungen können i.d.R.
durch Parametrierung der Software und Hinzufügen neuer Funktio-
nalität ohne oder mit geringer Softwarerestrukturierung in das be-
stehende Softwaresystem integriert werden. Beispiel: Die Aufnahme
neuer Produkte mit zugehörigem Produktionsverfahren ist nur dann
leicht möglich, wenn die Software bereits Produkte und Produkti-
onsverfahren als eigenständige Entitäten kennt, die bisherigen Pro-
dukte und Produktionsverfahren also nicht fest in der Software „ver-
drahtet“ wurden.
PPS PPS
(Produktions-Planungs-System) (Produktions-Planungs-System)
2. Modellnotationen
Siehe Übungsmitschrift.
Röntgen- Röntgen-
gerät 1 gerät 2
PC PC
PC
Behandlung Praxis- PC
Empfang
Behandlung verwaltung Empfang
d) Anwendungsfalldiagramm „Praxisalltag“
Akteure:
• Arzthelfer <<Actor>> kommuniziert mit: Röntgengerät einrichten, Patient aufnehmen,
Behandlungstermin festlegen, Biowerte ermitteln, Voruntersuchung durchführen.
Hinweis: Rolle. Nutzt die Praxisverwaltung über den Empfangs-PC, ggf. auch über den
PC im Wartezimmer. Alle Aufgaben müssen auch vom Arzt selbst ausführbar sein.
• Arzt <<Actor>> kommuniziert mit: Therapie festlegen, Diagnose stellen, Untersuchung
durchführen. Hinweis: Rolle. Alle Arten von Befundung und Diagnose sind ausschließ-
lich dem Arzt möglich. Eingabe nur über PC im Behandlungsimmer.
• Röntgengerät (abstrakt) <<Actor>> kommuniziert mit: Röntgengerät einrichten. Genera-
lisierung: RG Typ 1, RG Typ 2
• Analysengerät (abstrakt) <<Actor>> kommuniziert mit: Biowerte ermitteln. Generalisie-
rung: mobiles AG Typ 2, mobiles AG Typ 1, mobiles AG Typ 3, AG Typ 4
Übung und Selbstkontrolle zu Software Engineering (SEA)
Prof. Dr.-Ing. Stefan Kreiser
e) Aktivitätsdiagramme
Arzthelfer
Arzt Arzthelfer
Untersuchungsparameter
für Röntgengerät festlegen
Röntgenparameter aus
Konsultationsprotokoll entnehmen
Röntgenparameter im
Konsultationsprotokoll ablegen
Röntgengerät
vorbereiten
Röntgengerät
einric hten
Messung
durchführen
Röntgenbild dem
Konsultationsprotokoll anhängen
Röntgenergebni s
auswerten
[Anamnese erforderlic h]
Untersuchung durchführen
Übung und Selbstkontrolle zu Software Engineering (SEA)
Prof. Dr.-Ing. Stefan Kreiser
f) Entitätendiagramm „Praxisverwaltung“
Arzt Patient
Röntgenuntersuchung 1
Konsultationspr otokoll
Biowertuntersuc hung
-Ergebnis : BLOB 0..1 1 *
-Röntgengerät : Röntgenger ät -angelegt : TimeDate
-letzteAender ung : Ti meDate -Analysengerät : Analyseng...
+f estlegen Param eter() -Diagnose : Text
+zuo rd nen Erg ebnis() -KonsultationsGr und : Tex t
-T herapie : Text +f estlegen Param eter()
* -Röntgenunters uchung : Röntgenuntersuchung +zuo rd nen Erg ebnis()
-Biowertunter suchung : Bio wertunters uchung
*
1
+an legen( )
RG Typ1 Röntgengerät +erstellen Diagn ose()
+f estlegen Therap ie()
-ID : Text6 +an ordnenRoentg enun tersuch ung ()
-aktiv : bool +an ordnenBiow ertu ntersu chun g()
RG Typ2
+akt ivieren ()
AG T yp1
0..1
1
2
1 1
AG T yp2 mobiles AG Analy sengerät
Röntgenr aum Labor
-ID : Text6
-aktiv : bool
-Röntgengerät : Röntgenger ät -Analysengerät : Analyse... AG T yp3
-gewähltes Röntgengerät : Röntgengerät +m essen()
1
Übung und Selbstkontrolle zu Software Engineering (SEA)
Prof. Dr.-Ing. Stefan Kreiser
geheiltEntlass en()
festlegenUntersuchungstermin()
beendenUntersuchung()
abs agenUntersuchungstermin()
konsultiereArzt()
Termin v ereinbart Untersuchung läuft
5. Softwareentwurf
a) Siehe Folien zur Vorlesung.
b) Design Prinzipien sind „best practice“, d.h. sie spiegeln Erfahrungswissen aus 100en Per-
sonenjahren Softwareentwicklung wieder. Für ein Softwareprojekt müssen zunächst die
Design Prinzipien ausgewählt werden, die für die Qualität für des Projekts / des Produkts
ausschlaggebend sind. Die Auswahl ist abhängig von der Aufgabenstellung und vom Pro-
jektumfeld im Unternehmen. Die ausgewählten Design Prinzipien sind allen an der Entwick-
lung beteiligten Personen in einem Richtliniendokument zu erläutern („die 10 Gebote“). Ggf.
kann eine Schulung die Auswahl und den Nutzen begründen.
c) Siehe Folien zur Vorlesung.
d) Ein verteiltes Softwaresystem basiert auf der Verarbeitung externer und interner Ereignisse,
d.h. ein verteiltes Softwaresystem kann wartende Rechenprozesse nicht ohne externe oder
interne Anregung fortführen und beenden. Das Prinzip „Quellereignisse vollständig prozes-
sieren“ weist darauf hin, dass Ereignisse zunächst hinsichtlich ihrer primären Aussage ver-
arbeitet werden sollen und anschließend alle indirekt beeinflussten Verarbeitungsschritte
ausgelöst werden sollen. Beispiel: Die Software eines Messsystems erhält eine Kalibrati-
onskurve zur Interpretation von Messkurven (Primäraussage = Kalibrationskurve gemes-
sen). U.U. liegen in der Software bereits Messkurven vor, die auf Basis dieser Kalibrations-
kurve ausgewertet werden können (indirekt auslösbare Verarbeitungsschritte), oder es war-
ten bereits Messaufträge, die nun prozessiert werden dürfen (indirekt auslösbare Verarbei-
tungsschritte).
Übung und Selbstkontrolle zu Software Engineering (SEA)
Prof. Dr.-Ing. Stefan Kreiser
Sender Empfänger
Empfangsverzeichnis auf
Zielcomputer er mitteln
aRemoteFile
übertragene Datei auf : RemoteFile
konsistenten Namen umbenennen [isCon sistent]
aRemoteFile
asynchrone Nachricht an Empfänger , : RemoteFile
dass neue Daten verfügbar sind [isActive]
konsistenten
Dateiinhalt lesen
Schreiben Lesen
FIFO
Voll Leer
Datenwort 2
Datenwort 1
Datenwort k
n n
Übung und Selbstkontrolle zu Software Engineering (SEA)
Prof. Dr.-Ing. Stefan Kreiser
MsgQueue
Slot
-head : Dezimal = 0
-msg : Zeichenkette
-tail : Dezimal = -1 -{geordnet} -msgLen : Dezimal = 0
-msgCount : Dezimal = 0
-maxlen : Dezimal = 0
-isFull : Boolesch = FALSE
1 1..* -sendState : Dezimal = 0
-isEmpty : Boolesch = TRUE
+pushMsg()
+send()
+popMsg()
+receive()
Lösungsidee Use-Case-Diagramm
Anwendungsfälle, Aktor = Empfänger: MsqQueue initialisieren, Nachricht empfangen
Anwendungsfälle, Aktor = Sender, Nachricht senden
Lösungsidee Aktivitätsdiagramme
Zum Anwendungsfall „MsqQueue initialisieren“: MsgQueue muss im Speicher angelegt und
mit sinnvollen Daten (vgl. Klassendiagramm) vorbelegt werden.
Zum Anwendungsfall „Nachricht empfangen“: Nachricht aus Slot [head] auslesen, falls
MsgQueue nicht leer ist. Prüfen, ob Nachricht beim Senden vollständig eingetragen worden
war (sendState). Kennzeichnen in isEmpty, falls MsgQueue nach Empfang leer ist.
Zum Anwendungsfall „Nachricht senden“: Nachricht in Slot [tail] schreiben, falls MsgQueue
nicht voll ist. Vermerken, ob Nachricht vollständig in den Slot übernommen wurde (sendSta-
te). Kennzeichnen in isFull, falls MsgQueue nach Senden voll ist.
6. Projektmanagement
a) Siehe Folien zur Vorlesung.
b) Siehe Folien zur Vorlesung.
c) Einige Denkanstöße.
Problemfeld Termine (Projekt- und Bereichsleiter).
• Fehlerhafte Zeitplanung: Ggf. werden Sie als Projekt- oder Bereichsleiter fehlerhaft über
den tatsächlichen Projektstand informiert. Abhilfe: schriftliche Reviews, die den Fertig-
stellungsgrad und die Qualität von Arbeitsergebnissen belegen.
• Geänderte Anforderungen im Projektverlauf (Mehrungen oder „nur“ Umstellungen): In
der Konsequenz sind bereits erarbeitete Lösungen wegzuwerfen und neue Lösungen
herzustellen. Abhilfe: Umstellungsaufwand ist immer Mehraufwand und verzögert daher
Terminpläne. Planen Sie genau, wie viel Mehraufwand ausgelöst wird und versuchen
Sie den Mehraufwand in Ihrem Fertigstellungstermin zu berücksichtigen.
• Fehlerhafte Lösungen erzeugen Folgefehler, so dass eine späte Korrektur nur mit er-
heblichem Personal- und Zeitaufwand realisierbar ist. Abhilfe: Qualitätskontrolle wichti-
ger Arbeitsergebnisse vor deren Weiterverwendung.
Übung und Selbstkontrolle zu Software Engineering (SEA)
Prof. Dr.-Ing. Stefan Kreiser
7. Vorgehensmodelle
a) Weil sich die Anforderungen an die Software über der Zeit ändern (Veränderte Produktions-
aufgabe beim Kunden) und daher die Software in ihrer ursprünglichen Form nicht mehr den
aktuellen Kundenerfordernissen entspricht. Konsequenz: Entweder SW wegwerfen und neu
programmieren oder SW evolutionär weiterentwickeln und an die neuen Anforderungen an-
passen.
b) Wenn die Kundenanforderungen vage sind und die sprachliche Verständigung mit dem
Kunden problematisch ist, d.h. der Kunde weiß, was er will, wenn er das Ergebnis sieht.
Abhilfe: Sprechen Sie die Sprache des Kunden und versetzen Sie sich in seine Lage. Er-
stellen Sie viele Prototypen anhand derer der Kunde seine Bedürfnisse erkennen kann.
c) Veränderung (Optimierung) einer gegebenen Softwarearchitektur, ohne die Softwarefunkti-
onalität aus Sicht des Nutzers zu verändern oder zu erweitern.
d) Risiko ist die (fehlende) Softwarearchitektur. Milderungsmöglichkeiten:
• Regelmäßiges Refactoring.
• Wegwerfen der Prototypen und Erstellung einer konsistenten System- und Software-
architektur bei geklärten Anforderungen.
e) Tabelle
8. Anforderungsanalyse
a) Der Systementwurf soll möglichst viele Freiheitsgrade nutzen können, damit die erarbeitete
Lösung so einfach wie möglich und so komplex wie nötig sein kann (Designprinzip KISS =
Keep It Simple Stupid). Implementierungsanforderungen schränken die Lösungsvielfalt ein.
Sie sind oft unnötig, z.T. sogar kontraproduktiv, da die Auslöser / Ersteller der Anforderungen
(Kunden, Marketing, ... ) i.d.R. keine Systementwickler sind und ihnen daher das Know How
für eine unter den gegebenen Randbedingungen optimale Lösung fehlt.
b) Abhängigkeitsmatrix ermöglicht formalisierte Überprüfung auf inhaltliche Abhängigkeiten, ins-
besondere unter dem Aspekt der Konsistenzsicherung / Widerspruchsauffindung. Problem:
Bei n Anforderungen: n*n/2 Felder zu füllen. Inhaltlich für große Systeme kaum überschau-
bar.
c) Anordnungen der DIRs im Lastenheft, Vorteile (V), Nachteile (N):
• Unstrukturierte Anordnung
V: Einfaches Ordnungssystem, auch von verteilten Projektgruppen ohne großen Aufwand
anwendbar.
N: Strukturlosigkeit erhöht Risiko für Widersprüche, Duplikate und missverständliche Anforde-
rungen, insbesondere bei hohem Detaillierungsgrad von Anforderungen. Schwer auf Konsis-
tenz etc. zu prüfen, da prinzipiell zwischen allen Anforderungen Abhängigkeiten bestehen
können. Der Einsatz einer Datenbank zur Verwaltung der DIRs kann zur Konsistenzprüfung
hilfreich sein (Volltextsuche nach verschiedenen Kriterien).
• Strukturierte Anordnung nach Anforderndem (nach Sicht auf das System)
V: Konsolidierung der Anforderungen einzelner Rollen (Sichten), ggf. auch in verschiedenen
Kundensegmenten. Wahrscheinliches Ergebnis ist eine verringerte Anzahl abstrakterer An-
forderungen. Kundenreviews aufgrund des direkten Kundenbezugs gut durchführbar.
N: Vorsortierung und Abstrahierung der einzelnen Anforderungen durch ein Kernteam erfor-
derlich. Beschränkung auf Sichten (Rollen) erlaubt nur mittlere Abstraktion
• Strukturiert nach Dienstleistungen, die das System zur Verfügung stellt.
V: Konsolidierung der Anforderungen aller Rollen (Sichten), ggf. auch über verschiedene
Kundensegmente. Wahrscheinliches Ergebnis ist eine nochmals verringerte Anzahl noch
abstrakterer Anforderungen. Eindeutige Hierarchisierung der Anforderungen nach System-
diensten möglich. Dadurch Einschränkung der zu untersuchenden Kombinationen in der Ab-
hängigkeitsmatrix (schwach besetzte Matrix)
N: Vorsortierung und Abstrahierung der einzelnen Anforderungen durch ein Kernteam erfor-
derlich. Deutlich erhöhter Aufwand. Kundenreviews aufgrund des indirekten Kundenbezugs
erschwert durchführbar.
d) Allgemein: Wenn Sie Nachfragen zu diesem Punkt für wahrscheinlich halten, also z.B. wenn
• die Anforderung sehr abstrakt ist und ihr Ursprung nicht sofort ersichtlich ist, bzw. wenn die
Notwendigkeit der Anforderung nicht unmittelbar nachvollziehbar ist.
• die Implementierung der Anforderung teuer ist (z.B. Zeit-, Implementierungsaufwand).
• die Anforderung Ihrem bisherigen Verständnis des Anforderungsbereiches widerspricht.
• die Anforderung eine wesentliche Erweiterung des Anwendungsbereiches ermöglicht (neue
Produktkategorie).
Übung und Selbstkontrolle zu Software Engineering (SEA)
Prof. Dr.-Ing. Stefan Kreiser
Können Sie die nötige Flexibilität in Ihrer Lösung bereits im Lastenheft erzwingen? (Wie?)
Durch ein höheres Abstraktionsniveau der Anforderungen / der angeforderten Dienstmerkma-
le wird die aktuelle Anforderung zu einer speziellen Ausprägung einer Klasse von Anforde-
rungen (sinnvolles Ordnungskriterium für die Abstraktion suchen).
Übung und Selbstkontrolle zu Software Engineering (SEA)
Prof. Dr.-Ing. Stefan Kreiser
• Schnittstellenmodelle
# Spezialform des Klassenmodells der UML
# XML zur Darstellung von Datenstrukturen (alternativ auch JSP-Notation, M. Jackson)
# Spezifikation von Übertragungsprotokollen z.B. als Zustandsdiagramm
10. Implementierung
a) Siehe Folien zur Vorlesung. Bei Änderung der Schnittstelle eines Softwaremoduls muss zu-
nächst das Softwaredesign in Abstimmung mit dem Projektteam angepasst werden. Da-
raufhin müssen die Updates der Designdokumente freigegeben werden. Erst danach darf
die neue (geänderte) Schnittstelle verwendet werden.
b) – d) Siehe Folien zur Vorlesung.
e) Scriptsprachen besitzen i.d.R. sehr ausgefeilte Textverarbeitungs- und Ein-/ Ausgabefunkti-
onen und erlauben einen einfachen Zugang zu Betriebssystemfunktionen. Somit lassen sich
mit sehr geringem Aufwand Rechenprozesse starten und beenden, standardisierte Daten-
austauschprotokolle des Betriebssystems nutzen (FTP, rsh etc.), Datendateien einlesen, in-
terpretieren und aufbereiten etc.
f) Siehe Folien zur Vorlesung.
g) Siehe Folien zur Vorlesung.
h) Redundante Funktionen binden unnötigen, potenziell fehlerhaften Code in ein Softwaresys-
tem. Zudem wird durch jede Verwendung einer Bibliotheksfunktion die Abhängigkeit des
Softwaresystems von der Bibliothek erhöht. Falls u.U. regelmäßige Updates einer Bibliothek
im Softwaresystem nicht nachgeführt werden (bei hohem Gefährdungsrisiko durch die
Software teuer, aber für den Kunden nutzlos), kann es dazu kommen, dass eine später ge-
wünschte Produktpflege nicht durchgeführt werden kann, da die Produktpflege Kosten er-
zeugen würde, die den Kosten einer Neuentwicklung entsprechen.
i) – l) Siehe Folien zur Vorlesung.
Übung und Selbstkontrolle zu Software Engineering (SEA)
Prof. Dr.-Ing. Stefan Kreiser
j) Zur Verifizierung von sendFIFO ist ein C1-Test ausreichend. Beim C0-Test werden nicht al-
le Kanten durchlaufen.
k) Siehe Folien zur Vorlesung. C4-Test mit 100% Pfadabdeckung für sendFIFO durchführbar,
da keine Schleifen enthalten.
l) – q) Siehe Folien zur Vorlesung.