1. Zielbestimmungen
1.1 Mußbestimmungen
Zu den Mußbestimmungen gehört, daß das Programm Erfassmasken für die uml-Komponenten
Klassen, use-cases und Verbindungen enthält. Zudem soll die Möglichkeit bestehen, ein
Pflichtenheft zu erstellen.Diese Komponenten sollen graphisch, in unterschiedlichem
Detaillierungsgrad dargestellt sein.
Diese Informationen sollen dauerhaft gespeichert werden können. Desweiteren muss
die Möglichkeit gegeben sein, bestehende Daten zu editieren.
1.2 Kannbestimmungen
Das Programm könnte bestimmte Arten von Diagrammen erstellen können, wie z.B.
Klassen-, Use-Case- und Sequenzdiagramme. Wünschenswert wäre unter Umständen,
diese Diagramme in verbreitete Formate exportieren und/oder drucken zu können.
Außerdem könnte man die einzelnen Komponenten so vernetzen, dass zum Beispiel
automatisch festgestellt würde, ob die eingegebenen Daten konsistent sind.
1.3 Abgrenzungskriterien
Im Gegensatz zu anderen Systemen (wie z.B. ArgoUML) wird nicht die Möglichkeit bestehen,
vorhandene Daten zur Generation von Quellcode (z.B. "Rahmen" von Javaklassen) zu verwenden.
Weiterhin wird man vorhandene Information nicht graphisch (d.h. im Rahmen einer Ansicht)
ändern können.
3. Produktumgebung
3.1 Software
Das Produkt benötigt ein virtuelle Java-Maschine, z.B. das Java-Runtime-Environment von Sun,
das auch bei der Entwicklung verwendet wird.
3.2 Hardware
Die Software sollte im wesentlichen Plattform-unabhängig sein. Zumindest sollte sie
unter folgenden zwei Hardware-Umgebungen laufen:
- Genügend ausgestatteter PC
- Sun-Workstations im mathematischen Institut
Darüber hinaus wird keine besondere Hardware benötigt.
3.3 Orgware
Es wird keine besondere Orgware benötigt.
3.4 Schnittstellen
Es werden keine besonderen Schnittstellen benötigt.
4. Produktfunktionen
4.1 Use Cases
Use-Case 1.1: Neue Klasse erstellen
- Akteure: Benutzer
- Vorbedingungen: Ein geöffnetes Projekt existiert
- Nachbedingungen: Eine Klasse ist erstellt und bereit zum Bearbeiten. Sie wird im Modus Standard dargestellt
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Klasse --> neue Klasse erstellen
- Eine Eingabemaske für Stereotyp, Paket, Name der Klasse, Eigenschaftswerte,
Attribute und deren Typen,sowie Methoden und deren Parameter erscheint.
- Der Benutzer trägt die gewünschten Daten ein und bestätigt diese.
- Eine neue Instanz vom Typ Klasse wird erstellt
- Ausnahmen:
- Der Benutzer gibt keinen Klassennamen ein.
- Der vom Benutzer eingegebene Klassenname existiert schon.
In beiden Fällen gibt es eine entsprechende Fehlermeldung und die Bestätigung der Daten wird
nicht entgegengenommen, d.h. die Eingabemaske schließt sich nicht
Use-Case 1.2: Klasse editieren
- Akteure: Benutzer
- Vorbedingungen:Eine Klasse existiert
- Nachbedingungen:Eine Klasse ist editiert worden
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Klasse--> Klasse editieren
- Dem Benutzer wird die Möglichkeit gegeben eine zu editierende Klasse
zu wählen und dies zu bestätigen
- Die Eingabemaske (s.Use-Case 1.1) wird mit den bereits vorhanden
Eintragungen zur Klasse geöffnet. Diese können nun nach Belieben geändert
werden
- Die Änderungen werden vom Benutzer bestätigt und nach erneuter
Bestätigung vorgenommen.
- Ausnahmen:
- Der neu gewählte Name der Klasse ist ungültig. Es wird wie in
Use-Case 1.1 verfahren
Use-Case 1.3: Klasse löschen
- Akteure: Benutzer
- Vorbedingungen: Eine Klasse existiert
- Nachbedingungen: Eine Klasse ist gelöscht worden
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Klasse--> Klasse löschen
- Dem Benutzer wird die Möglichkeit gegeben eine zu löschende Klasse
zu wählen und dies zu bestätigen
- Nach erneuter Bestätigung wird die entsprechende Klasse gelöscht
Use-Case 2.1: Neues Objekt erstellen
- Akteure: Benutzer
- Vorbedingungen: Ein geöffnetes Projekt existiert
- Nachbedingungen: Ein Objekt ist erstellt
und bereit zum Bearbeiten. Es wird im Modus Standard dargestellt
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Objekt --> neues Objekt erstellen
- Dem Benutzer wird die Möglichkeit gegeben die Klasse zu wählen
deren Instanz das zu erstellende Objekt sein soll
- Eine Eingabemaske für Objektname und zu initialisierende Attribute erscheint.
- Der Benutzer trägt die gewünschten Daten ein und bestätigt diese.
- Eine neue Instanz vom Typ Objekt wird erstellt
- Ausnahmen:
- Der Benutzer gibt keinen Objektnahmen ein.
- Der vom Benutzer eingegebene Objektname existiert schon.
In beiden Fällen gibt es eine entsprechende Fehlermeldung und die Bestätigung der Daten wird
nicht entgegengenommen, d.h. die Eingabemaske schließt sich nicht
Use-Case 2.2: Objekt editieren
- Akteure: Benutzer
- Vorbedingungen: Ein Objekt existiert
- Nachbedingungen: Ein Objekt ist editiert worden
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Objekt--> Objekt editieren
- Dem Benutzer wird die Möglichkeit gegeben ein zu editierendes Objekt
zu wählen und dies zu bestätigen
- Die Eingabemaske (s.Use-Case 2.1) wird mit den bereits vorhanden
Eintragungen zum Objekt geöffnet. Diese können nun nach Belieben geändert werden
- Die Änderungen werden vom Benutzer bestätigt und nach erneuter Bestätigung vorgenommen.
- Ausnahmen:
- Der neu gewählte Name der Klasse ist ungültig. Es wird wie in Use-Case 2.1 verfahren
Use-Case 2.3: Objekt löschen
- Akteure: Benutzer
- Vorbedingungen: Ein Objekt existiert
- Nachbedingungen: Ein Objekt ist gelöscht worden
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Objekt--> Objekt löschen
- Dem Benutzer wird die Möglichkeit gegeben ein zu löschendes Objekt
zu wählen und dies zu bestätigen
- Nach erneuter Bestätigung wird das entsprechende Objekt gelöscht
Use-Case 3.1: Neue Verbindung erstellen
Akteure: Benutzer
- Vorbedingungen: Der Benutzer muß sich in dem Editor befinden, in dem neue Verbindungen
erzeugt werden können; es dürfen weiterhin keine weiteren Eingebemasken für andere Komponenten
geöffnet sein
- Nachbedingungen: Eine neue Verbindung wurde hergestellt, d.h. es wurde eine neue Instanz
der Klasse Verbindung hergestellt.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Verbindung --> neue Verbindung erstellen
- Abfrage, welcher Art die Mengenbeziehung der Verbindung sein soll (Auswahlliste)
- Abfrage, welche Eigenschaften die Verbindung noch besitzen soll (Bsp. implements/extends)
- Eine neue Verbindung wird erstellt
Use-Case 3.2: Verbindung editieren
- Akteure: Benutzer
- Vorbedingungen: Der Benutzer befindet sich im Editor, in welchem Verbindungen editiert
werden können; Die Verbindung, die editiert werden soll, muß schon bestehen.
- Nachbedingungen: Die Verbindung wurde geändert.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Verbindung -->Verbindung editieren
- Erscheinen der Auswahlliste, anhand derer die Verbindung bearbeitet werden kann.
- Die veränderte Verbindung erscheint
Use-Case 3.3: Verbindung löschen
- Akteure: Benutzer
- Vorbedingungen: Der Benutzer befindet sich in demjenigen Editor, in dem man
Verbindungen anlegen, ändern und löschen kann. Diejenige Verbindung, die gelöscht werden
soll muß natürlich existieren.
- Nachbedingungen: Die vorhandene Instanz der Klasse Verbindungen wurde entfert.
- Nicht-funktionale Anforderungen: die gespeicherte Datei muss dem geforderten Format entsprechen.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Verbindungen -->Verbindung entfernen
- Benutzerabfrage, ob die Verbindung wirklich unwiederruflich gelöscht werden soll.
- Löschen der vorhandenen Verbindung falls der Benutzer mit 'ja' antwortet.
- Variationen: Antwortet der Benutzer mit 'nein', so wird in den Editor zurückgekehrt und
auf weitere Bearbeitung durch den Benutzer gewartet.
Use-Case 4.1: Neuen Use-Case erstellen
- Akteure: Benutzer
- Vorbedingungen: Ein Projekt muss geöffnet sein.
- Nachbedingungen: Eine neue Instanz des Typs Use-Case ist ertstellt worden.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Use-Case => Neuen Use-Case erstellen.
- Der Benutzer gibt seinen Use-Case Text in die Erfassmaske ein und bestätigt.
- Ein neuer Use-Case wird erstellt.
- Variationen:
- Existiert ein Use-Case mit dem angegebenen Namen schon, erscheint eine Fehlermeldung und der Ablauf seit Schritt 4 wird wiederholt.
- Abbruch durch den Benutzer - die Erstellung wird nicht durchgeführt.
Use-Case 4.2: Use-Case editieren
- Akteure: Benutzer
- Vorbedingungen:
- Ein Projekt muss geöffnet sein.
- Der angebene Use-Case muss bereits existieren.
- Nachbedingungen: Eine Instanz des Typs Use-Case ist verändert worden.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Use-Case => Use-Case editieren.
- Die beabsichtigten Veränderungen werden abgefragt, angegeben und bestätigt.
- Der Use-Case wird verändert.
- Variationen:
- Die Angaben sind ungültig. => Eine Fehlermeldung erscheint und der Ablauf wird ab Schritt 2 wiederholt.
- Abbruch durch den Benutzer - es wird keine Änderung durchgeführt.
Use-Case 4.3: Use-Case löschen
-
Akteure: Benutzer
- Vorbedingungen:
- Ein Projekt muss geöffnet sein.
- Der angebene Use-Case muss bereits existieren.
- Nachbedingungen: Eine Instanz des Typs Use-Case ist gelöscht worden.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Use-Case => Use-Case löschen.
- Der Name des Use-Case wird abgefragt.
- Der Use-Case wird gelöscht.
- Variationen:
- Der Use-Case existiert nicht. => Es erscheint eine Fehlermeldung und der Ablauf wird ab Schritt 2 wiederholt.
- Abbruch durch den Benutzer - der Use-Case wird nicht gelöscht.
Use-Case 5.2 Pflichtenheft editieren
- Akteure: Benutzer
- Vorbedingungen: Das Projekt ist angelegt und geöffnet.
- Nachbedingungen: Die Veränderung im Pflichtenheft wird vorgenommen.
- Invariante: XML-Datei
- Ablaufbeschreibung:
- Benutzer verändert Eintragungen im Pflichtenheft.
- Die Veränderung wird bestätigt und gespeichert.
Use-Case 5.3 Pflichtenheft löschen
- Akteure: Benutzer
- Vorbedingungen: Das Projekt ist angelegt und geöffnet.Das Pflichtenheft ist angelegt und geöffnet.
- Nachbedingungen: Das Pflichtenheft wird vom Projekt entfernt.
- Invariante: XML-Datei
- Ablaufbeschreibung:
- Benutzer löscht das Pflichtenheft.
- Dabei werden alle Eintragungen entfernt.
Use-Case 6.1: neues Projekt anlegen
- Akteure: Benutzer
- Vorbedingungen: der Benutzer befindet sich im "Hauptprogramm", d.h.
es sind keine Eingabe-Fenster geöffnet.
- Nachbedingungen: Ein neues Projekt wurde geöffnet, der Beutzer kann nun
einzelne Elemente des neuen Projekts erstellen. Intern wurde ein neues Objekt der
Klasse Projekt angelegt.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Datei, neues Projekt
- Abfrage, ob das geöffnete Projekt gesichert werden soll, bevor ein neues angelegt wird.
- Wird in diesem Fall mit "Ja" geantwortet, wird das alte Projekt gesichert.
- Ein neues Pflichtenheft wird angelegt.
-
- Ein neues, leeres Hauptfenster erscheint.
- Variationen: War kein Projekt geöffnet, entfallen oben die Punkte 2 und 3.
Use-Case 6.4: Projekt öffnen
- Akteure: Benutzer
- Vorbedingungen: der Benutzer befindet sich im "Hauptprogramm", d.h. es sind keine Eingabe-Fenster geöffnet.
- Nachbedingungen: Ein zuvor erstelltes und gespeichertes Projekt wurde geöffnet.
Es besteht die Möglichkeit, dieses zu editieren.
- Nicht-funktionale Anforderungen: die zu öffnende Datei muss dem geforderten
Format entsprechen.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Datei, Projekt öffnen
- Abfrage, ob das geöffnete Projekt gesichert werden soll, bevor ein neues angelegt wird.
- Wird in diesem Fall mit "Ja" geantwortet, wird das alte Projekt gesichert.
- Es erscheint ein Datei-öffnen-Dialog
- Der Benutzer wählt eine Datei aus.
- Die Datei wird darauf untersucht, ob es sich um eine valide XML-Datei handelt.
- Ist dies der Fall, wird die Datei ausgelesen und das zugehörige Hauptfenster angezeigt.
- Variationen: Existiert die ausgewählte Datei nicht, oder handelt es sich nicht
um eine valide Datei, so erscheint eine Fehlermeldung. Es wird bei Punkt 4 fortgesetzt.
- Dialog: Datei-öffnen-Dialog. Es besteht die Möglichkeit, eine auf dem Rechner befindliche Datei auszuwählen. Außerdem läßt sich der Vorgang abzubrechen.
Use-Case 6.5: Projekt speichern
- Akteure: Benutzer
- Vorbedingungen: der Benutzer befindet sich im "Hauptprogramm", d.h.
es sind keine Eingabe-Fenster geöffnet. Außerdem muss ein Projekt geöffnet sein.
- Nachbedingungen:Ein zuvor erstelltes und/oder editiertes Projekt
ist als XML-Datei auf dem Rechner vorhanden.
- Nicht-funktionale Anforderungen: die gespeicherte Datei muss dem geforderten
Format entsprechen.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Datei, Projekt speichern
- Abfrage, unter welchem Namen und in welchem Verzeichnis das Projekt gespeichert werden soll.
- In diesem Verzeichnis wird unter dem genannten Namen eine XML-Datei mit den entsprechenden Informationen angelegt, falls nicht schon eine Datei mit demselben Namen existiert.
- Variationen: Existiert die ausgewählte Datei schon, erscheint das Dialogfenster erneut.
Weiterhin wird eien Fehlermeldung ausgegeben.
- Dialog: Datei-speichern-Dialog. Es besteht die Möglichkeit, den Namen und ein Verzeichnis
anzugeben. Der Vorgang läßt sich abbrechen.
Use-Case 6.6: Projekt schließen
- Akteure: Benutzer
- Vorbedingungen: der Benutzer befindet sich im "Hauptprogramm", d.h.
es sind keine Eingabe-Fenster geöffnet. Außerdem muss ein Projekt geöffnet sein.
- Nachbedingungen: Das vorher geöffnete Projekt ist geschlossen. Falls gewünscht,
sind die entsprechenden Daten gesichert.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Datei, Projekt schgließen
- Abfrage, ob das Projekt wirklich geschlossen werden soll.
- Wird dies bestätigt, wird die Datei gesichert (siehe Use-Case 6.5).
- Variationen: Wird das schließen nicht bestätigt, bleibt die vorhandene Datei geöffnet.
- Dialog: Bestätigungsdialog. Es besteht lediglich die Möglichkeit, zu bestätigen oder abzubrechen.
Use-Case 7: Programm beenden
- Akteure: Benutzer
- Vorbedingungen:Das Programm läuft
- Nachbedingungen: Das Programm ist beendet worden
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Programm beenden
- Es wird erneute Bestätigung verlangt
- Das Programm wird beendet
Use-Case 8: Modus wechseln
- Akteure: Benutzer
- Vorbedingungen: Projekt geöffnet, mind. eine Klasse bzw. Objekt, Verbindung oder UseCase erstellt
- Nachbedingungen: Der Benutzer sieht die graphische Ausgabe nun in einem anderen (von ihm gewählten Modus)
- Invatianten: Keine Veränderungen in der XML Datei oder erneutes Auslesen der Daten
- Ablaufbeschreibung:
- Benutzer aktiviert die Methode, die zum ändern der Ansicht dient, beispielsweise über einen Menupunkt in der Menuleiste im Haupfenster
- Entweder wählt er nun zwischen einer Ansicht aus (z.B. simpel, standard, detailiert) oder trifft seine Auswahl gleich durch den konkret gewählten Menupunkt,
d.h. die 3 Menupunkte sind schon in der Menuleiste vorhanden
- Die neue graphische Oberfläche erscheint im gewünschten Modus
Use-Case 9.7: Ansicht wechseln - Klassen/Objekte/Verbindungen
- Akteure: Benutzer
- Vorbedingungen: Ein Projekt muß geöffnet sein.
- Nachbedingungen: Im Hauptfenster ist die Klassenansicht aktiv.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Ansicht --> Klassen
- Klasseninformationen werden abgerufen und dargestellt
Use-Case 9.8: Ansicht wechseln - Pflichtenheft
- Akteure: Benutzer
- Vorbedingungen: Ein Projekt muß geöffnet sein.
- Nachbedingungen: Im Hauptfenster ist die Pflichtenheftansicht aktiv.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Ansicht --> Pflichtenheft
- Informationen über das Pflichtenheft (allgemeine und individuelle) werden abgerufen und dargestellt
Use-Case 9.9: Ansicht wechseln - UseCases
- Akteure: Benutzer
- Vorbedingungen: Ein Projekt muß geöffnet sein.
- Nachbedingungen: Im Hauptfenster ist die UseCase-Ansicht aktiv.
- Ablaufbeschreibung:
- Aufruf des Menüpunktes Ansicht --> UseCases
- UseCase-Informationen werden abgerufen und dargestellt
5. Produktdaten
5.1 Namen
- Emin Bahdir bahadir@math.uni-muenster.de
- Ralph Carrie carrie@uni-muenster.de
- Verena Kutschker veku@uni-muenster.de
- Marc Rogge mrogge@muenster.de
- Birga Schwartz birgasch@uni-muenster.de
- Karsten Wantia wantiak@math.uni-muenster.de
- Carolin Woltermann carowo@uni-muenster.de
5.2 Titel
C.V.K. Mbert - U-Topp
6. Leistungen
Noch nicht ausgearbeitet
7. Benutzeroberfläche
7.1 graphische Steuerungselemente
- Menuleiste mit den wichtigsten Grundfunktionen:
neues Projekt, Projekt laden, Projekt speichern, Programm beenden, Projekt schliessen
neue Klassen, UseCases oder Verbindungen einfügen
Pflichtenheft erstellen, Sequenz-, Klassen und UseCase-Diagramme erstellen
verschiedene Darstellungsmodi einstellbar (ohne Details, Standard, Expert)
Hilfepunkte
- Pop-up Dialogfenster zum schnellen und bequemen Eintragen der Objekte, Methoden, Klassen etc.
mit Buttons, Checkboxen, Textfeldern, Radiobuttons, die je nach Auswahl aktiv bzw. inaktiv werden
7.2 Screenshots
8. Qualitätsziele
Noch nicht ausgearbeitet
9. Testszenarien
Noch nicht ausgearbeitet
10. Entwicklungsumgebung
- Windows 98 / Linux / Solaris
- Symantec - Java Virtual Café
- J++
- Kawa
- Texteditor
11. Ergänzungen
Noch nicht ausgearbeitet