Webcam Diggs Cam


Analyse und Spezifikation

Kapitel 3 - Analyse und Spezifikation

Inhalt
  • Strukturierte Analyse
  • Prozessspezifikation
  • Prozesspezifikation und Petri-Netze
  • OO Analyse
SE als Ingenieurarbeit (ingenieurgemäßes Herangehen):
  1. Definiere klar das Problem, das es zu lösen gilt.
  2. Entwickle Standardwerkzeuge, -technologien und -methodologien, um das Problem lösen zu können
  • Funktionsmodellierung: Datenflussdiagramme, Data Dictionary,Prozessspezifikationen
  • Datenmodellierung: ER-Modell
  • Ereignismodellierung: Endliche Automaten, Petri-Netze

Ziele, Struktur und Prozess der Analyse

  • Ziel ist es herauszufinden, was das eigentliche Problem ist
  • möglich ist eine strukturierte (top-down Analyse eines Prozesses) oder OO-Analyse (buttom-up Analyse eines Objektes)
  • Anforderungsanalyse (Machbar?, Kosten, Aufwand etc.)
Folgende Punkte gehören zur Analyse:
  1. Spezifikation der Hauptziele
  2. Informationsquellen beschaffen
  3. Anforderungsanalyse
  4. Abgrenzung des Problembereiches
  5. Festlegung der Beteiligten
  6. Inhaltsbeschreibung
  7. Use Cases erstellen
  8. Prioritäten festlegen
  9. alternative Lösungen suchen
  10. Empfehlungen vergeben

Erfassung der Anforderungen

  • Anforderungen werden in natürlicher Sprache festgehalten
  • User Manuals gehen aus Spezifikation hervor
  • System Testpläne sollten von Spezifikation abgeleitet werden
  • Blue Box Tests (Test auf Spezifikationen, da noch kein Code)
Kategorien von Anfroderungen
  1. funktionale: Was soll das neue System leisten?
  2. qualitative: Qualitätsfaktoren, die durch zu erfüllen sind
  3. operationelle: zu erwartende Bedingungen beim praktischen Einsatz

Phasen der Analyse

1. Ist-Analyse:
  • Finden der Anforderungen
  • Kenntnisse des existierenden Systems sammeln
  • Kundenwünsche präzisieren
2. Soll-Konzept:
  • Analysieren der Anforderungen
  • Kenntnisse analysieren
2 Verfahren: Strukturierte und Objektorientierte Analyse

Strukturierte Analyse

  • Strukturierung durch wiederholtes Zerlegen in Bestandteile geringerer Komplexität, bis elementare Bestandteile gefunden wurden, welche eindeutig und vollständig beschrieben werden können (Top-Down Analyse)
  • Startet mit Verhaltensanalyse der Prozesse
  • Dabei werden Funktionen in Gruppen aufgeteilt
  • Resultat ist Hierarchie von Funktionen
  • Datenflussdiagramme, Data Dictionary, Prozessbeschreibung
modifizierte strukturierte Analyse:
  • Funktionsmodellierung: statische Eigenschaften des Systemverhaltens (Datenflussdiagrammen, Data Dictionary, Prozessspezifikationen)
  • Datenmodellierung: Eigenschaften der Daten und ihre semantischen Beziehungen
  • Ereignismodellierung: dynamische Eigenschaften des Systemverhaltens
Analyse

Datenflussdiagramm - Konstruktion, Vorteile, Nachteile

  • Zeigt wie Daten sich im System bewegen und wo sie Änderungen hervorrufen
  • Top-Down Modell (iterative Dekomposition)
  • ist Modell der Systemfunktionalität als gerichteter Graph
  • Steuerung des Ablaufs nicht ersichtlich

Konsistenz eines Datenflussdiagramms

  • Prozessbeschreibung (jede Funktion ist beschrieben)
  • Data Dictonary (alle Datentypen und Datenflüsse sind definiert)
  • Balanciertes DFD (I/O Datenflüsse des Vaterprozesses sind dem Kind-DFD bekannt)

Was steht alles in einem Datenkatalog?

  • Zentraler Ort, wo alle Informationen über Datentypen und ihre Transformationengespeichert sind
  • Case Tools prüfen ob diese identisch sind
  • Alle Eigenschaften der Daten sind im DD aufgelistet
  • Data Elements sind gruppiert in Data Flow Records (Name, Record, Source,Destination, Description)
  • Enthält Infos über Prozesse, externe Entities und alle Records
