DE4326472A1 - Method and device for reprogramming existing applications using object-oriented technology - Google Patents

Method and device for reprogramming existing applications using object-oriented technology

Info

Publication number
DE4326472A1
DE4326472A1 DE4326472A DE4326472A DE4326472A1 DE 4326472 A1 DE4326472 A1 DE 4326472A1 DE 4326472 A DE4326472 A DE 4326472A DE 4326472 A DE4326472 A DE 4326472A DE 4326472 A1 DE4326472 A1 DE 4326472A1
Authority
DE
Germany
Prior art keywords
specification object
view
abstract
code
methods
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.)
Ceased
Application number
DE4326472A
Other languages
German (de)
Inventor
Hans Diel
Juergen Dr Uhl
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to DE4326472A priority Critical patent/DE4326472A1/en
Priority to EP94924835A priority patent/EP0712514A1/en
Priority to PCT/EP1994/002562 priority patent/WO1995004965A1/en
Publication of DE4326472A1 publication Critical patent/DE4326472A1/en
Ceased 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

Description

Die Erfindung betrifft einen Umprogrammierer nach dem Oberbegriff des Anspruchs 1.The invention relates to a reprogrammer according to the Preamble of claim 1.

Der objektorientierte Programmierungsansatz wird zunehmend von Software-Entwicklern verwendet, da er die Entwicklung, den Bau von Prototypen, die Wiederverwendung von Code und die Wartung von Programmen wesentlich vereinfacht. Am besten würde man sämtliche bestehende Programme ausrangieren und neue schreiben, um die Vorteile dieses Ansatzes optimal auszunutzen. Leider ist dies wegen der Anzahl der Programme und der damit verbundenen Investitionen nicht möglich. Es besteht also ein Bedarf für ein System, das die bestehenden Programme analysieren kann, um den Code in eine Form umzuwandeln, die von objektorientierten Compilern verwendet werden kann.The object-oriented programming approach is increasingly being used by Software developers used since he was developing, building of prototypes, code reuse and maintenance of programs significantly simplified. The best would be discard all existing programs and write new ones, to take full advantage of this approach. Unfortunately it is this because of the number of programs and the associated Investments not possible. So there is a need for one System that can analyze the existing programs around the Convert code into a form that is object-oriented Compilers can be used.

Ein solches System ist aus dem Artikel "Class and Object Extraction from Imperative Code" von C.L. Ong und W.T. Tsai in der J. Object Oriented Program, Bd. 6, Nr. 1, März/April 1993, S. 58-60, 62-68 bekannt. Hier wird ein "Auszieher" beschrieben, der Klassen und Objekte aus einem in Fortran 77 geschriebenen Programm herauszieht und sie in objektorientierten C++-Code umwandelt.Such a system is from the article "Class and Object Extraction from Imperative Code "by C.L. Ong and W.T. Tsai in the J. Object Oriented Program, Vol. 6, No. 1, March / April 1993, pp. 58-60, 62-68 known. Here an "extractor" is described, the Classes and objects from one written in Fortran 77 Program pulls it out and into object-oriented C ++ code converts.

Auch bekannt aus dem Artikel "Domain Model-Driven Software Reengineering and Maintenance" von S. Jarzabek in der J. Syst. Softw., Bd. 20, Nr. 1, Januar 1993, S. 37-51, ist ein Verfahren zur Dekompilierung von Wirtschaftssystemen, um eine Bibliothek von wiederverwendbaren Softwarekomponenten herzustellen.Also known from the article "Domain Model-Driven Software Reengineering and Maintenance "by S. Jarzabek in J. Syst. Softw., Vol. 20, No. 1, January 1993, pp. 37-51, is a process for Decompilation of economic systems to a library of manufacture reusable software components.

Dekompilierung oder "Reverse Engineering" als ein Mittel zur Verbesserung der Wartung und Entwicklung von Softwareprodukten ist in einem Artikel "Reverse Engineering and Design Recovery: a Taxonomy" von E.J. Chikofsky und J.H. Cross in IEEE Softw., Bd. 7, Nr. 1, Januar 1990, S. 13-17 im allgemeinen beschreiben.Decompilation or "reverse engineering" as a means of Improve maintenance and development of software products is in an article "Reverse Engineering and Design Recovery: a  Taxonomy "by E.J. Chikofsky and J.H. Cross in IEEE Softw., Vol. 7, No. 1, January 1990, pp. 13-17 in general.

Die zugrundeliegende Aufgabe der Erfindung besteht darin, ein verbessertes System zu entwickeln, das bestehenden Code in eine Form umwandelt, so daß er für den Bau neuer Produkte wiederverwendet werden kann. Neben der Umwandlung in objektorientierte Programmstrukturen sollen dabei auch alte Benutzerschnittstellen in moderne graphische Benutzerschnittstellen umgewandelt werden, und Klient/Server- Strukturen unterstützt werden.The underlying object of the invention is a improved system to develop the existing code into one Form converts so that he can build new products can be reused. In addition to converting to Object-oriented program structures should also include old ones User interfaces in modern graphic User interfaces are converted, and client / server Structures are supported.

Diese Aufgabe wird erfindungsgemäß durch eine Vorrichtung nach dem kennzeichnenden Teil des Anspruchs 1 und ein Verfahren nach dem Anspruch 5 gelöst.This object is achieved according to the invention by a device the characterizing part of claim 1 and a method the claim 5 solved.

Es zeigenShow it

Fig. 1 eine Übersicht des Umprogrammierers gemäß der Erfindung, Fig. 1 shows an overview of the Umprogrammierers according to the invention,

Fig. 2 die Struktur eines Objekts, das die Informationen aus dem bestehenden Code abspeichert, Fig. 2 shows the structure of an object, which stores the information from the existing code,

