DE19957780A1 - Quellcode-Editierung in einer grafischen hierarchischen Umgebung - Google Patents

Quellcode-Editierung in einer grafischen hierarchischen Umgebung

Info

Publication number
DE19957780A1
DE19957780A1 DE19957780A DE19957780A DE19957780A1 DE 19957780 A1 DE19957780 A1 DE 19957780A1 DE 19957780 A DE19957780 A DE 19957780A DE 19957780 A DE19957780 A DE 19957780A DE 19957780 A1 DE19957780 A1 DE 19957780A1
Authority
DE
Germany
Prior art keywords
editing
source code
view
user
control
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
DE19957780A
Other languages
English (en)
Inventor
Adrian Storisteanu
Robert Weisz
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
Publication of DE19957780A1 publication Critical patent/DE19957780A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Abstract

Die vorliegende Erfindung betrifft ein Verfahren zum Betrachten, Schreiben und Ändern von Quellcode in einer integrierten Entwicklungsumgebung (IDE). Wenn Quellcode in einer grafischen Umgebung editiert wird, zeigen Fenster in der Entwicklungsumgebung die Codestruktur eines Projekts an, um die Visualisierung der Beziehungen zwischen Komponenten des Projekts zu ermöglichen. Die vorliegende Erfindung offenbart ein System und ein Verfahren, das eine Editierung direkt in der grafischen Umgebung, in der die Codestruktur angezeigt wird, möglich macht. In der bevorzugten Ausführungsform erfolgt die Editierung des Quellcodes direkt in der grafischen Umgebung, wo ein hierarchisches Modell der Codestruktur eines Projekts auf verschiedenen Ebenen (Modul-, Klassen-, Funktionsebene usw.) angezeigt wird.

Description

GEGENSTAND DER ERFINDUNG
Die vorliegende Erfindung betrifft integrierte Entwicklungsum­ gebungen (IDEs). Sie betrifft auch ein Verfahren zum Editieren von Quellcode in einer grafischen Umgebung, wo die Abhängig­ keiten zwischen Komponenten eines Programms modelliert und grafisch dargestellt werden. Speziell betrifft die Erfindung ein Verfahren zum Editieren von Quellcode direkt in der grafi­ schen Ansicht, in der die Abhängigkeiten zwischen den Kompo­ nenten eines Programms modelliert werden.
HINTERGRUND DER ERFINDUNG
Derzeitige integrierte Entwicklungsumgebungen (IDEs) besitzen typischerweise separate Fenster für die Anzeige der Codestruk­ tur in einem Projekt und für die Editierung von Quelldateien. Typischerweise zeigt das Fenster, in dem die Codestruktur ein einem Projekt dargestellt wird, ein hierarchisches Modell der Abhängigkeiten zwischen verschiedenen Komponenten des zugrun­ deliegenden Programms bzw. der zugrundeliegenden Programme. In bestimmten objektorientierten Programmierungsumgebungen kann die Anzeige darüber informieren, welche Pakete in einem be­ stimmten Projekt enthalten sind, welche Klassen oder Module in solchen Paketen oder Projekten enthalten sind, und welche Me­ thoden, Funktionen, Prozeduren oder andere Subroutinen inner­ halb dieser Klassen oder Module definiert sind. In manchen Fällen können auch die Interaktionen zwischen den verschiede­ nen Methoden (Funktionen, Prozeduren oder Subroutinen), näm­ lich ob sie sich selber oder einander aufrufen, ebenfalls aus der grafischen Anzeige ersichtlich sein.
In diesen Umgebungen wird, wenn es nötig ist, den Quellcode für eine bestimmten Komponente zu lesen, zu schreiben oder zu ändern, ein separates Fenster für diesen Zweck erstellt. Die­ ses Fenster erscheint getrennt vom grafischen Modell, in dem die Beziehungen zwischen den verschiedenen Programmkomponenten angezeigt werden. Der Benutzer muß bei einer Editierung jedes der verschiedenen Fenster benutzen und separat betrachten, und zwischen den einzelnen Fenstern navigieren. Die an den ver­ schiedenen Komponenten vorgenommenen Änderungen erfolgen daher nicht im Kontext der globalen Programmstruktur.
In der US-Patentschrift Nr. 5,490,246 wird ein Grafikeditor beschrieben, der mit dem komplexe grafische Bilder erzeugt und editiert werden können. Der Grafikeditor generiert einen Gra­ phen mit Knoten, die Bildfragmente, Bildtransformationen und Ausgaben (betrachtbare Bilder) darstellen. Jeder dieser Knoten kann in einem separaten Betrachtungsfenster angezeigt und mo­ difiziert werden. Auch wenn die gegenseitigen Abhängigkeiten der verschiedenen Komponenten grafisch dargestellt werden, wird das Fenster, in dem eine Komponente angezeigt wird, nicht direkt geöffnet oder richtig auf dem Graphen, der die Bezie­ hung zwischen den Komponenten modelliert, positioniert. Au­ ßerdem geht es bei der Erfindung um die Editierung grafischer Bilder, und nicht um die Editierung von Quellcode.
In der US-Patentschrift Nr. 5,642,475 wird eine Vorrichtung und ein Verfahren zur Editierung mehrerer grafischer Bilder, die auf einem Bildschirm angezeigt werden und miteinander kor­ reliert sind, beschrieben. Die Erfindung betrifft hierarchisch strukturierte Grafiken, die von anderen Grafiken erzeugt wer­ den, wo Änderungen in der Darstellung einer Grafik als Reakti­ on auf Änderungen in einer anderen, mit ihr in Beziehung ste­ henden Grafik ausgeführt werden können. Diese Erfindung geht nicht darauf ein, daß die Komponentenfenster außerhalb des Kontexts der globalen Hierarchie angezeigt werden, und be­ trifft außerdem die Editierung von grafischen Bildern, und nicht die Editierung von Quellcode.
In der Europapatentanmeldung EP 753814-A2 wird ein Verfahren und eine Vorrichtung zum Analysieren von Quellcode, um die dy­ namischen Eigenschaften eines Programms festzustellen, be­ schrieben. In einer Ausführungsform der Erfindung kann aus dem Ergebnis einer Quellcodeanalyse auch ein Flußgraph generiert werden. Diese Erfindung betrifft nicht die Editierung von Quellcode und erlaubt auch keine solche Editierung in Fen­ stern, die richtig auf dem Flußgraphen positioniert sind.
In der US-Patentschrift Nr. 5,671,416 werden eine Vorrichtung und ein Verfahren zum Durchsuchen eines Quellcode-Analysebaums eines Programm beschrieben, die eine leichtere und effiziente­ re Fehlersuche und Programmänderung ermöglichen. Diese Erfin­ dung betrifft zwar die Editierung von Quellcode, bietet aber keine grafische, abstrakte Darstellung der Programmkomponen­ ten; außerdem kann der Quellcode nicht direkt in dieser Dar­ stellung editiert werden.
Dem Fachmann ist klar, daß ein Programm besser verstanden wird, wenn die Abhängigkeiten zwischen verschiedenen Programm­ komponenten klar ersichtlich sind. Außerdem sind Wartung und Entwicklung von Code einfacher, wenn der Umfang der gewünsch­ ten Änderungen während der Editierung leicht bestimmt werden kann, durch eine Schnittstelle, die den Quellcode eines Pro­ gramms in einer Ansicht zeigt, in der die gegenseitigen Abhän­ gigkeiten der Programmkomponenten angezeigt werden.
ÜBERBLICK ÜBER DIE ERFINDUNG
Eine Aufgabe der vorliegenden Erfindung ist ein System, in dem Änderungen an verschiedenen Komponenten eines Computerpro­ gramms direkt im Kontext der globalen Programmstruktur vorge­ nommen werden.
Die Erfindung bietet ein System und ein Verfahren, bei dem die Ansicht der Abhängigkeiten zwischen den Komponenten eines Pro­ gramms in der visuellen Schnittstelle einer Programmierungsum­ gebung mit einer Ansicht des Quellcodes des Programms kombi­ niert werden kann.
In einem Aspekt der Erfindung werden die Abhängigkeiten zwi­ schen den Komponenten eines Programms in einem Graphen ange­ zeigt, in dem die Knoten Teilkomponenten der Programmkomponen­ ten anzeigen, und in dem die Kanten des Graphen Abhängigkeiten zwischen den als Knoten angezeigten Teilkomponenten darstel­ len. Der Quellcode einer Teilkomponente einer Programmkompo­ nente kann in einem Fenster betrachtet und editiert werden, das den Knoten im Graphen, der die Teilkomponente darstellt, ersetzt.
Die vorliegende Erfindung zielt auf ein System zum Editieren eines Computerprogramms ab, das mehrere Quellcodekomponenten umfaßt, wobei das System einen Browser, eine für den Browser zugängliche und von ihm aufrufbare grafische Layout-Steuerung zum Anzeigen der Beziehung zwischen den Quellcodekomponenten als miteinander verbundene Knoten und eine für den Browser zu­ gängliche Editierungssteuerung enthält. Die Editierungssteue­ rung besitzt mehrere Editierungsansichten und Editierungsfen­ ster. Jede der Editierungsansichten entspricht einem Teil (der auch die Gesamtheit umfassen kann) einer der Quellcodekompo­ nenten, und jedes der Editierungsfenster bietet eine Benutzer­ schnittstelle zu einer der Editierungsansicht entsprechenden Quellcodekomponenten, die es dem Benutzer ermöglicht, die Quellcodekomponente zu editieren.
In einem anderen Aspekt bietet die vorliegende Erfindung ein Verfahren zum Editieren eines Computerprogramms, das aus fol­ genden Schritten besteht: Anzeigen einer hierarchischen Bezie­ hung zwischen Quellcodekomponenten des Computerprogramms, wo­ bei jede Komponente als Knoten dargestellt ist, und repetitive Bereitstellung von Mitteln, mit denen der Benutzer einen der Knoten zur Editierung auswählen kann, und Ersetzen des ausge­ wählten Knotens durch ein Editierungsfenster, in dem die Quellcodekomponente angezeigt wird, damit der Benutzer die Quellcodekomponente editieren kann, während er die hierarchi­ sche Beziehung im Blick hat.
In einem weiteren Aspekt bietet die vorliegende Erfindung ein System zum Editieren eines Computerprogramms, das über einen Browser und eine für den Browser zugängliche grafische Layout- Steuerung verfügt. Die grafische Layout-Steuerung kann vom Browser aufgerufen werden, um eine Anzeige der Beziehungen zwischen Komponenten des Computerprogramms zu erzeugen. Das System enthält außerdem eine Editierungssteuerung, auf die der Browser zugreifen kann. Die Editierungssteuerung bietet eine Schnittstelle, über die ein Benutzer eine Komponente in der Anzeige auswählen kann. Außerdem gibt es ein Editierungsfen­ ster, das den Inhalt der ausgewählten Komponente enthält. Die­ ses Fenster ersetzt die ausgewählte Komponente in der Anzeige, damit der Benutzer den Inhalt der ausgewählten Komponente edi­ tieren kann, während er die Anzeige der Beziehungen betrach­ tet.
Datenträger mit Programminstruktionen zur Verwendung bei der Realsierung der vorliegenden Erfindung in einem Computer sind ein weiterer Aspekt der Erfindung.
KURZBESCHREIBUNG DER ZEICHNUNGEN
Im folgenden wird eine Ausführungsform der vorliegenden Erfin­ dung exemplarisch unter Bezugnahme auf die beigefügten Zeich­ nungen beschrieben. Die Zeichnungen haben folgenden Inhalt:
Fig. 1 ist eine Bildschirmabbildung, in der eine Reihe abhän­ giger Knoten dargestellt ist.
Fig. 2 ist eine Bildschirmabbildung, in der eine Reihe abhän­ giger Knoten dargestellt ist, wobei zwei Knoten erweitert sind.
Fig. 3 ist eine Bildschirmabbildung, in der eine Reihe abhän­ giger Knoten dargestellt ist, wobei vier Knoten erweitert sind.
Fig. 4 zeigt das Prinzip der Komponenten der vorliegenden Er­ findung.
Fig. 5 ist ein Flußdiagramm, in dem dargestellt ist, wie die Komponenten eines Programms von der vorliegenden Erfindung an­ gezeigt werden; und
Fig. 6 ist ein Flußdiagramm, in dem die Schritte in einem ty­ pischen Arbeitsszenario der vorliegenden Erfindung dargestellt sind.
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
In dieser Spezifikation einschließlich der Ansprüche werden folgende Begriffe benutzt:
Editierungssteuerung - Eine Editierungssteuerung ist ein Ob­ jekt, das eine Anzahl zusammengehöriger Editierungsansichten und Editierungsfenster koordiniert und miteinander verknüpft.
Editierungsansicht - Eine Editierungsansicht umfaßt im wesent­ lichen alle Datenstrukturen, die ein in einem Editor geladenes Dokument beeinflussen. Das heißt, eine Editierungsansicht ist ein "Schnappschuß" eines Teils eines ganzen Dokuments oder ein Segnent eines Dokuments, ohne das visuelle Fenster zu dessen Darstellung.
Editierungsfenster - Das Editierungsfenster bildet einen Rah­ men für die Editierungsansicht und die Schnittstelle zwischen dem Benutzer und dem im Editierungsfenster enthaltenen Doku­ ment oder Dokumentausschnitt.
Graphenansicht - Eine Graphenansicht ist eine grafische Dar­ stellung einer Struktur, die durch eine Kombination von Knoten und Verbindungen zwischen den Knoten modelliert werden kann.
In der bevorzugten Ausführungsform bietet die vorliegende Er­ findung die Möglichkeit zum Expandieren eines grafischen Kno­ tens, der ein Quellcodesegment in einer grafischen hierarchi­ schen Umgebung (im folgenden als "Browser" bezeichnet) dar­ stellt, in ein voll ausgestattetes Editierungsfenster, in dem der Text des Quellcodesegments angezeigt wird.
Der Browser ist beispielsweise ein statischer Navigator, ein Klassenbrowser oder eine Designanwendung, die das Block- oder Flußdiagramm eines Programms oder eines Projekts anzeigt. Die Browseranwendung, die die vorliegende Erfindung implementiert, verwendet eine grafische Layoutsteuerung. Die oben erwähnte Erweiterung eines grafischen Knotens kann auf Anforderung des Benutzers erfolgen, typischerweise indem der Benutzer einen Cursor über einen Zielknoten bewegt und diesen Knoten aus­ wählt, indem er ihn mit einem Zeigegerät (z. B. einer Maus) an­ klickt oder bestimmte Tasten drückt. Sowohl Funktions- als auch Navigationsfähigkeiten des Browsers ebenso wie seine Fä­ higkeiten zur Editierung von Quellcode bleiben in einem Brow­ seranwendungsfenster erhalten und sind voll darin integriert.
Bevor Details der Implementierung der vorliegenden Erfindung erläutert werden, wird auf Fig. 1-3 verwiesen, wo ein Bei­ spielszenario der oben erwähnten Quellcodeeditierung im Brow­ ser illustriert wird.
Fig. 1 zeigt ein Browseranwendungsfenster 50 für eine in der Programmiersprache C geschriebene Quelldatei mit dem Namen sample.c, wie in der Titelleiste 51 zu sehen ist. Im Brow­ seranwendungsfenster 50 ist eine erste Graphenansicht 60 dar­ gestellt. Die Information in der ursprünglichen Graphenansicht 60 basiert auf Informationen über das Programm sample.c, die in einer Datenbank in einem Dateisystem gespeichert sind. Die im Browseranwendungsfenster 50 dargestellte Graphenansicht 60 dient als Funktionsebenen-Übersicht des Quelldateiinhalts und als Startpunkt für Editierungsoperationen in der Quelldatei.
In einer alternativen Ausführungsform der Erfindung kann die Graphenansicht 60 in einem höheren Graphen eingebettet sein. So kann zum Beispiel ein Graph, der ein aus mehreren Quell­ code-Dateien bestehendes Programm darstellt, seinerseits in eine grafische Darstellung eines ganzen Projekts eingebettet sein.
In Fig. 1 besteht der Programmquellcode sample.c aus sieben Funktionen, nämlich: Hauptteil, Funktion1, Funktion2, Funkti­ on3, Funktion4, Funktion5 und Funktion6. Die ursprüngliche Graphenansicht 60 liefert eine hierarchische grafische Dar­ stellung der Beziehungen zwischen diesen Funktionen durch die Anwesenheit von Verbindungen 52. In dieser Zeichnung stellt der Wurzelknoten 53 den Hauptteil dar. Die Verbindungen 52 ha­ ben eine Richtung und geben an, wo eine von einem Knoten dar­ gestellte Funktion die Funktion des Knotens aufruft, auf den die Verbindung 52 gerichtet ist. Der Hauptteil ruft also Funk­ tion1 und Funktion2 auf, Funktion1 ruft Funktion3 und Funkti­ on4 auf, und Funktion2 ruft Funktion4, Funktion5 und Funktion6 auf.
In Fig. 2 ist eine neue Graphenansicht 61 mit zwei für das Browsen geöffneten Quellknoten 54 dargestellt. Es wird ein Auswahlmenü 55 für einen Quellknoten 54 zum Browsen oder Edi­ tieren des durch den ausgewählten Quellknoten 54 repräsentier­ ten Codesegmentes oder zum Browsen oder Editieren des Codeseg­ ments für eine andere Funktion, die die vom ausgewählten Quellknoten 54 repräsentierte Komponente aufruft oder von ihr aufgerufen wird, geöffnet (dargestellt durch die Verbindungen 52). Zu den im Auswahlmenü 55 verfügbaren Auswahlmöglichkeiten zählen:
  • a) normale Editierungsaktionen, z. B.: Ausschneiden, Kopieren, Einfügen, Auswahl suchen, Alle Auswahlen aufheben, Filter­ auswahl, Alles anzeigen; und
  • b) Optionen, die normalerweise in einer Graphenansicht 61 zur Verfügung stehen, z. B.:
    • a) eine Liste anderer Komponenten, die eine mit einem Quellknoten 54 verbundene Komponente aufrufen, die von einem Auswahlmenü 55 aus zur Editierung geöffnet werden kann;
    • b) eine Aktion, die ein neues Fenster (nicht darge­ stellt) öffnet, in dem die Topologie der aktuellen Datei oder des aktuellen Projekts angezeigt wird; und
    • c) eine Aktion zum Aktualisieren der Graphenansicht 61, um die an den Programmkomponenten vorgenommenen Ände­ rungen zu zeigen.
