| Anhang | |
D Aufteilung einer Spezifikation in Bereiche |
|
Das nachfolgende Beispiel zeigt Bereichsdefinitionen, die in Software-Projekten verwendet wurden. In diesen Projekten wurden leere Bereiche immer weggelassen. Die in diesem Beispiel angedeuteten Inhalte gehören nicht zu einem einzelnen Projekt, sie demonstrieren nur, was in den Bereichen stehen kann.
//
// W O R K F L O W
//
// enthält Anwendungsfälle (Usecase) und Ablaufbeispiele (Scenario)
! +UcTextÄndern
-{Datei öffnen}
-{Änderungen durchführen}
-{Datei speichern}
//
// S C H E M E
//
// enthält Details zu Spezialisierungsprefixen und Terminalen zur Anpassung an die Domäne.
// Drei Unterstriche ___ sind Platzhalter für den nachfolgenden Namensteil
! %Wn___
+OPEN // Fenster anzeigen
+CLOSE // Fenster unsichtbar machen
+CHANGESIZE // Fenstergröße verändern
! NULLABSOLUT // Wert gaaaanz am Anfang
//
// A L I A S
//
// enthält Zusammenfassung von unterschiedlichen Wegen zum gleichen Ziel
// Prinzip: Ein Knopf ersetzt viele andere Knöpfe
! ++Speichern
.+BtSpeichern // Knopf im (einzigen) Fenster
.+MenüDatei.Speichern // Auswahl im Menü
.+CTRL-S // Control + Taste S
//
// S T A T U S
//
// Zustände und Datenhalter der Applikation
! $Datenbank
.KundeListe
...Kunde
.Name
.Adresse
//
// C O N T A I N E R
//
// Alle komplexen Strukturen, z.B. Fenster
! #WnSpeichern
.EtDateipfad
.+BtSpeichern
.+BtAbbrechen
.MenüDatei
.+Öffnen
.+Speichern
.+CTRL-S
//
// A C T I O N
//
// Benannte Aktionen
! @PrüfeSpeichern
=> .?USER << "Passt alles?" =
= "Ja, ok"
=> .{Alles gespeichert}
= "Nein, etwas passt nicht"
=> .NOP
//
// R E S T R I C T I O N
//
// Aussagen, die immer erfüllt sein müssen
! {EtBörsenfenster wird niemals leergescrollt}
! {Mindestens ein Kunde bleibt in der Datenbank}
//
// D O M A I N
//
// Aussagen zu den Regeln des Fachgebiets, in dem das Produkt arbeiten soll
! {Zu jedem Auto gibt es genau einen einen Fahrzeughalter}
! {Einträge werden nach zwei Jahren auf Löschung überprüft}
.{in den letzten zwei Jahren darf es keinen weiteren Eintrag gegeben haben, sonst nicht löschen}