Fig. 3A die Darstellung eines Bildschirminhalts an einem Großrechner (Ausgangspunkt für eine Umwandlung), Fig. 3A, the representation of a display content to a mainframe (starting point for a conversion)

Fig. 3B die Darstellung eines Fensters auf einem graphischen Bildschirm (Ergebnis der Umwandlung), Fig. 3B, the illustration of a window on a graphical display (result of the conversion)

Fig. 4A ein CICS BMS MAP für den dargestellten Bildschirminhalt, FIG. 4A is a CICS BMS MAP for the displayed screen image,

Fig. 4B eine PL/1 Deklaration für weitere Information an einem Großrechner, die die Großrechneranwendung beschreibt, FIG. 4B is a PL / 1 declaration for further information on a mainframe, which describes the mainframe application,

Fig. 5 ein Flußdiagramm für das erfindungsgemäße Verfahren, Fig. 5 is a flowchart for the inventive method,

Fig. 6 eine Definition für das Abstraktspezifikationsobjekt, Fig. 6 is a definition of the abstract object specification,

Fig. 7 eine Definition für das Datenspezifikationsobjekt, Fig. 7 is a definition for the data object specification,

Fig. 8 eine Definition für das Sichtspezifikationsobjekt, Fig. 8 is a view definition for the specification object,

Fig. 9 eine Definition für das Präsentationsspezifikationsobjekt. Fig. 9 is a definition for the presentation specification object.

Fig. 1 stellt eine Übersicht des erfindungsgemäßen Systems für die Umprogrammierung von bestehendem Code dar. Code 10, der in objektorientierte Form umzuwandeln ist, ist in einem Speicher oder auf einem Datenträger abgespeichert. Dieser Code 10 besteht beispielsweise aus Datendeklarationen, die in einer imperativen Sprache wie PL/1 geschriebenen sind (siehe Fig. 4A), aus Benutzerschnittstellen UI (siehe Fig. 4B), aus einem in einer Jobkontrollsprache JCL eines Betriebssystems geschriebenen Modul, aus einem "entity-relationship"-(Entität-Attribut)-Modell E/R, oder aus sonstigen Teilen eines Programmes. Fig. 1 represents an overview of the inventive system for reprogramming of existing code. Code 10 which is converting in object oriented form, is stored in a memory or on a disk. This code 10 consists, for example, of data declarations written in an imperative language such as PL / 1 (see FIG. 4A), of user interfaces UI (see FIG. 4B), of a module written in a job control language JCL of an operating system, of a " entity-relationship "- (entity-attribute) model E / R, or from other parts of a program.

Der Code 10 wird aus dem Speicher mittels eines gewöhnlichen Verfahrens herausgelesen und einem in einem Prozessor laufenden Umprogrammierer 20 zugeführt, wo er analysiert wird. Daraus wird, wie unten näher erläutert, eine Objektspezifikationen kreiert. Die so kreierten Objektspezifikationen werden danach in einen Speicher 30 abgespeichert. Der Umprogrammierer 20 hat die Funktion, auf die im Speicher 30 abgespeicherten Objektspezifikationen zuzugreifen, um objektorientierten Code 40 zu erzeugen, der ebenfalls in einen Speicher oder auf einem Datenträger abgespeichert wird. Der objektorientierte Code 40 kann beispielsweise Benutzerschnittstellen UI, in C++- geschriebene Programme oder andere Objektspezifikationen umfassen, z. B. Spezifikation nach der CORBA-Architektur (Common Object Request Broker Architecture). Diese Architektur ist in einer Veröffentlichung "Common Object Request Broker: Archtitecture and Specification" beschrieben, die von der Object Management Group and X/Open herausgegeben wird (Dokument Nr. 92.12.1). Nach Erzeugung kann der objektorientierte Code 40 entweder direkt danach kompiliert werden oder mit einem anderen, von einem Programmierer geschriebenen Code zusammengefügt und danach erst kompiliert werden. Solche Kompilierungsschritte sind im Stand der Technik schon bekannt.The code 10 is read out of the memory by means of an ordinary method and fed to a reprogrammer 20 running in a processor, where it is analyzed. As explained in more detail below, an object specification is created from this. The object specifications created in this way are then stored in a memory 30 . The reprogrammer 20 has the function of accessing the object specifications stored in the memory 30 in order to generate object-oriented code 40 which is also stored in a memory or on a data carrier. Object-oriented code 40 may include, for example, user interfaces UI, programs written in C ++, or other object specifications, e.g. B. Specification according to the CORBA architecture (Common Object Request Broker Architecture). This architecture is described in a publication "Common Object Request Broker: Architecture and Specification", which is published by the Object Management Group and X / Open (document No. 92.12.1). After generation, the object-oriented code 40 can either be compiled immediately thereafter or combined with another code written by a programmer and only then compiled. Such compilation steps are already known in the prior art.

Fig. 2 stellt eine Übersicht der Objektstruktur dar, die der Umprogrammierer 20 aus dem bestehenden Code 10 kreiert. Die Objektspezifikation ist ihrerseits selbst als Objekt gespeichert und wird das Objektspezifikationsobjekt (OSO) 100 genannt. Die Struktur besteht aus einem Bündel von vier Objektklassen, nämlich einem Abstraktspezifikationsobjekt 105, einem Datenspezifikationsobjekt 110, Sichtspezifikationsobjekten 120 und einem oder mehrere Präsentationsspezifikationsobjekten 130. FIG. 2 shows an overview of the object structure that the reprogrammer 20 creates from the existing code 10 . The object specification itself is stored as an object and is called the object specification object (OSO) 100 . The structure consists of a bundle of four object classes, namely an abstract specification object 105 , a data specification object 110 , view specification objects 120 and one or more presentation specification objects 130 .