In der bevorzugten Ausführungsform der Erfindung besteht die Topologie einer Datei oder eines Projekts aus statistischen Informationen (z. B. der Gesamtzahl der Funktionen in einer Da­ tei) und aus Informationen über aufrufende und aufgerufene Komponenten (z. B. wer wen aufruft).
In Fig. 2 hat der Benutzer den Quellknoten 54, der eine Funk­ tion mit dem Namen Funktion3 darstellt, geöffnet. Dadurch ist ein neues Editierungsfenster 56 geöffnet worden, in dem der Code für Funktion3 angezeigt wird. Sobald der Quellknoten 54 vom Benutzer ausgewählt worden ist, wird eine zugrundeliegende Editierungssteuerung (in Fig. 2 nicht dargestellt) initiali­ siert. Diese Initialisierung beginnt mit dem Laden der Datei sample.c in die Editierungssteuerung. Ein Parser, der bei der zugrundeliegenden Editierungssteuerung registriert ist, analy­ siert die Datei gemäß der Syntax der Programmiersprache C und stellt sie farbig dar. Im Editierungsfenster 56 wird nur das Codesegment angezeigt, das im Quellknoten 54 enthalten ist, in diesem Fall der Quellcode für Funktion3. Den Menüs des Editie­ rungsfensters 56 werden Menüeinträge für C-bezogene Benutzer­ aktionen im Editierungsfenster hinzugefügt. Dabei könnte es sich z. B. um folgende Einträge handeln:
  • a) Aktionen → Build: kompiliert editierten Code;
  • b) Aktionen → Neu formatieren: formatiert den Quellcodetext gemäß den Codierungsstandards neu;
  • c) Ansicht → Logik zeigen: zeigt den logischen Aufbau des Codes; und
  • d) Hilfe → Hilfethemen zu C: zeigt Einträge aus dem Refe­ renzhandbuch an.
