DGLGUI Pflichtenheft: Unterschied zwischen den Versionen
Traude (Diskussion | Beiträge) K (→Entwicklerprozesse (Prozesse der GUI)) |
Traude (Diskussion | Beiträge) (→Qualitätsanforderungen) |
||
(35 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 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 | |
− | + | ** Panel | |
− | + | ** CheckBox | |
− | + | ** RadioBox | |
− | + | ** Label | |
− | + | ** Image | |
− | + | ** Window | |
− | + | ** EditBox | |
− | + | ** ComboBox | |
− | + | ** ListBox | |
− | + | ** ScrollBar | |
− | + | ** ProgressBar | |
− | + | ** TreeList | |
− | + | ** Memo | |
− | + | ** TabSheet | |
− | + | ** 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= | ||
Zeile 52: | Zeile 41: | ||
==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 | * Das GUI setzt eine aufrufende Anwendung voraus, in die es eingebunden ist | ||
− | * Ein Hilfsprogramm für das Entgegennehmen der | + | * Ein Hilfsprogramm für das Entgegennehmen der betriebssystemspezifischen Benutzereingaben wird vorausgesetzt |
* Hilfsprogramme für die Grafikroutinen, das Laden der Schriften und Texturen werden vorausgesetzt | * Hilfsprogramme für die Grafikroutinen, das Laden der Schriften und Texturen werden vorausgesetzt | ||
=Produktübersicht= | =Produktübersicht= | ||
− | + | [[Bild:GUIDiagramm01.jpg]] | |
=Produktfunktionen= | =Produktfunktionen= | ||
Zeile 67: | Zeile 56: | ||
===Benutzereingaben=== | ===Benutzereingaben=== | ||
* Tastatureingabe | * Tastatureingabe | ||
+ | : (in Abhängig vom Tastaturschema, daher Z ist Z auch auf amerikanischen Tastaturen) | ||
* Mauseingabe | * Mauseingabe | ||
+ | : Mindestens linke, rechte und mittlere Maustaste sowie das Scrollrad. | ||
Zeile 73: | Zeile 64: | ||
* Entgegennehmen und Verarbeiten der Benutzereingaben vom GUI (Ereignisse) | * Entgegennehmen und Verarbeiten der Benutzereingaben vom GUI (Ereignisse) | ||
* Daten an das GUI zur Bildschirm-Anzeige weiterreichen | * Daten an das GUI zur Bildschirm-Anzeige weiterreichen | ||
− | * Verwalten und | + | * Verwalten und Steuern des GUI (grafische Elemente erzeugen/löschen/laden/speichern/Eigenschaften ändern usw.) |
==Entwicklerprozesse (Prozesse des GUI) == | ==Entwicklerprozesse (Prozesse des GUI) == | ||
− | * Entgegennehmen und visuelles Bearbeiten der Benutzereingaben | + | * Entgegennehmen und visuelles Bearbeiten der [[DGLGUI_Pflichtenheft/Benutzereingaben|Benutzereingaben]] |
− | * Benutzereingaben an die aufrufende Anwendung/ans Script weiterleiten (Ereignisse) | + | * 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 | |
− | * Funktionen zum Verwalten | ||
=Produktdaten= | =Produktdaten= | ||
Zeile 94: | Zeile 84: | ||
Hier ist pro Standard-Element (Edit, Scrollbar, Window, ...) zu definieren, welche Daten nötig sind | Hier ist pro Standard-Element (Edit, Scrollbar, Window, ...) zu definieren, welche Daten nötig sind | ||
− | |||
− | |||
=Produktleistungen= | =Produktleistungen= | ||
Zeile 105: | Zeile 93: | ||
=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= | ||
Zeile 114: | Zeile 159: | ||
Für den Betrieb gelten folgende technische Voraussetzungen: | Für den Betrieb gelten folgende technische Voraussetzungen: | ||
− | * ein PC mit VGA-fähigem Bildschirm | + | * 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 | * 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= | ||
− | + | Mindestens Delphi 5 oder Free Pascal 2.0.0. Für kleinere Versionen wird keine Unterstützung garantiert. | |
− | =Gliederung in | + | =Gliederung in Teilprodukte= |
Nicht vorgesehen. | 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
Inhaltsverzeichnis
- 1 Zielbestimmungen
- 2 Produkteinsatz
- 3 Produktübersicht
- 4 Produktfunktionen
- 5 Produktdaten
- 6 Produktleistungen
- 7 Qualitätsanforderungen
- 8 Benutzungsoberfläche
- 9 Technische Produktumgebung
- 10 Spezielle Anforderungen an die Entwicklungs-Umgebung
- 11 Gliederung in Teilprodukte
- 12 ANHANG: Technische Spezifikation
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
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)
- Entgegennehmen und visuelles Bearbeiten der Benutzereingaben
- Benutzereingaben an die aufrufende Anwendung/ans Script weiterleiten (Ereignisse)
- Änderungen von GUI-Eigenschaften durch die aufrufende Anwendung/das Script und Anzeige am Bildschirm
- Funktionen zum Verwalten der grafischen Elemente bereitstellen
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