Termine = Datum + Anfang + Ende + Status + Zweck
Anfang = Zeit
Zeit = Stunde + Minute
Datum = Tag + Monat + Jahr
Adresse = PLZ + Ort + Strasse
Gruppendaten = Gruppenname
Optionen = {Farbe + Terminart}
Minute = Ziffer + Ziffer
Mitarbeiter_ID = Ziffer + Ziffer 
Nutzername = {Zeichen}
Passwort = {Zeichen}
Nachricht = {Zeichen}
PLZ = {Ziffer}

Prozessspezifikation

Wie beschreibt man Prozesse in der strukturierten Analyse? Für alle elementaren Prozesse werden Prozessspezifikationen angefertigt.

elementarer Prozess:

Prozess auf der untersten Ebene der Prozesshierarchie, welcher nicht mehr weiter verfeinert wird (Blatt des Hierarchiebaums)

vier Möglichkeiten der Beschreibung
  1. strukturierte Sprache (Pseudo-Code)
  2. Entscheidungstabellen
  3. endliche Automaten
  4. logische Spezifikation

Was ist eine Entscheidungstabelle?

  • Falls Condition wahr dann mache dies (quadratische Möglichkeit der Belegung)
  • kompakte und übersichtliche Darstellung von vorzunehmenden Aktionen oder Handlungen, die von der Erfüllung oder Nichterfüllung mehrerer Bedingungen abhängen
vier Komponenten:
  1. Bedingungen: logische Ausdrücke
  2. Aktionen: semantische Einheiten, werden später durch entsprechende Programmabschnitte implementiert
  3. Regeln: Eine Regel bezeichnet eine Kombination von Bedingungen
  4. Aktionsanzeiger: Ein Aktionsanzeiger repräsentiert eine Zuordnung zwischen einer Regel und einer Auswahl von Aktionen, die bei Gültigkeit der Regel durchgeführt werden

Was modelliert man mit einem endlichen Automaten, wie und warum?

  • Kontrollaspekte, bei denen ein System verschiedene Zustände aufweist
  • für Modellierung eines Kontrollflusses geeignete hypothetische Maschine, die Reaktionen (Aktionen) eines Prozesses auf eintretende Ereignisse beschreibt
Darstellungsmöglichkeiten
  1. Zustandsdiagramm
  2. Zustandstabelle
  3. Zustandsmatrix

Endliche Automaten - Grenzen des Einsatzes, Vorteile, Nachteile

  • Wird schnell zu komplex wenn zu viele Zustände
  • Bei 20 Zuständen schon 1 Million verschiedene Belegungen möglich
  • Manchmal hängt eine Aktion von mehreren Zuständen ab und nicht nur von einem
  • Synchronisation nur schwer möglich (z.B. Erzeuger-Verbraucher Problem)

Petri Netze

Ist ein für Modellierung eines Systems konkurrierender/kooperierender Prozesse geeignetes Werkzeug.

Petri

Problem der Synchronisation und Petri-Netze

Marken repräsentieren den Kontrollfluss, sind jedoch anonym und deshalb ist der Inhalt der Marke unbekannt.

Bsp.:

Eine Marke in einem Puffer beschreibt das Vorhandensein einer Nachricht, aber nicht, ob diese wohl formuliert ist oder nicht. So kann eine Auswahl auf Basis des Inhalts der Marke nicht durch das Petri-Netz beschrieben werden, wenn mehrere Transitionen geschalten werden können.

Desweiteren ist keine Beschreibung von Prioritäten oder auch Zeitbeschränkungen möglich.

Bsp.: Wenn länger als eine Sekunde gewartet wird, soll eine Meldung generiert werden

Konstruktion eines Modells mit einem Petri-Netz

  • Input Place -> Übergang (Transition) -> Output Place
  • Marken werden zur Synchronisation verwendet
Darstellungselemente:
  1. Stelle: Zustand eines Prozesses; repräsentiert eine Bedingung
  2. Transition: gesteuerter Zustandsübergang; modelliert ein Ereignis, welches durch das Schalten ("Feuern") der Transition ausgelöst wird
  3. Pfeil: zwischen Stelle und Transition und umgekehrt
  4. Marke: ihre Anwesenheit in allen vor einer Transition liegenden Stellen ist die notwendige Bedingung, dass die Transition schalten (feuern) kann
Mutual Exclusion ist mit Petri Netzen einfach umsetzbar, dafür sind aber Deadlocks möglich...

Warum und wie werden Petri-Netzen erweitert?

  • Marken werden durch Werte repräsentiert
  • Transitionen sind Prädikate zugeordnet, die sich auf die Werte der Marken der Eingabestellen beziehen und den Übergang mitbestimmen (Transitionen können nur noch beim Vorliegen bestimmter Marken schalten)
  • Transitionen sind Funktionen zugeordnet, die aus den Werten der Marken der Eingabestellen die Werte der Marken der Ausgabestellen berechnen
  • Spezifikation von Prioritäten, wenn mehrere Transitionen geschalten werden können

