DGLGUI Pflichtenheft: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(ANHANG: Technische Spezifikation)
(ANHANG: Technische Spezifikation)
Zeile 173: Zeile 173:
  
 
=ANHANG: Technische Spezifikation=
 
=ANHANG: Technische Spezifikation=
FEHLT NOCH: Beschreibung der Baumstruktur
+
==Nomenklatur==
 +
Das GUI besteht aus Pascal-Objekten, im weiteren "TGUIItems" genannt, die durch ihren besonderen Aufbau befähigt sind, miteinander eine Baumstruktur aufzubauen.
 +
Der Vaterknoten des TGUIItems wird "Parent" genant, seine Kindknoten "Children". Aus dem TGUIItem werden weitere Elemente abgeleitet, die "TGUIDescendants".
 +
Der "TThemesManager" ist für das Erscheinungsbild des GUI verantwortlich.
 +
 
 +
==TGUIItems==
 +
Die TGUIItems sind für folgende Funktionen zuständig:
 +
* die Weiterleitung von Daten und Befehlen an sein Parent oder seine Children
 +
Jedes TGUIItem kann dabei nur seine unmittelbaren Nachbarn erreichen, also sein Parent und seine Children. Die Anzahl der Children soll mit nicht weniger als High(Word) begrenzt werden.
 +
* das Implementieren eines bestimmten Verhaltens ("Feel")
 +
 
 +
==Sichtbare TGUIDescendants==
 +
Die sichtbaren TGUIDescendents sind für folgende Funktionen zuständig:
 +
* die Darstellung der Elemente am Bildschirm ("Look")
 +
* das Laden und Speichern ihrer Selbst und der Identität ihrer visuellen Eigenschaften (das Speichern der visuellen Eigenschaften selbst ist dem TThemes-Manager vorbehalten).
 +
 
 +
==Nicht sichtbare TGUIDescendants: TGUIManager==
 +
Die Wurzel des GUI-Baums ist ebenfalls ein TGUIDescendent und wird TGUIManager genannt. Er ist zuständig für:
 +
* die Weiterleitung von Daten und Befehlen, die den gesamten GUI-Baum erreichen sollen
 +
* das Erzeugen und Verwalten des TThemesManagers
 +
 
 +
==TThemesManager==
 +
Der TThemesManager ist '''kein''' TGUIDescendent. Er beinhaltet Listen von visuellen Eigenschaften und ist zuständig für:
 +
* die einheitliche visuelle Darstellung des Baums durch seine speziellen Listenelemente
 +
* das Laden und Speichern dieser Listenelemente

Version vom 26. Dezember 2006, 21:14 Uhr

Zielbestimmungen

Das Ziel ist eine allgemeine grafische Schnittstelle (Graphical User Interface, "GUI") zur Kommunikation zwischen Anwendung und Benutzer. Die Hilfsmittel (grafische Elemente und Programm-Reaktionen) dazu sollen möglichst intuitiv benutzbar/interpretierbar sein.

Musskriterien

  • Das GUI ist den Anwendern inklusive Source Code zur Verfügung zu stellen
  • Das GUI darf nicht auf bestimmte Betriebssysteme oder Bibliotheken festgelegt werden, sondern muss für Funktionen, die Bibliotheks- oder betriebssystemspezifischen Code benötigen, einen Wrapper (ein Hilfsprogramm) verwenden
  • Das GUI soll mindestens von Pascal-Anwendungen genutzt werden können
  • Die Benutzer-Interaktionen und die GUI-Reaktionen sind dem allgemeinen Standard (Verhalten von Windows) anzupassen
  • Das Standard-Aussehen des GUI folgt dem Betriebssystem Windows. Stehen verschiedene Möglichkeiten zur Auswahl, ist die schnellere Variante vorzuziehen
  • Das GUI muss auch durch eine Scriptsprache bedienbar sein (Funktionen aufrufen / Ereignisse bearbeiten)
  • Die Daten, die nötig sind, um die grafischen Elemente am Bildschirm darzustellen, müssen geladen und gespeichert werden können. Als Speicherformate dafür sind XML und ein binäres Format zu implementieren.
  • Das GUI muss erweiterbar sein
  • Liste der vorgegebenen Standard-GUI-Elemente, die zu implementieren sind:
    • Button
    • Panel
    • CheckBox
    • RadioBox
    • Label
    • Image
    • Window
    • EditBox
    • ComboBox
    • ListBox
    • ScrollBar
    • ProgressBar
    • TreeList
    • Memo
    • TabSheet
    • DropDownMenu

Wunschkriterien

  • Mehrsprachigkeit
  • Benutzbarkeit durch andere Programmiersprachen
  • Das Aussehen des GUI muss zur Laufzeit geändert werden können ("Themes")

Produkteinsatz

Das GUI ist seinem Wesen nach ein Teil einer Computer-Anwendung. Der Einsatz ist daher vom Benutzer abhängig und unterliegt keinerlei Beschränkung.

Anwendungsbereiche

Das GUI ist für Pascal-Anwendungen und -spiele konzipiert, die auf mehreren Plattformen lauffähig sein sollen, ohne die grafische Benutzeroberfläche wechseln zu müssen.

Zielgruppen

Das GUI ist für Pascal- und OpenGL-Programmierer gedacht.

Betriebsbedingungen

  • Das GUI setzt eine aufrufende Anwendung voraus, in die es eingebunden ist
  • Ein Hilfsprogramm für das Entgegennehmen der betriebssystemspezifischen Benutzereingaben wird vorausgesetzt
  • Hilfsprogramme für die Grafikroutinen, das Laden der Schriften und Texturen werden vorausgesetzt