Das Abstraktspezifikationsobjekt 105 beschreibt in einer abstrakten Weise die Schnittstelle für die Außenwelt zu den Funktionen, die der umzuwandelnde Code 10 anbietet, und die Eigenschaften dieser Funktionen.The abstract specification object 105 describes in an abstract manner the interface for the outside world to the functions that the code 10 to be converted offers and the properties of these functions.

Das Datenspezifikationsobjekt 110 beschreibt die Zugriffsmethoden auf die Daten des bestehenden Codes 10. Es zeigt die Art von Datenspeicherung, z. B. Repository, SQL- Datenbank, und auch die detaillierten Parameter, die notwendig sind, um auf die Daten zugreifen zu können.The data specification object 110 describes the methods of accessing the data of the existing code 10 . It shows the type of data storage, e.g. B. Repository, SQL database, and also the detailed parameters that are necessary to access the data.

Das Sichtspezifikationsobjekt 120 bestimmt eine logische Sicht für die Benutzerschnittstelle. Um dieses zu ermöglichen, enthält es Verweise auf die Informationen, die im Abstraktspezifikationsobjekt 105 enthalten sind.The view specification object 120 determines a logical view for the user interface. To enable this, it contains references to the information contained in the abstract specification object 105 .

Das Präsentationsspezifikationsobjekt 130 legt eine konkrete Benutzerschnittstelle für eine Schnittstellentechnologie fest. The presentation specification object 130 defines a concrete user interface for an interface technology.

Es gibt für jede Schnittstellentechnologie ein separates Präsentationsspezifikationsobjekt 130, d. h. es gibt ein Präsentationsspezifikationsobjekt 130 für den Befehlsmodus, ein anderes für graphische Darstellungen auf einem Bildschirm und ein weiteres für den Stimmeneingabemodus. Das Präsentationsspezifikationsobjekt 130 bestimmt auch, welche Art von Darstellungen gezeigt werden, z. B. Ikonen, Einstellungssichten, usw. Das Präsentationsspezifikationsobjekt 130 verweist auf die Informationen im Abstraktspezifikationsobjekt 105 und im Sichtspezifikationsobjekt 130.There is a separate presentation specification object 130 for each interface technology, that is, there is one presentation specification object 130 for command mode, another for graphical displays on a screen, and another for voice input mode. The presentation specification object 130 also determines what type of presentations are shown, e.g. B. icons, setting sifting, etc. The presentation specification object 130 refers to the information in the abstract object specification 105 and in the inspection object specification 130th

Die Eingabecodes 10 tragen in unterschiedlichem Ausmaß zur Erstellung von Abstraktsspezifikationen, Datenspezifikationen, Sichtspezifikationen und Präsentationsspezifikationen bei.The input codes 10 contribute to the creation of abstract specifications, data specifications, view specifications and presentation specifications to different extents.

Wie in Fig. 2 dargestellt, sind die Daten- Sicht- und Präsentationsspezifikationsobjekte alle mit einem Abstraktspezifikationsobjekt 105 assoziiert und sie haben alle Zugriff auf die Informationen, die im Abstraktspezifikationsobjekt 105 enthalten sind. Diese Assoziierung ist für den Weiterbau des objektorientierten Codes notwendig.As shown in FIG. 2, the data view and presentation specification objects are all associated with an abstract specification object 105 and they all have access to the information contained in the abstract specification object 105 . This association is necessary for the further development of the object-oriented code.

Die Abstrakt-, Daten-, Sicht- und Präsentationsspezifikationsobjekte 105, 110, 120, 130 bestehen jeweils aus bestimmten Teilspezifikationen. Die Teilspezifikationen für das Präsentationsspezifikationsobjekt 130 können beispielsweise Eingabefelder, Radioknöpfe, Druckknöpfe, Markierungsfelder, Menüpunkte, Fenster usw. sein. Die Teilspezifikationen für das Datenspezifikationsobjekt 110 beschreiben wo oder unter welchem Namen bestimmte Daten in einer Datenbank zu finden sind. Die Teilspezifikationen für das Sichtspezifikationsobjekt 120 spezifizieren primär, ob bestimmte Objektteile in einer bestimmten Sicht angezeigt werden. Die Teilspezifikationen für das Abstraktspezifikationsobjekt 105 definieren die abstrakten, d. h. die sicht- und präsentationsunabhängigen Attribute wie z. B. Namen, Datentypen und Längen.The abstract, data, view and presentation specification objects 105 , 110 , 120 , 130 each consist of certain sub-specifications. The sub-specifications for the presentation specification object 130 can be, for example, input fields, radio buttons, push buttons, check boxes, menu items, windows, etc. The partial specifications for the data specification object 110 describe where or under which name certain data can be found in a database. The partial specifications for the view specification object 120 primarily specify whether certain object parts are displayed in a certain view. The partial specifications for the abstract specification object 105 define the abstract, ie the view and presentation-independent attributes such as. B. Names, data types and lengths.

So wie die Daten-, Sicht-, und Präsentationsobjekte 110, 120, 230 als Ganzes mit dem Abstraktspezifikationsobject 105 assoziiert sind, so gilt das gleiche auch für die jeweiligen Teilspezifikationen. Die zueinander gehörigen Teilspezifikationen können nur zusammen gelöscht oder bewegt werden, und nur bestimmte Typen von Teilspezifikationen sind zueinander assoziierungsfähig.Just as the data, view and presentation objects 110 , 120 , 230 as a whole are associated with the abstract specification object 105 , the same also applies to the respective sub-specifications. The related partial specifications can only be deleted or moved together, and only certain types of partial specifications can be associated with each other.