Dann wird die Größe des Editierungsfensters 56 angepaßt, und der Quellknoten 54 repräsentiert Funktionen in der Graphenan­ sicht 61.
Der Benutzer hat außerdem einen Quellknoten 54, der die Funk­ tion Funktion4 repräsentiert, zum Editieren geöffnet; dadurch wurde ein neues Editierungsfenster 56 geöffnet, in dem der Code für Funktion4 angezeigt wird. Wie hier zu sehen ist, ist das Editierungsfenster 56, in dem der Code für Funktion4 ange­ zeigt wird, das aktuelle Fenster, während das Editierungsfen­ ster 56, in dem der Code für Funktion3 angezeigt wird, im Hin­ tergrund liegt. Bei der Anzeige der Editierungsfenster 56 wer­ den Verbindungen 52, die auf einen von diesem Editierungsfen­ ster 56 ersetzten Knoten zeigen oder von ihm ausgehen, neu ge­ zeichnet, so daß sie zu diesem Editierungsfenster 56 weisen oder von ihm ausgehen.
In Fig. 3 ist eine neue Graphenansicht 61 dargestellt, nach­ dem der Benutzer zwei weitere Quellknoten 54 zum Editieren ge­ öffnet hat. Fig. 3 zeigt drei Editierungsfenster 56 im Hin­ tergrund und ein Editierungsfenster 56, das das aktuelle Fen­ ster ist. Die Verbindungen 52 zwischen den Quellknoten 54 und den Editierungsfenstern 56 sind neu gezeichnet worden, so daß zu sehen ist, welche Komponenten von welchen anderen Komponen­ ten in der Quelldatei aufgerufen werden.
Der Benutzer kann mit Hilfe von Navigationstasten und Naviga­ tions-Tastenkombinationen zwischen dem Wurzelknoten 53, den Quellknoten 54 und den Editierungsfenstern 56 navigieren und so den aktuellen Fokus von einer Komponente auf eine andere verlagern. Wenn der aktuelle Fokus auf einem nicht geöffneten Wurzelknoten 53 oder Quellknoten 54 liegt, hat der Benutzer die Möglichkeit, ein Editierungsfenster 56 für die mit dem ausgewählten Wurzelknoten 53 oder Quellknoten 54 verknüpfte Komponente zu öffnen.
Fig. 4 zeigt das Prinzip der Komponenten der vorliegenden Er­ findung unter Bezugszeichen 100. Eine Browseranwendung 110 er­ stellt typischerweise ein Rahmenfenster 112 (das z. B. als Browseranwendungsfenster 50 mit einer Titelleiste 51 wie in Fig. 1-3 implementiert ist), in dem sie ihre ursprüngliche grafische Layoutsteuerung 113 einrichtet. Die grafische Lay­ outsteuerung 113 besteht aus einem Graphenmanager und damit zusammenhängenden Datenstrukturen 114, die zur Implementierung einer Graphenansicht (z. B. Bezugszeichen 60 in Fig. 1) benö­ tigt wird. Die grafische Layoutsteuerung 113 enthält außerdem Knotensteuerungen 115, die die Daten und Methoden enthalten, welche zur Implementierung der grafisch anzuzeigenden Knoten (z. B. Wurzelknoten 53 oder Quellknoten 54 in Fig. 1-3) not­ wendig sind. Die grafische Layoutsteuerung 113 enthält außer­ dem Verbindungssteuerungen 116, die die Daten und Methoden enthalten, die zur Implementierung von Verbindungen (z. B. Ver­ bindungen 52 in Fig. 1-3) benötigt werden. Der in einer gra­ fischen Layoutsteuerung 113 anzuzeigende Inhalt kann auf in einer Datenbank gespeicherten Projektinformationen basieren, die z. B. in einem Dateisystem (nicht dargestellt) gespeichert sein können. Dem Fachmann ist klar, daß eine solche Datenbank für die Implementierung der vorliegenden Erfindung nicht not­ wendig ist, daß aber, falls eine Datenbank benutzt wird, die Datenbank Informationen speichern kann, zu denen u. a. die Funktionen in einem speziellen Modul und ihre Aufrufbeziehun­ gen zählen können. Alternativ kann der in einer grafischen Steuerung 113 anzuzeigende Inhalt auf einer Laufzeitanalyse des Quellcode auf der betreffenden Detaillierungsebene (z. B. Projekt, Klasse, Modul, Funktion) basieren.
Die Laufzeitanalysedaten können z. B. durch die vollständige Analyse generiert werden, die von einem inkrementellen Parser ausgeführt wird, der eine Datei beim Laden in die Browseran­ wendung 110 analysiert. Diese Information verzeichnet z. B. die in der Datei gefundenen Funktionen, die Codegrenzen der Funk­ tionen im Quelldokument und die hierarchische Beziehung zwi­ schen den Funktionen (welche Funktionen von sich selber oder von anderen Funktionen aufgerufen werden). Die Browseranwen­ dung 110 aktualisiert diese Information von Zeit zu Zeit, in Verbindung mit den Dokumentaktualisierungen, die von den Edi­ tierungssteuerungen 118 (Beschreibung folgt) und den zugehöri­ gen Parsern (nicht dargestellt) überwacht werden.
In der bevorzugten Ausführungsform der Erfindung wird eine se­ parate Editierungssteuerung 118 erstellt, die die Editierungs­ ansichten 119 und die Editierungsfenster 120 für jede Detaile­ bene (z. B. Projekt, Programm, Quelldatei, Funktion) protokol­ liert. Wenn die Methoden einer Knotensteuerung 115 in der gra­ fischen Layoutsteuerung 113 von der Browseranwendung 110 auf­ gerufen werden, um einen Knoten (z. B. Quellknoten 54) in einer Graphenansicht zum Editieren zu öffnen, und wo noch keine eine Editierungssteuerung 118 für die von der Graphenansicht darge­ stellte Detailebene geöffnet worden ist, wird eine neue Edi­ tierungssteuerung 118 erstellt.
Zum Beispiel kann allen Funktionen, die eine Quelldatei umfas­ sen, eine Editierungssteuerung 118 zugeordnet werden. In die­ sem Fall sind den Editierungssteuerungen 118 Editierungsan­ sichten 119 zugeordnet, von denen jede einer Funktion in der Quelldatei entspricht. Code für eine der Funktionen kann in einem Editierungsfenster 120 editiert werden, das der Editie­ rungsansicht 119 für diese Funktion zugeordnet ist. Das Edi­ tierungsfenster 120 liefert der zugehörigen Editierungsansicht 119 einen Rahmen (z. B. Platz in einem Fenstersystem mit einer Begrenzung, einem Systemmenü, einer Werkzeugleiste, Befehlsme­ nüs) und ermöglicht eine Interaktion des Benutzers (z. B. Edi­ tierung, Mausklicks, Anklicken von Tool in einer Werkzeuglei­ ste, Ändern der Größe) mit dem Rahmen und dem Codesegment, das der Editierungsansicht 119 entspricht.
Der Editierungssteuerung 118 sind ein Editierungs-Manager 121 und verschiedene andere Komponenten und Datenstrukturen (122-131) zugeordnet, die Informationen zu der speziellen Ausprä­ gung der Editierungssteuerung 118 aufzeichnet. Die anderen Komponenten und Datenstrukturen, die der Editierungssteuerung 118 zugeordnet sind, werden im Folgenden beschrieben.
In einer anderen Ausführungsform der Erfindung kann alternativ ein einziges Editierungsfenster 120 ausgewählte Editierungsan­ sichten 119 anzeigen, während die Knoten selber als reguläre grafische Knoten dargestellt werden. In dieser Ausführungsform besteht die Editierungssteuerung aus einem Editierungsfenster 120, dem eine beliebige Anzahl von Editierungsansichten 119 zugeordnet sind. Die grafischen Verbindungen zum Editierungs­ fenster 120 werden entsprechend der Editierungsansicht 119, die dem Editierungsfenster 120 zu einem bestimmten Zeitpunkt zugeordent ist, aktualisiert.
Die Browseranwendung 110 aktualisiert von Zeit zu Zeit die Knoten (z. B. Wurzelknoten 53 oder Quellknoten 54 in Fig. 1-3) und die Verbindungen (z. B. Verbindungen 52 in Fig. 1-3), die in einer Graphenansicht angezeigt werden, indem entsprechende Methoden in den zugehörigen Knotensteuerungen 115 und Verbin­ dungssteuerungen 116 aufgerufen werden, um die Änderungen, die an dem in einem zur Editierung in einem Editierungsfenster 120 dargestellten Code vorgenommen wurden, widerzuspiegeln.
Eigenschaften eines Editierungsfensters 120 hängen von der zu ändernden Komponente ab, und das Editierungsfenster 120 kann aus mehreren Menüs, Schaltflächen und Anzeigebereichen zusam­ mengesetzt sein. In der bevorzugten Ausführungsform der Erfin­ dung ersetzt das Editierungsfenster 120 die entsprechende Kno­ tensteuerung 115 in der Graphenansicht. Der Benutzer intera­ giert auch mit der grafischen Layoutsteuerung 113, um zu navi­ gieren, Browserfunktionen auszuführen und die Editierung in den verschiedenen Komponenten, die in der Graphenansicht ange­ zeigt werden, einzuleiten.
Externe Programme können den Inhalt des Editierungsfensters 120 ebenfalls beeinflussen. In der alternativen Verwendung der vorliegenden Erfindung kann der Benutzer nach dem Kompilieren des Programms einen Befehl auswählen, um möglicherweise vom Compiler generierte Fehlermeldungen anzuzeigen. Die Browseran­ wendung würde dann veranlassen, daß alle Editierungsfenster 120, die den Editierungsansichten 119 für die Segmente mit Fehlern zugeordnet sind, geöffnet werden. Die entsprechenden Fehlermeldungen können als Nur-Lese-Zeilen zusammen mit dem Text, auf den sie sich beziehen, oder als Zeilen in einem se­ paraten Anzeigebereich des betreffenden Editierungsfensters 120 angezeigt werden.
In Fig. 5 ist ein Flußdiagramm dargestellt, in dem zu sehen ist, wie die Komponenten eines Programms von der vorliegenden Erfindung angezeigt werden. Dem Fachmann ist klar, daß es bei Namen, Art und Anzahl der Ebenen in diesem Diagramm je nach Anwendung Variationen geben kann, und daß diese Erfindung alle diese Alternativen einschließen soll.
In der bevorzugten Ausführungsform der Erfindung verursacht die grafische Layoutsteuerung 113 (Fig. 4) ein hierarchisches Modell (d. h. eine Graphenansicht) eines in Schritt 132 anzu­ zeigenden Projekts, das eine grafische Darstellung von Pro­ grammen in einem Projekt ist. Auf dieser Ebene stellen Knoten in einer Graphenansicht (z. B. Wurzelknoten 53 oder Quellknoten 54 in Fig. 1-3) Programme innerhalb eines Projekts dar, und Verbindungen in einer Graphenansicht (z. B. Verbindungen 52 in Fig. 1-3) bezeichnen eine Beziehung zwischen Programmen.
Nach Auswahl eines Knotens, der ein bestimmtes Programm dar­ stellt (Schritt 133), wo eine solche Auswahl entweder vom Be­ nutzer (z. B. durch Zeigen und Anklicken des Knotens mit der Maus) oder durch eine externe Programmanwendung (z. B. einen Debugger) ausgeführt werden kann, wird eine neue Graphenan­ sicht angezeigt (Schritt 134). Die in Schritt 134 angezeigte Graphenansicht ist ein begriffliches Modell des in Schritt 133 ausgewählten Programms und kann in die in Schritt 132 ange­ zeigte Graphenansicht des Projekts eingebettet werden oder al­ ternativ die in Schritt 132 angezeigte Graphenansicht des Pro­ jekts ersetzen.
In einer neuen Graphenansicht, die in Schritt 134 angezeigt wird, stellen die Knoten der Graphenansicht die Quelldateien des in Schritt 133 ausgewählten Programms des in Schritt 132 angezeigten Projekts dar, und die Verbindungen in der Graphen­ ansicht bezeichnen eine Beziehung zwischen Quelldateien. Wenn in Schritt 135 ein Knoten in der Graphenansicht, die eine be­ stimmte Quelldatei darstellt, ausgewählt wurde, wird in Schritt 136 eine neue Graphenansicht wie die in Fig. 1 für die Datei "sample.c" dargestellte angezeigt.
In der neuen Graphenansicht, die in Schritt 136 angezeigt wird, stellen die Knoten in der Graphenansicht Funktionen (oder Prozeduren, Methoden usw.) dar, die in der in Schritt 135 ausgewählten Quelldatei enthalten sind, und jede Verbin­ dung in der Graphenansicht bezeichnet eine Aufrufbeziehung zwischen einer Funktion und einer anderen Funktion, oder bei rekursivem Aufruf zwischen einer Funktion und sich selber. Nachdem in Schritt 137 in der Graphenansicht ein Knoten ausge­ wählt wurde, der eine bestimmte Funktion darstellt, wird in Schritt 138 der Code für die ausgewählte Funktion zur Editie­ rung in diesem Knoten in der Graphenansicht wie in Fig. 2 an­ gezeigt.
Fig. 6 zeigt ein Flußdiagramm, in dem die Schritte in einem typischen Arbeitsszenario der vorliegenden Erfindung darge­ stellt sind. Die in der bevorzugten Ausführungsform ausgeführ­ ten Operationen werden im Folgenden erläutert. Außerdem folgt eine detailliertere Beschreibung der Hauptkomponenten einer typischen Editierungssteuerung (Fig. 4) und einer typischen grafischen Layoutsteuerung 113 (Fig. 4), mit Betonung auf den Details der Implementierung.
Starten der Browseranwendung
Eine Browseranwendung wird in Schritt 150 vom System geladen und ausgeführt. Ein Browseranwendungsfenster 112 (Fig. 4) wird initialisiert und geöffnet, der Quellcode wird gelesen und analysiert, und die ursprüngliche Graphenansicht wird ein­ gerichtet und angezeigt. Pseudocode zur Implementierung dieses Schrittes ist in Anhang "A" zu finden.
Die grafische Layoutsteuerung im Pseudocode von Anhang "A" ist die grafische Layoutsteuerung 113 aus Fig. 4. Die grafische Layoutsteuerung 113 von Fig. 4 ist mittels einer Gruppe von API-Funktionen (API = Anwendungsprogrammschnittstelle, engl. Application Programming Interface), die vom Browser zum Er­ stellen der Graphenansichten mit Knoten (z. B. Wurzelknoten 53 oder Quellknoten 54 in Fig. 1-3) und Verbindungen (z. B. Ver­ bindungen 52 in Fig. 1-3) benutzt werden, implementiert. Die grafische Layoutsteuerung 113 berechnet ebenfalls automatisch ein Layout, so daß die Knoten in einer Graphenansicht ausge­ glichen angezeigt werden, mit minimalen Überkreuzungen der Verbindungen in der Graphenansicht. Eine Änderung der Eigen­ schaften der von der grafischen Layoutsteuerung 113 gesteuer­ ten Graphenansicht erfolgt ebenfalls durch die grafische Lay­ outsteuerung 113. Der Benutzer kann zum Beispiel Knoten und Verbindungen in der Graphenansicht auswählen, um ihre grafi­ schen Attribute wie Farbe, Größe, Position usw. zu ändern.
Die Graphenansicht wird ursprünglich aus Informationen, die in einer Datenbank gespeichert sind, konstruiert, oder dynamisch erstellt (z. B. durch Analysieren des betreffenden Quellcode). Dabei werden Informationen über die Knoten und Verbindungen, die durch die zugehörigen Knotensteuerungen 115 bzw. Verbin­ dungssteuerungen 116 repräsentiert werden, und verschiedene Standardeinstellungen wie Hintergrund-, Hervorhebungs- und Auswahlfarbe, Füllmuster usw. verwendet. Knoten und Verbin­ dungen in der Graphenansicht werden nach den von der grafi­ schen Layoutkontrolle 113 unterstützten Vorlagen und Methoden und nach anwendungsspezifischen Kriterien erstellt und posi­ tioniert.
Die von der grafischen Layoutsteuerung verwaltete Information zu einem Knoten in der Graphenansicht umfaßt:
  • a) Name und Kennung des Knotens;
  • b) grafische Eigenschaften (die zum Zeichnen des Knotens be­ nötigten Werte);
  • c) Inhalt (interne Struktur mit Text, einem verschachtelten Graphen usw.);
  • d) interne und externe Kennzeichen für den Knoten;
  • e) Statusinformationen (Art des Knotens, Sichtbarkeitsinfor­ mationen, Größenvorlage);
  • f) Größendaten; und
  • g) Benutzerdatenzeiger für Anwendungen zur Verwaltung von In­ formationen über den Knoten.
