Kapitel 4 - Prozess der Analyse
- Risikoanalyse und Modellierungshilfen
- Spezifikation
|
Wozu gibt es die Risikoanalyse und wie wird sie durchgeführt?
- Gibt es Konkurrenz?
- Welche Technologien verwenden? (web, DMBS, Languages)
- Welche Markteinflüsse beeinflussen das Projekt?
- Anzahl zu erwartender Benutzer
- Zukunftstrends einbeziehen
- Wurde das Problem vom Kunden verstanden?
- Problemdimensionierung (Transactions per time, angenommen Laufzeit für
verschiedene Funktionen)
- Welche Altsysteme müssen angebunden werden?
Wie identifiziert man Systemgrenzen und Akteure?
Es gibt interne Systemgrenzen und Externe (nicht unsere Aufgabe, aber evt.
Schnittstellen dazu). Akteure ist all das, was mit dem System interagieren muss.
- Wer benutzt das System (Mensch oder System)?
- Wer wartet es?
- Wer fährt es herunter?
- Wer bekommt Infos aus dem System?
- Wer füttert es mit Daten?
- Was passiert automatisch im System?
Wie identifiziert man Anwendungsfälle? (Use Cases)
Ein Use Case beschreibt was ein Akteur machen möchte. Was passiert, was wird
ausgetauscht und welche Ereignisse gibt es dabei?
Modellierungshilfen
Scenarien, UML und Klassendiagramme...
Was ist ein Szenario?
- Ist ein Spezieller Pfad durch die Use-Cases aus sicht des Users
- Primäre (Basic Path) und sekundäre Pfade (anderer nebenläufige Pfade)
- Kombiniert man alle Pfade erhält man einen Kompletten Use Case
Was ist der Umfang eines Projektes und warum ist er so wichtig?
Szenarien sollten vollständig sein, um Fehler schnell erkennen zu können.
Modellierung in UML- grundlegende Fragen
Basiert auf OO
- data-centered Methoden wie ERD, Data-Flow-Diagramme, Statusdiagramme
- strukturelle Methoden
- scenario basierte Methoden (Verhaltensanalyse)
- UML (Objektmodelle aus den Use Cases)
- UMD - Use Case Diagramm zeigt Akteure, Use Cases und die Beziehungen
- Strukurdiagramme für Klassen und Pakete (Gruppen von Klassen)
- Verhaltensdiagramme für dynamisches Verhalten und Systemaktivitäten
- Implementationsdiagramm mit Komponentendiagramm (relationen zwischen
Programmeinheiten) und Deploymentdiagramm (Kommunikation zwischen Komponenten)
Fragen
- Wer sind die User des Systems? = Akteure
- Welche sind die Hauptobjekte?
- Welche Objekte werden für welchen Use Case gebraucht?
Was beschreibt man alles in einem Klassendiagramm?
- liefern die Statische Sicht der Software - Problem, da OO-Komplexität von
Zusammenspiel der Methoden abhängt
- Domain Class Modellierung
- Business Modell (definiere die wichtigsten Einheiten des Systems und ihre
Relationen)
- Statische Semantik (Klassenhierarchie beschreibt technische Struktur der
Problemdomäne) kann auf Business Modell basieren
- Ein Klassendiagramm enthält alle Klassen und Beziehungen (Generalisierung,
Assoziierung, Aggregation, Komposition) und stellt somit auch die Hierarchie dar
Wie modelliert man ein GUI (Graphical User Interface)?
- Erst wird Handbuch geschrieben, dann der Code
- Dabei werden parallel GUI's entworfen, die bei Use-Cases verwendet werden
können
- Window Navigation Diagramme zeigen Relationen zwischen Fenstern
Wozu gibt es die Robustness-Analyse?
Hier werden drei Arten von Objekte eingeführt...
-
Boundary Objects (Akteure welche mit System kommunizieren)
-
Entity Objects (Objekte des Domänenmodells-Hauptentities)
-
Control Objects (Verbinden Boundary und Entity Objekte)
- Das Robustness-Diagramm ist die Schnittstelle zwischen dynamischem und
Statischem Teil eines Projektes
- Dabei gehört zum dynamischen Teil die Use Cases und Sequenzdiagramme und zum
statischen das Domain Modell und das Klassendiagramm
- Durch das Robustness-Diagramm wird es einfacher den Überblick zu halten
Warum und wie konstruiert man Sequenzdiagramme?
Beschreiben, wie die Objekte zusammenarbeiten und in welchem zeitlichen Ablauf
die Methoden aufgerufen werden. Sequenzdiagramme sind mit den Klassendiagrammen
konistent. Sie beziehen sich auf einen konkreten Ablauf (Szenario) eines Use
Case!