Es folgt jetzt ein Beispiel für die Umprogrammierung einer bestehenden Großrechneranwendung mit Benutzung des Objektspezifikationsobjekts 100. Fig. 3A zeigt einen Bildschirminhalt 200 auf einem Bildschirm für die Eingabe von Parametern 210, 220, 230, 240, die für die Bestellung eines Tisches notwendig sind. Der Bildschirminhalt 200 ist in die Form eines Fensters 300 auf einem graphischen Bildschirm umzuwandeln. Das Fenster ist mit Hilfe eines "CICS BMS Maps" definiert, einer Spezifikationssprache, die bei Großrechnern sehr verbreitet ist. Die Definition für den in Fig. 3A gezeigten Bildschirm hat eine Form, die in Fig. 4A dargestellt ist.An example of the reprogramming of an existing mainframe application using the object specification object 100 now follows. Fig. 3A shows a screen image 200 on a screen for the input of parameters 210, 220, 230, 240, which are necessary for the order of a table. The screen content 200 is to be converted into the form of a window 300 on a graphic screen. The window is defined using a "CICS BMS Maps", a specification language that is very common in mainframes. The definition for the screen shown in Fig. 3A has a form shown in Fig. 4A.

Zu der umzuwandelnden Anwendung des in Fig. 3A dargestellten Bildschirminhalts 200 gehört ebenfalls die Definition einer Datenstruktur, worin die eingegebenen Informationen über den bestellten Tisch abgespeichert werden. Die Definition der Datenstruktur in der Programmiersprache PL/1 ist in Fig. 4B dargestellt.The use of the screen content 200 shown in FIG. 3A also includes the definition of a data structure in which the information entered about the table ordered is stored. The definition of the data structure in the programming language PL / 1 is shown in Fig. 4B.

Der Umprogrammierer 20 kann die in Fig. 4A und 4B dargestellten Definitionen untersuchen und daraus das Objektspezifikationsobjekt 100 schaffen. Fig. 5 stellt ein Flußdiagramm dar, welches den Ablauf des Umprogrammierverfahrens beschreibt. The reprogrammer 20 can examine the definitions shown in FIGS. 4A and 4B and create the object specification object 100 therefrom. Fig. 5 illustrates a flow chart describing the operation of the Umprogrammierverfahrens.

In einem ersten Schritt 500 untersucht der Umprogrammierer 20 die Definitionen des Bildschirmfensters 200 und die Datenstruktur. Zuerst muß das Abstraktspezifikationsobjekt 105 kreiert werden. Die kreierte Spezifikation für das Abstraktspezifikationsobjekt 105 ist in Fig. 6 dargestellt. Wie oben aufgeführt, beschreibt das Abstraktspezifikationsobjekt 105 in einer abstrakten Weise die Schnittstelle für die Außenwelt zu den Funktionen, die die umzuwandelnde Definition anbieten, und die Eigenschaften dieser Funktionen.In a first step 500, reprogrammer 20 examines the definitions of screen window 200 and the data structure. First, the abstract specification object 105 must be created. The created specification for the abstract specification object 105 is shown in FIG. 6. As listed above, the abstract specification object 105 describes in an abstract manner the interface for the outside world to the functions that offer the definition to be converted and the properties of these functions.

Im Schritt 510 werden die Objektklassen identifiziert. Eine Objektklasse im objektorientierten Programmierungsansatz ist eine Datenstruktur, worin die einzelnen Mitglieder der Objektklasse, die sogenannten Exemplaren, gemeinsame Eigenschaften besitzen. In diesem einfachen Beispiel sind drei Objektklassen vorhanden: "Tisch", "Tischplatte" und "Tischbeine". Alle Mitglieder oder Exemplare der Datenstrukturen "Tisch", "Tischplatte" und "Tischbeine" haben die gleichen Eigenschaften und bilden deshalb je eine Objektklasse. Die Objektklassen "Tischplatte" und "Tischbeine" sind in der Hauptklasse "Tisch" enthalten. Die Definition der Objektklassen kann oft aus den Eingabecodes 10 erkannt werden (in diesem Beispiel aus der PL/1 Deklaration dargestellt in Fig. 4B), in einigen Fällen ist jedoch auch zusätzliche Information vom Benutzer des Umprogrammierers erforderlich. Ganz allgemein kann jeder der in Fig. 5 gezeigten Schritte bei komplizierteren Beispielen auch noch Benutzerinteraktionen erfordern.In step 510, the object classes are identified. An object class in the object-oriented programming approach is a data structure in which the individual members of the object class, the so-called instances, have common properties. In this simple example, there are three object classes: "table", "table top" and "table legs". All members or copies of the data structures "table", "table top" and "table legs" have the same properties and therefore each form an object class. The object classes "table top" and "table legs" are included in the main class "table". The definition of the object classes can often be recognized from the input codes 10 (in this example from the PL / 1 declaration shown in FIG. 4B), but in some cases additional information from the user of the reprogrammer is also required. In general, each of the steps shown in Fig. 5 may require user interaction in more complicated examples.

Im nächsten Schritt 520 werden die Methoden in den Definitionen identifiziert, die auf die Klassen hinwirken. Methoden im objektorientierten Programmierungsansatz sind Verfahren, mit dem man die Klasse oder die einzelnen Mitglieder der Klasse ändern kann. Es sind zwei Arten von Methoden zu unterscheiden: Klassenmethoden wirken auf sämtliche Mitglieder der Klasse, wohingegen Exemplarmethoden nur auf einzelne Mitglieder der Klasse wirken. Dem Umprogrammierer werden die Methoden durch Nennung der zugeordneten Funktionsprogramme und/oder über die zugeordneten Bildschirmfenster (Fig. 3A) mitgeteilt.In the next step 520, the methods in the definitions that act on the classes are identified. Methods in the object-oriented programming approach are procedures with which one can change the class or the individual members of the class. There are two types of methods: class methods affect all members of the class, whereas instance methods only affect individual members of the class. The methods are communicated to the reprogrammer by naming the assigned function programs and / or via the assigned screen window ( FIG. 3A).