Die von der grafischen Verbindungssteuerung verwaltete Infor­ mation zu einer Verbindung in der Graphenansicht umfaßt:
  • a) Name und Kennung der Verbindung;
  • b) grafische Attribute (Farbe, Linienart, Linienbreite, Koor­ dinaten);
  • c) Pfeilinformationen (Ausgangs- und Zielpunkt);
  • d) eine Textmarke;
  • e) Statusdaten; und
  • f) einen Benutzerdatenzeiger.
Benutzerinteraktionsfunktionen sind ebenfalls in der grafi­ schen Layoutsteuerung 113 implementiert, u. a.: Blättern im Graphen, Zoom-Funktion, Abfrage der Graphenobjekte an einer bestimmten Stelle (wird z. B. von einer Anwendung benutzt, um den Knoten in der Graphenansicht nach Auswahl durch den Benut­ zer zu identifizieren).
Wie bereits erwähnt ermöglicht die grafische Layoutsteuerung 113 in der bevorzugten Ausführungsform der vorliegenden Erfin­ dung auch die Ersetzung eines Knotens in einer Graphenansicht durch ein Editierungsfenster 120 (Fig. 4), in dem der Code der Komponente (z. B. eine Editierungsansicht 119 in Fig. 4) editiert werden kann. Die grafische Layoutsteuerung 113 über­ nimmt die Verarbeitung und Übermittlung von Systemereignismit­ teilungen zu und von der grafischen Layoutsteuerung 113, be­ handelt aber ansonsten das Editierungsfenster 120, das den Knoten in der Graphenansicht ersetzt, wie einen Knoten für an­ dere Zwecke, einschließlich der Darstellungsweise des Graphen und der Verwaltung von Verbindungen in der Graphenansicht.
Alternativ kann ein Knoten in der Graphenansicht, der zur Edi­ tierung geöffnet wird, als anwendungsgesteuert bezeichnet wer­ den. Die grafische Layoutsteuerung 113 verarbeitet die Größen­ anpassung und Repositionierung eines Knotens, aber eine externe Anwendung hätte ihr eigenes Fenster an dieser Stelle. Die An­ wendung erstellt und positioniert das Fenster und führt mit der grafischen Layoutsteuerung 113 eine bidirektionale Kommu­ nikation bezüglich Größe, Position und Status dieses Fensters.
Das betreffende Quellcodesegment, das von einem Knoten in der Graphenansicht repräsentiert wird (eine ganze Quelldatei, eine Klasse oder eine Funktion) wird von der Browseranwendung 110 bestimmt und eingerichtet. Dies geschieht in Verbindung mit einem Parser (nicht dargestellt), der an die Editierungssteue­ rung 118 für die betreffende Datei angehängt ist, und der Strukturelemente im Quellcode klassifiziert und begrenzt. Die Sichtbarkeit des gewünschten Segments wird erreicht, indem der gewünschte Bereich (oder die Bereiche) im Dateitext durch Mar­ kierungssichtbarkeitseinstellungen in der Editierungsansicht 119 markiert und der Rest ausgeblendet wird. Dieser Prozeß wird im nächsten Abschnitt ausführlicher beschrieben.
Die Grenzen des vom Knoten in der Graphenansicht dargestellten Quellcodesegments werden bei der Editierung durch einen Parser verwaltet, der die Information durch inkrementelles Analysie­ ren stets auf dem neuesten Stand hält.
Öffnen von Knoten zum Editieren/Editieren von Code in geöff­ neten Knoten
Wieder in Fig. 6 fordert der Benutzer in Schritt 152 an, daß ein Knoten in der Graphenansicht zum Editieren geöffnet werden soll. In Schritt 152 empfängt ein Ereignisbeobachter (nicht dargestellt), der unter der Kontrolle der Browseranwendung 110 läuft, eine Benachrichtigung über die Auswahl des Benutzers und seine Anfordern, einen Knoten in der Graphenansicht zum Editieren zu öffnen. Der Code der Komponente, die dem Knoten in der Graphenansicht entspricht, kann dann editiert werden. Pseudocode zur Implementierung dieses Schrittes ist in Anhang "B" zu finden.
Wie bereits erwähnt ist die Editierungssteuerung 118 (Fig. 4), auf die im Pseudocode in Anhang "B" Bezug genommen wird, eine Steuerung, die dem Benutzer das Durchsehen und Editieren von Quellcode ermöglicht. Sie ermäglicht den Zugriff auf alle vorhandenen internen und externen Befehle, Profile und Makros (gespeichert in einer Profil- und Makro-Datenstruktur 130) ei­ nes unabhängigen Editors.
Eine Ausprägung der Editierungssteuerung 118 kann aus einer beliebigen Anzahl der folgenden Objekte bestehen:
a) Editierungsansicht 119
Dieses Objekt steuerte eine Ansicht eines zu editierenden Do­ kuments (z. B. eine in die Editierungssteuerung 118 geladene Datei oder einen Teil davon). Sie ermöglicht einer Browseran­ wendung 110 die Änderung des zu editierenden Dokuments mit Hilfe interner Editierungsbefehle und externer Editierungsbe­ fehle, die in die Editierungssteuerung 118 geladen und dort ausgeführt werden, und mit Hilfe von Editierungsprofilen und Makros (gespeichert in einer Profile- und Makrostruktur, Be­ schreibung folgt). Die Editierungsansicht 119 wird durch Defi­ nition einer Klasse implementiert, die folgendes umfaßt:
  • A) einen Konstruktor mit folgenden Parametern:
    • a) Name des zu editierenden Dokuments: wenn die Datei noch nicht geöffnet ist, wird sie geladen, andern­ falls wird eine neue Ansicht des Dokuments erstellt;
    • b) optionale Zeiger auf das zugehörige Editierungsfen­ sterobjekt 120;
    • c) optionaler Dokumenttyp; und
    • d) sonstige implementierungsabhängige Optionen (z. B. Editierungsprofile in der auszuführenden Profil- und Makrostruktur 130, und eine Zeilenendemarkierung).
  • B) Klassenmethoden (die nicht einer speziellen Ausprägung der Editierungsansicht 119 zugeordnet sind), bestehend aus:
    • a) setInstance(name): erzeugt eine Ausprägung für die zu erstellenden Editierungsansichtobjekte 119;
    • b) currentEditView(): gibt einen Zeiger auf das Editie­ rungsansichtobjekt 119, das der aktuellen Editie­ rungsansicht 119 zugeordnet ist, zurück; und
    • c) editCommand(Editierungsbefehl, Parameter): führt ei­ nen Editierungsbefehl aus, der nicht für eine be­ stimmte Editierungsansicht 119 spezifisch ist.
  • C) Objektmethoden wie:
    • a) editwindow(): gibt ggf. einen Objektzeiger für das Editierfensterobjekt 120 der Editierungsansicht 119 aus;
    • b) setEditWindow(Zeiger auf EditWindow): ordnet der ak­ tuellen Editierungsansicht 119 ein angegebenes Edi­ tierungsfenster 120 zu;
    • c) Befehl (Editierungsbefehl, Parameter): führt eine Editierungsbefehl-Einstellung aus oder fragt eine Be­ fehlseinstellung ab; und
    • d) activate(): eine virtuelle Funktion, die in der An­ wendung implementiert ist und aufgerufen wird, wenn der Benutzer eine Aktion ausgeführt hat, die norma­ lerweise das Editierungsfenster 119 aktivieren würde, wenn aber der Editierungsansicht 119 kein Editie­ rungsfenster 120 zugeordnet ist. Diese Funktion er­ möglicht es der Anwendung, einer Editierungsansicht 119 ein Editierungsfenster zuzuordnen und den Fokus auf dieses Fenster zu legen, was bei der Implementie­ rung der Navigation zwischen den Einheiten in einer Graphenansicht nützlich sein kann.
  • D) Benachrichtigungselemente wie:
    • a) focusld: eine Kennung, die Beobachtern einer Editie­ rungsansicht 119 zur Verfügung gestellt wird, wenn das Editierungsfenster 120, das der Editierungsan­ sicht 119 zugeordnet ist, den Fokus erhält oder ver­ liert.