Eine Alternative zu Sequenzdiagrammen sind Kollaborationsdiagramme. Sie
verdeutlichen besser die Struktur des Diagrammes, dafür ist die zeitliche Abfolge
der Methodenaufrufe schlechter erkennbar als in Sequenzdiagrammen.
Was modellieren die Kollaborations- und Zustandsdiagramme?
- Kollaborationsdiagramme zeigen wie einzelnen Teile zusammenarbeiten
(Struktur)
- Zustandsdiagramme (Finite State Maschine) beschreiben den
Lebenszyklus eines Objektes
- Zustandsdiagramme sind dann sinnvoll, wenn sich Verhalten eines Objektes
signifikant ändert
- Dabei gibt es Startzustand, Transition (Übergang) und Zielzustand im
Zustandsdiagramm
Aktivitätsdiagramme sind relativ neu in UML und dienen zur Beschreibung von
Abläufen und zwar nicht nur am Bsp. eines Use Cases. Es werden vielmehr die
Verhalten von Objekten in mehreren Use Cases aufgezeigt. Dabei ist Synchronistation
und Nebenläufigkeit der Aktivitäten modellierbar.
Spezifikatioen
Softwaretechnik, Software Engineering:
"Bezeichnet das geplante, systematische Vorgehen bei der Softwareentwicklung
unter Anwendung von Methoden, Verfahren und Softwarewerkzeugen mit dem Ziel,
qualitativ hochwertige Softwareprodukte wirtschaftlich herzustellen und zu
nutzen."
Welche Rolle spielen Spezifikationen in der Software-Entwicklung?
- Ist eine Referenz bei der Implementation
- Ein Produkt ist nur gelungen, wenn es sich an der Spezifikation hält
- Oft Art Vertrag zwischen Kunden und Entwickler
Welche Eigenschaften sollte eine Spezifikation haben?
- Enthält eine Beschreibung von dem, was die Implementation enthalten muss
- Spezifikation, Anforderungsspezifikation, Design Spezifikation und
Modulspezifikation
- Spezifikation ist Referenzpunkt wärend der Produktwartung
Qualitätsmerkmale einer Spezifikation
- Konsistenz (keine Widersprüche)
- Komplettheit (alle benötigten Anforderungen)
- Klar und deutlich (alle benutzten Wörter erklären und definieren)
- eindeutig und verständlich
Wie unterscheidet sich eine operationelle von einer deskriptiven Spezifikation?
- Operationelle Spezifikationen beschreiben die erwünschten Verhaltensweisen
- Deskriptive Spezifikationen beschreiben die erwünschten Eigenschaften
(beschreibt also das Was aber nicht das Wie)
Data Flow Diagramme beschreiben Operationen aber nicht die benutzten
Datenstrukturen oder Relationen. Ein Prototyp ist ein operationales Modell
Wie formal werden Spezifikationen formuliert?
Informal (normale Sprache), semiformal (präzise Syntax aber unpräzise
Semantik) oder Formal (präzise Syntax und Semantik).
Was ist die Verifikation einer Spezifikation?
- Funktionalität, Komplettheit und Konsistenz einer Spezifikation sind zu
prüfen
- Überwachung des dynamischen Verhaltens des spezifizierten Systems
- Analyse der Eigenschaften des Systems
ER-Modell
Entities (Objekttypen), Beziehungen und Attribute (Objekteigenschaften)
Logische Spezifikation
- = FOT (first-order-theory bzw. prädikatenlogische Theorie erster Stufe)
- Beschreiben in Form von Formeln und Logischen Ausdrücken (Logik 1. Ordnung)
- Variablen, Konstanten, Funktionsprädikate,Quantifizierungen u.s.w.
- Immer Boolsches Ergebnis
- Pre- und Postconditions
- Vorteil ist, wenn Logische Spezifikation korrekt sind auch alle Ableitungen
davon korrekt

Quelle: Uni Münster
Logisches Prototyping - Methoden, Probleme
- Interpreter für Operationale Spezifikation
- Damit aber nur das Verhalten prüfbar und nicht die Eigenschaften
- Besser logische Sprache wie Prolog umd FOT zu approximieren
Algebraische Spezifikation - wie beschreibt man die Syntax?
Elemente (Char, Nat, Bool) und Operationen (Funktionen der Algebra wie new,
append, add, lenght, isEmpty...)
Eine algebraische Spezifikation ist die operationale Modellierung auf der
Grundlage einer Algebra.
Bsp: Algebraische Spezifikation eines Stacks

Quelle: Uni Zürich
Algebraische Spezifikation - wie beschreibt man die Semantik?
Axiome der Algebra, welche immer Wahr sein müssen.
Algebraische Spezifikation - Probleme
Unvollständig, Überspezifizierung, Widersprüchlich, Redundanz
|
|
|
|
|
|
Kapitel 1
|
Einleitung
|
|
Einführung, Geschichte...
|
|
Kapitel 2
|
Eigenschaften
|
|
Filtern und Trennen, Modularisierung...
|
|
Kapitel 3
|
Strukturierte Analyse
|
|
Strukturierte und OO-Analyse, Petri-Netze
|
|
Kapitel 4
|
Spezifikation
|
|
Risikoanalyse, Modellierungshilfen, Spezifikationen
|
|
Kapitel 5
|
Entwurfsprozess
|
|
Entwurf, DFD, Tests, UI...
|
|
Kapitel 6
|
Prozessmodelle
|
|
Softwarekrise, Lebenszyklusmodelle...
|
|
Kapitel 7
|
CASE und PM
|
|
CASE, Projektmanagement...
|
|
Kapitel 8
|
Software-Metriken
|
|
Softwarequalität, Entwurfsmetriken...
|
|
Kapitel 9
|
Programmierungskonzepte
|
|
Legacy Systeme, Reengineering...
|
|
|
|
|
|
|
Quellen:
|
Petr Kroha
Softwaretechnologie
|
Prof. Kroha
Vorlesungsskript
|
L. Rosenhainer
Vorlesungsskript
|
Word Wide Web
Verschiedenste Seiten
|
|
|
|
|