-
TECHNISCHES
GEBIET
-
Die
Erfindung betrifft die Ableitung einer Objektklasse durch Erbe,
Instanzierung oder Klonen in einem Datenverarbeitungssystem. Sie
findet auf jedes Rechnerprogramm, das eine objektorientierte Sprache
verwendet, wie etwa jene, die zurzeit unter dem Namen C++ oder Java® bekannt
ist, sowie auf jedes Datenverarbeitungssystem Anwendung. Sie hat
ein Verfahren zum Ableiten einer Klasse von Objekten oder eines
Objekts durch Erben, Instanzierung oder Klonen, sowie das Datenverarbeitungssystem,
das dieses Verfahren ausführt, zum
Gegenstand.
-
STAND DER
TECHNIK
-
Eine
Objektklasse umfasst als Elemente wenigstens ein Attribut und wenigstens
eine Methode. Als Beispiel wird eine Klasse "drucken" genommen, die sich in einem Datenverarbeitungssystem
auf das Drucken von Bankkontoauszügen von Kunden bezieht. Die
Klasse kann als erstes Attribut die Verteilerliste entsprechend
einer Gesamtheit von Kriterien, wie etwa den Betrag des Girokontos
jedes Kunden, und als zweites Attribut die Anzahl der Exemplare
des Auszugs für
jeden Kunden haben. Die Klasse kann außerdem eine erste Methode "drucken", die einen Zieldrucker
als Parameter hat, und eine zweite Methode "anzeigen", um die laufenden Druckvorgänge optisch
anzuzeigen, besitzen.
-
Das
Duplizieren einer Klasse erfolgt, indem auf die Attribute und Methoden
der Klasse gezeigt wird (siehe z. B.
US
5 710 926 ). Folglich sind die Attribute und Methoden der
Klasse der Ursprungsklasse und der duplizierten Klasse gemeinsam,
so dass die beiden Klassen nicht voneinander unabhängig sind.
Um sie voneinander unabhängig
zu machen, wenn durch Erbe eine neue Klasse geschaffen wird, und/oder
um eine Klasse zu instanzieren und/oder ein Objekt zu klonen, ist
es folglich nicht nur erforderlich, die Instanz der Klasse zu duplizieren,
son dern es müssen
alle Instanzen, die direkt oder indirekt mit der Instanz der Klasse
in Verbindung stehen, dupliziert werden. In dem weiter oben angegebenen
Beispiel ist es folglich erforderlich, zunächst die Klasse "drucken", die zwei Attribute,
die zwei Methoden und den Parameter der ersten Methode zu duplizieren.
Im Allgemeinen müssen
Schleifen abgearbeitet werden, um die gesamte Baumstruktur der Instanzen, die
die Klasse oder das Objekt bilden, zu duplizieren.
-
Die
Nachteile der derzeitigen Ableitung einer Objektklasse sind nun
offensichtlich. Sie erfordert langwierige Operationen und viel Speicherplatz.
Beispielsweise erfordert die derzeitige Duplikation, die terminalen Knoten
zu ermitteln, sie nacheinander zu duplizieren, die Eltern jedes
dieser Knoten zu ermitteln, sie zu duplizieren, die duplizierten
terminalen Knoten mit den entsprechenden Eltern, die dupliziert
worden sind, in Verbindung zu bringen, und so weiter bis zur Wurzel.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Ein
Ziel der Erfindung ist eine schnelle Ausführung einer Ableitung einer
Klasse.
-
Ein
zweites Ziel ist, nicht viel Speicherplatz zu benötigen.
-
Die
Erfindung hat ein Verfahren zum Ableiten einer Klasse und/oder eines
Objekts, die einen gegebenen Namen haben, zum Gegenstand, wobei
das Verfahren dadurch gekennzeichnet ist, dass es darin besteht, eine
Kopie des gesamten Baums der Klasse oder des Objekts zu machen,
die Kopie des Baums zu speichern und den Namen zu ändern, um
der gespeicherten Kopie einen Namen zu geben.
-
Vorzugsweise
wird die Kopie durch eine Serialisierung des die Klasse oder das
Objekt repräsentierenden
Baums gemacht, indem der Baum in einen Speicher kopiert wird, und
die Speicherung der Kopie des Baums darin besteht, dass sie erneut
in den Speicher kopiert wird.
-
Daraus
folgend hat die Erfindung außerdem
einen Aufzeichnungsträger,
wie etwa eine Magnetdiskette oder eine CD-ROM, die eine Software
für die
Ausführung
des Verfahrens enthält,
zum Gegenstand.
-
BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
eine Übersichtsdarstellung
eines Datenverarbeitungssystems, das das Verfahren der Erfindung
für die
Ableitung einer Klasse oder eines Objekts ausführt;
-
2 ist
ein Fenster, das einem Software-Verfasser zur Ausführung des
Verfahrens der Erfindung dient;
-
3 ist
eine Dialogbox, die dem Software-Verfasser dazu dient, auf dynamische
Weise eine Klasse für
die von dem Anwender gewünschte
Nutzung des Systems zu erzeugen;
-
4 ist
eine Dialogbox, die dem Software-Verfasser dazu dient, ein Attribut
der in 3 gezeigten Klasse zu definieren;
-
5 ist
eine Dialogbox, die dem Software-Verfasser dazu dient, eine Methode
der in 3 gezeigten Klasse zu definieren;
-
6 ist
eine Dialogbox, die dem Software-Verfasser dazu dient, einen Parameter
einer in 5 definierten Methode zu definieren;
-
7 ist
eine Übersichtsdarstellung
der Struktur der Klasse, wie sie mittels der Dialogboxen, die in 3 bis 6 gezeigt
sind, definiert worden ist, als Baum;
-
8 ist
eine Übersichtsdarstellung,
die ein Verfahren zum Ableiten der in 7 gezeigten
Klasse veranschaulicht;
-
9 und 10 sind
Dialogboxen, die dem Software-Verfasser dazu dienen, eine Klasse
zu definieren, die unter Anwendung des in 8 veranschaulichten
Verfahrens abgeleitet ist;
-
11 und 12 veranschaulichen
zwei Schnittstellen, die dem Anwender jeweils für die Steuerung des in 1 gezeigten
Systems dienen;
-
13 ist
ein Fenster, das dem Anwender für
die Benutzung der in 1, 11 und 12 veranschaulichten
Schnittstellen gezeigt wird.
-
AUSFÜHRLICHE
BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
DER ERFINDUNG
-
1 veranschaulicht
ein Datenverarbeitungssystem 10, das von einem Anwender
U mit Hilfe einer Steuerschnittstelle 11 betrieben wird.
Das System 10 kann ein beliebiges System sein. Das gezeigte
System 10 enthält
eine Datenverarbeitungsanlage 1, die wenigstens eine Maschine
umfasst, in dem dargestellten Beispiel die zwei Maschinen 2a und 2b.
Jede gezeigte Maschine besitzt bekanntermaßen wenigstens einen Prozessor
A, der über
einen Bus B an einen Speicher 3 angeschlossen ist. Anerkanntermaßen kann
der Speicher lokal oder verteilt sein, oder die Maschinen können Knoten
eines Netzwerks in der Anlage 1 bilden. In jedem Speicher 3 sind
Softwaremittel gespeichert, im Besonderen ein oder mehrere Betriebssysteme 4.
Um die Vorteile der Erfindung deutlicher herauszuarbeiten wird sie
als ein heterogenes System angesehen, das einen Fall darstellt,
der schwer zu managen ist. Es wird angenommen, dass die zwei Maschinen 2 unter
zwei Betriebssystemen, 4a bzw. 4b, verschiedener
Art oder verschiedener Version arbeiten, beispielsweise unter einem
Betriebssystem vom herstellereigenen Typ und unter einem Betriebssystem
vom offenen Typ, beispielsweise jenem, das unter einem der eingetragenen
Warenzeichen UNIX oder Windows NT bekannt ist. Die Datenverarbeitungsanlage 1 verfügt außerdem über Datenbankmittel,
Datenbank 5 genannt, die eine oder mehrere lokale oder
entfernte Datenbanken umfassen können.
Außerdem
besitzen die Maschinen 2 jeweils eine Eingabe/Ausgabe-Schnittstelle
C, die an den Bus B angeschlossen ist. Die Eingabe/Ausgabe-Schnittstellen C
der beiden Maschinen sind miteinander sowie mit der Datenbank C
verbunden.
-
Die
Steuerschnittstelle 11 umfasst ein Steuermodul 12,
ein Entwicklungsmodul 13, einen Schnittstellengenerator 14 und
eine Schnittstellenbasis 15. Das Modul 12 ist
bidirektional an die Datenverarbeitungsanlage 1 angeschlossen.
Auf die gleiche Weise kann auch das Modul 13 an die Datenverarbeitungsanlage 1 angeschlossen
sein. Die Schnittstellenbasis 15 ist bidirektional an die
Module 12 und 13 sowie an den Generator 14 angeschlossen.
Der Generator 14 ist zudem so angeschlossen, dass er mittels
des Moduls 13 gesteuert werden kann. Das Steuermodul 12 dient
dem Anwender U dazu, die Daten des Systems 10 zu steuern
und zu verarbeiten. Das Entwicklungsmodul 13 dient einem
Software-Verfasser C, einem weiteren Anwender der Schnittstelle 11,
der jedoch ein Informatikspezialist ist. Die beiden Anwender U und
C haben Konsolen 16 bzw. 17, die an die Module 12 bzw. 13 angeschlossen
sind.
-
Kurz,
der Anwender U definiert das, was erforderlich ist, um die Funktionsweise
des Unternehmens zu verstehen und zu verbessern, und unterbreitet
seine Anforderungen dem Software-Verfasser C. Der Software-Verfasser
C erzeugt mittels seines Moduls 13 Softwareobjekte, die
die Anforderungen des Anwenders U erfüllen, und schickt sie zum Generator 14,
damit sie in Schnittstellen 18 umgewandelt werden (11 und 12),
die seinen Anforderungen entsprechen und die Steuerungen des Systems
in einer Sprache ausdrücken,
die für
ihn verständlich
ist. Diese Schnittstellen dienen einem Anwender zur Erstellung von
Dokumenten und werden Dokumentenschnittstellen genannt.
-
Der
Anwender U sei beispielsweise ein Leiter einer Bankfiliale und kein
Informatikfachmann. Es sei beispielsweise angenommen, dass der Anwender
U die Datenverarbeitungsanlage 1 der Bank konsultieren möchte, um
Anfragen zu stellen, die eine Liste von Studenten, die Kunden der
Filiale sind, liefern, um für
diese personalisierte Informationsbriefe, Einladungsbriefe und Mahnungen
zu drucken. Der Anwender U unterbreitet seine Anforderungen beispielsweise
in einer Zusammenkunft dem Software-Verfasser C. Der Software-Verfasser
schreibt diese Anforderungen um, wobei er in einem ersten Schritt
das Modul 13 benutzt, um Objekte und Klassen von Objekten,
die von diesen Anforderungen betroffen sind, zu erzeugen, zu modifizieren und/oder
zu beseitigen. Um beispielsweise die vorerwähnten Anforderungen des Anwenders
U zu erfüllen, wird
der Software-Verfasser C eine Klasse "drucken" erzeugen, mit: einem ersten Attribut "Verteilerliste" entsprechend einer
Gesamtheit von Kriterien, hier den Studenten der Filiale; einem
zweiten Attribut "Anzahl
der Exemplare" (Ganzzahl);
einer ersten Methode "drucken", die den Zieldrucker
als Parameter hat; und einer zweiten Methode "anzeigen der Druckvorgänge", um den Ablauf des
Druckens bekannt zu machen. Die von dem Software-Verfasser erzeugten
Objekte und Klassen werden in der Schnittstellenbasis 15 gespeichert.
Die endgültige
Umschrift der Anforderungen des Anwenders U durch den Software-Verfasser C ist nur
in den Objekten enthalten, die vorher direkt erzeugt worden sind
oder die Instanzen von zuvor definierten Klassen sind. Diese Objekte
sind in der Basis 15 enthalten, die in dem veranschaulichten
Beispiel in der Steuerschnittstelle 11 enthalten ist, sich
aber auch außerhalb
der Schnittstelle 11 in der Datenverarbeitungsanlage 1 befinden könnte. Die
Objekte werden in Dokumentenschnittstellen umgewandelt, die dem
Anwender U präsentiert
werden, damit sie ihm dazu dienen, Steuerungsdokumente zu erstellen,
die seine Anforderungen erfüllen.
-
Als
Erstes wird das Modul 13 vorgestellt. Es benutzt zwei Software-Werkzeuge 20 und 30,
die ein Verfahren zur dynamischen Erzeugung von Klassen bzw. ein
Verfahren zur Ableitung von Klassen und Objekten ausführen. Das
Werkzeug 20 zur dynamischen Erzeugung von Klassen wird
nun vorgestellt.
-
2 veranschaulicht
ein Beispiel für
einen Bildschirm 21, den die Konsole 17 anzeigt,
um als Schnittstelle zwischen dem Software-Verfasser C und dem Modul 13 zu
dienen. Der Bildschirm 21 hat eine Menüleiste 22, die insbesondere
die Menüs "Klassen", "Objekte", "Suchen" und "Exportieren an U" beinhaltet. Das
Menü "Klassen" ermöglicht,
auf dynamische Weise, durch Erben oder nicht, Objektklassen zu erzeugen.
Es ermöglicht
außerdem,
eine Klasse zu öffnen,
um sie gegebenenfalls zu modifizieren, sie zu speichern oder zu
schließen.
Das Menü "Objekte" ermöglicht,
die zuvor definierten Klassen zu instanzieren, um Objekte zu erzeugen, die
anschließend
geklont werden können.
Wie bei den Klassen ist es möglich,
ein Objekt zu öffnen,
es zu modifizieren, auf der Platte zu speichern und zu schließen. Mit
dem Werkzeug 20 kann der Software-Verfasser C die Steuerungen
definieren, die in den beiden Menüs vorkommen, derart, wie sie
beispielsweise in jenen des Bildschirms 21 gezeigt sind.
Das veranschaulichte Menü "Klassen" enthält die Steuerungen "Neue Klasse", "Geerbte neue Klasse", "Öffnen einer Klasse", "Löschen einer Klasse", "Speichern der Klasse", "Speichern der Klasse
unter..." (Save
the class as...) und "Schließen der
Klasse". Das Menü "Objekte enthält die Steuerungen "Neues Objekt der
Klasse", "Klonen eines Objekts", "Öffnen eines Objekts", "Löschen eines Objekts", "Speichern des Objekts", "Speichern des Objekts
unter..." und "Schließen des
Objekts".
-
Das
Werkzeug 20 führt
ein Verfahren zur dynamischen Erzeugung einer Objektklasse aus.
Das Verfahren wird von dem Entwicklungsmodul 13 automatisch
ausgelöst,
wenn der Software-Verfasser C die Steuerung "Neue Klasse" des Menüs "Klassen" des Fensters 22 in 2 aktiviert.
Das Verfahren der automatischen Erzeugung einer Klasse besteht darin,
eine globale generische Klasse "GenericClass" zu erzeugen, die zwei
mögliche
Elemente hat, wovon das eine sich auf wenigstens ein Attribut bezieht
und das andere sich auf wenigstens eine Methode bezieht, wobei wenigstens
eines der zwei Elemente eine Instanz einer generischen Klasse ist,
und die globale generische Klasse zu instanzieren, um die Objektklasse
zu erhalten. Bei dem dargestellten Werkzeug 20 sind zwei
generische Klassen "GenericAttribute" und "GenericMethod" zwei entsprechenden
Elementen der globalen generischen Klasse "GenericClass" zugeordnet. Außerdem ist dann, wenn eine
Methode wenigstens einen Parameter enthält, der nicht unveränderlich
ist, dieser Parameter selbst eine Instanz einer entsprechenden generischen
Klasse "GenericParameter".
-
Im
Allgemeinen sind die vier auf diese Weise erzeugten generischen
Klassen für
den Software-Verfasser C nicht sichtbar. In dem veranschaulichten
Beispiel werden sie dem Software-Verfasser C zur Verfügung gestellt,
wenn er eine Steuerung in den Menüs "Klassen" und "Objekte" ausführt. So wird eine ge nerische
Klasse als eine Klasse definiert, die dem Software-Verfasser C ermöglicht,
eine neue Klasse zu erzeugen, indem er eine Instanz einer globalen
generischen Klasse erzeugt. Da die Erzeugung von Instanzen in allen
Sprachen dynamisch ist, wird die Erzeugung einer Klasse für den Software-Verfasser
C ebenfalls dynamisch. Genauso entspricht, da ein Objekt bekanntermaßen eine
neue Instanz einer Klasse ist, die Erzeugung eines Objekts dann
auch der Erzeugung einer Kopie dieser Klasse, d. h. einer neuen
Instanz einer globalen generischen Klasse. Folglich wird das durch
das Werkzeug 20 ausgelöste
Verfahren auch ausgelöst,
wenn der Software-Verfasser C die Steuerung "Neues Objekt der Klasse" in dem Menü "Objekte" des Fensters 22 in 2 aktiviert.
Das Verfahren wird nun in der Weise veranschaulicht, wie es sich
dem Software-Verfasser
C mittels des Werkzeugs 20 darstellt.
-
3 veranschaulicht
ein Beispiel für
die Dialogbox 23, die das Werkzeug 20 öffnet, wenn
der Software-Verfasser C auf die Schaltfläche "Neue Klasse" des Menüs "Klassen" klickt. Der Software-Verfasser C benutzt
die Dialogbox 23, um alle Daten bezüglich einer neuen Klasse, die
nicht erbt, zu erfassen. Es ist bekannt, dass die Daten die Attribute
und die Methoden der neuen Klasse sind.
-
Die
gezeigte Box 23 enthält
zur Erfassung der Daten:
- – ein Textfeld "Name der Klasse",
- – ein
Textfeld "Identifikation
der Klasse (Class Id)",
- – einen
Textbereich "Beschreibung
der Klasse",
- – eine
Liste "Methoden
der Klasse" und
- – eine
Liste "Attribute
der Klasse".
-
Außerdem enthält die Box 23 die
sechs Schaltflächen,
die mit dickem Strich eingerahmt sind:
- – "Modifizieren der
Methode"
- – "Löschen der Methode",
- – "Hinzufügen einer
Methode",
- – "Modifizieren des
Attributs",
- – "Löschen des Attributs" und
- – "Hinzufügen eines
Attributs".
-
Wenn
diese Dialogbox für
gültig
erklärt
ist, hat sie die Erzeugung einer Instanz einer globalen generischen
Klasse, der so genannten "GenericClass", zur Folge. Die
globale generische Klasse des in 3 veranschaulichten
Beispiels hat mehrere Attribute.
-
Das
erste Attribut ist ein Name, der aus einer Zeichenkette gebildet
ist und die Benennung der Klasse angibt. Es wird geschrieben, indem
das Feld "Name der
Klasse" der Box 23 ausgefüllt wird.
-
Das
zweite Attribut ist eine Identifikation der Klasse, die aus einer
Zeichenkette gebildet ist und ermöglicht, die Klasse oder das
Objekt in dem System eindeutig zu identifizieren. Dieses Attribut
wird geschrieben, indem das Feld "Identifikation der Klasse" in der Box 23 ausgefüllt wird,
wobei beispielsweise das Datum, die Uhrzeit der Erzeugung, eine
Zufallszahl, die eine Zugangsberechtigung bildet, usw. angegeben
werden.
-
Das
dritte Attribut ist eine Beschreibung, die aus Text gebildet ist,
der den Grund für
die Existenz der Klasse beschreibt. Er wird geschrieben, indem der
Bereich "Beschreibung
der Klasse" ausgefüllt wird.
-
Das
vierte Attribut ist eine "Attribute" genannte Tabelle,
welche die Attribute der Klasse referenziert. Die Attribute der
Klasse sind selbst Instanzen einer generischen Attributklasse, als "GenericAttribute" bezeichnet, die
als Attribute hat:
- – den Namen des Attributs,
- – die
Beschreibung des Attributs,
- – entweder
den Typ des Attributs oder die möglichen
Werte des Attributs,
- – den
voreingestellten Wert des Attributs, der bei der Erzeugung der Klasse "GenericAttribute" gegeben wird, und
- – den
tatsächlichen
Wert des Attributs, der für
den Software-Verfasser C nicht ersichtlich ist und der folglich bei
der Erzeugung der Klasse nicht definiert wird. Er wird von dem Anwender
U auf die später
beschriebene Art und Weise definiert.
-
Beispielsweise
ist die Klasse "Attributs[i]" eine Instanz von "GenericAttribute" und referenziert
das i-te Attribut der von dem Software-Verfasser C definierten Klasse.
-
4 veranschaulicht
eine Dialogbox 24 des Werkzeugs 20 zur Bildung
des vierten Attributs von "GenericClass". Diese Box wird
aus der Box 23 heraus geöffnet, beispielsweise indem
die Klasse, die durch Instanzieren der globalen generischen Klasse "GenericClass" abgeleitet wurde,
mit "Class1" bezeichnet wird und
die Schaltfläche "Hinzufügen eines
Attributs" aktiviert
wird. Die Box 24 enthält:
- – ein
Textfeld "Name des
Attributs",
- – einen
Textbereich "Beschreibung
des Attributs",
- – ein
Textfeld "Typ des
Attributs",
- – einen
Textbereich für "Mögliche Werte des Attributs",
- – ein
Textfeld "Voreingestellter
Wert des Attributs" und
- – ein
Textfeld "Tatsächlicher
Wert des Attributs",
in 4 schraffiert dargestellt, um einen Hinweis darauf zu
geben, dass es für
den Software-Verfasser C nicht sichtbar ist.
-
Genauso
genügt
es, um ein Attribut zu modifizieren, das Attribut aus der Attributsliste
von 3 auszuwählen
und die Schaltfläche "Modifizieren des
Attributs" zu aktivieren,
um die Dialogbox 24 von 4 zu erhalten
und die Daten, die in der Box 24 erscheinen, zu modifizieren.
-
Da
es das erste Attribut ist, wird ihm der Name "Attribute 1" gegeben, und es werden die übrigen Felder
ausgefüllt.
Die Gültigkeitserklärung der
Dialogbox 24 hat die Erzeugung einer Instanz der generischen Klasse "GenericAttribute" zur Folge. Der Name "Attribute1" wird, wie dargestellt
ist, in die Liste der Attribute von 3 eingetragen.
-
Das
fünfte
Attribut der generischen Klasse "GenericClass" ist eine "Methoden" genannte Tabelle,
welche die Methoden der Klasse referenziert. Diese Methoden sind
in dem veranschaulichten Beispiel ebenfalls Instanzen einer generischen
Klasse von Methoden, "GenericMethod" genannt. Eine Methode
ist durch die folgenden Attribute definiert:
- – ihren
Namen,
- – ihre
Beschreibung,
- – ihren
Rückgabetyp,
- – ihre
Parameter und
- – ihr
Befehlsmakro.
-
5 veranschaulicht
eine Dialogbox 25 des Werkzeugs 20 zur Bildung
es fünften
Attributs von "GenericClass". Diese Box wird
aus der Box 23 heraus geöffnet, beispielsweise, indem
die Schaltfläche "Hinzufügen einer
Methode" aktiviert
wird. Die Box 25 enthält:
- – ein
Textfeld "Name der
Methode",
- – einen
Textbereich "Beschreibung
der Methode",
- – ein
Textfeld "Rückgabetyp
der Methode",
- – eine
Liste der "Parameter
der Methode",
- – eine
Schaltfläche "Hinzufügen",
- – eine
Schaltfläche "Modifizieren" und
- – eine
Schaltfläche "Löschen".
-
Da
es die erste Methode ist, wird ihr beispielsweise der Name "Methode1" gegeben, und es
werden die übrigen
Felder ausgefüllt.
Die Gültigkeitserklärung der
Dialogbox 25 hat die Erzeugung einer Instanz der generischen
Klasse "GenericMethod" zur Folge. Der Name "Methode1" wird, wie dargestellt
ist, in die Liste der Methoden von 3 eingetragen.
-
Die
generische Klasse "GenericMethod" enthält neben
den Attributen der Methode eine Tabelle "Parameter", welche die Parameter der Methode referenziert.
Die Tabelle kann leer sein, wenn die generische Klasse keinen zu
bestimmenden Parameter enthält,
oder kann nicht existieren, wenn diese generische Klasse nur dazu
vorgesehen ist, keinen bestimmbaren Parameter zu haben, oder wenn
sie nur unveränderliche
oder im Voraus festgelegte Parameter hat. Die Parameter in der Tabelle
sind ebenfalls Instanzen einer generischen Klasse "GenericParameter". Ein Parameter einer
Methode ist durch seine folgenden Attribute definiert:
- – seinen
Namen,
- – seine
Beschreibung,
- – entweder
seinen Typ oder seine möglichen
Werte,
- – seinen
voreingestellten Wert und
- – seinen
tatsächlichen
Wert, der für
den Software-Verfasser C nicht ersichtlich ist.
-
Wenn
sich beispielsweise der Parameter auf die Anzahl von zu druckenden
Seiten bezieht, wird der voreingestellte Wert 1 sein, wobei jedoch
der Anwender U einen anderen tatsächlichen Wert angeben können wird,
beispielsweise 3, um drei Exemplare der zu druckenden Seiten zu
erhalten.
-
6 veranschaulicht
eine Dialogbox 26 des Werkzeugs 20 für das Ausfüllen der
Parametertabelle von "GenericMethod" in 5.
Die Box 26 wird aus der Box 25 heraus geöffnet, indem
die Schaltfläche "Hinzufügen" aktiviert wird.
Die Box 26 enthält:
- – ein
Textfeld "Name des
Parameters",
- – einen
Textbereich "Beschreibung
des Parameters",
- – ein
Textfeld "Parametertyp",
- – ein
Textfeld "Mögliche Werte
des Parameters",
- – ein
Textfeld "Voreingestellter
Wert des Parameters",
und
- – ein
Textfeld "Tatsächlicher
Wert des Parameters",
in 5 schraffiert dargestellt, um einen Hinweis darauf zu
geben, dass dieses Feld für
den Software-Verfasser
C nicht sichtbar ist.
-
Da
es der erste Parameter ist, wird ihm beispielsweise der Name "Param1" gegeben, und es
werden die übrigen
Felder ausgefüllt.
Die Gültigkeitserklärung der
Dialogbox 26 hat die Erzeugung einer Instanz der generischen
Klasse "GenericParameter" zur Folge. Der Name "Param1" wird in die Liste
der Parameter von 5 eingetragen werden.
-
Durch
das Ausfüllen
der Dialogbox 23 von 3 wird die
Klasse "Classe1" auf dynamische Weise
erzeugt. Sie kann für
gültig
erklärt
werden, indem sie mit der Steuerung "Speichern der Klasse" oder "Speichern der Klasse unter..." gesichert wird.
-
7 veranschaulicht
die Baumstruktur 27a der Klasse "Classe1", die sich infolge der Gültigkeitserklärung der
Box 23 ergibt. In 7 ist die
Klasse "Classe1" eine Instanz der
globalen generischen Klasse "GenericClass" und hat ein Attribut "Attribute1" sowie eine Methode "Methode1", die ihrerseits
einen Parameter "Param1" besitzt, wobei alle
drei jeweils Instanzen von drei generischen Klassen sind. Selbstverständlich könnte eine
andere Klasse, Instanz der globalen generischen Klasse "GenericClass", mehrere Instanzen
aus jeder der drei generischen Klassen "GenericAttribute", "GenericMethod" und "Generic Parameter" haben. Diese Baumstruktur
ermöglicht,
jederzeit Elemente der Klasse (Attribute oder Methoden) dynamisch
zu modifizieren, hinzuzufügen
und zu löschen.
-
Es
ist bekannt, dass ein Objekt eine Instanz einer Klasse ist. Das
Aktivieren der Steuerung "Neues Objekt
der Klasse" in dem
Menü "Objekte" des Fensters 21 in 2 zeigt
auf der Konsole 17 des Software-Verfassers C eine (nicht
gezeigte) Dialogbox an, welche die Liste aller schon definierten
Klassen enthält. Der
Software-Verfasser C kann daraus eine auswählen, die die Klasse des neuen
Objekts sein wird. Bei einem Objekt werden eventuell Attributen
Werte gegeben. Diese Werte werden seine Identität und seinen Zustand anzeigen.
-
Außerdem hat
die globale generische Klasse "GenericClass", wie sie in 3 in
Erscheinung tritt, vorzugsweise ein zusätzliches Attribut, aus einer
logischen "0" oder "1" bestehend, das angibt, ob die Instanz
der derzeit gültigen
generischen Klasse eine Klasse oder ein Objekt repräsentiert.
In dem veranschaulichten Beispiel ist der logische Wert "1", um anzugeben, dass der Software-Verfasser
eine Klasse erzeugt. Die logische Variable nimmt in Reaktion auf
die Steuerung "Neue
Klasse" oder "Neues Objekt der
Klasse", die von
dem Software-Verfasser C in dem Fenster 22 in 2 aktiviert
wird, automatisch den entsprechenden Wert an. In dem gewählten Beispiel
ist dieses Attribut für
den Software-Verfasser C nicht sichtbar und ist folglich schraffiert dargestellt.
-
Zum
anderen ist das Menü "Suchen" in dem Fenster 21 in 2 dem
Software-Verfasser C sehr nützlich,
um eine leistungsstarke Suche in der Basis 15 durchzuführen, um
dort Klassen und Objekte aufzufinden, die entsprechend einer Liste
von Kriterien, die er festlegt, erzeugt sind. Der Software-Verfasser
C kann beispielsweise eine neue Klasse durch Erben aus der Klasse,
die er gefunden hat, erzeugen, statt von null anzufangen und wiederholt
eine Arbeit zu machen, die schon erledigt ist.
-
Allgemeiner:
Die Dialogboxen 23 bis 26 dienen folglich dem
Software-Verfasser zur Erzeugung der globalen generischen Klasse
bzw. der generischen Klassen, die sie bilden können. Die veranschaulichten
Dialogboxen definieren zwar diese Klassen vollständig, jedoch sind nicht alle
gezeigten Attribute, Typen, Textfelder und Textbereiche erforderlich.
Insbesondere sind die Darstellungen zu einem Zweck, der von dem
soeben beschriebenen Verfahren zur automatischen Erzeugung von Klassen
verschieden ist, veranschaulicht.
-
Die
Beschreibung wird sich nun auf das Werkzeug 30 zum Ableiten
einer Klasse oder eines Objekts beziehen, wobei das Werkzeug 30 in
dem Modul 13 der Steuerschnittstelle 11 von 1 enthalten
ist.
-
Das
Erben mit der Steuerung "Geerbte
neue Klasse", das
Instanzieren mit der Steuerung "Neues
Objekt der Klasse" und
das Klonen mit der Steuerung "Klonen
eines Objekts" haben
gemeinsam, dass sie die dynamische Erzeugung einer Kopie der Klasse
(bei dem Erben oder Instanzieren) oder einer Kopie des Objekts (bei
dem Klonen) erfordern.
-
7 veranschaulicht
zudem einen Baum 27b einer Klasse "ClasseD1", die durch Duplizieren von "Classe1" erhalten wird. Diese
Figur zeigt allgemein, dass das Duplizieren der Instanz von "GenericClass" nicht genügt, denn
die duplizierte Klasse "ClasseD1" wird auf die gleichen
Instanzen "GenericMethod" und "GenericAttribute" der Instanz "Classe1" von "GenericClass" zeigen. Beispielsweise
geht aus 7 hervor, dass "Attribute1" zwei Klassen gemeinsam
ist, obwohl die beiden Klassen voneinander verschieden und unabhängig sein
sollten. Um eine Klasse oder ein Objekt abzuleiten, d. h. um durch
Erben eine neue Klasse zu erzeugen, um eine Klasse zu instanzieren
oder um ein Objekt zu klonen, ist es folglich nicht nur erforderlich, die
Instanz von "GenericClass" zu duplizieren,
sondern es muss jede direkt oder indirekt von der Instanz von "GenericClass" referenzierte Instanz
dupliziert werden.
-
Andererseits
benutzen die Softwareentwickler eine Serialisierungstechnik, die
auf zahlreiche Sprachen wie etwa Java oder C++ Anwendung findet.
Die Serialisierung ermöglicht,
jedes Objekt auf einem Datenaufzeichnungsträger, beispielsweise auf einer
Platte, zu speichern. Wenn beispielsweise ein erstes Objekt Objekte
referenziert, die ihrerseits weitere Objekte referenzieren usw.,
genügt
es, das erste Objekt mit dem Serialisierungsverfahren auf die Platte
zu schreiben, um automatisch die Baumstruktur aller Objekte, die
von dem ersten Objekt direkt oder indirekt referenziert werden,
in den Speicher zu speichern.
-
8 zeigt
schematisch das Prinzip des Verfahrens zum Ableiten einer Klasse "Classe1" oder eines Objekts.
Das Werkzeug 30 führt
dieses Verfahren aus. Das dargestellte Beispiel bezieht sich auf
die Erzeugung einer Klasse "ClasseD2" durch Erben von
der Klasse "Classe1", wie in 7 gezeigt
ist, wobei selbstverständlich
ist, dass das Verfahren in gleicher Art und Weise auf das Instanzieren
einer Klasse oder das Klonen eines Objekts angewendet werden kann.
Wie in 8 gezeigt ist, besteht das Ableitungsverfahren
aus einem ersten Schritt zum Serialisieren der Klasse "Classe1", indem sie auf eine
Platte D kopiert wird, beispielsweise auf die Festplatte einer Maschine 2a oder 2b der
Datenverarbeitungsanlage 1 von 1. Infolgedessen wird
die gesamte Baumstruktur 27a dieser Klasse, wie sie in 7 veranschaulicht
ist, dupliziert und auf der Platte gespeichert. Der zweite Schritt
besteht darin, die duplizierte Klasse, die auf der Platte D gespeichert
ist, auszulesen und in das Werkzeug 30, d. h. in den Schreib-Lese-Speicher,
in den das Programm des Werkzeugs geladen worden ist, zu laden.
Daraus geht die duplizierte Klasse "ClasseD2" hervor, die eine Baumstruktur 27a besitzt,
die der Baumstruktur 27a der Mutterklasse "Classe1" völlig gleich
ist, wobei sie jedoch von der Mutterklasse unabhängig ist. Die zwei Schritte
des Verfahrens können
beispielsweise durch die zwei folgenden Anweisungen in der Sprache
Java ausgeführt
werden:
FileStream.writeObjet(Classe1);
// um die von
Classe1 stammende Baumstruktur zu serialisieren
Neues Objekt
oder Neue Klasse = FileStream.readObject();
// um eine Kopie
von Classe1 zu erhalten
-
9 zeigt
eine Dialogbox 31 zur Verwendung des Werkzeugs 30.
Dieses Beispiel steht mit jenem von 9 im Zusammenhang,
das sich auf die Erzeugung einer Klasse durch Erben von einer anderen
Klasse bezieht. Bei Ausführung
der Steuerung "Geerbte
neue Klasse" des
Menüs "Klassen" von 3 erscheint
das Dialogfenster 31 der 9. Dieses
Fenster enthält
einen Textbereich "Name
der neuen Klasse" und
eine Liste von Klassen, unter denen die Mutterklasse ausgewählt werden
kann. In dem gewählten
Beispiel ist die Klasse "Classe1" der Liste gewählt worden,
wie in 9 schraffiert dargestellt ist. In dem vorhergehenden
Beispiel ist die geerbte Klasse "ClasseD2" genannt worden.
-
10 zeigt
ein Beispiel für
die Dialogbox 32, die das Ergebnis der Gültigkeitserklärung der
Box 31 ist. Die Box 32 ist der Box 23 von 3 ähnlich.
Folglich werden im Folgenden nur die Unterschiede angegeben. Die
in der Box 32 enthaltenen Daten werden von der Software
des Werkzeugs 30 automatisch ausgefüllt. Der Name der Klasse ist
jener, der von dem Software-Verfasser C in der Box 31 von 9 angegeben
worden ist. Die Box 32 enthält zudem eine Tabelle, die
das Elter oder die Eltern der Klasse, hier der Klasse "Classe1", die der Software-Verfasser
C aus der Liste der Box 31 ausgewählt hat, angibt. Die übrigen Daten
sind jenen der Box 23 ähnlich,
da die Baumstruktur 27c der Tochterklasse "ClasseD2" der Baumstruktur 27a der
Mutterklasse "Classe1" gleich ist. Mit
Hilfe der Schaltflächen
der Box 32 ist es möglich,
einfach die neue Klasse "ClasseD2" unabhängig von
der Mutterklasse "Classe1" weiterzuentwickeln.
-
Die
globale generische Klasse weist folglich ein weiteres Attribut auf, "parent" (Elter) genannt,
das eine Tabelle ist, welche Instanzen der globalem generischen
- (a) Wenn die geltende Instanz ein Objekt ist:
- – wenn
anerkanntermaßen "parent[0]" (beispielsweise
in der Tabelle angegeben, auf die sich die geltende Instanz bezieht)
ein Objekt ist, dann ist das geltende Objekt aus "parent[0]" geklont worden,
- – wenn "parent[0] eine Klasse
ist, dann ist das geltende Objekt eine Instanz von parent[0].
- (b) Wenn die geltende Instanz eine Klasse ist, dann ist "parent[0]"
- – entweder
leer, was bedeutet, dass die Klasse, ohne geerbt zu sein, mit der
Steuerung "Neue
Klasse" erzeugt
worden ist,
- – oder
eine Klasse (und kein Objekt) ist, was bedeutet, dass die geltende
Klasse mittels der Steuerung "Geerbte
neue Klasse" von "parent[0]" geerbt worden ist.
- c) Daraus ergibt sich durch Iteration, dass die Tabelle "parent" alle Vorfahren der
geltenden Instanz angibt.
-
Das
Verfahren geht klar aus 8, 9 und 10 hervor.
In Reaktion auf die erste Anweisung, die in 8 angegeben
ist, wird die Klasse "Classe1" serialisiert, wobei
sie auf die Platte D kopiert wird. In Reaktion auf die zweite Anweisung
wird die auf diese Weise serialisierte Klasse erneut im Speicher
gesichert, wobei jedoch Modifikationen der Attribute vorgenommen
werden, insbesondere des Namens der Klasse "ClasseD2" und der Tabelle "Parent" (Elter). Die beiden Baumstrukturen 27a und 27c sind
folglich gleich, wobei sie jedoch voneinander getrennt sind. Obwohl
sie beispielsweise die zwei gleichen Instanzen "Attribute1" haben, sind diese beiden Instanzen
tatsächlich
voneinander unterschieden im Speicher abgelegt und können unabhängig voneinander
existieren. Insbesondere können
sie jederzeit unterschiedlich modifiziert werden. Dieses Beispiel lässt außerdem erkennen,
dass für
die zwei anderen Steuerungen "Neues
Objekt der Klasse" und "Klonen eines Objekts" das Gleiche gilt.
-
Objekts
mit einem bestimmten Namen darin besteht, eine Kopie des gesamten
Baums der Klasse oder des Objekts zu machen, die Kopie des Baums
zu speichern und den Namen zu ändern,
um der gespeicherten Kopie einen Namen zuzuweisen. Es ist deutlich
geworden, dass die Kopie vorzugsweise durch eine Serialisierung
des Baums, der für
die Klasse oder das Objekt repräsentativ
ist, entsteht, indem der Baum in einen Speicher D kopiert wird,
wobei das Speichern der Kopie des Baums darin besteht, sie erneut
in den Speicher 30 zu kopieren. Außerdem ist auch deutlich geworden,
dass die Serialisierung, die in verschiedenen Sprachen erfolgen
kann, sich in der Sprache Java® besonders einfach durchführen lässt.
-
Es
wird nun die Funktion des Schnittstellengenerators 14 beschrieben.
Bisher ist deutlich geworden, wie der Software-Verfasser C mühelos Klassen
von Objekten und Objekte erzeugen kann, die den Anforderungen des
Anwenders U genügen.
Die auf diese Weise erzeugten Klassen und Objekte werden in der
Schnittstellenbasis 15 gespeichert. Jedoch bleiben diese
Klassen und Objekte für
den Anwender U unverständlich und
nicht verwertbar. Im Übrigen
ist dem Anwender U vorzugsweise der Zugriff auf diese verwehrt,
um ihre Integrität
für den
Software-Verfasser zu gewährleisten.
Der Generator 14 hat die Funktion, die auf diese Weise in
den Schnittstellen erzeugten Klassen und Objekte in die Form von
Dokumenten zu überführen, in
denen die Steuerungen, die den von dem Anwender U geäußerten Anforderungen
genügen,
für ihn
verständlich
sind. Um diese Schnittstellen von anderen Schnittstellen, die in
dieser Beschreibung mitenthalten sind, zu unterscheiden, werden
sie als Dokumentenschnittstellen bezeichnet. Die Sprache, die in
diesen Dokumentenschnittstellen benutzt wird, kann die gängige Sprache
und/oder eine auf die Fachkenntnisse des Anwenders zugeschnittene
Sprache sein.
-
Die
Funktionsweise des Generators 14 wird aus dem folgenden
Beispiel deutlich, welches das vorhergehende Beispiel, bei dem das
Unternehmen eine Bankfiliale, der Anwender U der Leiter der Filiale
und der Software-Verfasser C ein Informatiker der Bank ist, noch
einmal aufnimmt und klar und deutlich darstellt. Es wird angenommen,
dass der Direktor U (1) das Datenverarbei tungssystem der Bank konsultieren
möchte,
um Anfragen an die Datenbanken zu stellen, um eine Liste seiner
Kunden vorgegebenen Typs, in dem betrachteten Beispiel Studenten,
zu erhalten, und (2) personalisierte Briefe verschiedener Art wie
etwa Informationsbriefe, Einladungsbriefe und Mahnungen drucken
möchte.
Der Informatiker C übersetzt
die von dem Leiter gewünschte
Anwendung in zwei Fragen. In Beantwortung dieser erzeugt der Informatiker
im vorliegenden Fall mit Hilfe der zwei Werkzeuge 20 und 30 zwei
Klassen von Objekten: "konsultation_system" und "drucken". Er kann jede dieser
zwei Klassen direkt erzeugen, indem er die Steuerung "Neue Klasse" des Fensters 22 in 2 aktiviert,
oder indirekt durch Ableiten von einer ähnlichen Klasse. In diesem
letzteren Fall wird der Software-Verfasser C die Steuerung "Suchen" des Fensters 22 aktivieren,
um eine ähnliche
Klasse zu finden. Wenn es eine ähnliche
Klasse gibt, wählt
er sie aus der Liste der Klassen aus und kann sie ableiten, indem
er beispielsweise die Steuerung "Geerbte
neue Klasse" von 2 aktiviert
und Attribute und/oder Methoden modifiziert, hinzufügt oder
entfernt.
-
Der
Generator 14 führt
ein Verfahren zum Erzeugen einer Dokumentenschnittstelle für die Steuerung eines
Datenverarbeitungssystems durch einen Anwender aus, wobei die Steuerung
ausgehend von wenigstens einem Objekt, das Beschreibungen enthält, erfolgt.
Das Verfahren besteht darin, wenigstens teilweise die Beschreibungen
aus dem Objekt zu extrahieren und sie zu organisieren, um die Bedeutung
der Steuerung in eine für
den Anwender verständliche
Sprache zu übersetzen
und auf diese Weise aus der Schnittstelle eine Dokumentenschnittstelle
zu machen. Der Generator 14 umfasst folglich einen Extraktionsblock 14a und
einen Erzeugungsblock 14b. Der Extraktionsblock 14a entnimmt
der Schnittstellenbasis 15 das von dem Software-Verfasser
ausgewählte
Objekt und extrahiert aus diesem die Beschreibungen. Der Erzeugungsblock 14b organisiert
die Beschreibungen, um die Dokumentenschnittstelle zu bilden und
sie in der Schnittstellenbasis 15 zu speichern.
-
Anhand
des vorhergehenden Beispiels wird das Verfahren besser verstanden
worden sein. Unter den Attributen der Klasse "konsultation_system" des betrach teten Beispiels befinden
sich Methoden, die Steuerungen in Anspruch nehmen, die für die Gewinnung
von Daten aus dem System spezifisch sind, im vorliegenden Fall für die Datenbanken
des Systems 10. Aus diesen Methoden erzeugt der Software-Verfasser
C eine Methode "liste_studenten", derart, dass sie
als Beschreibung "Liste
aller Studenten mit" hat.
Der Ingenieur weist der Methode "liste_studenten" einen Rückkehrcode
vom Typ "Liste" zu, der als Beschreibung
die "Liste der Namen
und Adressen" hat.
Außerdem
weist er dieser Methode mit Hilfe der Dialogboxen 25 und 26,
die in 5 und 6 dargestellt sind, die drei
Parameter zu, die in der nachstehenden Tabelle A definiert sind.
-
-
Was
die Klasse "drucken" betrifft, so erzeugt
der Ingenieur C eine Methode "drucke_einladung" derart, dass er
eine Beschreibung wie etwa "Drucken
von Briefen an:" erhält, und
er weist dieser Methode einen Rückgabecode
vom Typ "void" zu, was bedeutet,
dass die Methode keinen Wert zurückgibt,
sowie zwei Parameter, derart, wie sie in der nachstehenden Tabelle
B definiert sind.
-
-
Diese
Tabellen geben an, wie die Dialogboxen 25 und 26 der 5 und 6 auszufüllen sind,
um die zwei Klassen "konsultation_system" und "drucken" mit Hilfe der Dialogbox 23 der 3 zu
bilden. Stärker verallgemeinert
wird die Dokumentenschnittstelle eines Objekts aus Beschreibungen
erzeugt, die diesem Objekt, seinen Attributen, seinen Methoden und
den Parametern der Methoden entsprechen.
-
Um
eine Dokumentenschnittstelle zu bilden aktiviert der Software-Verfasser
in dem Fenster 22 der 2 das Menü "Exportieren an U" Diese Steuerung
ruft den Generator 14 auf, um eine Dokumentenschnittstelle
des ausgewählten
Objekts zu erzeugen. Der Generator 14 extrahiert die Beschreibungen
des Objekts und organisiert sie, um die Dokumentenschnittstelle
zu bilden.
-
11 veranschaulicht
die Dokumentenschnittstelle 18a der Methode "liste_studenten". Es ist dort zu sehen,
dass die Dokumentenschnittstelle 18a durch Extrahieren
der Beschreibungen der Methode und ihrer Parameter, wie sie in der
Tabelle A definiert sind, erhalten worden ist. Im Besonderen sind
die Werte "26", "Paris" und "6000 Francs" voreingestellte
Werte, die in der Tabelle A angegeben sind. Im Allgemeinen umfasst eine
Dokumentenschnittstelle 18 Text und wenigstens ein mögliches
Feld 19, dessen anfänglicher
Inhalt aus voreingestellten Werten besteht und von dem Anwender
U modifiziert werden kann.
-
12 veranschaulicht
ein Beispiel für
eine Dokumentenschnittstelle 18b der Methode "drucke_einladung" der zuvor definierten
Klasse "drucken". Die Beispiele von 11 und 12 genügen dem
Fachmann, um zu verstehen, wie eine Dokumentenschnittstelle für ein beliebiges
Objekt zu konstruieren ist. Im Allgemeinen werden, wenn das Objekt
alle Beschreibungen enthält,
diese von dem Generator 14 vorzugsweise in der folgenden
Reihenfolge organisiert:
- 1. die Beschreibung
des Objekts (nicht gezeigt), beispielsweise "Drucken";
- 2. die Beschreibung jedes Attributs (nicht gezeigt), beispielsweise
die Nummer des Druckers, die Druckqualität, die Farbe der Tinte, das
Papier für
den Druck; dieser Beschreibung folgt ein Feld, das seinem Wert entspricht;
wenn das Attribut eine begrenzte Anzahl von Werten hat, ist dieses
Feld eine Liste, die alle möglichen
Werte enthält,
wobei nur der ausgewählte
Wert erscheint;
- 3. die Beschreibung jeder Methode (siehe Tabellen A und B, 11 und 12 sowie
den Text, der sich darauf bezieht); diese Beschreibung ist verknüpft und
vorzugsweise zusammenhängend
mit
- 3.1. der Beschreibung ihres Rückgabewertes, die mit einem
Feld, das diesen Wert repräsentiert,
verknüpft oder
zusammenhängend
ist; und
- 3.2. der Beschreibung jedes ihrer Parameter, die mit einem Feld
(19), das den Wert des Parameters repräsentiert, verknüpft oder
zusammenhängend
ist;
- 4. ein Mittel zum Steuern (siehe 12), das
angibt, wann die Methode auszuführen
ist, wobei die Ausführung
sofort oder zeitlich verschoben, entweder zu einem durch ein Datum
und eine Uhrzeit festgelegten Zeitpunkt oder im Anschluss an eine
andere definierte Methode erfolgen kann.
- 4.1. In dem ersten Fall ist eine Schaltfläche "Sofortige Ausführung" lautend.
- 4.2. In dem zweiten Fall enthält eine Schaltfläche eine
Aufschrift "um" (beispielsweise – drucken "um" –), gefolgt von einem Feld "Uhrzeit" und einem Feld "Datum", das mit einem Kalender
der Werktage des Jahres verknüpft
ist.
- 4.3. In dem dritten Fall enthält eine Schaltfläche eine
Aufschrift "Nach
Abschluss der Ausführung
von", gefolgt von
einem Feld, das ermöglicht,
eine Methode eines beliebigen Objekts auszuwählen, und bedeutet, dass die
Methode nach Abschluss der Ausführung
der ausgewählten
Methode ausgeführt
wird.
-
Der
Software-Verfasser C hat die Möglichkeit,
die Darstellung der Seite zu verändern,
Felder hinzuzufügen
oder zu entfernen, die zu berücksichtigenden
Beschreibungen auszuwählen
und den Text der Beschreibungen sowie Typen zu modifizieren, um
das Verständnis
des Dokuments zu erleichtern. Daraus folgt, dass ein und dasselbe
Objekt mehrere Dokumentenschnittstellen erzeugen kann, die an die
besonderen Bedürfnisse,
die in dem Objekt geboten werden, angepasst sind. Beispielsweise
ist vordem deutlich geworden, dass das Objekt "drucken" eine große Anzahl von Attributen und
Methoden haben kann, wodurch eine große Auswahl an Dokumentenschnittstellen
in Abhängigkeit
von an die Bedürfnisse
angepassten Attributen und Methoden geboten wird. Selbstverständlich ist
dem Software-Verfasser C anzuraten, die Dokumentenschnittstellen 18 mit
der Unterstützung
des Anwenders U zu erstellen.
-
Die
Beschreibung wird sich nun auf das Steuermodul 12 konzentrieren,
das dem Anwender U dazu dient, die Dokumentenschnittstellen 18 der
Basis 15 zu erhalten. Das Modul 12 enthält einen
Block 40 zur Erzeugung von Dokumenten 41, die
aus in der Basis 15 gespeicherten Dokumentenschnittstellen
hervorgehen. Der Block 40 ist folglich mit der Basis 15 verbunden,
um aus dieser die Dokumentenschnittstellen 18 zu entnehmen
und die Steuerungsdokumente 41 zu bestimmen, die an die
besonderen Bedürfnisse
des Anwenders U angepasst sind. Wenn beispielsweise angenommen wird,
dass der Anwender das Dokument "Drucken" benötigt, wird
sich dem Anwender eine Schnittstelle präsentieren, die die in 12 veranschaulichte
Methode enthält,
welche die Werte der Felder 19 modifizieren und die Schaltflächen zur
Steuerung der Ausführung
auswählen
können
wird, um daraus ein Dokument 41 zu erstellen. Das in 12 gezeigte
Dokument 41 entspricht der Dokumentenschnittstelle 18,
in der die Werte der Felder 19 von dem Anwender unverändert beibehalten worden
sind und die Schaltfläche
für die
zeitlich verschobene Ausführung
zu einer vorgegebenen Uhrzeit (in 12 schraffiert)
aktiviert worden ist.
-
13 veranschaulicht
ein Beispiel der Dialogbox 42, die dem Anwender U von dem
Anwendermodul 12 präsentiert
wird. Die Menüleiste
der Box 42 enthält
vor allem die zwei Hauptmenüs "Dokumente" und "Vorgehensweisen". In dem Menü "Dokumente" sind die Steuerung "Suchen", um Dokumentenschnittstellen
beispielsweise anhand von Beschreibungen entsprechender Objekte
zu finden, und die Steuerung "Öffnen", um die Dokumentenschnittstellen
nach dem Namen ihrer entsprechenden Objekte aufzulisten und daraus
einen Objektnamen auszuwählen,
zu finden. Ein ausgewähltes
Objekt wird mit der Beschreibung des Objekts angezeigt. Aus dieser
Schnittstelle erstellt der Anwender das gewünschte Dokument. In dem Menü "Dokumente" sind selbstverständlich auch
die Steuerungen zum Sichern (Speichern und Speichern unter...) und
zum Schließen
des Dokuments zu finden.
-
Das
Menü "Vorgehensweisen" enthält vor allem
zwei Steuerungen: "Anzeigen" und "Verlauf anzeigen". Die Steuerung "Anzeigen" (display) zeigt
die Gesamtheit der von dem Anwender erzeugten Dokumente in der Reihenfolge
der Ausführung
der Steuerungen, die er gewählt
hat, an. Diese Gesamtheit definiert die Vorgehensweise des Anwenders.
Er verfügt
so über
eine globale Sicht über
die Methoden, die er ausgehend von mehreren Dokumenten aktiviert
hat. Er kann sie für
gültig
erklären
oder sie modifizieren. Beispielsweise hat ein Doppelklicken auf
eine ausgewählte
Methode das Öffnen
des entsprechenden Dokuments für
eventuelle Modifikationen zur Folge. Die Steuerung "Verlauf anzeigen" zeigt alle Methoden,
die von dem Anwender ausgeführt
worden sind, den Zustand des Abschlusses der Ausführung und
die Uhrzeit an. Das Menü enthält außerdem die
Steuerungen zum Speichern und Schließen.