b) Editierungsfenster 120
Dieses Objekt ist ein Fenster, das eine Benutzerschnittstelle für eine Editierungsansicht 119 bietet. Ein Editierungsfenster 120 kann geöffnet und in drei Größen dargestellt werden, zwi­ schen denen der Benutzer umschalten kann:
  • a) minimiert - die Originalgröße eines Knotens in einer Gra­ phenansicht:
    Dies ist die grafische Darstellung des Knotens in einer Graphenansicht (z. B. des Wurzelknotens 53 oder des Quellcodeknotens 54 in Fig. 1-3), gekennzeichnet mit dem Namen der Einheit, die er darstellt (z. B. einem Funktions­ namen).
  • b) normal - der Knoten in einer Graphenansicht ist eine Edi­ tierungsansicht 119:
    Die Verbindungen in der Graphenansicht (z. B. die Verbin­ dungen 52 in Fig. 1-3) von und zu anderen Knoten in der Graphenansicht oder Editierungsansichten 119 (dargestellt in Editierungsfenstern 120) werden angezeigt. Dies ist der Standard-Editierungsmodus in der bevorzugten Ausführungs­ form der Erfindung.
  • c) maximiert - der Knoten in einer Graphenansicht ist eine Editierungsansicht 119, vergrößert auf die maximale Anwen­ dungsfenstergröße, oder vernünftigerweise maximiert in dem Rahmenfenster 112 der Browseranwendung 110.
Mehrere gleichzeitig geöffnete Editierungsfenster 120 können hintereinander oder überlappend angezeigt werden.
Ein Editierungsfenster 120 wird durch Definition einer Klasse implementiert, die folgendes umfaßt:
  • A) einen Konstruktor mit folgenden Parametern:
    • a) Kennung des Editierungsfensters 120;
    • b) Zeiger auf Eltern-/Eigner-Fenster;
    • c) die ursprüngliche Größe und Position des Editierungs­ fensters 120;
    • d) optionale Zeiger auf verschiedene Steuerobjekte, die das Editierungsfenster 120 verwenden soll (z. B. Ti­ telleiste, Menüleiste, Werkzeugleisten, Pop-Up- Fenster, anwendungseigene Schiebeleisten, Nachrich­ tenleiste); und
    • e) sonstige implementierungsabhängige Optionen (z. B. Ei­ genschaften des Editierungsfensters 120 wie Begren­ zungen und andere Eigenschaften).
  • B) Objektmethoden wie:
    • a) Steuerobjekte zum Setzen bzw. Entfernen: z. B. setTit­ leBar, setMenuBar; und
    • b) textWindow: gibt einen Zeiger auf das Haupttextein­ tragsfenster zurück und ermöglicht es der Anwendung, ihre eigenen Tastatur- und Maus-Handler (nicht darge­ stellt) bereit. Ein Editierungsfenster 120 umfaßt normalerweise mehrere Anzeigebereiche (nicht darge­ stellt), in denen das Haupttexteintragsfenster be­ nutzt wird, um den zu editierenden Code darzustellen und Tastatur- und Mauseingaben zu akzeptieren. Die Handler können ein Verfahren zur Rückabbildung eines Texteintraganzeigebereichs auf ein Editierungsfenster 120, von dem aus sie aufgerufen worden sind, verwen­ den.
c) Editierungsmanager 121
Der Editierungsmanager 121 ist für die Ausprägung und Verwal­ tung der verschiedenen Komponenten einer Editierungssteuerung 118 zuständig. Jede Ausprägung einer Editierungssteuerung 118 unterstützt und verbindet eine Anzahl zusammengehöriger Edi­ tierungsfenster 119 und Editierungsfenster 120. Alle Editie­ rungsansichten 119 und Editierungsfenster 120 in der Editie­ rungssteuerung 118 können auf Informationen über einander zu­ greifen. Sie sind auch von Änderungen der globalen Editie­ rungseinstellungen und -parameter betroffen, und ermöglichen eine Navigation zwischen ihnen.
Der Editierungsmanager 121 verarbeitet die internen Befehle der Programmierungsumgebung. Er verarbeitet beispielsweise die Bindung von internen oder externen Befehlen und Editierungsma­ kros an Tastenaktionen (gespeichert in einer Tastenaktions­ struktur 131, Beschreibung folgt), Mausaktionen und Menüein­ träge. Wenn eine Aktion empfangen wird, ruft er den an an die Aktion gebundenen Befehl auf, falls ein solcher existiert.
d) Textverarbeitungskomponente 122
Die Textverarbeitungskomponente 122 verarbeitet das Laden von Dokumenten in einen Editierungspuffer 126 (unten beschrieben), alle Texteditierungs- und -formatierungsoperationen und die Speicherung der Dokumente. Festgeschriebene Änderungen am Do­ kument werden für eine spätere Verarbeitung durch einen Parser (nicht dargestellt) in einem Stapel aufgezeichnet. Diese In­ formation kann beispielsweise aus Zeigern auf die geänderten Textelemente, die hinzugefügten Textelemente und ein vor einem gelöschten Textelement liegendes Textelement bestehen. Der Parser wird mit diesen Zeigern aufgerufen und führt eine neue Analyse diese Bereiche des Dokuments durch.
e) Steuerung der grafischen Benutzerschnittstelle 123
Die Steuerung der grafischen Benutzerschnittstelle 123 steu­ ert, erzeugt und zeigt eine Editierungsansicht 119 in einem Editierungsfenster 120. Sie verwaltet die Anzeigeattribute der gezeigten Elemente gemäß den Einstellungen durch eine Editie­ rungsausprägung 118 und ihren Werkzeugen. Beispiele für die von der Steuerung der grafischen Benutzerschnittstelle 123 verwalteten Anzeigeattribute sind u. a. die Gliederung und farbliche Darstellung des Textes für eine Editierungsansicht 119 durch einen Parser, die nicht zum Dokument gehörenden, reinen Anzeigeelemente und eingebetteten Meldungen im Editie­ rungsfenster 120 (z. B. die beim Kompilieren generierten Feh­ lermeldungen), und die Filterung von Elementen in die oder aus der Anzeige nach den Angaben des Benutzers oder der Browseran­ wendung 110. Verschiedene Ereignisse, die in der Browseranwen­ dung 110 als Resultat einer Anzeigeänderung durch den Benutzer (z. B. Vergrößern/Verkleinern oder Verschieben des Fensters und Mausklicks auf eine Schaltfläche) empfangen werden, werden verarbeitet, und die Ereignismitteilungen werden an das El­ ternfenster, das ein Editierungsfenster 124 ausgelöst hat, übergeben oder für dieses generiert.
f) Befehls-/Makro-Schnittstelle 124
Diese Komponente steuert eine Schnittstelle zu internen Edi­ tierungsbefehlen, externen Befehlen (Code, der in eine Editie­ rungssteuerung 118 geladen und dort ausgeführt wird), und Edi­ tierungsmakros einschließlich inkrementeller Parser.
g) Editierungsmanagerstruktur 125
Diese Datenstruktur speichert die globalen Daten für eine Edi­ tierungssteuerung 118.
h) Editierungspuffer 126
Ein Editierungspuffer 126 umfaßt eine verbundene Liste (oder eine andere geeignete Datenstruktur) aller Textelemente (ge­ speichert in Elementstrukturen 127, siehe unten) eines be­ stimmten Dokuments.
i) Elementstrukturen 127
Diese Datenstrukturen speichern die Textelemente, die einen Editierungspuffer bilden. Für ein Dokument können verschiedene Klassen von Textelementen definiert werden (z. B. CODE, SPACE, SEMICOLON, FUNCTION, BRACE, FWDLINK, BWDLINK, ERROR, COMMENT, CONTROL). Die Textelemente werden aus dem Inhalt der in eine Editierungssteuerung 118 geladenen Datei ermittelt. Ein Texte­ lement kann zu einer oder mehreren Klassen gehören. Die Navi­ gation zwischen den Elementen durch ihre Klassen (z. B. NÄCHSTE KLASSE FUNCTION zum Verschieben des aktiven Punktes auf das nächste Element, das zur Klasse FUNCTION gehört) ist innerhalb eines Editierungsfensters 120 möglich.
In der bevorzugten Ausführungsform der Erfindung werden die Anzeigeattribute für jedes Zeichen in dem in einem Editie­ rungsfenster 120 angezeigten Test durch die Gliederungsfunkti­ on eines Parsers (nicht dargestellt), der an die Editierungs­ steuerung 118 angehängt ist, gesetzt. Eine Elementstruktur enthält Textinhalt, Formatierungskennzeichen und Anzeigeattri­ bute sowie Klasseninformation.
j) Dokumentsteuerstruktur 128
Diese Datenstruktur enthält Informationen zur Steuerung der Operationen an einem Dokument in einer Editierungssteuerung 118. Eine solche Struktur wird für jedes zu editierende Doku­ ment erstellt. Klassen werden zum Herausfiltern von Textele­ menten in der Codeanzeige in einem Editierungsfenster 120 be­ nutzt, und sie werden auch von den Parsern benutzt, um den In­ halt eines Editierungspuffers 126 in verschiedenen Detaillie­ rungsgraden zu interpretieren.
k) Ansichtssteuerstruktur 129
Diese Datenstruktur enthält Daten, die die Steuerung eines Editierungsfensters 119 für ein Dokument in einem Editierungs­ fenster 120 betreffen. Dazu zählen zum Beispiel für die Edi­ tierungsansicht 119 definierte Anzeigeattribute, die Größe der Editierungsansicht 119, die erforderliche Sichtbarkeit von Textelementen (zum Filtern oder Heranzoomen) und Bildschirm­ felder für die Komponenten des Editierungspuffers 126, die ge­ rade in der Editierungsansicht 119 angezeigt werden:
l) Profil- und Makrostruktur 130
Diese Datenstruktur speichert die Profile und Makros, die ei­ ner Editierungssteuerung 118 zugeordnet sind. Die Profile ent­ halten Informationen über Standard- und benutzerspezifische Einstellungen und werden vom Anwendungsbrowser 110 definiert, wenn beispielsweise eine Ausprägung einer Editierungssteuerung 119 erzeugt wird oder wenn ein neues Dokument geöffnet wird. Einstellungen in der Editierungssteuerung 118, die beim Arbei­ ten mit verschiedenen Plattformen angepaßt werden müssen, Da­ teitypen und Anwendungen können ebenfalls in einem Profil ge­ speichert werden. Der Editierungssteuerung 118 wird auch mit Hilfe des Editierungsprofils, das basierend auf dem Dateityp oder der Dateierweiterung der geladenen Datei aufgerufen wird, ein Parser angehängt.
m) Tastenaktionsstruktur 131
Diese Datenstruktur speichert die Standardaktionen für Tasten, Tastenkombinationen und Mausaktionen. Diese Aktionen können neu definiert werden, z. B. durch ein Editierungsprofil, ein Makro oder einen externen Befehl, um ein beliebige Folge von Befehlen zu aktivieren.
Navigation zwischen den Fenstern
Wieder in Fig. 6 will der Benutzer nun vielleicht zwischen aufeinanderfolgenden Editierungsfenstern 120 in einer Graphen­ ansicht navigieren wie in Schritt 154. Pseudocode zur Imple­ mentierung von Schritt 154 ist in Anhang "C" zu finden. Die Navigation zwischen aufeinanderfolgenden Editierungsfenstern 120 in einer Graphenansicht ist zum Beispiel notwendig, wenn der Benutzer vom Editierungscode in einem Editierungsfenster 120 zum Editierungscode in einem anderen Editierungsfenster 120 umschalten will.
Die Reihenfolge, in der die Editierungsfenster 120 den aktuel­ len Fokus erhalten, wenn ein Benutzer zwischen den Editie­ rungsansichten 119 eines in den Editierungsfenstern 120 ange­ zeigten Dokuments navigiert, hängt von der Erstellungsreihen­ folge der Editierungsansichten 119 ab. Die Reihenfolge, in der Editierungsfenster 120 den aktuellen Fokus erhalten, kann auch von benutzer- oder anwendungsspezifischen Einstellungen und Verwaltungsoptionen abhängen, die festlegen, die die Navigati­ on zwischen aufeinanderfolgenden Editierungsansichten 119 der Editierungsfenster 120 durchgeführt wird. So können zum Bei­ spiel die Navigationstasten der Editierungssteuerung 118 so umdefiniert werden, daß eine "hierarchische" Navigation (d. h. eine Bewegung zwischen Editierungsansichten 119 nach der Auf­ rufbeziehung zwischen den in einer Graphenansicht angezeigten Komponenten) möglich ist.
In der bevorzugten Ausführungsform der Erfindung kann nach der Aktualisierung eines Dokuments (d. h. des Inhalts eines Editie­ rungsfensters 120) die Graphenansicht im Editierungsfenster 120 falls erforderlich entsprechend geändert werden.
Schließen eines Editierungsfensters
In Fig. 6 fordert der Benutzer die Schließung eines Editie­ rungsfensters 120 an wie in Schritt 156. Pseudocode zur Imple­ mentierung dieses Schrittes ist in Anhang "D" zu finden.
In der bevorzugten Ausführungsform der Erfindung verwaltet die grafische Layoutsteuerung 113 (Fig. 4) eine Reihe verschach­ telter Graphen, wo eine Graphenansicht einen Knoten in einer Graphenansicht einer höheren Ebene ersetzen kann und jede Gra­ phenansicht ihre eigene Struktur von Knoten und Verbindungen verwaltet. Jeder Knoten in einer Graphenansicht auf Funktion­ sebene kann geöffnet werden, um den zugrundeliegenden Quell­ code anzuzeigen, der der vom Knoten in der Graphenansicht re­ präsentierten Komponente entspricht, dieser kann ein einem zu­ geordneten Editierungsfenster 120 (Fig. 4) ediert werden.
In einer anderen Ausführungsform der Erfindung erlaubt die grafische Layoutsteuerung 113 dem Benutzer nach der Auswahl eines Knotens in der Graphenansicht, entweder eine neue Gra­ phenansicht anzuzeigen, die der vom Knoten in der Graphenan­ sicht repräsentierten Komponente entspricht, oder ein Editie­ rungsfenster 120 anzuzeigen, in dem der zugrundeliegende Quellcode, der der von dem Knoten in der Graphenansicht reprä­ sentierten Komponente entspricht, editiert werden kann, selbst wenn der Knoten in der Graphenansicht alternativ durch eine separate Graphenansicht ersetzt werden könnte.
Die bevorzugte Ausführungsform der offenbarten Erfindung kann . mit einer anpassungsfähigen Editierungssteuerung wie LPEX (dem Editor IBM Live Parsing Extensible) und einer grafischen hier­ archischen Umgebung wie die grafischen Layoutbibliotheken von NARC/DG (Nodes and Arcs/Directed Graph), mit Modifikationen zur Unterstützung der hier beschriebenen Eigenschaften der Er­ findung, implementiert werden.
Dem Fachmann ist klar, daß die Anwendung der hier beschriebe­ nen Erfindung nicht auf Programme in der Programmiersprache C beschränkt ist, und auch nicht auf die grafische Benutzer­ schnittstelle oder das grafische Layout in den Illustrationen.
Es ist anzunehmen, daß sich ein Fachmann leicht Variationen dieser Erfindung ausdenken kann, und die vorliegende Erfindung soll solche Variationen einschließen.
Anhang "A"
Anhang "B"
Anhang "C"
Anhang "D"