Produktübersicht

GUIDiagramm01.jpg

Produktfunktionen

Userprozesse

Benutzereingaben

  • Tastatureingabe
(in Abhängig vom Tastaturschema, daher Z ist Z auch auf amerikanischen Tastaturen)
  • Mauseingabe
Mindestens linke, rechte und mittlere Maustaste sowie das Scrollrad.


Prozesse der aufrufenden Anwendung/des Scripts

  • Entgegennehmen und Verarbeiten der Benutzereingaben vom GUI (Ereignisse)
  • Daten an das GUI zur Bildschirm-Anzeige weiterreichen
  • Verwalten und Steuern des GUI (grafische Elemente erzeugen/löschen/laden/speichern/Eigenschaften ändern usw.)


Entwicklerprozesse (Prozesse des GUI)

Produktdaten

Produktdaten sind Daten, die für das Anzeigen der Elemente am Bildschirm nötig sind:

  • Ausmasse der Elemente (Breite, Höhe)
  • Position der Elemente (Koordinaten)
  • Texturkoordinaten
  • spezielle Ausformungen (Randbreiten, Zeichenroutinen,...)
  • Farben
  • Bilder (Texturen)
  • Schriften

Hier ist pro Standard-Element (Edit, Scrollbar, Window, ...) zu definieren, welche Daten nötig sind

Produktleistungen

  • Verwalten (erzeugen/löschen/laden/speichern/ändern)
  • Benutzen

von benutzerdefinierbaren visuellen GUI-Elementen

Qualitätsanforderungen

Qualitätskriterium sehr gut gut normal nicht relevant
Funktionalität X - - -
Richtigkeit - - X -
Interoperabilität X - - -
Code-Lesbarkeit X - - -
Sicherheit - - X -
Zuverlässigkeit - X - -
Fehlertoleranz - - X -
Reife - - - X
Backupfähigkeit - - - X
Benutzbarkeit X - - -
Verständlichkeit X - - -
Erlernbarkeit - X - -
Bedienbarkeit X - - -
Effizienz - X - -
Zeitverhalten X - - -
Verbrauchsverhalten - - - X
Änderbarkeit - X - -
Analysierbarkeit - - - X
Modifizierbarkeit - - X -
Stabilität - X - -
Übertragbarkeit - - - X
Anpassbarkeit - - - X
Installierbarkeit - - - X
Konformität - - - X
Austauschbarkeit - - - X

Benutzungsoberfläche

Es ist keine Benutzungsoberfläche vorgesehen.

Technische Produktumgebung

Für den Betrieb gelten folgende technische Voraussetzungen:

  • ein PC mit VGA-fähigem Bildschirm, Tastatur und Maus
  • OpenGL 1.1 Unterstützung (Verwendung von Texturen)
  • Betriebsystemspezifische Hilfs-Funktionen zum Entgegennehmen der Benutzereingaben
  • ein Pascal-Compiler (eine integrierte Entwicklungsumgebung ist nicht notwendig), vorzugsweise Delphi ab Version 5 oder Free Pascal ab Version 2.0

Spezielle Anforderungen an die Entwicklungs-Umgebung

Mindestens Delphi 5 oder Free Pascal 2.0.0. Für kleinere Versionen wird keine Unterstützung garantiert.

Gliederung in Teilprodukten

Nicht vorgesehen.

ANHANG: Technische Spezifikation

Nomenklatur

Das GUI besteht aus Pascal-Objekten, im weiteren "TGUIItems" genannt, die durch ihren besonderen Aufbau befähigt sind, miteinander eine Baumstruktur aufzubauen. Der Vaterknoten des TGUIItems wird "Parent" genant, seine Kindknoten "Children". Aus dem TGUIItem werden weitere Elemente abgeleitet, die "TGUIDescendants". Der "TThemesManager" ist für das Erscheinungsbild des GUI verantwortlich.

TGUIItems

Die TGUIItems sind für folgende Funktionen zuständig:

  • die Weiterleitung von Daten und Befehlen an sein Parent oder seine Children

Jedes TGUIItem kann dabei nur seine unmittelbaren Nachbarn erreichen, also sein Parent und seine Children. Die Anzahl der Children soll mit nicht weniger als High(Word) begrenzt werden.

  • das Implementieren eines bestimmten Verhaltens ("Feel")

Sichtbare TGUIDescendants

Die sichtbaren TGUIDescendents sind für folgende Funktionen zuständig:

  • die Darstellung der Elemente am Bildschirm ("Look")
  • das Laden und Speichern ihrer Selbst und der Identität ihrer visuellen Eigenschaften (das Speichern der visuellen Eigenschaften selbst ist dem TThemes-Manager vorbehalten).

Nicht sichtbare TGUIDescendants: TGUIManager

Die Wurzel des GUI-Baums ist ebenfalls ein TGUIDescendent und wird TGUIManager genannt. Er ist zuständig für:

  • die Weiterleitung von Daten und Befehlen, die den gesamten GUI-Baum erreichen sollen
  • das Erzeugen und Verwalten des TThemesManagers

TThemesManager

Der TThemesManager ist kein TGUIDescendent. Er beinhaltet Listen von visuellen Eigenschaften und ist zuständig für:

  • die einheitliche visuelle Darstellung des Baums durch seine speziellen Listenelemente
  • das Laden und Speichern dieser Listenelemente