Pflichtenheft







Projekt: U-Topp (UML-Tool Programmier-Praktikum)
Kunde:   Dietmar Lammers
Version: 0.1
Datum:   25.11.00


 

1 Zielbestimmung

Es soll ein Case – Tool programmiert werden, das eine Hilfe bei der Softwareentwicklung mit UML sein soll. Das Programm soll es ermöglichen, über Eingabemasken Use – Cases, Klassen, Verbindungen zwischen den einzelnen Klassen bzw. Use – Cases und Pflichtenhefte eingeben zu können. Wichtig ist hierbei, dass alle erstellten Objekte einzeln abgespeichert werden können im Datenaustauschformat XML. Die Komponenten sollen graphisch flexibel dargestellt werden, so liegen unterschiedliche Möglichkeiten der Detaillierung vor. Klassen sind z.B. sowohl mit als auch ohne Attribute und Operationen darstellbar.

1.1 Musskriterien

1. Eingabe der UML – Komponenten „Klasse“ und „Use – Case“
2. Eingabe eines Pflichtenheftes
3. graphische Darstellung / Ausgabe dieser Objekte
4. variierender Detaillierungsgrad
5. Eingabe von Verbindungen zw. Komponenten

1.2 Wunschkriterien

1. Erstellungsmöglichkeit von Klassendiagrammen, Use – Case – Diagrammen und
Sequenzdiagrammen

2 Produkteinsatz

2.1 Anwendungsbereiche

1. Softwareengineering
2. Präsentationen von Softwareentwicklungsideen

2.2 Zielgruppen

1. Programmierer
2. Systementwickler, die UML verwenden

3 Produktumgebung

3.1 Software

1. JDK – Environment

3.2 Hardware

1. eine Hardware, auf der Java läuft

3.3 Schnittstellen

1. XML als Datenaustauschmöglichkeit

4 Produktinformation

 4.1. Use Case Diagramme

1. Neue Komponente ( = Use - Cases, Klassen, Links, Pflichtenheft)
 
Akteur Benutzer
Vorbedingung -
Nachbedingung Erfolg: Komponente angelegt
Ablauf Anlegung der neuen Komponente, Übergang in Edit - Vorgang
Ausnahmen -

2. Komponente öffnen
 
Akteur Benutzer
Vorbedingung -
Nachbedingung Erfolg: Komponente geöffnet, Daten geladen
Ablauf Benutzer wählt Komponente aus, die Daten werden geladen 
Ausnahmen Falls schon eine Komponente geöffnet: Fehlermeldung

3. Komponente editieren
 
Akteur Benutzer
Vorbedingung Komponente geöffnet 
Nachbedingung Erfolg: Datenveränderungen vorgenommen, in Grafik übernommen
Ablauf Daten einlesen, verändern und speichern
Ausnahmen -

4. Komponenten speichern
 
Akteur Benutzer
Vorbedingung Komponente geöffnet
Nachbedingung Erfolg: Komponente gespeichert
Ablauf Der Benutzer gibt den Dateinamen für die Komponente ein, diese wird gespeichert
Ausnahmen Komponentenname schon vorhanden: Fehlermeldung

5. Anzeigen
 
Akteur Benutzer
Vorbedingung Komponente geöffnet
Nachbedingung Erfolg: Komponente grafisch dargestellt
Ablauf Die gewählte Komponente wird grafisch dargestellt mit den geladenen Daten
Ausnahmen -

4.2 Sequenzdiagramme

1. Komponente neu

2. Komponente öffnen

3. Komponente editieren

4. Komponente speichern

5. Anzeigen



4.3 Beispieldialoge

4.3.1 Klasse editieren

4.3.2 Pflichtenheft editieren

4.3.3 Use - Case editieren

5. Konzeptklassen und Daten

5.1. Klassendiagramm

5.2 Klasse Info
Info
name            : string = ""
filename       : string = ""
version         : string = ""
date              : string = ""
lastchanged  : string = ""
author          : string = ""
 Anm.: version, date, lastchanged, author sind optional (Wunsch).
            name enthält den Namen des Objekts,
            filename den betriebssystemspezifischen kompletten Dateinamen (incl. Pfad).

5.3 Klasse Knoten
 
Knoten
beschriftung    : string = ""
pfeiltyp
multiplikator   : string = ""
drawKnoten(xcoo, ycoo, direction)
Anm.: pfeiltyp entspricht { Pfeil | Raute ... }

5.4 Klasse Klasse
 
 Klasse
header          : info
beschriftung    : text = ""
attribute       : text = ""
operation       : text = ""
ladeKlasse()
speicherKlasse()
editKlasse()
drawKlasse(xcoo, ycoo, detail)

5.5 Klasse Verbindung
 
Verbindung
header          : info
beschriftung    : text = ""
linientyp
knoten1         : knoten
knoten2         : knoten
ladeVerbindung()
speicherVerbindung()
editVerbindung()
drawVerbindung(xcoo, ycoo, detail)
 Anm: linientyp entspricht { durchgehend | gestrichelt ... }

5.6 Klasse Use - Case
 
UseCase
header          : info
stichpunkt     : list of struct {
                       name  : string = ""
                       beschriftung    : text = ""
                                           }
constructor()
ladeUsecase()
speicherUsecase()
editUsecase()
drawUsecase(xcoo, ycoo, detail)
Anm: Der constructor erzeugt ein vorgefertigtes Usecase mit
         Akteur, Vorbedingung, Nachbedingung, Ablauf, Invarianz und
         Ablauf als jeweiligen "stichpunkt" mit leerem Text "beschriftung".

5.7 Klasse Pflichtenheft
 
Pflichtenheft
header          : info
pflichtenheft   : text
constructor()
ladePflichtenheft()
speicherPflichtenheft()
editPflichtenheft()
drawPflichtenheft(xcoo, ycoo, detail)
Anm: Der constructor erzeugt ein vordefiniertes Pflichtenheft
         mit vorgefertigten Überschriften zu den einzelnen Standardpunkten.

5.7. Klasse Topp
 
TOPP
openclass       : Klasse
openlink         : Verbindung
openusecase   : UseCase
openPheft       : Pflichtenheft
main()
Anm: Es kann jeweils nur ein Element aus Klasse, bzw.
         ein Element aus Verbindung etc bearbeitet werden.



Letzte Änderung: 25.11.00