Claims (15)

1. Ein System zum Editieren eines Computerprogramms, wobei das Programm aus mehreren Quellcodekomponenten besteht, umfassend:
  • a) einen Browser;
  • b) eine für den Browser zugänglichen grafischen Layout­ steuerung,
    die vom Browser aufgerufen wird, um die Beziehungen zwischen den Quellcodekomponenten als untereinander verbundene Knoten anzuzeigen;
  • c) eine für den Browser zugängliche Editierungssteuerung mit mehreren Editierungsansichten und Editierungsfen­ stern;
  • d) wobei jede Editierungsansicht einem Teil einer der Quellcodekomponenten entspricht; und
  • e) jedes der Editierungsfenster eine Benutzerschnitt­ stelle zu dem Teil einer der Quellcodekomponenten, die einer Editierungsansicht entspricht, bietet, so daß der Benutzer eine der Quellcodekomponenten edi­ tieren kann.
2. Das System nach Anspruch 1, wobei jede der Editierungsan­ sichten, die einem Teil einer Quellcodekomponente ent­ spricht, einer Gesamtheit einer der Quellcodekomponenten entspricht.
3. Ein Verfahren zum Editieren eines Computerprogramms, wobei das Verfahren folgende Schritte umfaßt:
  • a) Anzeigen einer hierarchischen Beziehung zwischen Quellcodekomponenten eines Computerprogramms, wobei jede Komponenten als ein Knoten dargestellt wird;
  • b) Bereitstellung eines Mittels, das dem Benutzer die Auswahl eines der Knoten zur Editierung ermöglicht;
  • c) Ersetzen des ausgewählten Knotens durch ein Editie­ rungsfenster, in dem die Quellcodekomponente ange­ zeigt wird, wodurch dem Benutzer die Editierung der Quellcodekomponente ermöglicht wird, während er die hierarchische Beziehung betrachtet; und
  • d) Wiederholung der Schritte b) bis c).
4. Das Verfahren nach Anspruch 3, das außerdem die Anwendung des Verfahrens auf ein Projekt umfaßt, so daß vor Schritt a) dem Benutzer die Hierarchie der Programme in einem Pro­ jekt präsentiert wird, wobei jedes der Programme als ein Knoten dargestellt wird, und das ein Mittel bereitstellt, damit der Benutzer einen Knoten auswählen kann, bei dessen Auswahl die hierarchische Struktur des durch den ausge­ wählten Knoten repräsentierten Programms angezeigt wird.
5. Das Verfahren nach Anspruch 3 oder 4, das außerdem einen Schritt enthält, der die Anzeige der hierarchischen Bezie­ hung aktualisiert, wenn Änderungen, die an der vom Benut­ zer editierten Quellcodekomponente vorgenommen werden, die hierarchische Beziehung verändern.
6. Das Verfahren nach Anspruch 5, das außerdem einen Schritt umfaßt, indem einem Benutzer ein Auswahlmenü zu dem Edi­ tierungsfenstser angezeigt wird, das dem Benutzer mehrere Editierungs- und Anzeigeoptionen für die im Editierungs­ fenster angezeigte Quellcodekomponente anbietet.
7. Das Verfahren nach Anspruch 6, das außerdem einen Schritt umfaßt, in dem dem Benutzer eine hierarchische Navigati­ onsschnittstelle zur Verfügung gestellt wird, die Mittel bietet, mit denen der Benutzer in der durch die hierarchi­ sche Beziehung definierten Reihenfolge zwischen den Knoten navigieren kann.
8. Das Verfahren nach Anspruch 6, wobei die Editierungs- und Anzeigeoptionen folgendes umfassen:
  • a) Editierungsoptionen für: Ausschneiden, Kopieren, Ein­ fügen, Suchen, Alle Auswahlen aufheben, Filter und Alle anzeigen;
  • b) eine Aufrufoption, die alle Knoten anzeigt, die den ausgewählten Knoten aufrufen;
  • c) eine Topologieoption, die die Topologie der Komponen­ ten in einem Programm oder der Programme in einem Projekt anzeigt; und
  • d) eine Option zum Aktualisieren der Anzeige der hierar­ chischen Beziehung, um Änderungen an den Beziehungen, die während der Editierung stattgefunden haben kön­ nen, anzuzeigen.
9. Ein System zum Editieren eines Computerprogramms, umfas­ send:
  • a) einen Browser;
  • b) eine für den Browser zugängliche grafische Layout­ steuerung, die vom Browser aufgerufen wird, um eine Anzeige der Beziehungen zwischen Komponenten des Com­ puterprogramms zu erzeugen;
  • c) eine für den Browser zugängliche Editierungskontrol­ le, die eine Schnittstelle bietet, die es dem Benut­ zer ermöglicht, eine Komponente aus der Anzeige aus­ zuwählen; und
  • d) ein Editierungsfenster, das den Inhalt der ausgewähl­ ten Komponente enthält, wobei das Fenster die ausge­ wählte Komponente in der Anzeige ersetzt, damit der Benutzer den Inhalt der ausgewählten Komponente edi­ tieren kann, während er die Anzeige der Beziehungen betrachtet.
10. Das System nach Anspruch 9, wobei die Editierungssteuerung es dem Benutzer nach Auswahl einer Komponente erlaubt, ei­ ne der Quellcodesegment-Hierarchien in der ausgewählten Komponente anzuzeigen und die Gesamtheit der ausgewählten Komponente zur Editierung anzuzeigen.
11. Das System nach Anspruch 1 oder Anspruch 9, wobei die gra­ fische Layoutsteuerung folgendes umfaßt:
  • a) eine Graphenmanager Manager, wobei der Graphenmanager die Anzeige einer Graphenansicht steuert;
  • b) mehrere für den Graphenmanager zugängliche Knoten­ steuerungen zur Implementierung der Anzeige von Kno­ ten in der Graphenansicht; und
  • c) mehrere für den Graphenmanager zugängliche Verbin­ dungssteuerungen zur Implementierung der Anzeige von gerichteten Verbindungen in der Graphenansicht;
