DE19957780A1 - Quellcode-Editierung in einer grafischen hierarchischen Umgebung - Google Patents
Quellcode-Editierung in einer grafischen hierarchischen UmgebungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
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
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
Diese Datenstruktur speichert die globalen Daten für eine Edi
tierungssteuerung 118.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442265C (zh) * | 2003-05-09 | 2008-12-10 | 微软公司 | 用于作为图形布局/表示对象的宿主的*** |
Families Citing this family (107)
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 |
US20110191750A1 (en) | 1999-10-05 | 2011-08-04 | Borland Software Corporation | Methods and systems for displaying distributed computing components using symbols |
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 |
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 |
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 |
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 |
CN101052948A (zh) | 2004-09-10 | 2007-10-10 | 图形公司 | 对象过程图应用程序开发*** |
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 |
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 |
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 |
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 |
EP2147370A1 (de) * | 2007-05-16 | 2010-01-27 | International Business Machines Corporation | Einheitliches verfahren, system und computerprogramm zur entwicklung von lösungen auf softwaremittel-basis |
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 |
US9734040B2 (en) | 2013-05-21 | 2017-08-15 | Microsoft Technology Licensing, Llc | Animated highlights in a graph representing an application |
WO2014189553A1 (en) * | 2013-05-21 | 2014-11-27 | Concurix Corporation | Graph for navigating application code |
US8990777B2 (en) | 2013-05-21 | 2015-03-24 | Concurix Corporation | Interactive graph for navigating and monitoring execution of application code |
US20140189650A1 (en) * | 2013-05-21 | 2014-07-03 | Concurix Corporation | Setting Breakpoints Using an Interactive Graph Representing an Application |
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 |
US10346292B2 (en) | 2013-11-13 | 2019-07-09 | Microsoft Technology Licensing, Llc | 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) |
US11144283B2 (en) | 2015-05-20 | 2021-10-12 | Ab Initio 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 |
CN108351899A (zh) * | 2015-11-18 | 2018-07-31 | 三星电子株式会社 | 用于在网页中导航的方法和设备 |
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 |
US20220334891A1 (en) * | 2021-04-14 | 2022-10-20 | Nvidia Corporation | Application programming interface to modify incomplete graph code |
Family Cites Families (26)
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 |
AU753202B2 (en) * | 1997-07-25 | 2002-10-10 | 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 |
-
1998
- 1998-12-23 CA CA002256931A patent/CA2256931A1/en not_active Abandoned
-
1999
- 1999-09-16 US US09/399,235 patent/US6792595B1/en not_active Expired - Fee Related
- 1999-12-01 DE DE19957780A patent/DE19957780A1/de not_active Ceased
Cited By (1)
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 | |
DE69303289T2 (de) | Steuersystem für anzeigemenüzustand | |
DE69310187T2 (de) | Objektorientiertes fachwerksystem | |
DE10051645B4 (de) | Prozesssteuersystem und Verfahren zum Kontrollieren eines Prozesses | |
DE69310202T2 (de) | Internationales datenverarbeitungssystem | |
DE69310214T2 (de) | Dialogsystem | |
DE69310201T2 (de) | Objektorientierte applikationsschnittstelle. | |
DE69310188T2 (de) | Objektorientiertes bestaetigungssystem | |
DE69304928T2 (de) | Atomares befehlsystem | |
DE69400204T2 (de) | Ladesystem | |
US6976209B1 (en) | Activemark mechanism in a live parsing editor | |
DE69400862T2 (de) | Kollaboratives arbeitssystem | |
DE69400436T2 (de) | Run-time lader | |
DE69936844T2 (de) | Implementierung einer benutzerschnittstelle in einem fernsehbasierten hyperlinknavigationssystem | |
DE69400433T2 (de) | Kollaboratives arbeitssystem | |
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 | |
DE69400870T2 (de) | Dynamisches verknüpfungssystem | |
DE102005046996A1 (de) | Anwendungs-generischer Sequenzdiagrammerzeuger, getrieben durch eine nicht-proprietäre Sprache | |
DE19844013A1 (de) | Strukturierter Arbeitsordner | |
DE29623701U1 (de) | Grafik Browser | |
DE10135445A1 (de) | Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage | |
DE4118454A1 (de) | System zum automatischen testen von anwendersoftware | |
DE19959765B4 (de) | Datei-Editor für mehrere Datenuntermengen |
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 |