Das in Fig. 3 dargestellte Beispiel führt zur Klassenmethode "Kreieren", d. h. neue Mitglieder (sogenannte Exemplare) der Klasse können geschaffen werden. Zwei Exemplarmethoden sind identifizierbar: Löschen und Kopieren. Mit der Löschen- Exemplarmethode kann man ein Exemplar der Klasse löschen und mit der Kopieren-Exemplarmethode kann man ein Exemplar kopieren.The example shown in FIG. 3 leads to the "create" class method, ie new members (so-called copies) of the class can be created. Two copy methods can be identified: delete and copy. You can use the delete instance method to delete an instance of the class and the copy instance method lets you copy an instance.

Jede Methode braucht bestimmte Parameter für ihre Wirkung. Diese Parameter sind ebenfalls aus den Definitionen zu erkennen und werden im Schritt 530 erfaßt. Die Kreieren-Klassenmethode braucht sämtliche auf dem Bildschirm gezeigten Parameter, d. h. Bestell-Nr. 210, Tischart 220, Preis 230 und Material 240. Die Löschen-Exemplarmethode benötigt keine Parameter. Die Kopieren- Exemplarmethode braucht nur die Parameter Tischart 220, Preis 230 und Material 240.Every method needs certain parameters for its effect. These parameters can also be seen from the definitions and are recorded in step 530. The create class method needs all the parameters shown on the screen, ie order no. 210 , table type 220 , price 230 and material 240 . The delete instance method takes no parameters. The copy copy method only needs the parameters table type 220 , price 230 and material 240 .

Aus den Definitionen ist auch zu erkennen, daß der Tisch nur aus drei Arten von Material bestehen kann: Holz, Metall oder Glas. Diese Materialarten müssen auch in der Definition des Abstraktspezifikationsobjekts 105 berücksichtigt werden.It can also be seen from the definitions that the table can only consist of three types of material: wood, metal or glass. These types of materials must also be considered in the definition of the abstract specification object 105 .

Am Ende der Schritte 510-530 kann eine Definition für das Abstraktspezifikationsobjekt 105 geschrieben werden. Diese Definition ist in Fig. 6 dargestellt. Die benutzte Definitionssprache ist frei erfunden.At the end of steps 510-530, a definition for the abstract specification object 105 can be written. This definition is shown in Fig. 6. The definition language used is fictitious.

Fig. 6 zeigt die Definitionen der Klassen "Tisch", "Tischplatte" und "Tischbeine" durch die Deklarationen "CLASS: Tisch", "CLASS: Tischplatte" und "CLASS: Tischbeine". Die Klassen haben Klassenmethoden, die mit Hilfe der Deklaration "CLASS_METHOD:" definiert sind, und Exemplarmethoden, die mit Hilfe der Deklaration "INSTANCE_METHOD:" definiert sind. Die einzelnen Methoden sind durch die Deklaration "METHOD:" definiert und die dazugehörigen Parameter anhand der Deklarationen "PARAMETERS:" und "ELEMENT:" angegeben. Jeder Parameter hat einen eigenen Namen, der aus den in Fig. 4A und 4B gezeigten Definition erzeugt wird. Fig. 6 shows the definitions of the classes "table", "table top" and "table legs" by the declarations "CLASS: table", "CLASS: table top" and "CLASS: table legs". The classes have class methods that are defined using the "CLASS_METHOD:" declaration and instance methods that are defined using the "INSTANCE_METHOD:" declaration. The individual methods are defined by the "METHOD:" declaration and the associated parameters are specified using the "PARAMETERS:" and "ELEMENT:" declarations. Each parameter has its own name, which is generated from the definition shown in FIGS. 4A and 4B.

Einige Parameter erfordern komplexere Unterspezifikationen. Der Parameter "LINK" verweist auf derartige Unterspezifikationen.Some parameters require more complex sub-specifications. Of the The "LINK" parameter refers to such subspecifications.

Der Wert des Parameters "Material" 240 kann aus nur drei Werten ausgewählt werden, wie aus Fig. 3A und Fig. 4 zu sehen ist. Diese Auswahl ist durch die Deklaration "SELECT:" mit den Alternativen "ALT:" beschrieben.The value of the parameter "material" 240 can be selected from only three values as shown in Fig. 3A and Fig. 4 is shown. This selection is described by the declaration "SELECT:" with the alternatives "ALT:".

In diesem Beispiel hat die Objektklasse "Tisch" weitere Unterklassen "Tischbeine" und "Tischplatte". In der in Fig. 4B gezeigten Definition sind diese Unterklassen zu erkennen und deren Abhängigkeit von der Hauptklasse wird durch eine Deklaration "CONSISTS_OF:" in der in Fig. 6 dargestellten Deklaration gezeigt. Jede Unterklasse erhält dann eine eigene Definition, wie in Fig. 6 zu sehen ist. Um diese Figur zu vereinfachen werden einige Deklarationen nicht ausführlich angegeben. Diese sind durch Punkte in der Figur ersetzt.In this example the object class "table" has further subclasses "table legs" and "table top". These subclasses can be seen in the definition shown in FIG. 4B and their dependence on the main class is shown by a declaration "CONSISTS_OF:" in the declaration shown in FIG. 6. Each subclass then has its own definition, as can be seen in FIG. 6. In order to simplify this figure, some declarations are not given in detail. These are replaced by dots in the figure.

