DGLGUI Pflichtenheft: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Zielbestimmungen)
(Qualitätsanforderungen)
 
(48 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
 
==Musskriterien==
 
==Musskriterien==
 
* Das GUI ist den Anwendern inklusive Source Code zur Verfügung zu stellen
 
* 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 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 GUI soll von Pascal-Anwendungen genutzt werden können
 
 
 
* Die Benutzer-Interaktionen und die GUI-Reaktionen sind dem allgemeinen Standard anzupassen
 
 
 
 
* Das Standard-Aussehen des GUI folgt dem Betriebssystem Windows. Stehen verschiedene Möglichkeiten zur Auswahl, ist die schnellere Variante vorzuziehen
 
* Das Standard-Aussehen des GUI folgt dem Betriebssystem Windows. Stehen verschiedene Möglichkeiten zur Auswahl, ist die schnellere Variante vorzuziehen
 
* Das Aussehen des GUI muss zur Laufzeit geändert werden können ("Themes")
 
 
 
* Das GUI muss auch durch eine Scriptsprache bedienbar sein (Funktionen aufrufen / Ereignisse bearbeiten)
 
* 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.
 
* 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
 
* Das GUI muss erweiterbar sein
 
 
* Liste der vorgegebenen Standard-GUI-Elemente, die zu implementieren sind:
 
* Liste der vorgegebenen Standard-GUI-Elemente, die zu implementieren sind:
 
+
** Button
          * Button
+
** Panel
          * Panel
+
** CheckBox
          * CheckBox
+
** RadioBox
          * RadioBox
+
** Label
          * Label
+
** Image
          * Image
+
** Window
          * Window
+
** EditBox
          * EditBox
+
** ComboBox
          * ComboBox
+
** ListBox
          * ListBox
+
** ScrollBar
          * ScrollBar
+
** ProgressBar
          * ProgressBar
+
** TreeList
          * TreeList
+
** Memo
          * Memo
+
** TabSheet
          * TabSheet
+
** DropDownMenu
          * DropDownMenu
 
 
 
  
 
==Wunschkriterien==
 
==Wunschkriterien==
 
* Mehrsprachigkeit
 
* Mehrsprachigkeit
 
* Benutzbarkeit durch andere Programmiersprachen
 
* Benutzbarkeit durch andere Programmiersprachen
 +
* Das Aussehen des GUI muss zur Laufzeit geändert werden können ("Themes")
  
 
=Produkteinsatz=
 
=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==
 
==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==
 
==Zielgruppen==
 +
Das GUI ist für Pascal- und OpenGL-Programmierer gedacht.
 +
 
==Betriebsbedingungen==
 
==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=
 
=Produktübersicht=
 +
 +
[[Bild:GUIDiagramm01.jpg]]
 +
 
=Produktfunktionen=
 
=Produktfunktionen=
 
==Userprozesse==
 
==Userprozesse==
==Entwicklerprozess==
+
===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) ==
 +
* Entgegennehmen und visuelles Bearbeiten der [[DGLGUI_Pflichtenheft/Benutzereingaben|Benutzereingaben]]
 +
* Benutzereingaben an die aufrufende Anwendung/ans Script weiterleiten ([[DGLGUI_Pflichtenheft/Ereignisse|Ereignisse]])
 +
* [[DGLGUI_Pflichtenheft/Änderungen_von_GUI-Eigenschaften|Änderungen von GUI-Eigenschaften]] durch die aufrufende Anwendung/das Script und Anzeige am Bildschirm
 +
* Funktionen zum [[DGLGUI_Pflichtenheft/Verwalten|Verwalten]] der grafischen Elemente bereitstellen
 +
 
 
=Produktdaten=
 
=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=
 
=Produktleistungen=
 +
* Verwalten (erzeugen/löschen/laden/speichern/ändern)
 +
* Benutzen
 +
 +
von benutzerdefinierbaren visuellen GUI-Elementen
 +
 
=Qualitätsanforderungen=
 
=Qualitätsanforderungen=
 +
 +
{|{{Prettytable_B1}} style="width:70%"
 +
!width="30%"|Qualitätskriterium
 +
!width="10%"|sehr gut
 +
!width="10%"|gut
 +
!width="10%"|normal
 +
!width="10%"|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=
 
=Benutzungsoberfläche=
 +
 +
Es ist keine Benutzungsoberfläche vorgesehen.
 +
 
=Technische Produktumgebung=
 
=Technische Produktumgebung=
 +
 +
Für den Betrieb gelten folgende technische Voraussetzungen:
 +
* ein PC mit VGA-fähigem Bildschirm, Tastatur und Maus
 +
* Grafikbibliothek mit Texturunterstützung
 +
* 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=
 
=Spezielle Anforderungen an die Entwicklungs-Umgebung=
=Gliederung in Teilprodukten=
+
 
 +
Mindestens Delphi 5 oder Free Pascal 2.0.0. Für kleinere Versionen wird keine Unterstützung garantiert.
 +
 
 +
=Gliederung in Teilprodukte=
 +
 
 +
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 ihre Parents oder 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.
 +
* die grundsätzlichen Voraussetzungen für die TGUIDescendants schaffen (Beispiel: die Struktur der Ereignisbehandling vorgeben)
 +
 
 +
==Sichtbare TGUIDescendants==
 +
Die sichtbaren TGUIDescendents sind für folgende Funktionen zuständig:
 +
* die Darstellung der Elemente am Bildschirm ("Look")
 +
* das Implementieren eines bestimmten Verhaltens ("Feel")
 +
* das Laden und Speichern ihrer Selbst und der Identität ihrer visuellen Eigenschaften (das Speichern der visuellen Eigenschaften selbst ist dem TThemes-Manager vorbehalten).
 +
 
 +
N.B.: Die sichtbaren TGUIDescendants haben Direktzugriff auf die Listenenelemente des TThemes-Managers, sind aber nicht Eigentümer dieser Eigenschaften.
 +
 
 +
==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
 +
 
 +
[[Bild:GUIDiagrammBaum.jpg]]

Aktuelle Version vom 3. Januar 2007, 19:57 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
  • Grafikbibliothek mit Texturunterstützung
  • 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 Teilprodukte

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 ihre Parents oder 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.

  • die grundsätzlichen Voraussetzungen für die TGUIDescendants schaffen (Beispiel: die Struktur der Ereignisbehandling vorgeben)

Sichtbare TGUIDescendants

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

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

N.B.: Die sichtbaren TGUIDescendants haben Direktzugriff auf die Listenenelemente des TThemes-Managers, sind aber nicht Eigentümer dieser Eigenschaften.

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

GUIDiagrammBaum.jpg