Softwareingenieurin 4
Softwareingenieurin 4
Dritte Klasse
Vorlesung 4
und Spezifikation.
Sowohl der Softwareingenieur als auch der Kunde spielen eine aktive Rolle bei den Softwareanforderungen.
Ingenieurwesen – eine Reihe von Aktivitäten, die oft als Analyse bezeichnet wird. Der Kunde
Versuche, eine manchmal nebulöse systemweite Beschreibung von Daten umzuschreiben,
Funktion und Verhalten in konkrete Details umsetzen. Der Entwickler agiert als Befrager,
Berater, Problemlöser und Verhandler.
1.1 Anforderungsanalyse
Anforderungsanalyse ist eine Aufgabe der Softwaretechnik, die die Lücke schließt zwischen
Systemebene Anforderungen Engineering und Softwaredesign (Abbildung 1).
Zuweisung und Erstellung von Modellen der Daten-, Funktions- und Verhaltensdomänen, die
vom Software behandelt werden. Die Anforderungsanalyse liefert dem Software-Designer eine
Darstellung von Informationen, Funktionen und Verhalten, die in Daten übersetzt werden können.
architektonische, Schnittstellen- und Komponentenentwürfe. Schließlich die Anforderungen
Die Spezifikation gibt dem Entwickler und dem Kunden die Mittel an die Hand, um die Qualität zu bewerten.
sobald die Software erstellt wurde.
Die Analyse der Softwareanforderungen kann in fünf Bereiche der Bemühungen unterteilt werden:
1. Problemerkennung,
2. Bewertung und Synthese
3. Modellierung,
4. Spezifikation
5. Überprüfung.
durch einen Erhebungsprozess. Ein Kunde hat ein Problem, das möglicherweise lösbar ist.
computerbasierte Lösung. Ein Entwickler antwortet auf die Anfrage des Kunden um Hilfe.
Die Kommunikation hat begonnen.
kontextfreie Fragen stellen. Das heißt, eine Reihe von Fragen, die zu einem Grundlegenden führen werden.
Verständnis des Problems, der Menschen, die eine Lösung wollen, der Natur des
die gewünschte Lösung und die Wirksamkeit der ersten Begegnung selbst.
Die erste Reihe kontextfreier Fragen konzentriert sich auf den Kunden, die übergeordneten Ziele und
die Vorteile.
Die nächste Reihe von Fragen ermöglicht es dem Analysten, ein besseres Verständnis von dem zu gewinnen
Problem und der Kunde, um seine oder ihre Wahrnehmungen über eine Lösung auszudrücken:
Der letzte Fragenkatalog konzentriert sich auf die Effektivität des Treffens. Gause und
Weinberg nennt diese Meta-Fragen.
Die Frage- und Antwortsitzung sollte nur beim ersten Treffen verwendet werden und dann ersetzt werden durch eine
1.2.3 Qualitätsfunktionsentwicklung
Die Qualitätsfunktionsentwicklung (QFD) ist eine Qualitätsmanagementtechnik, die übersetzt
Die Bedürfnisse des Kunden in technische Anforderungen für Software umwandeln. QFD
konzentriert sich darauf, die Kundenzufriedenheit durch Softwareengineering zu maximieren
Prozess.” Um dies zu erreichen, betont QFD das Verständnis dessen, was wertvoll ist.
zum Kunden und setzt diese Werte dann im gesamten Ingenieurprozess um.
QFD identifiziert drei Arten von Anforderungen:
• Normale Anforderungen. Die Ziele und Vorgaben, die für ein Produkt festgelegt sind.
oder System während Meetings mit dem Kunden. Wenn diese Anforderungen sind
Gegenwärtig ist der Kunde zufrieden. Beispiele für normale Anforderungen könnten sein
angeforderte Arten von grafischen Darstellungen und spezifischen Systemfunktionen.
• Erwartete Anforderungen. Diese Anforderungen sind implizit für das Produkt oder
System und kann so grundlegend sein, dass der Kunde es nicht ausdrücklich angibt.
sie. Ihre Abwesenheit wird ein Grund für erhebliche Unzufriedenheit sein. Beispiele
Erwartete Anforderungen sind: Benutzerfreundlichkeit der Interaktion zwischen Mensch und Maschine, insgesamt
• Spannende Anforderungen. Diese Funktionen gehen über die des Kunden hinaus.
Erwartungen und erweisen sich als sehr befriedigend, wenn sie vorhanden sind. Zum Beispiel, das Wort
Die angeforderte Software für die Verarbeitung soll über Standardfunktionen verfügen. Das gelieferte Produkt
enthält eine Reihe von Seitengestaltungsfunktionen, die sehr angenehm sind und
unerwartet.
In Meetings mit dem Kunden wird die Funktionsbereitstellung verwendet, um den Wert zu bestimmen von
Jede Funktion, die für das System erforderlich ist. Die Informationsbereitstellung identifiziert sowohl
die Datenobjekte und Ereignisse, die das System konsumieren und produzieren muss. Diese sind gebunden
zu den Funktionen. Schließlich untersucht die Aufgabeneinsetzung das Verhalten des Systems oder
Bereitstellungen.
QFD nutzt Kundeninterviews und Beobachtungen, Umfragen und Untersuchungen von
historische Daten (z. B. Problemmeldungen) als Rohdaten für die Anforderungserhebung
Aktivität. Diese Daten werden dann in eine Anforderungstabelle übersetzt – die sogenannte
Kundenstimmen-Tabelle - die mit dem Kunden überprüft wird. Eine Vielzahl von Diagrammen,
Matrizen und Bewertungsmethoden werden dann verwendet, um die erwarteten Anforderungen zu extrahieren und
Anwendungsfälle
Da die Anforderungen im Rahmen von informellen Meetings, FAST oder QFD gesammelt werden, ...
Software-Ingenieur (Analytiker) kann eine Reihe von Szenarien erstellen, die einen Nutzungspfad identifizieren.
für das zu konstruierende System. Die Szenarien, oft als Anwendungsfälle bezeichnet, bieten eine
Geräte), die das System oder Produkt nutzen. Diese Akteure stellen tatsächlich Rollen dar, die
Menschen (oder Geräte) spielen, während das System funktioniert. Etwas formeller definiert, ein
Ein Akteur ist alles, was mit dem System oder Produkt kommuniziert und extern dazu ist.
das System selbst.
Als Beispiel betrachten wir ein mikroprozessorgestütztes Heimsecurity-System namens
SafeHome wird entwickelt, um gegen eine Vielzahl unerwünschter Situationen zu schützen und/oder diese zu erkennen.
"Situationen" wie illegaler Eintritt, Feuer, Überschwemmung und andere. Dieses Produkt (SafeHome)
werd geeignete Sensoren verwenden, um jede Situation zu erkennen, kann von der programmiert werden
Hausbesitzer und wird automatisch eine Überwachungsagentur anrufen, wenn eine Situation vorliegt
detektiert. Für dieses Produkt können wir drei Akteure definieren: den Hauseigentümer (den Benutzer),
Sensoren (Geräte, die am System angeschlossen sind) und das Überwachungs- und Reaktionsunterelements
die Art und Weise, wie ein Akteur mit dem System interagiert.
1.3 Analyseprinzipien
In den letzten zwei Jahrzehnten sind eine große Anzahl von Analyse-Modellierungsmethoden entstanden.
entwickelt. Ermittler haben Analyseprobleme und deren Ursachen identifiziert und haben
eine Vielzahl von Modellierungsnotationen und entsprechenden Mengen von Heuristiken entwickelt, um
überwinde sie. Jede Analysemethode hat einen einzigartigen Standpunkt. Allerdings haben alle
Analysemethoden sind durch eine Reihe von operativen Prinzipien miteinander verbunden:
auf eine Weise, die Details in einer geschichteten (oder hierarchischen) Weise aufdeckt.
enthält einen Schlüssel zu unserem Verständnis der Softwareanforderungen. Software wird gebaut, um
Daten verarbeiten, um Daten von einer Form in eine andere zu transformieren; das heißt, Eingaben zu akzeptieren,
Software verarbeitet auch Ereignisse. Ein Ereignis stellt einen Aspekt der Systemkontrolle dar.
und ist wirklich nichts weiter als boolesche Daten – sie sind entweder ein oder aus, wahr oder falsch, dort
oder nicht vorhanden. Zum Beispiel erkennt ein Drucksensor, dass der Druck einen sicheren Wert überschreitet
und sendet ein Alarmsignal an Überwachungssoftware. Das Alarmsignal ist ein Ereignis, das
steuert das Verhalten des Systems. Daher Daten (Zahlen, Text, Bilder, Geräusche,
Video, usw.) und Kontrolle (Ereignisse) befinden sich beide im Informationsbereich eines
Problem.
Der Informationsbereich enthält drei verschiedene Ansichten der Daten und der Kontrolle, da jeder
wird von einem Computerprogramm verarbeitet:
Das Datenobjekt, die Gehaltsabrechnung, ist eine Kombination aus mehreren wichtigen Elementen.
von Daten: den Namen des Zahlungsempfängers, den Nettobetrag, der zu zahlen ist, den Bruttobetrag, Abzüge und so weiter
Daher wird der Inhalt der Gehaltsabrechnung durch die Attribute definiert, die benötigt werden.
es zu erstellen.
Ebenso könnte der Inhalt eines Steuerobjekts namens Systemstatus definiert werden durch ein
Bitfolge. Jedes Bit repräsentiert ein separates Informationsstück, das angibt, ob
ob ein bestimmtes Gerät online oder offline ist.
Daten- und Steuerobjekte können mit anderen Daten- und Steuerobjekten verbunden werden.
Der Informationsfluss stellt dar, wie Daten und Steuerung sich ändern, während jedes
bewegt sich durch ein System. In Bezug auf Abbildung 2 werden Eingabeobjekte in
Zwischeninformationen (Daten und/oder Steuerung), die weiter in Ausgaben umgewandelt werden.
Auf die Daten angewandte Funktionen oder Unterfunktionen, die ein Programm ausführen muss.
Die Informationsstruktur repräsentiert die interne Organisation verschiedener Daten und Kontrollen.
Artikel. Sollen Daten oder Steuerelemente als eindimensionales Tablett oder als
hierarchische Baumstruktur? Im Kontext der Struktur, welche Informationen sind
In Bezug auf andere Informationen? Ist alle Informationen innerhalb einer einzigen Struktur enthalten oder
sollen verschiedene Strukturen verwendet werden? Wie beeinflusst die Information in einer Informationsstruktur
sich auf Informationen in einer anderen Struktur beziehen? Diese Fragen und andere werden beantwortet von
1.3.2 Modellierung
Wir erstellen funktionale Modelle, um ein besseres Verständnis der tatsächlichen Entität zu gewinnen.
gebaut. Wenn die Entität eine physische Sache ist (ein Gebäude, ein Flugzeug, eine Maschine), können wir
Erstelle ein Modell, das identisch in Form und Gestalt, aber kleiner im Maßstab ist. Allerdings, wenn
Die zu entwickelnde Einheit ist Software, unser Modell muss eine andere Form annehmen. Es muss
fähig, die Informationen darzustellen, die Software umwandelt, die Funktionen (und
Unterfunktionen), die die Transformation ermöglichen, und das Verhalten des Systems
während die Transformation stattfindet.
Die zweiten und dritten Prinzipien der operativen Analyse erfordern, dass wir Modelle von
Funktion und Verhalten.
problem spezifische Funktionen. Das funktionale Modell beginnt mit einer einzelnen Kontextstufe.
Modell (d. h. der Name der zu erstellenden Software). Über eine Reihe von Iterationen hinweg, mehr und
mehr funktionale Details werden bereitgestellt, bis eine gründliche Abgrenzung aller Systeme erfolgt
Verhaltensmodelle. Die meisten Software reagiert auf Ereignisse aus der Außenwelt. Dies
Die Stimulus/Antwort-Eigenschaft bildet die Grundlage des Verhaltensmodells. Ein Computer
Ein Programm existiert immer in einem bestimmten Zustand—einem extern beobachtbaren Verhalten
(z. B. warten, rechnen, drucken), das nur verändert wird, wenn ein Ereignis eintritt. Für
Das Beispiel, die Software bleibt im Wartestatus, bis (1) eine interne Uhr anzeigt
dass ein gewisser Zeitraum vergangen ist, (2) ein externes Ereignis (z. B. eine Mausbewegung)
verursacht eine Unterbrechung, oder (3) ein externes System signalisiert der Software, in irgendeiner Weise zu handeln.
Ein Verhaltensmodell erstellt eine Darstellung der Zustände der Software und
die Ereignisse, die dazu führen, dass eine Software ihren Zustand ändert.
Modelle, die während der Anforderungsanalyse erstellt werden, erfüllen eine Reihe von wichtigen Rollen:
• Das Modell unterstützt den Analysten dabei, die Informationen, die Funktion und
Verhalten eines Systems, wodurch die Anforderungsanalyse-aufgabe erleichtert wird und
systematischer
• Das Modell wird zum Mittelpunkt der Überprüfung und damit zum Schlüssel zu einem
Feststellung von Vollständigkeit, Konsistenz und Genauigkeit der
Spezifikationen.
• Das Modell wird zur Grundlage für das Design und bietet dem Designer eine
wesentliche Darstellung von Software, die in eine "abgebildet" werden kann
Umsetzungskontext.
1.3.3 Partitionierung
Probleme sind oft zu groß und komplex, um als Ganzes verstanden zu werden. Dafür
Grund, warum wir dazu tendieren, solche Probleme in Teile zu unterteilen, die leicht
verstanden und Schnittstellen zwischen den Teilen herstellen, damit die Gesamtfunktion gegeben werden kann
vollständig. Das vierte Prinzip der operativen Analyse besagt, dass die Informationen,
Funktionale und verhaltensbezogene Bereiche von Software können partitioniert werden.
Problem
Vertikal Erhöhung
P a r t i t i o n i e r u n ggdetail
Horizontale Partitionierung
1.3.4 Essentielle und Implementierungsansichten (Logische und Physische Ansichten)
Zum Beispiel zeigt die wesentliche Ansicht der SafeHome-Funktion den Sensorstatus an.
nicht mit der physischen Form der Daten oder dem Typ des verwendeten Sensors befassen.
Tatsächlich könnte man argumentieren, dass der Lesestatus ein passenderer Name dafür wäre.
Funktion, da sie die Details über den Eingabemechanismus völlig ignoriert. In ähnlicher Weise,
ein wesentliches Datenmodell des Datenelements Telefonnummer (impliziert durch die Funktion wählen
Die Telefonnummer kann zu diesem Zeitpunkt ohne Berücksichtigung der zugrunde liegenden Daten dargestellt werden.
Struktur (falls vorhanden), die zur Implementierung des Datenelements verwendet wird. Durch die Fokussierung auf die
Wesen des Problems in den frühen Phasen der Anforderungenstechnik, lassen wir unsere
Optionen zur Angabe von Implementierungsdetails während späterer Phasen der Anforderungen
Spezifikation und Softwaredesign.
Die Implementierungs Sicht von Softwareanforderungen präsentiert die reale Welt.
Manifestation von Verarbeitungsfunktionen und Informationsstrukturen.
ASafeHome-Eingabegerät ist ein Perimetersensor (kein Wachhund, kein menschlicher Wächter oder ein
Falle). Der Sensor erkennt illegalen Zugang, indem er einen Bruch in einem elektrischen
Schaltkreis. Die allgemeinen Eigenschaften des Sensors sollten als Teil einer Software notiert werden.
Hinweis:
Die Software-Anforderungsanalyse sollte sich darauf konzentrieren, was die Software leisten soll.