DE69925108T2 - Ableitung einer objektklasse durch vererbung, instanzierung oder klonierung - Google Patents

Ableitung einer objektklasse durch vererbung, instanzierung oder klonierung Download PDF

Info

Publication number
DE69925108T2
DE69925108T2 DE69925108T DE69925108T DE69925108T2 DE 69925108 T2 DE69925108 T2 DE 69925108T2 DE 69925108 T DE69925108 T DE 69925108T DE 69925108 T DE69925108 T DE 69925108T DE 69925108 T2 DE69925108 T2 DE 69925108T2
Authority
DE
Germany
Prior art keywords
class
software
attribute
user
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69925108T
Other languages
English (en)
Other versions
DE69925108D1 (de
Inventor
Armand Nachef
Gerard Sitbon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SAS
Original Assignee
Bull SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SAS filed Critical Bull SAS
Application granted granted Critical
Publication of DE69925108D1 publication Critical patent/DE69925108D1/de
Publication of DE69925108T2 publication Critical patent/DE69925108T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4492Inheritance
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

  • 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.
  • Figure 00210001
    Tabelle A
  • 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.
  • Figure 00220001
    Tabelle B
  • 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.

Claims (10)

  1. Verfahren zum Ableiten einer Klasse und/oder eines Objekts, die einen gegebenen Namen haben (classe1), das darin besteht, eine Kopie (27c) des gesamten Baums (27a) der Klasse oder des Objekts zu machen, die Kopie des Baums zu speichern (D) und den Namen zu ändern, um der gespeicherten Kopie einen Namen (classeD2) zu verleihen.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Kopie durch eine Serialisierung des die Klasse oder das Objekt repräsentierenden Baums gemacht wird, indem der Baum in einen Speicher (D) kopiert wird, und die Speicherung der Kopie des Baums darin besteht, dass sie erneut in den Speicher (30) kopiert wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Ableitung ein Erbe der Klasse (classe1) ist.
  4. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Ableitung eine Instanziierung der Klasse (classe1) ist.
  5. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Ableitung eine Klonierung eines Objekts ist.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass es darin besteht, die Klasse oder das Objekt, das mittels eines Werkzeugs (30) abgeleitet wird, das wenigstens eine Dialogbox (21) aufweist, automatisch zu erzeugen.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass es durch einen Informatikfachmann (C) ausgeführt wird, der eine Steuerschnittstelle (11) des Datenverarbeitungssystems (10) verwendet, um die Steuerung des Datenverarbeitungssystems durch einen Anwender (U), der kein Informatiker zu sein braucht, zu unterstützen.
  8. Datenverarbeitungssystem (10), dadurch gekennzeichnet, dass es das in einem der Ansprüche 1 bis 7 definierte Verfahren ausführt.
  9. System nach Anspruch 8, das eine Datenverarbeitungsgesamtheit (1) und eine Steuerschnittstelle (11) umfasst, dadurch gekennzeichnet, dass es in der Steuerschnittstelle ausgeführt ist.
  10. System nach Anspruch 9, dadurch gekennzeichnet, dass es in einem Entwicklungsmodul (13) der Steuerschnittstelle (11) durch einen Informatikfachmann (C) ausgeführt ist, der eine Tastatur (17) verwendet, um die Steuerung des Datenverarbeitungssystems durch einen Anwender (U), der kein Informatiker zu sein braucht, zu unterstützen.
DE69925108T 1998-10-30 1999-10-28 Ableitung einer objektklasse durch vererbung, instanzierung oder klonierung Expired - Lifetime DE69925108T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9813643A FR2785414B1 (fr) 1998-10-30 1998-10-30 Derivation d'une classe d'objets par heritage, instanciation ou clonage
FR9813643 1998-10-30
PCT/FR1999/002630 WO2000026775A1 (fr) 1998-10-30 1999-10-28 Derivation d'une classe d'objets par heritage, instanciation ou clonage

Publications (2)

Publication Number Publication Date
DE69925108D1 DE69925108D1 (de) 2005-06-09
DE69925108T2 true DE69925108T2 (de) 2006-03-02

Family

ID=9532186

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69925108T Expired - Lifetime DE69925108T2 (de) 1998-10-30 1999-10-28 Ableitung einer objektklasse durch vererbung, instanzierung oder klonierung

Country Status (5)

Country Link
US (1) US7316002B1 (de)
EP (1) EP1046102B1 (de)
DE (1) DE69925108T2 (de)
FR (1) FR2785414B1 (de)
WO (1) WO2000026775A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002023333A2 (en) * 2000-09-15 2002-03-21 Learnframe, Inc. Construction of virtual objects based on run-time type information
US7761483B2 (en) * 2007-07-27 2010-07-20 Sap Ag System and method for providing data handling within a human capital management system
US8943470B2 (en) * 2011-09-23 2015-01-27 The Mathworks, Inc. Requirements framework
US10466975B2 (en) * 2015-10-23 2019-11-05 Oracle International Corporation Execution of parameterized classes on legacy virtual machines to generate instantiation metadata
US11947931B2 (en) * 2021-10-12 2024-04-02 Sap Se Generic factory class

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103075A (ja) * 1992-07-06 1994-04-15 Internatl Business Mach Corp <Ibm> オブジェクト指向適用業務
US6070006A (en) * 1993-04-14 2000-05-30 Kabushiki Kaisha Toshiba Object oriented software development tool for creation of new class(es)
US5710926A (en) * 1993-09-03 1998-01-20 Maurer; Joseph Clark Developers tool for object-oriented programming
US5680619A (en) * 1995-04-03 1997-10-21 Mfactory, Inc. Hierarchical encapsulation of instantiated objects in a multimedia authoring system
US5913063A (en) * 1997-02-26 1999-06-15 Oracle Corporation Drag and drop object subclassing
US6052526A (en) * 1997-04-17 2000-04-18 Vertel Corporation Data structure and method for dynamic type resolution using object-oriented programming language representation of information object sets
US6032152A (en) * 1997-12-31 2000-02-29 Intel Corporation Object factory template
US6237135B1 (en) * 1998-06-18 2001-05-22 Borland Software Corporation Development system with visual design tools for creating and maintaining Java Beans components

Also Published As

Publication number Publication date
FR2785414A1 (fr) 2000-05-05
EP1046102A1 (de) 2000-10-25
US7316002B1 (en) 2008-01-01
EP1046102B1 (de) 2005-05-04
WO2000026775A1 (fr) 2000-05-11
DE69925108D1 (de) 2005-06-09
FR2785414B1 (fr) 2000-11-24

Similar Documents

Publication Publication Date Title
DE3855756T2 (de) Schnittstelle für Materialliste für CAD/CAM-Umgebung
DE3855475T2 (de) Software-Verwaltungsstruktur
DE60133343T2 (de) Verfahren und System in einem elektronischen Kalkulationsblatt für die Handhabung von benutzerdefinierten Optionen in einer Ausschneiden-Kopieren-Einfügen-Funktion
DE19842688B4 (de) Verfahren zum Filtern von Daten, die von einem Datenanbieter stammen
DE68919503T2 (de) Methode und System zur Darstellung einer Benutzeroberfläche auf einem Computerbildschirm.
DE10051645B4 (de) Prozesssteuersystem und Verfahren zum Kontrollieren eines Prozesses
DE69126795T2 (de) Dateienverwaltungssystem mit graphischer benutzerschnittstelle zum aufstellen von fragen
DE69831777T2 (de) Framework zur finanziellen Integration von Geschäftsapplikationen
DE69031758T2 (de) Verfahren zur Organisation von und zum Zugriff auf Produkt beschreibenden Daten in Zusammenhang mit einem technischen Prozess
DE602005001787T2 (de) Vorrichtung und Verfahren zum Editieren von Druckdaten
DE10135445A1 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE19844013A1 (de) Strukturierter Arbeitsordner
DE69628374T2 (de) Datenverwaltungssystem
WO2010124853A2 (de) Verfahren zur erzeugung mindestens einer anwendungsbeschreibung
DE112011105895T5 (de) Projektdatenerzeugungsvorrichtung und programmierbare Anzeigevorrichtung
DE10048941A1 (de) Zeitdiagramm-Compiler und Laufzeitumgebung für die interaktive Erzeugung von ausführbaren Testprogrammen zur Logiküberprüfung
DE60019996T2 (de) System zum Koordinieren von Dokumenten und Aufgaben für einen Rechner
DE10252797B4 (de) Verfahren und System zum Erstellen von Dokumentenvorlagen mit Ressourcenverwaltung
DE69121113T2 (de) Verfahren zur bestimmung von benutzerschnittstellen und programmiersystem fur einen rechner mit mehreren benutzerschnittstellen
DE69925108T2 (de) Ableitung einer objektklasse durch vererbung, instanzierung oder klonierung
DE602005002846T2 (de) Verfahren zur Datenverarbeitung und assoziiertes Softwareprogramm
DE60132517T2 (de) Verfahren und System zur Druckablaufplanung, Speichermedium für ein Druckablaufplanungsprogramm
DE69925808T2 (de) Verfahren zur steuerung einer ausführbaren funktion durch für unterschiedliche software spezifische befehle
DE68926119T2 (de) Verfahren zur anzeige oder zum speichern von beziehungsänderungen zwischen objekten in einem datenverarbeitungssystem
DE102009010908A1 (de) Verfahren und Anordnung zur Steuerung des Einfügens von Registerblättern in einen Druckauftrag sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium

Legal Events

Date Code Title Description
8364 No opposition during term of opposition