0% fanden dieses Dokument nützlich (0 Abstimmungen)
21 Ansichten9 Seiten

Softwareingenieurin 4

Das Dokument behandelt die Anforderungsanalyse in der Softwaretechnik, die als Brücke zwischen Systemanforderungen und Softwaredesign fungiert. Es beschreibt den Prozess der Anforderungserhebung, verschiedene Methoden wie Qualitätsfunktionsentwicklung (QFD) und die Erstellung von Anwendungsfällen, um die Interaktion zwischen Benutzern und Systemen zu definieren. Zudem werden Prinzipien der Analyse und Modellierung vorgestellt, um die Softwareanforderungen systematisch zu verstehen und zu spezifizieren.

Hochgeladen von

ScribdTranslations
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
21 Ansichten9 Seiten

Softwareingenieurin 4

Das Dokument behandelt die Anforderungsanalyse in der Softwaretechnik, die als Brücke zwischen Systemanforderungen und Softwaredesign fungiert. Es beschreibt den Prozess der Anforderungserhebung, verschiedene Methoden wie Qualitätsfunktionsentwicklung (QFD) und die Erstellung von Anwendungsfällen, um die Interaktion zwischen Benutzern und Systemen zu definieren. Zudem werden Prinzipien der Analyse und Modellierung vorgestellt, um die Softwareanforderungen systematisch zu verstehen und zu spezifizieren.

Hochgeladen von

ScribdTranslations
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

Softwaretechnik

Dritte Klasse

Vorlesung 4

Analyse Konzepte und Prinzipien

Anforderungsanalyse der Software


Die Software-Anforderungsentwicklung ist ein Prozess der Entdeckung, Verfeinerung, Modellierung,

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).

Abbildung 1 Analyse als Brücke zwischen Systemtechnik und Softwaredesign

Anforderungensermittlungsaktivitäten führen zu:


1. Die Spezifikation der betrieblichen Eigenschaften von Software (Funktion, Daten und
Verhalten).
2. Geben Sie die Schnittstelle der Software mit anderen Systemelementen an
3. Stellen Sie Anforderungen auf, die die Software erfüllen muss.

Die Anforderungsanalyse ermöglicht es dem Softwareingenieur (Analysten), die Software zu verfeinern.

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.

1.2 Anforderungserhebung für Software


Bevor Anforderungen analysiert, modelliert oder spezifiziert werden können, müssen sie gesammelt werden.

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.

1.2.1 Einleitung des Prozesses


Die am häufigsten verwendete Anforderungserhebungsmethode besteht darin, ein Meeting abzuhalten.
oder Interview. Während des Treffens schlagen Gause und Weinberg vor, dass der Analyst damit beginnt, dass

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

Besprechungsformat, das Elemente der Problemlösung, Verhandlung und


Spezifikation.

1.2.2 Erleichterte Techniken zur Anwendungsspezifikation


Eine Reihe von unabhängigen Forschern hat einen teamorientierten Ansatz entwickelt, um
Anforderungserhebung, die in der frühen Phase der Analyse angewendet wird und
Spezifikation. Genannte erleichterte Anwendungsspezifikationstechniken (FAST), diese
der Ansatz fördert die Schaffung eines gemeinsamen Teams von Kunden und Entwicklern, die
arbeiten Sie zusammen, um das Problem zu identifizieren, schlagen Sie Elemente der Lösung vor, verhandeln Sie

verschiedene Ansätze und ein vorläufiges Set von Lösungsanforderungen spezifizieren

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

betriebsbedingte Korrektheit und Zuverlässigkeit sowie einfache Softwareinstallation.

• 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

Produkt im Kontext seiner Umgebung. Die Wertanalyse wird durchgeführt, um


bestimmen Sie die relative Priorität der Anforderungen, die während jeder der drei festgelegt wurden

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

zu versuchen, aufregende Anforderungen abzuleiten

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

Beschreibung, wie das System verwendet werden soll.


Um einen Anwendungsfall zu erstellen, muss der Analyst zunächst die verschiedenen Arten von Personen identifizieren.

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 zentrale Station, die SafeHome überwacht).


Sobald die Akteure identifiziert sind, können Anwendungsfälle entwickelt werden. Der Anwendungsfall beschreibt

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:

1. Der Informationsbereich eines Problems muss dargestellt und verstanden werden.


2. Die Funktionen, die die Software erfüllen soll, müssen definiert werden.

3. Das Verhalten der Software (als Folge externer Ereignisse) muss


repräsentiert.
4. Die Modelle, die Informationen, Funktionen und Verhalten darstellen, müssen partitioniert werden.

auf eine Weise, die Details in einer geschichteten (oder hierarchischen) Weise aufdeckt.

5. Der Analyseprozess sollte von wesentlichen Informationen zu


Implementierungsdetail.
Durch die Anwendung dieser Prinzipien geht der Analyst ein Problem systematisch an.

1.3.1-Domain der Informationen


Alle Softwareanwendungen können zusammenfassend als Datenverarbeitung bezeichnet werden. Dieser Begriff

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,

Manipuliere es auf irgendeine Weise und erzeuge Ausgabe.

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:

1. Informationsgehalt und Beziehungen (das Datenmodell).


2. Informationsfluss.
3. Informationsstruktur.
Um den Informationsbereich vollständig zu verstehen, sollte jede dieser Ansichten
berücksichtigt.
Der Informationsgehalt repräsentiert die einzelnen Daten- und Steuerobjekte, die dazugehören.
eine größere Sammlung von Informationen, die durch die Software umgewandelt wurden.

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.

Abbildung 2: Informationsfluss und Transformation


Auf diesem Transformationsweg (oder -wegen) können zusätzliche Informationen eingeführt werden.
aus einem bestehenden Datenspeicher (z. B. einer Festendatei oder einem SpeichPuffer). Die Transformationen

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

eine Bewertung der Informationsstruktur.

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.

Funktionale Modelle. Software verwandelt Informationen, und um dies zu erreichen,


Es muss mindestens drei allgemeine Funktionen ausführen: Eingabe, Verarbeitung und Ausgabe. Wenn
Funktionale Modelle einer Anwendung werden erstellt, der Softwareingenieur konzentriert sich auf

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

Funktionalität wird dargestellt.

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.

Im Wesentlichen zerlegt die Partitionierung ein Problem in seine Bestandteile.


Konzeptionell erstellen wir eine hierarchische Darstellung von Funktionen oder Informationen.
und dann das oberste Element aufteilen durch
1. Zunehmende Details offenbaren durch vertikales Bewegen in der Hierarchie
2. Funktionale Zerlegung des Problems durch horizontales Bewegen in der
Hierarchie.

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)

Eine wesentliche Sicht auf Softwareanforderungen präsentiert die auszuführenden Funktionen.


und Informationen, die verarbeitet werden sollen, ohne Berücksichtigung von Implementierungsdetails.

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.

Anforderungs-spezifikation. Der Analyst muss die auferlegten Einschränkungen erkennen von


vordefinierte Systemelemente (der Sensor) und betrachten Sie die Implementierungsansicht von
Funktion und Information, wann eine solche Ansicht angemessen ist.

Hinweis:
Die Software-Anforderungsanalyse sollte sich darauf konzentrieren, was die Software leisten soll.

erledigen, anstatt wie die Verarbeitung implementiert wird.

Das könnte Ihnen auch gefallen