OO Analyse

"Im Mittelpunkt stehen Objekte, welche Abbilder von Real-Welt- Objekten des zu analysierenden Problembereichs darstellen. Jedes Objekt besitzt eine eindeutige Identität (Objektidentität), bestimmte Eigenschaften (Attribute) sowie ein bestimmtes Verhalten (Methoden). Die Objekte kommunizieren miteinander durch das Senden von Botschaften. Wie ein Objekt auf erhaltene Botschaften reagiert, wird jeweils durch die in ihm vorhandenen Methoden definiert. Weitere wichtige Konzepte der OOA sind u.a.: Klasse, Datenkapselung, Vererbung und Polymorphismus (überladen)."

Objektorientierte Analyse

  • Startet mit der Analyse der Objektstruktur
  • Funktionalitäten wird in Klassen gruppiert und gekapselt
  • Buttom-Up Analyse
  • Objekt-Orientiertes Design benutzt ein konkretes HW und SW System, Architektur,Sprache und OO Lib

Konzepte der objektorientierten Programmierung

  • Kapselung, Klassen, Nachrichten, Methoden, Vererbung, Überschreiben,Überladen von Funktionen
  • Assoziation modelliert Beziehungen zwischen Objekten einer oder mehrerer Klassen
  • Aggregation ist Sonderform der Assoziation, bei der die Objekte der beteiligten Klassen keine gleichwertige Beziehung führen, sondern eine Ganzes-Teile- Hierarchie darstellen (beschreibt, wie sich etwas Ganzes aus seinen Teilen zusammensetzt = part_of)
  • Klassen können abgeleitet werden und daraus Objekte erstellt werden
  • Statisches Binden (Code verbunden über Zeiger, Adressen von Methoden zur compilierzeit festgelegt) oder dynamisches Binden (Adressen der Methoden erst zur Laufzeit ermittelt - virtual Ausdruck notwendig, um Compiler zu zeigen, welches Objekt gemeint ist wenn mehrere polymorphe vorhanden, da erst zur Laufzeit über Zeiger verbunden wird)

Schritte der objektorientierten Analyse

  • Initial problem statement (Ziele, Interface, Technische Aspekte, Features)
  • Objektidentifikation, Klassenidentifikation mit Attributen, Beziehungsmodellierung
  • Klassenhierarchie (Aggregationen und Assoziationen) definieren und Beschränkungen (constraints) festlegen
  • Methoden und Dienste definieren, Funktionalität und OO-Schema definieren

Grammatische Inspektion

  • Die Dokumente der Spezifikation werden grammatikalisch geparst
  • Substantive werden Objekte, also Klassen (Objekte mit gemeinsamen Eigenschaften)
  • Verben stellen später Methoden der Klassen dar oder auch Beziehnungen
  • Und Adjektive sind Attribute von Objekten

Modellierung von Beziehungen

  • Stellen semantische Relationen zwischen Objekten dar
  • Aggregation (Is Teil von) um Hierachien zu erzeugen
  • Spezialisierung/Generalisierung (Is-A Beziehung,d.h. Vererbung)
  • Message-Flow-Structur (Sender und Empfänger für Nachrichten)

Modellierung von Restriktionen (Constraints)

Einschränkungen die zu den Klassen definiert werden (Max-Werte oder Min-Werte...)
Printansicht Inhalt Anfang zurück vor
Kapitel 1Einleitung
Einführung, Geschichte...
Kapitel 2Eigenschaften
Filtern und Trennen, Modularisierung...
Kapitel 3Strukturierte Analyse
Strukturierte und OO-Analyse, Petri-Netze
Kapitel 4Spezifikation
Risikoanalyse, Modellierungshilfen, Spezifikationen
Kapitel 5Entwurfsprozess
Entwurf, DFD, Tests, UI...
Kapitel 6Prozessmodelle
Softwarekrise, Lebenszyklusmodelle...
Kapitel 7CASE und PM
CASE, Projektmanagement...
Kapitel 8Software-Metriken
Softwarequalität, Entwurfsmetriken...
Kapitel 9Programmierungskonzepte
Legacy Systeme, Reengineering...
PDF download:
Ausarbeitung STKomplett
Quellen:
Petr Kroha
Softwaretechnologie
Prof. Kroha
Vorlesungsskript
L. Rosenhainer
Vorlesungsskript
Word Wide Web
Verschiedenste Seiten
Links:
Introduction to Software Engineering
University Of California
UML Einführung
Uni Hannover

login

last change 06.04.2008 16:28:30  © 2002 - 2005 Holger Kreissl