Nach der Schaffung der Definition (Fig. 6), die das Abstraktspezifikationsobjekt 105 darstellt, müssen die Definitionen für das Datenspezifikationsobjekt 110 kreiert werden. Dies ist im Schritt 540 auf Fig. 5 gezeigt. Dazu kann (ganz allgemein) Information aus den Eingabecodes 10 (Z.B. aus Datenbankdefinitionen oder E/R Definitionen) herangezogen werden oder die Zuordnung zu einem Speichermedium kann vom Benutzer des Umprogrammierers geliefert werden. In dem hier gezeigten Beispiel ist angenommen, daß der Benutzer eine MVS QSAM Datei als Speichermedium benannt hat. Um das Datenspezifikationsobjekt 110 vollständig zu beschreiben braucht man nur eine Deklaration der in Fig. 7 gezeigten Form. Die vorhandenen MVS- Dienstprogramme übernehmen danach alle anderen Funktionen, die man für die Dateiverwaltung braucht.After creating the definition ( FIG. 6) that represents the abstract specification object 105 , the definitions for the data specification object 110 must be created. This is shown in step 540 on FIG. 5. For this purpose (very generally) information from the input codes 10 (eg from database definitions or E / R definitions) can be used or the assignment to a storage medium can be provided by the user of the reprogrammer. In the example shown here it is assumed that the user has named an MVS QSAM file as the storage medium. To fully describe the data specification object 110 , one only needs a declaration of the form shown in FIG. 7. The existing MVS utilities then take on all the other functions you need for file management.

Die Sichtspezifikationsobjekte 120 bestimmen die logischen Sichten für die Benutzerschnittstelle. Das Bildschirmfenster 300 der Fig. 3A und 3B ist ein Beispiel einer Sicht für die Kreierung eines neuen Mitgliedes der Objektklasse "Tisch". Diese wird durch eine Untersuchung der auf Fig. 4A gezeigten Definition (Schritt 550) herausgefunden. Die dazugehörige Methode "CREATE" wurde schon im Schritt 520 während der Herstellung einer Definition des Abstraktspezifikationsobjekts 105 festgelegt. Die notwendigen Angaben über diese Methode, insbesondere die benötigten Parameter, können aus der Definition des Abstraktspezifikationsobjekts 105 abgefragt und in die Definition des Sichtspezifikationsobjekts 120 kopiert werden.The view specification objects 120 determine the logical views for the user interface. The screen window 300 of FIGS. 3A and 3B is an example of a view for the creation of a new member of the object class "table". This is found by examining the definition shown in FIG. 4A (step 550). The associated "CREATE" method was already defined in step 520 during the creation of a definition of the abstract specification object 105 . The necessary information about this method, in particular the required parameters, can be queried from the definition of the abstract specification object 105 and copied into the definition of the view specification object 120 .

Das Ergebnis dieser Untersuchungen führt zu einer Definition die in Fig. 8 dargestellt ist. Durch die Deklaration "VIEW_NAME =" wird ein Name "VIEW_1" der Sicht zugeordnet. Die Sichtart ist durch die Deklaration "VIEW_TYPE =" angegeben. In diesem Beispiel ist eine bestimmte Art "PARMVIEW" ausgewählt. Diese Sichtart zeigt in der Sicht die durch die Deklaration "SHOW =" festgelegte Parameter. Die Deklarationen "CLASS =" und "METHOD =" zeigen an, welche Methoden (welche Objektklassen) anhand dieser Sicht dargestellt werden.The result of these investigations leads to a definition which is shown in FIG. 8. The declaration "VIEW_NAME =" assigns a name "VIEW_1" to the view. The view type is specified by the declaration "VIEW_TYPE =". In this example, a certain type of "PARMVIEW" is selected. This view type shows the parameters defined by the declaration "SHOW =". The declarations "CLASS =" and "METHOD =" indicate which methods (which object classes) are represented based on this view.

Die Definition des Sichtspezifikationsobjekts 120 gibt Auskunft nur über die Objektklassen, Methoden und Parameter, die im Bildschirmfenster 300 erscheinen. Sie enthält keinerlei Information über deren Anordnung auf dem Bildschirm 300. Diese Information ist im Präsentationsspezifikationsobjekt 130 enthalten. Das Präsentationsspezifikationsobjekt 130 wird durch eine weitere Untersuchung des in Fig. 4A definierten CICS BMS Maps (Schritt 570 in Fig. 5) festgelegt. Die daraus etablierte Definition für das Präsentationsspezifikationsobjekt 130 ist in Fig. 9 dargestellt. The definition of the view specification object 120 only provides information about the object classes, methods and parameters that appear in the screen window 300 . It contains no information about their arrangement on the screen 300 . This information is contained in presentation specification object 130 . The presentation specification object 130 is determined by further examination of the CICS BMS map defined in FIG. 4A (step 570 in FIG. 5). The definition established therefrom for the presentation specification object 130 is shown in FIG. 9.