12. Das System nach Anspruch 11, das außerdem mehrere ver­ schachtelte Graphenlayoutsteuerungen umfaßt, so daß jede von einer Graphenlayoutsteuerung implementierte Graphenan­ sicht einen Knoten in einer Graphenansicht einer höheren Ebene ersetzen kann.
13. Das System nach Anspruch 12, das außerdem mehrere Editie­ rungssteuerungen umfaßt, von denen jede eine Gruppe von Editierungsansichten und den zugehörigen Editierungsfen­ stern steuert, wobei die Gruppe einer speziellen Detail­ lierungsebene im zu editierenden Quellcode entspricht.
14. Das System nach Anspruch 13, bei dem die Editierungssteue­ rung außerdem folgendes umfaßt:
  • a) einen Editierungsmanager, der die Ausprägung und Ver­ waltung der Komponenten in der Editierungssteuerung steuert;
  • b) eine Textverarbeitungskomponente, die das Laden der zu editierenden Quellcodesegmente in eine Editie­ rungsansicht steuert;
  • c) eine grafische Benutzerschnittstelle, die die Dar­ stellung einer Editierungsansicht innerhalb eines Editierungsfensters steuert;
  • d) eine Befehls-/Makro-Schnittstelle, die eine Schnitt­ stelle zwischen internen und externen Editierungsbe­ fehlen und der Editierungssteuerung bildet;
  • e) einen Editierungspuffer, der mehrere Elementstruktu­ ren umfaßt, welche Textelemente, auf die die Textver­ arbeitungskomponente zugreift, umfassen;
  • f) eine Dokumentsteuerstruktur, die steuert, welche Tex­ telemente des Editierungspuffers im Editierungsfen­ ster angezeigt werden sollen;
  • g) eine Ansichtssteuerstruktur, die Steuerdaten für die Anzeige einer Editierungsansicht liefert;
  • h) eine Profil- und Makrostruktur, die die Profilinfor­ mation für eine Editierungsansicht speichert; und
  • i) eine Tastenaktionsstruktur, die Standardaktionen für Tasten und Mausauswahl für die Editierungssteuerung speichert.
15. Ein computerlesbarer Speicher zum Speichern der Instruk­ tionen zur Verwendung bei der Ausführung eines der Verfah­ ren nach Anspruch 3 bis 8 auf einem Computer.
DE19957780A 1998-12-23 1999-12-01 Quellcode-Editierung in einer grafischen hierarchischen Umgebung Ceased DE19957780A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA002256931A CA2256931A1 (en) 1998-12-23 1998-12-23 Source editing in a graphical hierarchical environment

Publications (1)

Publication Number Publication Date
DE19957780A1 true DE19957780A1 (de) 2000-07-06

Family

ID=4163116

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19957780A Ceased DE19957780A1 (de) 1998-12-23 1999-12-01 Quellcode-Editierung in einer grafischen hierarchischen Umgebung

Country Status (3)

Country Link
US (1) US6792595B1 (de)
CA (1) CA2256931A1 (de)
DE (1) DE19957780A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100442265C (zh) * 2003-05-09 2008-12-10 微软公司 用于作为图形布局/表示对象的宿主的系统

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662356B1 (en) * 1999-06-30 2003-12-09 Microsoft Corporation Application program interface for transforming heterogeneous programs
US9916134B2 (en) 1999-10-05 2018-03-13 Dietrich Charisius Methods and systems for accessing distributed computing components through the internet
US6763497B1 (en) * 2000-04-26 2004-07-13 Microsoft Corporation Method and apparatus for displaying computer program errors as hypertext
JP3613554B2 (ja) * 2000-08-24 2005-01-26 インターナショナル・ビジネス・マシーンズ・コーポレーション データ表示方法、該データ表示を行うためのコンピュータ・システムおよび記録媒体
US7191405B1 (en) * 2000-11-22 2007-03-13 Adobe Systems Incorporated System and method for editing information
US6836884B1 (en) * 2001-06-04 2004-12-28 Microsoft Corporation Method and system for editing software programs
JP4344105B2 (ja) * 2001-09-12 2009-10-14 セイコーエプソン株式会社 ソースファイル生成装置
US7203925B1 (en) * 2001-09-14 2007-04-10 Emc Corporation Graphical compiler
US6965990B2 (en) * 2001-10-23 2005-11-15 International Business Machines Corporation Method and apparatus for providing programming assistance
US7243334B1 (en) * 2002-01-16 2007-07-10 Prelude Systems, Inc. System and method for generating user interface code
US7299451B2 (en) * 2002-01-24 2007-11-20 International Business Machines Corporation Remotely driven system for multi-product and multi-platform testing
JP2003241964A (ja) * 2002-02-13 2003-08-29 Fujitsu Ltd ソフトウエア保守資料生成装置および生成プログラム
US7089534B2 (en) * 2002-05-01 2006-08-08 International Business Machines Corporation Model based test generation for validation of parallel and concurrent software
CA2391719A1 (en) * 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Editing files of remote systems using an integrated development environment
US20040003373A1 (en) * 2002-06-28 2004-01-01 Van De Vanter Michael L. Token-oriented representation of program code with support for textual editing thereof
US20040006763A1 (en) * 2002-06-28 2004-01-08 Van De Vanter Michael L. Undo/redo technique with insertion point state handling for token-oriented representation of program code
US7543281B2 (en) * 2002-07-22 2009-06-02 National Instruments Corporation Disabling and conditionally compiling graphical code in a graphical program
US7305629B2 (en) * 2002-09-26 2007-12-04 International Business Machines Corporation Consolidation of computer documentation
US20040143812A1 (en) * 2003-01-14 2004-07-22 Vladimir Bernstein Automatic software design tool for building web and other applications wherein components are linked through connected command and control and data variables
US20050273758A1 (en) * 2003-03-05 2005-12-08 Long Michael V System and method for building a component base architecture
US20040225997A1 (en) * 2003-05-06 2004-11-11 Sun Microsystems, Inc. Efficient computation of line information in a token-oriented representation of program code
US20040225998A1 (en) * 2003-05-06 2004-11-11 Sun Microsystems, Inc. Undo/Redo technique with computed of line information in a token-oriented representation of program code
US7328426B2 (en) * 2003-08-13 2008-02-05 International Business Machines Corporation Editor with commands for automatically disabling and enabling program code portions
US7607099B2 (en) * 2003-11-03 2009-10-20 Intentional Software Corporation Method and system for reversible design tree transformations
US20050114832A1 (en) * 2003-11-24 2005-05-26 Microsoft Corporation Automatically generating program code from a functional model of software
US7293232B2 (en) * 2003-11-26 2007-11-06 Microsoft Corporation Source code editor for editing multilanguage documents
US7316001B2 (en) 2004-06-05 2008-01-01 Graphlogic Inc. Object process graph system
US7412689B1 (en) * 2004-06-25 2008-08-12 Sun Microsystems, Inc. Method and apparatus for creating a hierarchical model to facilitate identifying components in a programming language file
US7493335B2 (en) 2004-07-02 2009-02-17 Graphlogic Inc. Object process graph relational database interface
US7360209B2 (en) 2004-07-16 2008-04-15 Graphlogic Inc. Object process graph application controller-viewer
CA2578385A1 (en) * 2004-09-10 2006-03-23 Graphlogic Inc. Object process graph application development system
US7457671B2 (en) * 2004-09-30 2008-11-25 Rockwell Automation Technologies, Inc. Systems and methods that facilitate management of add-on instruction generation, selection, and/or monitoring during execution
US7631290B1 (en) * 2004-10-27 2009-12-08 Adobe Systems Incorporated Enhanced navigation for visual design editing
US10216372B1 (en) * 2004-12-06 2019-02-26 The Mathworks, Inc. Automatic import to a graphical model
US8185868B1 (en) * 2004-12-20 2012-05-22 The Mathworks, Inc. System and method for cell-based code editing and publishing
US7412649B2 (en) * 2005-01-24 2008-08-12 International Business Machines Corporation Viewing and editing markup language files with complex semantics
US7484203B2 (en) * 2005-03-21 2009-01-27 International Business Machines Corporation Automated interaction diagram generation using source code breakpoints
US8812964B2 (en) * 2005-03-31 2014-08-19 International Business Machines Corporation Managing evelopment of an enterprise application
US8365086B2 (en) * 2005-05-03 2013-01-29 The Mathworks, Inc. System and method for building graphical instrument panels
US8327343B2 (en) * 2005-10-20 2012-12-04 Cisco Technology, Inc. Method and system for optimizing source code
US8042065B2 (en) * 2005-11-17 2011-10-18 Microsoft Corporation Smart copy/paste of graphical nodes
US20070180049A1 (en) * 2006-01-31 2007-08-02 Microsoft Corporation Code hyperlinks
US20070234278A1 (en) * 2006-03-02 2007-10-04 Microsoft Corporation Managing source code in a model-based development environment
US20070220481A1 (en) * 2006-03-20 2007-09-20 Microsoft Corporation Limited source code regeneration based on model modification
US7856617B2 (en) * 2006-04-25 2010-12-21 Acs State And Local Solutions, Inc. Method, system and computer program product for creating software for processing an insurance claim
US8065168B2 (en) * 2006-04-25 2011-11-22 Acs State And Local Solutions, Inc. Method, system and computer program code for automatically generating software for reformatting incoming data
US20070256054A1 (en) * 2006-04-28 2007-11-01 Paul Byrne Using 3-dimensional rendering effects to facilitate visualization of complex source code structures
US8141035B2 (en) * 2006-07-05 2012-03-20 International Business Machines Corporation Method for accessing internal states of objects in object oriented programming
US8762834B2 (en) * 2006-09-29 2014-06-24 Altova, Gmbh User interface for defining a text file transformation
US7949949B2 (en) * 2006-11-20 2011-05-24 Intentional Software Corporation Domain transformation languages
US9645915B2 (en) 2006-12-27 2017-05-09 The Mathworks, Inc. Continuous evaluation of program code and saving state information associated with program code
US9015671B2 (en) * 2006-12-27 2015-04-21 The Mathworks, Inc. Integrating program construction
US8762956B1 (en) 2007-01-31 2014-06-24 The Mathworks, Inc. Generating a report document from code
US7735019B2 (en) 2007-04-25 2010-06-08 International Business Machines Corporation Method for providing functional context within an actively scrolling view pane
CN101681263B (zh) * 2007-05-16 2013-12-04 国际商业机器公司 用于开发基于软件资产的解决方案的一致方法和系统
US8484611B2 (en) * 2007-10-15 2013-07-09 International Business Machines Corporation Method and system for simplified assembly of information processing applications
US8356287B2 (en) * 2007-10-24 2013-01-15 International Business Machines Corporation Device, system and method of debugging computer programs
US8495100B2 (en) * 2007-11-15 2013-07-23 International Business Machines Corporation Semantic version control system for source code
US8312426B2 (en) * 2008-01-07 2012-11-13 International Business Machines Corporation Method and system for simplified service composition in web environment
US8239828B2 (en) * 2008-01-08 2012-08-07 International Business Machines Corporation Method of recovering from software failures using replanning
US8245122B2 (en) * 2008-01-08 2012-08-14 International Business Machines Corporation Method and system for modeling user requests, applications and components used in dynamic application assembly
US8640149B2 (en) * 2008-03-26 2014-01-28 International Business Machines Corporation Method and apparatus for dynamic web service composition and invocation
US9098626B2 (en) * 2008-04-01 2015-08-04 Oracle International Corporation Method and system for log file processing and generating a graphical user interface based thereon
US8949140B2 (en) * 2008-04-21 2015-02-03 International Business Machines Corporation Method and system for dynamic software reconfiguration triggered by component- or system- initiated events
US8898624B2 (en) * 2008-05-05 2014-11-25 International Business Machines Corporation Method and apparatus for simplified assembly of parametric information processing applications
US20090327862A1 (en) * 2008-06-30 2009-12-31 Roy Emek Viewing and editing markup language files with complex semantics
US8762969B2 (en) * 2008-08-07 2014-06-24 Microsoft Corporation Immutable parsing
US9123093B1 (en) 2008-08-29 2015-09-01 Cognex Corporation Vision inspection programming method and apparatus
US8694959B2 (en) * 2008-09-30 2014-04-08 Ics Triplex Isagraf Inc. Multi language editor
US8453112B1 (en) * 2008-11-13 2013-05-28 Adobe Systems Incorporated Systems and methods for collaboratively creating applications using a multiple source file project that can be accessed and edited like a single file
US8561015B2 (en) * 2009-06-15 2013-10-15 Microsoft Corporation Source code semantic zoom and spatial layout
US8689126B2 (en) * 2010-06-24 2014-04-01 Adobe Systems Incorporated Displaying graphical indications to indicate dependencies between scripts
US8607191B2 (en) * 2010-06-30 2013-12-10 International Business Machines Corporation Automated discovery of programmatic resources
US9558525B2 (en) * 2010-10-06 2017-01-31 The Board Of Trustees Of The Leland Stanford Junior University Process communication method and system
JP5613118B2 (ja) * 2011-07-22 2014-10-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 変換規則生成支援装置、方法、およびプログラム
JP2013059969A (ja) * 2011-09-15 2013-04-04 Kyocera Document Solutions Inc データ処理装置およびデータファイル
JP5804898B2 (ja) * 2011-10-31 2015-11-04 三菱電機株式会社 ソフトウェア開発支援装置及びプログラム
US20130227396A1 (en) * 2012-02-24 2013-08-29 Microsoft Corporation Editing content of a primary document and related files
US8856766B2 (en) * 2012-05-11 2014-10-07 International Business Machines Corporation Generating layouts for graphs of data flow applications
US9286032B2 (en) 2013-03-15 2016-03-15 International Business Machines Corporation Automated software composition
US9158502B2 (en) * 2013-04-15 2015-10-13 Massively Parallel Technologies, Inc. System and method for communicating between viewers of a hierarchical software design
CN105229617A (zh) * 2013-05-21 2016-01-06 肯赛里克斯公司 用于导航应用代码的图表
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US20140189650A1 (en) * 2013-05-21 2014-07-03 Concurix Corporation Setting Breakpoints Using an Interactive Graph Representing an Application
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US9547505B2 (en) * 2013-06-04 2017-01-17 Sap Se Adaptive contextual graphical representation of development entities
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9477463B2 (en) * 2013-08-12 2016-10-25 Khan Academy, Inc. Systems and methods for creating a program spin-off
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
US9053228B1 (en) 2013-10-22 2015-06-09 The Mathworks, Inc. Determining when to evaluate program code and provide results in a live evaluation programming environment
WO2015071777A1 (en) 2013-11-13 2015-05-21 Concurix Corporation Software component recommendation based on multiple trace runs
US9519398B2 (en) 2013-12-16 2016-12-13 Sap Se Search in a nature inspired user interface
US9501205B2 (en) * 2013-12-16 2016-11-22 Sap Se Nature inspired interaction paradigm
CN105320504B (zh) * 2014-06-25 2018-08-17 成都普中软件有限公司 一种基于软件元视图构造软件视图的可视软件建模方法
US9910647B2 (en) * 2015-02-13 2018-03-06 Unisys Corporation Field size calculation and color coding display options usable in an emulated integrated development environment (IDE)
US20160342396A1 (en) 2015-05-20 2016-11-24 Ab lnitio Technology LLC Visual program specification and compilation of graph-based computation
US10540449B2 (en) * 2015-09-22 2020-01-21 Oath Inc. In-context translation review
EP3338203A1 (de) * 2015-11-18 2018-06-27 Samsung Electronics Co., Ltd. Verfahren und vorrichtung zur navigation auf einer webseite
US10713015B2 (en) * 2016-05-15 2020-07-14 Servicenow, Inc. Visual programming system
US10782963B2 (en) * 2017-09-11 2020-09-22 Siemens Industry Software GmbH Introducing artifact information system and method
EP3588257A1 (de) * 2018-06-26 2020-01-01 ABB Schweiz AG Adaptive visualisierung von vorrichtungssymbolen durch rechner zur steuerung eines technischen systems
JP7105683B2 (ja) * 2018-12-07 2022-07-25 株式会社東芝 電子計算機、方法及びプログラム
US10937213B2 (en) * 2019-06-27 2021-03-02 Fuji Xerox Co., Ltd. Systems and methods for summarizing and steering multi-user collaborative data analyses
CN110780897B (zh) * 2019-08-26 2022-05-10 华为云计算技术有限公司 一种代码变更方法以及装置
CN111427562A (zh) * 2020-03-27 2020-07-17 天津光电通信技术有限公司 一种适用于单一函数的集成开发环境编辑器
US11930013B1 (en) * 2020-11-23 2024-03-12 Amazon Technologies, Inc. Access control list (ACL) based static analysis of software application artifacts
WO2022221418A1 (en) * 2021-04-14 2022-10-20 Nvidia Corporation Application programming interface to locate incomplete graph code

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544067A (en) * 1990-04-06 1996-08-06 Lsi Logic Corporation Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
WO1993021636A1 (en) * 1992-04-10 1993-10-28 Avid Technology, Inc. A method and apparatus for representing and editing multimedia compositions
JP2768412B2 (ja) * 1992-07-15 1998-06-25 財団法人ニューメディア開発協会 ユ−ザ適応型システムおよびその適応方法
US5379366A (en) * 1993-01-29 1995-01-03 Noyes; Dallas B. Method for representation of knowledge in a computer as a network database system
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
CA2643234C (en) * 1993-10-29 2012-05-15 Microsoft Corporation Method and system for generating a computer program
US5511158A (en) * 1994-08-04 1996-04-23 Thinking Machines Corporation System and method for creating and evolving directed graphs
US5729674A (en) * 1995-04-07 1998-03-17 Computer Humor Systems, Inc. Method and apparatus for producing personalized graphics and personalized text printed materials
US5872974A (en) * 1995-04-19 1999-02-16 Mezick; Daniel J. Property setting manager for objects and controls of a graphical user interface software development system
US5692184A (en) * 1995-05-09 1997-11-25 Intergraph Corporation Object relationship management system
US5794006A (en) * 1995-08-18 1998-08-11 Microsoft Corporation System and method for editing content in an on-line network
US5815717A (en) * 1995-10-27 1998-09-29 Authorgenics, Inc. Application program and documentation generator system and method
US5960447A (en) * 1995-11-13 1999-09-28 Holt; Douglas Word tagging and editing system for speech recognition
US6029182A (en) * 1996-10-04 2000-02-22 Canon Information Systems, Inc. System for generating a custom formatted hypertext document by using a personal profile to retrieve hierarchical documents
US6314555B1 (en) * 1997-07-25 2001-11-06 British Telecommunications Public Limited Company Software system generation
US6185591B1 (en) * 1997-07-29 2001-02-06 International Business Machines Corp. Text edit system with enhanced undo user interface
GB9726654D0 (en) * 1997-12-17 1998-02-18 British Telecomm Data input and retrieval apparatus
US6269275B1 (en) * 1998-03-31 2001-07-31 Michael G. Slade Method and system for customizing and distributing presentations for user sites
US6167406A (en) * 1998-05-08 2000-12-26 Allen-Bradley Company, Llc System, method and article of manufacture for building an enterprise-wide data model
US6237135B1 (en) * 1998-06-18 2001-05-22 Borland Software Corporation Development system with visual design tools for creating and maintaining Java Beans components
US6377259B2 (en) * 1998-07-29 2002-04-23 Inxight Software, Inc. Presenting node-link structures with modification
US6263339B1 (en) * 1998-08-25 2001-07-17 Informix Software, Inc. Dynamic object visualization and code generation
US6243859B1 (en) * 1998-11-02 2001-06-05 Hu Chen-Kuang Method of edit program codes by in time extracting and storing
US6493868B1 (en) * 1998-11-02 2002-12-10 Texas Instruments Incorporated Integrated development tool
US6473794B1 (en) * 1999-05-27 2002-10-29 Accenture Llp System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework
US6601233B1 (en) * 1999-07-30 2003-07-29 Accenture Llp Business components framework

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100442265C (zh) * 2003-05-09 2008-12-10 微软公司 用于作为图形布局/表示对象的宿主的系统