Die Deklarationen "PRESENTATION" in Fig. 9 geben an, wie die zwischen Klammern eingegebenen Sichten oder Parameter im Bildschirmfenster 300 abzubilden sind. Die Sicht mit dem Namen VIEW_1 ist als ein Fenster der Größe 600×400 (festgelegt durch die "SIZE" Deklaration) definiert. Das Fenster ist nicht verschiebbar, wie die Deklaration "NONSCROLLABLE" angibt, und hat einen Titel "Parameter-Eingabe für Tisch", wie die Deklaration "TITLE=" angibt. Im Fenster 300 sind die Standarddruckknöpfe "Eingabe", "Hilfe" und "Exit" vorhanden. Deren Funktionen sind durch die Deklarationen "ENTER", "HELP" und "CANCEL" definiert. Die Parameter "Bestell-Nr.". "Tischart" und "Preis" werden als Eingabefelder auf dem Bildschirm 300 innerhalb des Fensters präsentiert, wie aus der Deklaration "ENTRYFIELD" zu entnehmen ist. Die Eingabefelder haben eine bestimmte Größe, die durch die Deklaration "SIZE=" festgelegt ist, und enthalten einen durch die Deklaration "TEXT" gegebenen Text.The declarations "PRESENTATION" in FIG. 9 indicate how the views or parameters entered between brackets are to be represented in the screen window 300 . The view with the name VIEW_1 is defined as a window of the size 600 × 400 (defined by the "SIZE" declaration). The window cannot be moved as the declaration "NONSCROLLABLE" indicates and has a title "Parameter input for table" as the declaration "TITLE =" indicates. The standard pushbuttons "Enter", "Help" and "Exit" are available in window 300 . Their functions are defined by the declarations "ENTER", "HELP" and "CANCEL". The parameters "Order No.". "Table type" and "Price" are presented as input fields on the screen 300 within the window, as can be seen from the declaration "ENTRYFIELD". The input fields have a certain size, which is defined by the declaration "SIZE =", and contain a text given by the declaration "TEXT".

Einer der Parameter (Material 340) wird in der Form einer Radioknopfgruppe präsentiert. In diesem Fall kann der Parameter "Material" 340 nur einen von drei Werten haben, wobei die auswählbaren Werte als Radioknöpfe innerhalb des Bildschirmfenster 300 angeboten werden.One of the parameters (material 340 ) is presented in the form of a radio button group. In this case, the "material" parameter 340 can only have one of three values, the selectable values being offered as radio buttons within the screen window 300 .

Am Ende des Ablaufs des in Fig. 5 dargestellten Flußdiagramms hat man Definitionen aller Teilspezifikationen für die Benutzung des Objektspezifikationsobjekts 100 in anderen Programmen erzeugt. Der Umprogrammierer kann daraus die Komponenten einer neuen Anwendung 40 durch Verwendung der Teilspezifikationen in Zusammenhang mit neu geschriebenem Code generieren (Schritt 580).At the end of the flow of the flow chart shown in FIG. 5, definitions of all partial specifications for the use of the object specification object 100 in other programs have been generated. The reprogrammer can use it to generate the components of a new application 40 using the partial specifications in connection with newly written code (step 580).

Claims (10)

1. Vorrichtung zur Umprogrammierung eines bestehenden Programmcodes (10)
mit einem Umprogrammierer (20), der den Programmcode (10) untersucht und daraus Objektspezifikationen für ein oder mehrere Objekte erzeugt,
gekennzeichnet durch
ein erzeugtes Abstraktspezifikationsobjekt (105), das eine Schnittstelle für die Außenwelt zu den vom Programmcode (10) angebotenen Funktionen beschreibt.
1. Device for reprogramming an existing program code ( 10 )
with a reprogrammer ( 20 ) who examines the program code ( 10 ) and uses it to generate object specifications for one or more objects,
marked by
a generated abstract specification object ( 105 ), which describes an interface for the outside world to the functions offered by the program code ( 10 ).
2. Vorrichtung nach Anspruch 1 gekennzeichnet durch ein Datenspezifikationsobjekt (110), das die Zugriffsmethoden auf die vom Abstraktspezifikationsobjekt (105) benötigten Daten beschreibt.2. Device according to claim 1, characterized by a data specification object ( 110 ) which describes the access methods to the data required by the abstract specification object ( 105 ). 3. Vorrichtung nach einem der vorhergehenden Ansprüche gekennzeichnet durch ein Sichtspezifikationsobjekt (120), das eine logische Sicht für die Schnittstelle beschreibt.3. Device according to one of the preceding claims, characterized by a view specification object ( 120 ) which describes a logical view for the interface. 4. Vorrichtung nach einem der vorhergehenden Ansprüche gekennzeichnet durch ein Präsentationsspezifikationsobjekt (130), das in Zusammenhang mit dem Sichtspezifikationsobjekt (120) eine graphische Darstellung (300) der Schnittstelle auf einem Bildschirm erzeugt.4. Device according to one of the preceding claims, characterized by a presentation specification object ( 130 ) which, in connection with the view specification object ( 120 ), generates a graphic representation ( 300 ) of the interface on a screen. 5. Verfahren zur Umprogrammierung eines bestehenden Programmcodes (10) in Code (40), der in objekt-orientierter Form geschrieben ist, wobei das Verfahren die folgenden Schritte aufweist:
Schritt 1 (500, 510): Identifizieren der Objekte in umzuprogrammierenden Code (10),
Schritt 2 (500, 520): Identifizieren der Methoden im umzuprogrammierenden Code (10), und
Schritt 3 Schaffen eines Abstraktspezifikationsobjekts (105), das die identifizierten Objekte und Methoden beschreibt.
5. Method for reprogramming an existing program code ( 10 ) into code ( 40 ) which is written in an object-oriented form, the method comprising the following steps:
Step 1 (500, 510): identify the objects in code to be reprogrammed ( 10 ),
Step 2 (500, 520): identify the methods in the code to be reprogrammed ( 10 ), and
Step 3 Create an abstract specification object ( 105 ) that describes the identified objects and methods.
6. Verfahren nach Anspruch 5, mit einem zusätzlichen Schritt (540): Schaffen eines Datenspezifikationsobjektes (110), das die Zugriffsmethoden auf die vom Abstraktspezifikationsobjekt (105) benötigten Daten beschreibt.6. The method according to claim 5, with an additional step (540): creating a data specification object ( 110 ) that describes the access methods to the data required by the abstract specification object ( 105 ). 7. Verfahren nach einem der Ansprüche 5 oder 6, mit einem zusätzlichen Schritt (550): Schaffen eines Sichtspezifikationsobjektes (120), das eine logische Sicht für die im Abstraktspezifikationsobjekt (105) enthaltenen Methoden beschreibt.7. The method according to any one of claims 5 or 6, with an additional step (550): creating a view specification object ( 120 ) that describes a logical view for the methods contained in the abstract specification object ( 105 ). 8. Verfahren nach einem der Ansprüche 5, 6 oder 7, mit einem zusätzlichen Schritt (570): Schaffen eines Präsentationsspezifikationsobjektes (130), das in Zusammenhang mit dem Sichtspezifikationsobjekt (120) eine graphische Darstellung der Methoden auf einem Bildschirm (300) erzeugt.8. The method according to any one of claims 5, 6 or 7, with an additional step (570): creating a presentation specification object ( 130 ) that generates a graphical representation of the methods on a screen ( 300 ) in connection with the view specification object ( 120 ). 9. Verfahren nach einem der Ansprüche 5 bis 8, mit einem zusätzlichen Schritt (580): Generieren einer neuen Anwendung (40) durch Verwendung der geschaffenen Abstrakt-, Daten-, Sicht- oder Präsentationsspezifikationsobjekte (105, 110, 120, 130).9. The method according to any one of claims 5 to 8, with an additional step (580): generating a new application ( 40 ) by using the created abstract, data, view or presentation specification objects ( 105 , 110 , 120 , 130 ). 10. Verwendung der Vorrichtung nach einem der Ansprüche 1 bis 5 zur Umprogrammierung eines Bildschirminhalts (200) an einem Großrechner in ein Fenster (300) auf einem graphischen Bildschirm.10. Use of the device according to one of claims 1 to 5 for reprogramming a screen content ( 200 ) on a mainframe in a window ( 300 ) on a graphic screen.
DE4326472A 1993-08-06 1993-08-06 Method and device for reprogramming existing applications using object-oriented technology Ceased DE4326472A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE4326472A DE4326472A1 (en) 1993-08-06 1993-08-06 Method and device for reprogramming existing applications using object-oriented technology
EP94924835A EP0712514A1 (en) 1993-08-06 1994-08-02 Process and device for reprogramming existing applications by means of object-oriented technology
PCT/EP1994/002562 WO1995004965A1 (en) 1993-08-06 1994-08-02 Process and device for reprogramming existing applications by means of object-oriented technology

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE4326472A DE4326472A1 (en) 1993-08-06 1993-08-06 Method and device for reprogramming existing applications using object-oriented technology