Also Published As

Publication number Publication date
CA2256931A1 (en) 2000-06-23
US6792595B1 (en) 2004-09-14

Similar Documents

Publication Publication Date Title
DE19957780A1 (de) Quellcode-Editierung in einer grafischen hierarchischen Umgebung
DE10051645B4 (de) Prozesssteuersystem und Verfahren zum Kontrollieren eines Prozesses
US6976209B1 (en) Activemark mechanism in a live parsing editor
DE69936844T2 (de) Implementierung einer benutzerschnittstelle in einem fernsehbasierten hyperlinknavigationssystem
Wong Rigi user’s manual
DE69535524T2 (de) Anwenderdefinierbare graphische schnittstelle für informationszugriff in einem elektronischen dateisystem
DE69835616T2 (de) Verfahren zur verwaltung von objekten und objektverknüpfte parameterwerten in einem simulationsmodell
DE69721424T2 (de) Vorrichtung und Verfahren zum Edieren einer graphischen Benutzerschnittstelle
DE19844013A1 (de) Strukturierter Arbeitsordner
DE10135445A1 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE4118454A1 (de) System zum automatischen testen von anwendersoftware
DE10121790A1 (de) System und Verfahren zur Konfiguration von Softwareprodukten
DE19959765B4 (de) Datei-Editor für mehrere Datenuntermengen
DE102009048610A1 (de) Verfahren und Vorrichtung zur transparenten Darstellung von auf eine Entwicklung eines Kraftfahrzeuges bezogenen Informationen
DE102004043788A1 (de) Programm Generator
DE69907714T2 (de) Komponentbasiertes quellcodegeneratorverfahren
DE102013203831A1 (de) Verfahren und System für ein Master-Seiten-basiertes integriertes Editieren und eine dynamische Layout-Aktivierung
EP1036352B1 (de) Verfahren zur bildschirmgestützten definition und parametrierung von schnittstellen
DE69930352T2 (de) Verfahren und Vorrichtung zur Animierung von Videospezialeffekten
CN104793927A (zh) 一种界面编辑方法及装置
Biere et al. The visual task model builder
EP1490762B1 (de) Verfahren, software-produkt und system zur universellen computergestuetzten informationsverarbeitung
DE19907328C2 (de) Verfahren und System zur visuellen Programmierung
DE10332492A1 (de) Verfahren und Anordnung zum visuellen Darstellen von Inhalten auf einem Darstellungsmittel
EP1044409B1 (de) Programmablaufverfahren und verfahren zur erweiterung eines programmkomponentensystems

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 9/45

8131 Rejection