Publications (1)

Publication Number Publication Date
DE4326472A1 true DE4326472A1 (en) 1995-02-09

Family

ID=6494623

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4326472A Ceased DE4326472A1 (en) 1993-08-06 1993-08-06 Method and device for reprogramming existing applications using object-oriented technology

Country Status (3)

Country Link
EP (1) EP0712514A1 (en)
DE (1) DE4326472A1 (en)
WO (1) WO1995004965A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0049279A1 (en) * 1980-04-14 1982-04-14 Seapower, Inc. Immiscible liquid separator

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0049279A1 (en) * 1980-04-14 1982-04-14 Seapower, Inc. Immiscible liquid separator

Also Published As

Publication number Publication date
EP0712514A1 (en) 1996-05-22
WO1995004965A1 (en) 1995-02-16

Similar Documents

Publication Publication Date Title
DE10051645B4 (en) Process control system and method for controlling a process
DE60311805T2 (en) Acquisition, compilation and / or visualization of structural features of architectures
DE69838139T2 (en) METHOD AND SYSTEM FOR CREATING DATABASE APPLICATION SOFTWARE THAT NEEDS MINIMAL PROGRAMMING
DE69817158T2 (en) User interface mechanism for manipulating contexts in computer management applications
EP3049920A1 (en) Method and device for the automated production and provision of at least one software application
DE19957780A1 (en) Computer program editing system has editing effected in graphic environment by use of browser accessing layout control and editing control with editing icons and editing windows
DE10121790A1 (en) System and process for the configuration of software products uses a n extendable software configuration mark up language
DE19712946A1 (en) Computerised method of automatically expanding specifications of process model in workflow process environment
DE19844013A1 (en) Computer-readable work folder memory
DE19960050A1 (en) Test code generation method for automatic testing procedure for computer system using visual representation for selection of test object and test object options
DE19742804A1 (en) Computer system for interactive object control
DE102004043788A1 (en) Personal computing device executes program based on individual programming code to provide predefined code and to define direct relation between input and output of data by user and attribute of classes in input model
DE19960048A1 (en) Start condition processing method for computer workflow management system evaluates correctness of control links for each process activity and verifies time interval conditions
DE69907714T2 (en) COMPONENT-BASED SOURCE CODE GENERATOR METHOD
DE69930352T2 (en) Method and apparatus for animating special video effects
DE102004009676A1 (en) Methods and systems for generating command support files
DE4326472A1 (en) Method and device for reprogramming existing applications using object-oriented technology
EP1387260A1 (en) Method and system for software development
EP1490762B1 (en) Method, software product and system for carrying out universal, computer-aided information processing
DE10233971A1 (en) Software generating method for a software-controlled device uses a software model implemented as data in a computer to derive software program code automatically from the model
EP1234231B1 (en) Method for generating graphical user interfaces for computer programs
EP1044409B1 (en) Program flow method and method for expanding a program component system
EP1691275B1 (en) Method and apparatus for computer-assisted creation of a graphical user interface
EP3940553A1 (en) Server system, computer program product and method for providing security-related data by means of a server system
EP1691274B1 (en) Method and apparatus for computer-assisted creation of a graphical user interface on a display device

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection