[go: up one dir, main page]

DE112017006164T5 - Differenzvergleich von ausführbaren Datenflussdiagrammen - Google Patents

Differenzvergleich von ausführbaren Datenflussdiagrammen Download PDF

Info

Publication number
DE112017006164T5
DE112017006164T5 DE112017006164.4T DE112017006164T DE112017006164T5 DE 112017006164 T5 DE112017006164 T5 DE 112017006164T5 DE 112017006164 T DE112017006164 T DE 112017006164T DE 112017006164 T5 DE112017006164 T5 DE 112017006164T5
Authority
DE
Germany
Prior art keywords
data flow
flow diagram
node
data
connection
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.)
Withdrawn
Application number
DE112017006164.4T
Other languages
English (en)
Inventor
Ilya Rozenberg
Adam Weiss
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.)
Ab Initio Technology LLC
Original Assignee
Ab Initio Technology LLC
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 Ab Initio Technology LLC filed Critical Ab Initio Technology LLC
Publication of DE112017006164T5 publication Critical patent/DE112017006164T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3604Analysis of software for verifying properties of programs
    • G06F11/3612Analysis of software for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3604Analysis of software for verifying properties of programs
    • G06F11/3608Analysis of software for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ein Verfahren zur Anzeige von Differenzen zwischen einem ersten ausführbaren Datenflussdiagramm und einem zweiten ausführbaren Datenflussdiagramm umfasst das Vergleichen einer Spezifikation des ersten ausführbaren Datenflussdiagramms und einer Spezifikation des zweiten ausführbaren Datenflussdiagramms, umfassend zumindest eines aus dem Identifizieren eines/r bestimmten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht; und dem Identifizieren eines/r ersten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die einem/r zweiten Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und das Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung. Das Verfahren umfasst das Formulieren und die Anzeige einer grafischen Darstellung zumindest mancher der Knoten oder Verbindungen des ersten Datenflussdiagramms oder des zweiten Datenflussdiagramms, wobei die grafische Darstellung einen grafischen Indikator für zumindest eines aus dem/der identifizierten bestimmten Knoten oder Verbindung und der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung umfasst.

Description

  • Prioritätsbeanspruchung
  • Die vorliegende Anmeldung beansprucht die Priorität der US-Patentanmeldung mit der Seriennr. 62/431.195, eingereicht am 7. Dezember 2016, und der US-Patentanmeldung mit der Seriennr. 15/587.987, eingereicht am 5. Mai 2017, deren gesamte Inhalte hierin durch Bezugnahme aufgenommen werden.
  • Hintergrund
  • Während der Entwicklung oder Ausführung eines Computerprogramms können an dem Computerprogramm Änderungen vorgenommen werden. Informationen über die Änderungen können für einen Entwickler nützlich sein, z. B. um dazu beizutragen, dass der Entwickler die Auswirkungen einer Änderung versteht, um zu bestimmen, warum ein aktualisiertes Computerprogramm nicht mehr richtig funktioniert, oder um Bearbeitungen mehrerer Leute nachzuverfolgen.
  • Zusammenfassung
  • Gemäß einem Aspekt dient ein Verfahren der Anzeige der Differenzen zwischen einem ersten ausführbaren Datenflussdiagramm und einem zweiten ausführbaren Datenflussdiagramm, wobei jedes Datenflussdiagramm ausführbar ist, um Daten zu verarbeiten, die durch das Datenflussdiagramm empfangen wurden, wobei jedes Datenflussdiagramm einen oder mehrere Knoten, die Datenverarbeitungskomponenten darstellen, und eine oder mehrere Verbindungen, die Flüsse von Daten zwischen Komponenten darstellen, umfasst. Das Verfahren umfasst das Vergleichen einer Spezifikation des ersten ausführbaren Datenflussdiagramms und einer Spezifikation des zweiten ausführbaren Datenflussdiagramms durch einen Computer, um eine oder mehrere Differenzen zwischen dem ersten Datenflussdiagramm und dem zweiten Datenflussdiagramm zu identifizieren. Die Spezifikation eines gegebenen ausführbaren Datenflussdiagramms definiert einen oder mehrere Knoten, die jeweils eine Quelle von Daten darstellen, die durch das Datenflussdiagramm zu verarbeiten sind, einen oder mehrere Knoten, die jeweils eine Datenverarbeitungskomponente darstellen, die einen Vorgang definiert, der durchzuführen ist, um die Daten aus der Quelle von Daten zu verarbeiten, und einen oder mehrere Knoten, die jeweils einen Bestimmungsort für Daten darstellen, die durch das Datenflussdiagramm verarbeitet werden. Das Vergleichen des ersten Datenflussdiagramms und des zweiten Datenflussdiagramms umfasst zumindest eines aus (1) dem Identifizieren eines/r bestimmten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und (2) dem Identifizieren eines/r ersten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die einem/r zweiten Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und das Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung. Das Verfahren umfasst das Formulieren einer grafischen Darstellung zumindest mancher der Knoten oder Verbindungen des ersten Datenflussdiagramms oder des zweiten Datenflussdiagramms, wobei die grafische Darstellung einen grafischen Indikator für zumindest eines aus (1) dem/der identifizierten bestimmten Knoten oder Verbindung und (1) der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung umfasst; und die Anzeige der grafischen Darstellung in einer Diagrammeditierschnittstelle.
  • Ausführungsformen können ein oder mehrere der folgenden Merkmale umfassen.
  • Das erste Datenflussdiagramm ist eine erste Version eines bestimmten Datenflussdiagramms und das zweite Datenflussdiagramm ist eine zweite Version des bestimmten Datenflussdiagramms.
  • Das Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung umfasst das Identifizieren einer Differenz zwischen einem aufgelösten Parameter des/der ersten Knotens oder Verbindung und einem aufgelösten Parameter des/der zweiten Knotens oder Verbindung.
  • Das Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung umfasst das Identifizieren einer Differenz zwischen einem Ausdruck für einen Parameter des/der ersten Knotens oder Verbindung und einem Ausdruck für einen Parameter des/der zweiten Knotens oder Verbindung.
  • Der grafische Indikator ist eine Farbe des/der ersten, zweiten oder bestimmten Knotens oder Verbindung in der grafischen Darstellung.
  • Die Farbe des grafischen Indikators gibt einen Typ der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung an.
  • Der grafische Indikator ist eine Schattierung oder Füllung des/der ersten, zweiten oder bestimmten Knotens oder Verbindung in der grafischen Darstellung.
  • Der grafische Indikator umfasst ein nahe dem/der ersten, zweiten oder bestimmten Knoten oder Verbindung angeordnetes Symbol.
  • Der grafische Indikator spricht auf Benutzerinteraktion an. Das Verfahren umfasst das Freigeben von Zugang zu Informationen, die die identifizierte Differenz angeben, die auf Benutzerinteraktion mit dem grafischen Indikator anspricht.
  • Das erste Datenflussdiagramm enthält ein erstes Datenfluss-Subdiagramm und das zweite Datenflussdiagramm enthält ein zweites Datenfluss-Subdiagramm, und das Verfahren umfasst das Vergleichen einer Spezifikation des ersten Datenfluss-Subdiagramms und einer Spezifikation des zweiten Datenfluss-Subdiagramm; und das Identifizieren einer oder mehrerer Differenzen zwischen dem ersten Datenfluss-Subdiagramm und dem zweiten Datenfluss-Subdiagramm basierend auf dem Vergleichen.
  • Die grafische Darstellung umfasst eine grafische Darstellung zumindest eines Abschnitts des ersten Datenfluss-Subdiagramms oder zumindest eines Abschnitts des zweiten Datenfluss-Subdiagramms, wobei die grafische Darstellung einen grafischen Indikator für zumindest eine der identifizierten Differenzen zwischen dem ersten Datenfluss-Subdiagramm und dem zweiten Datenfluss-Subdiagramm umfasst.
  • Die grafische Darstellung umfasst eine hierarchische Darstellung zumindest einer der identifizierten Differenzen zwischen dem ersten Datenflussdiagramm und dem zweiten Datenflussdiagramm und zumindest einer der identifizierten Differenzen zwischen dem ersten Datenfluss-Subdiagramm und dem zweiten Datenfluss-Subdiagramm.
  • Das Vergleichen der Spezifikation des ersten Datenflussdiagramms und der Spezifikation des zweiten Datenflussdiagramms umfasst das Vergleichen einer ersten Datei, auf die durch das erste Datenflussdiagramm Bezug genommen wird, und einer zweiten Datei, auf die durch das zweite Datenflussdiagramm Bezug genommen wird. Die grafische Darstellung umfasst eine grafische Darstellung einer oder mehrerer Differenzen zwischen der ersten Datei und der zweiten Datei.
  • Das Identifizieren eines/r ersten Knotens oder Verbindung, der/die einem/r zweiten Knoten oder Verbindung entspricht, umfasst das Identifizieren des ersten Knotens basierend auf einem oder mehreren aus (1) einer Bezeichnung des/der ersten Knotens oder Verbindung und des/der zweiten Knotens oder Verbindung und (2) einer Kennung des/der ersten Knotens oder Verbindung und des/der zweiten Knotens oder Verbindung.
  • Das Identifizieren eines/r ersten Knotens oder Verbindung, der/die einem/r zweiten Knoten oder Verbindung entspricht, umfasst das Identifizieren des ersten Knotens basierend auf Informationen, die einem Datenfluss in den oder aus dem ersten Knoten und zweiten Knoten zugeordnet sind.
  • Das Identifizieren eines/r ersten Knotens oder Verbindung, der/die einem/r zweiten Knoten oder Verbindung entspricht, umfasst das Identifizieren des/der ersten Knotens oder Verbindung basierend auf Knoten oder Verbindungen, die stromauf oder stromab des/der ersten Knotens oder Verbindung und des/der zweiten Knotens oder Verbindung angeordnet sind.
  • Das Verfahren umfasst das Erstellen des ersten Datenflussdiagramms und des zweiten Datenflussdiagramms zur Ausführung; und das Vergleichen der Spezifikationen des erstellten ersten und zweiten Datenflussdiagramms.
  • Gemäß einem Aspekt speichert ein nichtflüchtiges computerlesbares Medium Befehle zum Veranlassen eines Computers, die Differenzen zwischen einem ersten ausführbaren Datenflussdiagramm und einem zweiten ausführbaren Datenflussdiagramm anzuzeigen, wobei jedes Datenflussdiagramm ausführbar ist, um Daten zu verarbeiten, die durch das Datenflussdiagramm empfangen wurden, wobei jedes Datenflussdiagramm einen oder mehrere Knoten, die Datenverarbeitungskomponenten darstellen, und eine oder mehrere Verbindungen, die Flüsse von Daten zwischen Komponenten darstellen, umfasst. Die Befehle veranlassen den Computer, eine Spezifikation des ersten ausführbaren Datenflussdiagramms und eine Spezifikation des zweiten ausführbaren Datenflussdiagramms zu vergleichen, um eine oder mehrere Differenzen zwischen dem ersten Datenflussdiagramm und dem zweiten Datenflussdiagramm zu identifizieren. Die Spezifikation eines gegebenen ausführbaren Datenflussdiagramms definiert einen oder mehrere Knoten, die jeweils eine Quelle von Daten darstellen, die durch das Datenflussdiagramm zu verarbeiten sind, einen oder mehrere Knoten, die jeweils eine Datenverarbeitungskomponente darstellen, die einen Vorgang definiert, der durchzuführen ist, um die Daten aus der Quelle von Daten zu verarbeiten, und einen oder mehrere Knoten, die jeweils einen Bestimmungsort für Daten darstellen, die durch das Datenflussdiagramm verarbeitet werden. Das Vergleichen des ersten Datenflussdiagramms und des zweiten Datenflussdiagramms umfasst zumindest eines aus (1) dem Identifizieren eines/r bestimmten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und (2) dem Identifizieren eines/r ersten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die einem/r zweiten Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und das Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung. Die Befehle veranlassen den Computer, eine grafische Darstellung zumindest mancher der Knoten oder Verbindungen des ersten Datenflussdiagramms oder des zweiten Datenflussdiagramms zu formulieren, wobei die grafische Darstellung einen grafischen Indikator für zumindest eines aus (1) dem/der identifizierten bestimmten Knoten oder Verbindung und (1) der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung; und eine Anzeige der grafischen Darstellung in einer Diagrammeditierschnittstelle umfasst.
  • Gemäß einem Aspekt dient ein System der Anzeige der Differenzen zwischen einem ersten ausführbaren Datenflussdiagramm und einem zweiten ausführbaren Datenflussdiagramm, wobei jedes Datenflussdiagramm ausführbar ist, um Daten zu verarbeiten, die durch das Datenflussdiagramm empfangen wurden, wobei jedes Datenflussdiagramm einen oder mehrere Knoten, die Datenverarbeitungskomponenten darstellen, und eine oder mehrere Verbindungen, die Flüsse von Daten zwischen Komponenten darstellen, umfasst. Das System umfasst einen Prozessor und einen Speicher, die konfiguriert sind, um eine Spezifikation des ersten ausführbaren Datenflussdiagramms und eine Spezifikation des zweiten ausführbaren Datenflussdiagramms zu vergleichen, um eine oder mehrere Differenzen zwischen dem ersten Datenflussdiagramm und dem zweiten Datenflussdiagramm zu identifizieren. Die Spezifikation eines gegebenen ausführbaren Datenflussdiagramms definiert einen oder mehrere Knoten, die jeweils eine Quelle von Daten darstellen, die durch das Datenflussdiagramm zu verarbeiten sind, einen oder mehrere Knoten, die jeweils eine Datenverarbeitungskomponente darstellen, die einen Vorgang definiert, der durchzuführen ist, um die Daten aus der Quelle von Daten zu verarbeiten, und einen oder mehrere Knoten, die jeweils einen Bestimmungsort für Daten darstellen, die durch das Datenflussdiagramm verarbeitet werden. Das Vergleichen des ersten Datenflussdiagramms und des zweiten Datenflussdiagramms umfasst zumindest eines aus (1) dem Identifizieren eines/r bestimmten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und (2) dem Identifizieren eines/r ersten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die einem/r zweiten Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und das Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung. Der Prozessor und der Speicher sind konfiguriert, um eine grafische Darstellung zumindest mancher der Knoten oder Verbindungen des ersten Datenflussdiagramms oder des zweiten Datenflussdiagramms zu formulieren, wobei die grafische Darstellung einen grafischen Indikator für zumindest eines aus (1) dem/der identifizierten bestimmten Knoten oder Verbindung und (1) der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung; und eine Anzeige der grafischen Darstellung in einer Diagrammeditierschnittstelle umfasst.
  • Gemäß einem Aspekt dient ein System der Anzeige der Differenzen zwischen einem ersten ausführbaren Datenflussdiagramm und einem zweiten ausführbaren Datenflussdiagramm, wobei jedes Datenflussdiagramm ausführbar ist, um Daten zu verarbeiten, die durch das Datenflussdiagramm empfangen wurden, wobei jedes Datenflussdiagramm einen oder mehrere Knoten, die Datenverarbeitungskomponenten darstellen, und eine oder mehrere Verbindungen, die Flüsse von Daten zwischen Komponenten darstellen, umfasst. Das System umfasst Mittel zum Vergleichen einer Spezifikation des ersten ausführbaren Datenflussdiagramms und einer Spezifikation des zweiten ausführbaren Datenflussdiagramms, um eine oder mehrere Differenzen zwischen dem ersten Datenflussdiagramm und dem zweiten Datenflussdiagramm zu identifizieren. Die Spezifikation eines gegebenen ausführbaren Datenflussdiagramms definiert einen oder mehrere Knoten, die jeweils eine Quelle von Daten darstellen, die durch das Datenflussdiagramm zu verarbeiten sind, einen oder mehrere Knoten, die jeweils eine Datenverarbeitungskomponente darstellen, die einen Vorgang definiert, der durchzuführen ist, um die Daten aus der Quelle von Daten zu verarbeiten, und einen oder mehrere Knoten, die jeweils einen Bestimmungsort für Daten darstellen, die durch das Datenflussdiagramm verarbeitet werden. Das Vergleichen des ersten Datenflussdiagramms und des zweiten Datenflussdiagramms umfasst zumindest eines aus (1) dem Identifizieren eines/r bestimmten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und (2) dem Identifizieren eines/r ersten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die einem/r zweiten Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und das Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung. Das System umfasst Mittel zum Formulieren einer grafischen Darstellung zumindest mancher der Knoten oder Verbindungen des ersten Datenflussdiagramms oder des zweiten Datenflussdiagramms, wobei die grafische Darstellung einen grafischen Indikator für zumindest eines aus (1) dem/der identifizierten bestimmten Knoten oder Verbindung und (1) der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung; und Mittel zur Anzeige der grafischen Darstellung in einer Diagrammeditierschnittstelle umfasst.
  • Gemäß einem Aspekt dient ein Verfahren der Anzeige der Differenzen zwischen einer ersten Version eines ausführbaren Datenflussdiagramms und einer zweiten Version des ausführbaren Datenflussdiagramms, wobei das Datenflussdiagramm ausführbar ist, um Daten zu verarbeiten, die durch das Datenflussdiagramm empfangen wurden, wobei jede Version des Datenflussdiagramms einen oder mehrere Knoten, die Datenverarbeitungskomponenten darstellen, und eine oder mehrere Verbindungen, die Flüsse von Daten zwischen Komponenten darstellen, umfasst. Das Verfahren umfasst das Überwachen eines Status eines Auftrags, der einen oder mehrere Vorgänge umfasst, die ausgeführt werden können, um Daten zu verarbeiten, mit einem integrierten Steuersystem, wobei der Auftrag der ersten Version des ausführbaren Datenflussdiagramms zugeordnet ist. Das Verfahren umfasst das Freigeben einer Ausgabe von Informationen, die den Status des Auftrags angeben; das Identifizieren der zweiten Version des ausführbaren Datenflussdiagramms als Reaktion auf Benutzerinteraktion mit dem integrierten Steuersystem oder den ausgegebenen Informationen; das Vergleichen einer Spezifikation der ersten Version des Datenflussdiagramms und einer Spezifikation der zweiten Version des Datenflussdiagramms, um eine oder mehrere Differenzen zwischen der ersten Version des Datenflussdiagramms und der zweiten Version des Datenflussdiagramms zu identifizieren. Die Spezifikation eines gegebenen ausführbaren Datenflussdiagramms definiert einen oder mehrere Knoten, die jeweils eine Quelle von Daten darstellen, die durch das Datenflussdiagramm zu verarbeiten sind, einen oder mehrere Knoten, die jeweils eine Datenverarbeitungskomponente darstellen, die einen Vorgang definiert, der durchzuführen ist, um die Daten aus der Quelle von Daten zu verarbeiten, und einen oder mehrere Knoten, die jeweils einen Bestimmungsort für Daten darstellen, die durch das Datenflussdiagramm verarbeitet werden. Das Vergleichen der ersten Version des Datenflussdiagramms und der zweiten Version des Datenflussdiagramms umfasst zumindest eines aus (1) dem Identifizieren eines/r ersten Knotens oder Verbindung der ersten Version des Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung der zweiten Version des Datenflussdiagramms entspricht, (2) dem Identifizieren eines/r zweiten Knotens oder Verbindung der zweiten Version des Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung der ersten Version des Datenflussdiagramms entspricht, und (1) dem Identifizieren eines/r dritten Knotens oder Verbindung der ersten Version des Datenflussdiagramms, der/die einem/r vierten Knoten oder Verbindung der zweiten Version des Datenflussdiagramms entspricht, und das Identifizieren einer Differenz zwischen dem/der dritten Knoten oder Verbindung und dem/der vierten Knoten oder Verbindung. Das Verfahren umfasst das Formulieren einer grafischen Darstellung zumindest mancher der Knoten oder Verbindungen der ersten Version des Datenflussdiagramms oder der zweiten Version des Datenflussdiagramms, wobei die grafische Darstellung einen grafischen Indikator für zumindest eines aus (1) dem/der identifizierten ersten Knoten oder Verbindung, (2) dem/der identifizierten zweiten Knoten oder Verbindung und (3) der identifizierten Differenz zwischen dem/der dritten Knoten oder Verbindung und dem/der vierten Knoten oder Verbindung umfasst.
  • Ausführungsformen können ein oder mehrere der folgenden Merkmale umfassen.
  • Ein zuvor ausgeführter Auftrag ist der zweiten Version des Datenflussdiagramms zugeordnet.
  • Die grafische Darstellung umfasst eine hierarchische Darstellung einer oder mehrerer der identifizierten Differenzen.
  • Das Verfahren umfasst das Formulieren der grafischen Darstellung zur Anzeige in einer Benutzerschnittstelle des integrierten Steuersystems.
  • Das Identifizieren einer Differenz zwischen der ersten Version des Datenflussdiagramms und der zweiten Version des Datenflussdiagramms umfasst das Identifizieren einer Differenz zwischen einem aufgelösten Parameter der ersten Version des Datenflussdiagramms und einem aufgelösten Parameter der zweiten Version des Datenflussdiagramms.
  • Das Identifizieren einer Differenz zwischen der ersten Version des Datenflussdiagramms und der zweiten Version des Datenflussdiagramms umfasst das Identifizieren einer Differenz zwischen einem Ausdruck für einen Parameter der ersten Version des Datenflussdiagramms und einem Ausdruck für einen Parameter der zweiten Version des Datenflussdiagramms.
  • Das Identifizieren einer Differenz zwischen der ersten Version des Datenflussdiagramms und der zweiten Version des Datenflussdiagramms umfasst das Identifizieren einer Differenz zwischen einer ersten Datei, auf die durch die erste Version des Datenflussdiagramms Bezug genommen wird, und einer zweiten Datei, auf die durch die zweite Version des Datenflussdiagramms Bezug genommen wird.
  • Das Überwachen des Status des Auftrags umfasst das Überwachen eines oder mehrerer aus einer Aktivität des Auftrags, einer tatsächlichen Startzeit des Auftrags, einer geschätzten Startzeit des Auftrags, einer dem Auftrag zugeordneten Verarbeitungsdauer und einer Größe des Auftrags.
  • Das Überwachen des Status des Auftrags umfasst das Bestimmen, ob der Auftrag erfolgreich abgeschlossen wurde.
  • Das Verfahren umfasst das Überwachen des Status einer Anwendung, in dem der Auftrag der Anwendung zugeordnet ist.
  • Das Verfahren umfasst das Überwachen des Status einer Rechenvorrichtung, in dem die Anwendung durch die Rechenvorrichtung gehostet wird.
  • Die hier beschriebenen Ansätze ermöglichen die Darstellung einer grafischen Darstellung von Differenzen zwischen ausführbaren Anwendungen wie Computerprogrammen (z. B. Datenflussdiagramme), wodurch ein visueller Überblick hoher Ebene über die Differenzen zwischen den Anwendungen bereitgestellt wird. Beispielsweise kann eine grafische Darstellung von Differenzen zwischen einem ersten Datenflussdiagramm (z. B. einer frühen Version des Datenflussdiagramms) und einem zweiten Datenflussdiagramm (z. B. einer späteren, bearbeiteten Version des Datenflussdiagramms) eine Ansicht hoher Ebene von Komponenten zeigen, die während des Bearbeitungsprozesses hinzugefügt, entfernt oder modifiziert wurden. Die grafische Darstellung von Differenzen zwischen ausführbaren Anwendungen kann interaktiv sein. Beispielsweise kann ein Benutzer zu einer Komponente in der grafischen Darstellung gelangen, um detaillierte Informationen über diese Komponente, wie Informationen über an der Komponente vorgenommene Modifikationen, anzusehen.
  • Die dargelegten Informationen über Differenzen zwischen Datenflussdiagrammen können einem Entwickler wertvolle technische Unterstützung während der Diagrammerstellung oder -bearbeitung bereitstellen. Beispielsweise kann ein Entwickler die Visualisierung verwenden, um eine Entwicklung abzustimmen, die auf verschiedenen Zweigen in einem Quellcode-Steuersystem erfolgte. Eine Entwicklerin kann die Visualisierung verwenden, um ihre Erinnerung bezüglich kürzlicher Änderungen aufzufrischen, die sie in Bezug auf eine Version unter Quellcodesteuerung vorgenommen hat. Ein Entwickler kann die Visualisierung verwenden, um die kürzlichen Änderungen eines anderen an einem Diagramm zu analysieren, z. B. um zu bestätigen, dass ein anderer Entwickler die Änderungen, die erwartet wurden, und keine anderen vornahm, oder um sicherzustellen, dass bestimmte Qualitätsstandards eingehalten wurden. Ein Entwickler oder Qualitätskontrollteam möchte möglicherweise verstehen, warum sich das Verhalten eines Diagramms zwischen aufeinanderfolgenden Versionen änderte, z. B. warum eine neuere Version eines Diagramms abstürzt, langsamer läuft, falsche Antworten ausgibt, mehr CPU-Zeit verbraucht oder sich anderweitig anders verhält. Ein Entwickler möchte möglicherweise ein Diagramm durch eine Differenzvisualisierung bearbeiten, z. B. um mehrere Versionen in einer einzigen Version zusammenzuführen oder um eine Änderung am Diagramm rückgängig zu machen.
  • Eine Visualisierung von Differenzen zwischen Diagrammen kann technisch wertvoll sein, wenn ein Diagramm in Produktion ist. Beispielsweise kann eine neue Funktion, die von einem Entwicklerteam erzeugt wurde, mit der Behebung eines kleineren Fehlers aus einem Herstellungszweig vereinheitlicht werden. Ein Qualitätskontrollteam erfährt möglicherweise, dass eine bestimmte fehlerhafte Codezeile irgendwo in einer Reihe von am Diagramm vorgenommenen Änderungen eingeführt wurde, und die Visualisierung kann verwendet werden, um herauszufinden, welche Version die erste Version mit diesem Code ist, so dass betroffene Kunden benachrichtigt werden können.
  • Figurenliste
    • 1 ist ein Schaubild eines Diagramms.
    • 2A und 2B sind Schaubilder grafischer Darstellungen von Differenzen zwischen Diagrammen.
    • 3 ist ein Schaubild eines Navigationsbaums.
    • 4-7 sind Schaubilder von Ansichten auf Knotenebene.
    • 8A und 8B sind Schaubilder grafischer Darstellungen von Differenzen zwischen Diagrammen.
    • 9 ist ein Schaubild eines Navigationsbaums.
    • 10 ist ein Schaubild einer Differenzanzeigeprogramm-Schnittstelle.
    • 11 ist ein Schaubild eines Diagrammanalysesystems.
    • 12 ist ein Schaubild einer Verarbeitungsumgebung.
    • 13 ist ein Schaubild einer Steuerzentrums-Schnittstelle.
    • 14 ist ein Flussdiagramm.
    • 15 ist ein Schaubild eines Datenverarbeitungssystems.
  • Detaillierte Beschreibung
  • Die Erfinder beschreiben hier einen Ansatz der grafischen Darstellung von Differenzen zwischen ausführbaren Anwendungen wie Computerprogrammen (z. B. Datenflussdiagramme), wodurch ein visueller Überblick hoher Ebene über die Differenzen zwischen den Anwendungen bereitgestellt wird. Beispielsweise kann eine grafische Darstellung von Differenzen zwischen einem ersten Datenflussdiagramm (z. B. einer frühen Version des Datenflussdiagramms) und einem zweiten Datenflussdiagramm (z. B. einer späteren, bearbeiteten Version des Datenflussdiagramms) Komponenten zeigen, die während des Bearbeitungsprozesses hinzugefügt, entfernt oder modifiziert wurden. Die grafische Darstellung von Differenzen zwischen ausführbaren Anwendungen kann interaktiv sein. Beispielsweise kann ein Benutzer eine Komponente in der grafischen Darstellung untersuchen, um detaillierte Informationen über diese Komponente, wie Informationen über an der Komponente vorgenommene Modifikationen, anzusehen. In manchen Fällen können eine oder mehrere der Differenzen zwischen ausführbaren Anwendungen händisch oder automatisch durch Benutzerinteraktion mit der grafischen Darstellung der Differenzen zwischen den ausführbaren Anwendungen von einer ausführbaren Anwendung zu der anderen migriert werden.
  • Ein Datenflussdiagramm (das die Erfinder manchmal auch als Diagramm bezeichnen) ist eine visuelle Darstellung eines Computerprogramms, das Knoten, die für Datenverarbeitungskomponenten stehen, und Datensätze, wie Datenquellen und Datensenken, umfassen kann. Datensätze können beispielsweise Dateien, Datenbanktabellen oder andere Typen von Datenquellen oder -senken sein, die Daten (z. B. Datenaufzeichnungen) zur Verarbeitung durch das Diagramm bereitstellen können oder Daten, die durch das Diagramm verarbeitet werden, empfangen können. Datenverarbeitungskomponenten und Datensätze werden manchmal gemeinsam als Knoten des Diagramms bezeichnet. Eine Verbindung, die zwei Knoten eines Diagramms miteinander verbindet, stellt einen Fluss von Daten zwischen dem ersten Knoten und dem zweiten Knoten dar. 1 zeigt ein einfaches Datenflussdiagramm 10, das eine Datenquelle 12 umfasst, die durch einen Fluss 14 mit einer Filterkomponente 16 verbunden ist. Die Filterkomponente 16 ist durch einen Fluss 18 mit einer Datensenke 20 verbunden.
  • Die Knoten eines Diagramms können Eingangs- und/oder Ausgangsanschlüsse aufweisen, mit denen Flüsse verbunden sein können. In dem Beispiel von 1 sind die Stromauf-Enden der Flüsse 14, 18 mit einem Ausgangsanschluss der Datenquelle 12 bzw. einem Ausgangsanschluss der Filterkomponente 14 verbunden. Die Stromab-Enden der Flüsse 14, 18 sind mit einem Eingangsanschluss der Filterkomponente 14 bzw. einem Eingangsanschluss der Datensenke 20 verbunden.
  • Datenverarbeitungskomponenten führen Vorgänge aus, um Daten zu verarbeiten. Eine Datenverarbeitungskomponente ist eine grafische Darstellung eines durch Code definierten Objekts, das bei Ausführung den Vorgang der Datenverarbeitungskomponente implementiert. Der Vorgang einer Datenverarbeitungskomponente kann in Bezug auf einen oder mehrere Parameter definiert sein. Die Parameter können in einer Datei (z. B. einer .dml-Datei) definiert sein, auf die durch den Code der Datenverarbeitungskomponente Bezug genommen wird. Beispielsweise kann die Datei Werte oder Ausdrücke für Parameter umfassen, die der Datenverarbeitungskomponente zugeordnet sind. Wenn das Diagramm instanziiert ist (z. B. zur Laufzeit), werden Ausdrücke für die Parameter analysiert, um Werte für die Parameter zu erhalten, was manchmal als das Auflösen der Parameter bezeichnet wird. Parameterwerte oder -ausdrücke können beispielsweise durch einen Benutzer über eine Benutzerschnittstelle (z. B. als Reaktion auf eine Aufforderung) definiert werden, aus einer Datei definiert werden oder in Bezug auf einen Parameter im gleichen Kontext oder einem anderen Kontext definiert werden. Beispielsweise kann ein Parameter aus einem anderen Kontext (z. B. ein Parameter, der im Kontext einer anderen Komponente analysiert wird) exportiert werden, indem festgelegt wird, dass der Parameter eine „same as“-Beziehung zu einem anderen Parameter aufweisen soll.
  • In manchen Beispielen kann eine Komponente in einem Diagramm unter Verwendung eines Satzes anderer Komponenten implementiert werden, die selbst untereinander mit Flüssen verbunden sind. Dieser Satz von Komponenten, durch den eine Komponente in einem Diagramm implementiert wird, wird als Subdiagramm bezeichnet und ist ein Knoten des Diagramms.
  • Eine Analyse zum Identifizieren von Differenzen (manchmal als Differenzvergleichsanalyse bezeichnet) zwischen einem ersten Diagramm und einem zweiten Diagramm (z. B. einer ersten Version eines Diagramms und einer zweiten, bearbeiteten Version des Diagramms) kann Knoten, die im ersten Diagramm, nicht aber im zweiten Diagramm vorliegen (als gelöschte Knoten oder entfernte Knoten bezeichnet), Knoten, die im zweiten Diagramm, nicht aber im ersten Diagramm vorliegen (als hinzugefügte Knoten bezeichnet), oder Knoten, die modifiziert wurden, identifizieren. Ein modifizierter Knoten kann im Allgemeinen zwischen dem ersten Diagramm und dem zweiten Diagramm ähnlich sein, wobei jedoch Änderungen an Parametern, Attributen oder anderen dem Knoten zugeordneten Merkmalen bestehen, wie weiter unten ausgeführt. Eine Differenzvergleichsanalyse kann auch Differenzen zwischen Flüssen des ersten Diagramms und Flüsse des zweiten Diagramms identifizieren.
  • Ein Übersichtsplan ist eine visuelle Darstellung eines Ablaufs, der die Ausführung mehrerer Diagramme umfasst. In einem Übersichtsplan sind die einzelnen Diagramme die Knoten und untereinander durch Flüsse verbunden, die den Fluss von Daten zwischen den Diagrammen des Übersichtsplans angeben. Die hier beschriebenen Ansätze können verwendet werden, um Differenzen zwischen Übersichtsplänen grafisch darzustellen. Beispielsweise kann eine Differenzvergleichsanalyse, die an einem ersten Übersichtsplan und einem zweiten Übersichtsplan durchgeführt wird, Knoten (z. B. Diagramme), die im ersten Übersichtsplan, nicht aber im zweiten Übersichtsplan vorliegen, Knoten, die im zweiten Übersichtsplan, nicht aber im ersten Übersichtsplan vorliegen, oder Knoten, die modifiziert wurden, identifizieren.
  • In manchen Beispielen kann eine verschachtelte Differenzvergleichsanalyse durchgeführt werden, die Differenzen zwischen Übersichtsplänen, Differenzen zwischen entsprechenden Diagrammen in den Übersichtsplänen, Differenzen zwischen entsprechenden Subdiagrammen in den Diagrammen und/oder Differenzen zwischen entsprechenden Parameterdateien, auf die durch Knoten in den Diagrammen Bezug genommen wird, identifiziert. Eine grafische Darstellung der Ergebnisse der verschachtelten Differenzvergleichsanalyse kann die hierarchische Natur der Übersichtspläne, Diagramme und Subdiagramme und der zugeordneten Differenzen angeben.
  • Obgleich sich die Erfinder in der folgenden Erörterung im Allgemeinen auf die Analyse und grafische Darstellung der Differenzen zwischen Diagrammen beziehen, können die Ansätze im Allgemeinen auch für die Analyse und grafische Darstellung von Übersichtsplänen, Subdiagrammen, Parameterdateien und/oder anderen Dateien, auf die durch die Diagramme Bezug genommen wird, gelten.
  • Eine Visualisierung von Differenzen zwischen Diagrammen kann für einen Entwickler während der Diagrammerstellung oder -bearbeitung wertvoll sein. Beispielsweise kann ein Entwickler die Visualisierung verwenden, um eine Entwicklung abzustimmen, die auf verschiedenen Zweigen in einem Quellcode-Steuersystem erfolgte. Eine Entwicklerin kann die Visualisierung verwenden, um ihre Erinnerung bezüglich kürzlicher Änderungen aufzufrischen, die sie in Bezug auf eine Version unter Quellcodesteuerung vorgenommen hat. Ein Entwickler kann die Visualisierung verwenden, um die kürzlichen Änderungen eines anderen an einem Diagramm zu analysieren, z. B. um zu bestätigen, dass dieser die Änderungen, die erwartet wurden, und keine anderen vornahm, oder um sicherzustellen, dass bestimmte Qualitätsstandards eingehalten wurden. Ein Entwickler oder Qualitätskontrollteam möchte möglicherweise verstehen, warum sich das Verhalten eines Diagramms zwischen aufeinanderfolgenden Versionen änderte, z. B. warum eine neuere Version abstürzt, langsamer läuft oder falsche Antworten ausgibt oder mehr CPU-Zeit verbraucht. Ein Entwickler möchte möglicherweise ein Diagramm durch eine Differenzvisualisierung bearbeiten, z. B. um mehrere Versionen in einer einzigen Version zusammenzuführen oder um eine Änderung am Diagramm rückgängig zu machen.
  • Eine Visualisierung von Differenzen zwischen Diagrammen kann für eine Person in einer Aufsichtsfunktion wie einen Projektmanager wertvoll sein, der Aktualisierungen an einem Diagramm ansehen möchte, jedoch nicht notwendigerweise beabsichtigt, das Diagramm selbst zu ändern.
  • Eine Visualisierung von Differenzen zwischen Diagrammen kann wertvoll sein, wenn ein Diagramm in Produktion ist. Beispielsweise kann eine neue Funktion, die von einem Entwicklerteam erzeugt wurde, mit der Behebung eines kleineren Fehlers aus einem Herstellungszweig vereinheitlicht werden. Ein Qualitätskontrollteam erfährt möglicherweise, dass eine bestimmte fehlerhafte Codezeile irgendwo in einer Reihe von am Diagramm vorgenommenen Änderungen eingeführt wurde, und die Visualisierung kann verwendet werden, um herauszufinden, welche Version die erste Version mit diesem Code ist, so dass betroffene Kunden benachrichtigt werden können.
  • Bezug nehmend auf 2A und 2B sind in einem Beispiel grafische Darstellungen von zwei Versionen eines Diagramms auf einem Ansichtsbereich gezeigt: eine Darstellung einer ersten Version 200 (manchmal einfach als erste Version 200 bezeichnet) und eine Darstellung einer zweiten Version 202 (manchmal einfach als zweite Version 202 bezeichnet). Beispielsweise kann das Diagramm in seinem Entwicklungsprozess befindlich sein und die erste Version 200 kann eine frühere Version des Diagramms sein und die zweite Version 202 kann eine aktuellere Version des Diagramms sein. Differenzen zwischen der ersten und der zweiten Version 200, 202 des Diagramms sind grafisch dargestellt, z. B. durch Indikatoren, die Differenzen zwischen der ersten und zweiten Version 200, 202 des Diagramms bezeichnen. Die Indikatoren können beispielsweise Farben, Schattierungen, Füllungen, Bildsymbole, Symbole, textuelle Annotationen oder andere Typen von Indikatoren sein. In einem Beispiel sind gelöschte Knoten (Knoten, die in der ersten Version 200 des Diagramms, nicht aber in der zweiten Version 202 des Diagramms vorliegen) in Rot gezeigt. Hinzugefügte Knoten (Knoten, die in der zweiten Version des Diagramms 202, nicht aber in der ersten Version des Diagramms 200 vorliegen) sind in Grün gezeigt. Modifizierte Knoten (Knoten, die in beiden Versionen 200, 202 des Diagramms vorliegen, aber nicht identisch sind) sind in Blau gezeigt.
  • In dem Beispiel von 2A und 2B ist eine Ausgabedatei 204 ein gelöschter Knoten, der in der ersten Version 200 des Diagramms, nicht aber in der zweiten Version 202 vorliegt. Die Ausgabedatei 204 ist in Rot auf dem Ansichtsbereich gezeigt. Eine Filterkomponente 206 und eine Papierkorbkomponente 208 sind hinzugefügte Knoten, die in der zweiten Version 202 des Diagramms, nicht aber in der ersten Version 200 vorliegen. Die Filterkomponente 206 und die Papierkorbkomponente 208 sind in Grün auf dem Ansichtsbereich 20 gezeigt. Eine Umformatierungskomponente 210 liegt in beiden Versionen 200, 202 des Diagramms vor, wenn auch mit Modifikationen. Beispielsweise kann ein Ausdruck oder Wert für einen Parameter oder ein Attribut der Umformatierungskomponente 210 zwischen den zwei Versionen 200, 202 des Diagramms unterschiedlich sein. Die Umformatierungskomponente 210 ist in Blau auf dem Ansichtsbereich gezeigt.
  • In manchen Beispielen können die Knoten der ersten und/oder zweiten Version 200, 202 des Diagramms auf eine Benutzerinteraktion wie einen Klick, ein Antippen, ein Darüberfahren oder eine andere Interaktion ansprechen. Beispielsweise kann ein Benutzer mit einem Pointer über die Umformatierungskomponente 210 fahren, um zusätzliche Informationen über die Modifikationen anzusehen, wie eine Liste von Parametern oder Attributen der Umformatierungskomponente 210, die zwischen der ersten und zweiten Version 200, 202 des Diagramms unterschiedlich sind. In manchen Beispielen können die zusätzlichen Informationen auf dem Ansichtsbereich, z. B. nahe dem Knoten oder in einer Leerstelle des Ansichtsbereichs, angezeigt werden. In manchen Beispielen wird ein neues Fenster oder eine Informationsblase geöffnet, z. B. vor dem Ansichtsbereich, um die Informationen anzuzeigen.
  • Bezug nehmend auf 3 kann in manchen Beispielen eine grafische Darstellung von Differenzen zwischen der ersten und der zweiten Version 200, 202 eines Diagramms die Form einer hierarchischen Liste in einem Navigationsbaum 220 einnehmen. Der Navigationsbaum 220 kann die Knoten in einer Baumstruktur anführen, die in ihrer Logikstruktur den Diagrammen 200, 202 ähnlich ist. In manchen Beispielen kann es sein, dass der Navigationsbaum 220 alle Knoten der Diagramme 200, 202 anführt. In manchen Beispielen kann es sein, dass der Navigationsbaum 220 nur jene Knoten anführt, die sich zwischen den Versionen 200, 202 des Diagramms unterscheiden, wie nur hinzugefügte Knoten, gelöschte Knoten und modifizierte Knoten.
  • Ein Navigationsbaum kann verwendet werden, um eine hierarchische Liste von Differenzen zwischen Übersichtsplänen zu zeigen. Ein Navigationsbaum für Übersichtspläne kann eine Liste von Knoten (z. B. Diagramme) zusätzlich zu anderen Aspekten der Übersichtspläne, wie eine Liste von Aufgaben, eine Liste von Verfahren oder andere Aspekte, umfassen.
  • Jeder der hinzugefügten, gelöschten und modifizierten Knoten wird durch einen Eintrag in der hierarchischen Liste des Navigationsbaums 220 dargestellt. Ein Bildsymbol, das jedem Knoten auf der Liste zugeordnet ist, zeigt an, ob der Knoten ein hinzugefügter Knoten, ein gelöschter Knoten oder ein modifizierter Knoten ist, beispielsweise durch die Farbe, Schattierung, Füllung, Form oder ein anderes Merkmal des Bildsymbols. In dem Beispiel von 3 ist das Bildsymbol für einen gelöschten Knoten ein grünes Quadrat, das Bildsymbol für einen hinzugefügten Knoten ist ein grünes Quadrat und das Bildsymbol für einen modifizierten Knoten ist ein blaues Quadrat.
  • Einer oder mehrere der Einträge im Navigationsbaum 220 können einen Untereintrag umfassen, beispielsweise um zusätzliche Informationenen über den Knoten bereitzustellen. Wenn der Knoten beispielsweise ein modifizierter Knoten ist, kann jedes Merkmal des Knotens, das sich zwischen der ersten und zweiten Version 200, 202 des Diagramms unterscheidet, in einem entsprechenden Untereintrag unter dem Eintrag für den modifizierten Knoten angeführt sein. Beispielsweise kann für die Umformatierungskomponente 210 (eine modifizierte Komponente) für jedes Merkmal (z. B. Parameter oder Attribut oder anderes Merkmal), das sich zwischen der ersten und zweiten Version 200, 202 unterscheidet, ein Untereintrag im Navigationsbaum 220 umfasst sein. Der Untereintrag kann Informationen über das Merkmal, z. B. den Typ des Merkmals (z. B. Parameter, Attribut oder einen anderen Typ des Merkmals), die Bezeichnung des Merkmals, den Wert des Merkmals in der ersten Version 200 des Diagramms, den Wert des Merkmals in der zweiten Version 202 des Diagramms oder andere Informationen umfassen.
  • Bezug nehmend auf 4 können in manchen Beispielen Differenzen zwischen einem modifizierten Knoten (z. B. der Umformatierungskomponente 210) in der ersten und der zweiten Version 200, 202 eines Diagramms in einem Tabellenformat in einer Ansicht auf Knotenebene 250 angezeigt werden. Die Ansicht auf Knotenebene 250 umfasst eine oder mehrere Tabellen, die Merkmale des Knotens anführen, wie die Beschreibung des Knotens, Parameter, Attribute, Layout, Anschlüsse oder andere Merkmale.
  • In dem Beispiel von 4 sind in einer Parameter- und Attribute-Tabelle die Parameter und Attribute eines Knotens angeführt. Die Parameter- und Attribute-Tabelle kann nur jene Parameter und Attribute umfassen, die Werte oder Ausdrücke aufweisen, die sich zwischen der ersten Version und der zweiten Version des Diagramms unterscheiden, oder kann alle Parameter und Attribute des Knotens umfassen. Jede Zeile stellt einen Parameter oder ein Attribut dar und umfasst den Wert oder Ausdruck für den Parameter oder das Attribut in der ersten Version 200 des Diagramms (als der „alte Wert“ bezeichnet) und/oder den Wert des Parameters oder Attributs in der zweiten Version 202 des Diagramms (als der „neue Wert“ bezeichnet). Werte, die sich zwischen der ersten und zweiten Version 200, 202 des Diagramms unterscheiden, können mit einem Indikator, wie einer Hervorhebung, einem Bildsymbol oder einem anderen Typ von Indikator, versehen sein. Beispielsweise sind in dem Beispiel von 4 die alten und neuen Werte für die transform-Komponente hervorgehoben, was anzeigt, dass diese Werte sich zwischen der ersten und zweiten Version 200, 202 des Diagramms unterscheiden.
  • Die Bezeichnungsspalte der Tabelle in der Ansicht auf Knotenebene 250 zeigt die Bezeichnung des Parameters oder Attributs an. In manchen Beispielen kann die Bezeichnungsspalte einen Indikator (z. B. ein Bildsymbol, einen Buchstaben oder einen anderen Indikator) dafür, ob eine Bezeichnung die Bezeichnung eines Parameters oder eines Attributs ist, umfassen. Beispielsweise kann eine Parameterbezeichnung mit einer Raute versehen sein und eine Attributsbezeichnung kann mit einem Gleichheitszeichen versehen sein. In manchen Beispielen kann die Bezeichnungsspalte einen Indikator dafür umfassen, ob der Parameter ein Eingabeparameter oder lokaler Parameter ist.
  • Bezug nehmend auf 5 kann in manchen Beispielen eine Parameter- und Attribute-Tabelle 260 einer Ansicht auf Knotenebene zusätzliche Spalten umfassen, wie eine Typspalte, eine Bedarfsspalte, eine Exportspalte oder eine andere Spalte. Eine Typspalte kann den dml-Typ des Parameters zeigen, falls zutreffend. Die Typspalte gilt nicht für Komponentenattribute. Für Übersichtspläne kann die Typspalte den Aufgabentyp, wie Diagramm, Reihung, Auswahl oder einen anderen Aufgabentyp, angeben. Eine Bedarfsspalte kann einen Indikator umfassen, der anzeigt, ob der Parameter erforderlich ist und ob der Bedarfsstatus des Parameters sich zwischen Versionen geändert hat. Eine Exportspalte kann einen Indikator dafür umfassen, ob der Parameter exportiert wird und ob der Exportstatus des Parameters sich zwischen Versionen geändert hat.
  • Bezug nehmend auf 6 kann die Ansicht auf Knotenebene eine Anschlusstabelle 270 umfassen, die eine Liste der Anschlüsse eines Knotens umfasst. Die Liste von Anschlüssen kann nur jene Anschlüsse umfassen, die sich zwischen der ersten und der zweiten Version des Diagramms geändert haben, oder kann alle Anschlüsse umfassen. Jede Zeile stellt einen Anschluss dar und umfasst die Bezeichnung des Anschlusses und den Differenztyp (z. B. Hinzufügung, Löschung oder Modifikation). Der Differenztyp kann durch einen Indikator gezeigt sein. In manchen Beispielen kann ein Benutzer mit der Bezeichnung eines Anschlusses interagieren (z. B. durch Klicken oder Tippen auf die Bezeichnung), um auf eine Liste oder Tabelle der Parameter des Anschlusses zuzugreifen.
  • Bezug nehmend auf 7 kann die Ansicht auf Knotenebene bei Charakterisierung von Differenzen zwischen Übersichtsplänen eine Verfahrenstabelle 280 umfassen, die eine Liste der Verfahren des Übersichtsplans umfasst. Die Liste der Verfahren kann nur jene Verfahren umfassen, die sich zwischen der ersten und zweiten Version des Übersichtsplans geändert haben, oder kann alle Verfahren umfassen. Jede Zeile steht für ein Verfahren und umfasst die Bezeichnung des Verfahrens und den Differenztyp (z. B. Löschung, Hinzufügung oder Modifikation). Der Differenztyp kann durch einen Indikator gezeigt sein. In manchen Beispielen kann ein Benutzer mit der Bezeichnung eines Verfahrens interagieren (z. B. durch Klicken oder Tippen auf die Bezeichnung), um auf eine Liste oder Tabelle der Parameter des Verfahrens zuzugreifen.
  • In manchen Beispielen kann eine (nicht gezeigte) Textdifferenzvergleichsansicht den Code für einen Knoten, z. B. einen modifizierten Knoten, mit einer Angabe der Differenzen zwischen dem Code für den Knoten in jeder der ersten und zweiten Version des Diagramms anzeigen. Die Differenzen können z. B. mittels Formatierung (z. B. Unterstreichen, Durchstreichen, fett, kursiv oder einer anderen Formatierung), Hervorhebung oder andere Ansätze angezeigt werden. In manchen Beispielen ist der Code für einen Knoten in nur einer der Versionen des Diagramms dargelegt, mit einer Angabe der Differenzen zwischen dem dargelegten Code und dem Code für den Knoten in der anderen Version des Diagramms. In manchen Beispielen ist der Code für den Knoten in beiden Versionen des Diagramms dargelegt, und jede Version des Codes kann eine Angabe der Differenzen in Bezug auf die andere Version des Codes aufweisen.
  • Jede dieser verschiedenen Ansichten der Differenzen zwischen der ersten und zweiten Version 200, 202 eines Diagramms kann einem Benutzer Vorteile bieten. Die grafische Anzeige auf dem Ansichtsbereich 20 der Differenzen zwischen der ersten Version 200 und der zweiten Version 202 eines Diagramms ermöglicht es einem Benutzer, die Differenzen rasch auf einer hohen Ebene und ohne Detailtiefe zu erfassen. Beispielsweise ermöglicht die Anzeige der ersten und zweiten Version 200, 202 auf dem Ansichtsbereich dem Benutzer, schnell zu visualisieren, welche Knoten hinzugefügt oder gelöscht wurden und welche Knoten modifiziert wurden. Die hierarchische Liste des Navigationsbaums 220 ermöglicht es dem Benutzer, sich auf einnzelne Knoten außerhalb des Kontexts des restlichen Diagramms zu fokussieren. Die Ansicht auf Knotenebene 250 stellt dem Benutzer Zugang zu spezifischen Informationen über Änderungen an einem Knoten bereit, so dass der Benutzer z. B. zu einer detaillierten Einsicht in die Merkmale der Knoten in jeder Version 200, 202 des Diagramms gelangt.
  • In manchen Beispielen können Diagramme Subdiagramme umfassen, und die grafische Darstellung der Differenzen zwischen zwei Diagrammen kann Informationen über Differenzen zwischen Subdiagrammen, auf die durch die Diagramme Bezug genomemen wird, bereitstellen. Bezug nehmend auf 8A und 8B sind Darstellungen einer ersten Version 900 und einer zweiten Version 902 eines Diagramms, umfassend ein Subdiagramm 904, auf einem Ansichtsbereich gezeigt. Differenzen zwischen der ersten und der zweiten Version 900, 902 sind durch Indikatoren gezeigt. Wenn eine Differenz in dem Subdiagramm vorliegt, kann ein Indikator auf dem Subdiagramm eine Anzeige hoher Ebene der Differenz bereitstellen. In manchen Beispielen können zusätzliche Informationen, wie eine Liste oder Beschreibung der Differenzen in dem Subdiagramm 904, als Reaktion auf Benutzerinteraktion mit dem Subdiagramm 904 bereitgestellt werden. In manchen Beispielen können die Komponenten, die das Subdiagramm 904 bilden, gegebenenfalls mit Indikatoren von Differenzen als Reaktion auf Benutzerinteraktion mit dem Subdiagramm 904 angezeigt werden.
  • In dem Beispiel von 8A und 8B wurde eine Ausgabedatei 906 gelöscht und eine Filterkomponente 908 und eine Papierkorbkomponente 910 wurden hinzugefügt. Zusätzlich dazu wurde ein Knoten in dem Subdiagramm 904 modifiziert, der durch einen Indikator auf dem Subdiagramm 904 gezeigt ist.
  • Bezug nehmend auf 9 kann ein Navigationsbaum 920 den hinzugefügten Knoten, den gelöschten Knoten und den modifizierten Knoten der ersten und zweiten Version 900, 902 des Diagramms anführen. Wenn ein Knoten des Subdiagramms 904 hinzugefügt, gelöscht oder modifiziert wurde, ist das Subdiagramm 904 in der Liste inkludiert und der Knoten (z. B. eine Umformatierungskomponente) ist in einem Untereintrag unter dem Eintrag für das Subdiagramm 904 umfasst. Wenn der angeführte Knoten des Subdiagramms 904 ein modifizierter Knoten ist, kann der Untereintrag für diesen Knoten (z. B. für die Umformatierungskomponente) selbst einen Untereintrag für jedes Merkmal (z. B. Parameter oder Attribut oder anderes Merkmal) aufweisen, das zwischen der ersten und der zweiten Version 900, 902 des Diagramms unterschiedlich ist, aufweisen.
  • Bezug nehmend auf 10 können in manchen Beispielen mehrere Ansichten in eine Differenzanzeigeprogramm-Schnittstelle 60 (manchmal als auch Differenzanzeigeprogramm bezeichnet) integriert sein. Das beispielhafte Differenzanzeigeprogramm 60 von 10 umfasst einen Ansichtsbereich 62, der eine grafische Darstellung einer ersten Version 600 eines Diagramms und eine zweite Version 602 des Diagramms zeigt. In dem Differenzanzeigeprogramm 60 von 10 zeigt der Ansichtsbereich 62 die erste und zweite Version 600, 602 des Diagramms in einer Nebeneinander-Ausrichtung; in manchen Beispielen kann der Ansichtsbereich die erste und die zweite Versions 600, 602 in Oben-unten-Ausrichtung zeigen. Der Ansichtsbereich 62 kann so skalierbar und verschiebbar sein, dass einem Benutzer erlaubt wird, in einen Bereich von Interesse in der ersten oder zweiten Version 600, 602 des Diagramms zu fokussieren. Das Differenzanzeigeprogramm 60 umfasst auch einen Navigationsbaum 620 und eine Ansicht auf Knotenebene 650. In dem Differenzanzeigeprogramm 60 sind die verschiedenen Informationsebenen, die durch die verschiedenen Ansichten geboten werden, alle in einer einzelnen, kompakten Benutzerschnittstelle für einen Benutzer zugänglich.
  • In dem Beispiel von 10 sind die Indikatoren nahe dem Knoten angeordnete Bildsymbole, und die Form und Farbe des Bildsymbols zusammen zeigen den Differenztyp an. Beispielsweise zeigt ein rotes „X“ einen gelöschten Knoten an, ein grünes Pluszeichen zeigt einen hinzugefügten Knoten an und ein gelbes Sternchen zeigt einen modifizierten Knoten an. Einträge im Navigationsbaum 620 können durch den Änderungstyp, wie eine Hinzufügung, Löschung oder Modifikation, in Gruppen zusammengefasst sein.
  • Das Differenzanzeigeprogramm 60 kann interaktiv sein. Beispielsweise kann ein Benutzer eine Differenz auswählen, um Informationen über die Differenz zu erhalten. Die Informationen über die Differenz können nur in der Ansicht, in der der Benutzer die Differenz auswählte, oder in einer oder mehreren zusätzlichen Ansichten, z. B. in allen Ansichten, angezeigt sein. Beispielsweise können, wenn ein Benutzer mit einem Knoten auf dem Ansichtsbereich interagiert (z. B. durch Klicken auf eine „Preprocess Old“-Komponente 604), Untereinträge für diesen Knoten auf dem Navigationsbaum angezeigt werden und eine Tabelle der Merkmale des Knotens können in der Ansicht auf Knotenebene angezeigt werden. Der Ansichtsbereich, der Navigationsbaum und die Ansicht auf Knotenebene können alle gleichzeitig im Differenzanzeigeprogramm 600 sichtbar sein, was einem Benutzer ermöglicht, ein gründliches Verständnis sowohl der Differenzen hoher Ebene als auch der Details über die Differenzen für den ausgewählten Knoten zu gewinnen.
  • In manchen Beispielen steuert der Typ der Interaktion, die der Benutzer mit einem Knoten hat, die Informationen, die über den Knoten angezeigt werden. Beispielsweise kann ein Einfachklick auf einen Knoten herbeiführen, dass die Merkmale (z. B. Parameter oder Attribute) des Knotens in der Ansicht auf Knotenebene 650 angezeigt werden. Ein Doppelklick auf ein Subdiagramm kann das Subdiagramm in dem Ansichtsbereich expandieren und kann hervorrufen, dass die Attribute und Parameter des Subdiagramms in der Ansicht auf Knotenebene 650 angezeigt werden und der Eitnrag für das Subdiagramm im Navigationsbaum 620 expandiert wird. Weitereb Beispiele für Informationen, die als Reaktion auf verschiedene Typen von Benutzerinteraktion angezeigt werden, können auch bereitgestellt sein.
  • In manchen Beispielen kann der Benutzer nacheinander jede Differenz durchgehen, um Informationen über jede Differenz zwischen der ersten und zweiten Version 600, 602 anzusehen. In manchen Beispielen kann der Benutzer auswählen, dass ihm nur jene Differenzen angezeigt werden, die eine Ausführung des Diagramms beeinflussen können, wie Änderungen von Parameterwerten oder das Hinzufügen oder Löschen eines Knotens. In manchen Beispielen kann der Benutzer auswählen, dass ihm alle Differenzen angezeigt werden, einschließlich sowohl Differenzen, die die Ausführung des Diagramms beeinflussen können, als auch Differenzen, die die Diagrammausführung nicht beeinflussen (z. B. Differenzen zu Kommentaren und Legenden, Änderungen an Attributwerten für Attribute wie Autor- und Versionsattributen, Änderungen an x- und y-Koordinaten der Platzierung von Knoten, Schriftartänderungen oder andere Differenzen).
  • Bezug nehmend auf 11 umfasst ein Diagrammanalysesystem 80, das die Differenzen zwischen einem ersten Diagramm 800 und einem zweiten Diagramm 802 analysiert, eine Diagrammanalysator-Engine 804, die eine Spezifikation jedes Diagramms 800, 802 analysiert. Die Diagrammanalysator-Engine 804 bestimmt, welche Knoten (z. B. Komponenten oder Datensätze) im ersten Diagramm 800 Knoten im zweiten Diagramm 802 entsprechen. Entsprechende Knoten sind nicht notwendigerweise identisch und können zwischen den Diagrammen modifiziert werden, sind jedoch im Allgemeinen ähnlich genug, um in beiden Diagrammen als derselbe Knoten erachtet zu werden.
  • In manchen Beispielen identifiziert die Diagrammanalysator-Engine 804 entsprechende Knoten basierend auf Metadaten, die dem Knoten zugeordnet sind, wie einem oder mehreren des Knotentyps (z. B. einer Datenverarbeitungskomponente versus einem Datensatz, oder einem spezifischen Typ von Datenverarbeitungskomponente oder Datensatz), einer Bezeichnung des Knotens, einer eindeutigen Kennung des Knotens oder anderen Metadaten, die dem Knoten zugeordnet sind. In manchen Beispielen identifiziert die Diagrammanalysator-Engine 804 entsprechende Knoten basierend auf Informationen, die einem Datenfluss in den oder aus dem Knoten zugeordnet sind, wie den Bezeichnungen von oder der Anzahl an Anschlüssen, den Bezeichnungen oder Quellen von Datenflüssen in die Knoten, den Bezeichnungen oder Bestimmungsorten von Datenflüssen aus aus den Knoten oder anderen Informationen, die einem Datenfluss in die oder aus den Knoten zugeordnet sind. In manchen Beispielen identifiziert die Diagrammanalysator-Engine 804 entsprechende Knoten basierend auf topologischen Informationen, wie jener, wo ein bestimmter Knoten in Bezug auf andere Knoten im Diagramm positioniert ist (z. B. welche Knoten stromauf oder stromab des bestimmten Knotens liegen). In manchen Beispielen identifiziert der Diagrammanalysator 804 entsprechende Knoten basierend auf der Position (z. B. x-y-Koordinaten) der Knoten in einer grafischen Darstellung der Diagramme auf einem Ansichtsbereich. Allerdings verwendet der Diagrammanalysator 804 in manchen Beispielen keine Positionsinformationen beim Identifizieren entsprechender Knoten, z. B. da die Position eines Knotens auf einem Ansichtsbereich keine Auswirkung auf die Funktionalität des Knotens oder das den Knoten enthaltende Diagramm hat.
  • Jeglicher Knoten im ersten Diagramm 800, für den es keinen entsprechenden Knoten im zweiten Diagramm 802 gibt, wird durch die Diagrammanalysator-Engine 804 als gelöschter Knoten identifiziert. Jeglicher Knoten im zweiten Diagramm 802, für den es keinen entsprechenden Knoten im ersten Diagramm 800 gibt, wird durch die Diagrammanalysator-Engine 804 als hinzugefügter Knoten identifiziert. Knoten, die einander zwischen dem ersten und zweiten Diagramm 800, 802 entsprechend, werden durch die Diagrammanalysator-Engine 804 analysiert, um zu bestimmen, ob die Knoten modifiziert wurden. Eine Visualisierungs-Engine 810 erzeugt Daten, um die Wiedergabe einer grafischen Darstellung der Differenzen zwischen dem ersten und zweiten Diagramm 800, 802 zu ermöglichen.
  • In manchen Beispielen kann die Diagrammanalysator-Engine 804 sowohl Merkmale, die die Ausführung eines Diagramms beeinflussen können, als auch Merkmale, die die Ausführung eines Diagramms nicht beeinflussen, analysieren. Merkmale, die die Ausführung eines Diagramms beeinflussen, können beispielsweise Parameter wie Parameterausdrücke oder Parameterwerte umfassen. Merkmale, die die Ausführung eines Diagramms nicht beeinflussen, können beispielsweise Attributwerte (z. B. Autorattribute, Bezeichnungsattribute, Versionsattribute oder andere Attribute), Kommentare, Legenden, Formate (z. B. Schriftarten), die Position einer Komponente auf einem Ansichtsbereich oder andere Merkmale umfassen. In manchen Beispielen kann die Diagrammanalysator-Engine 804 nur Merkmale, die die Ausführung eines Diagramms beeinflussen, analysieren und kann Merkmale, die die Ausführung des Diagramms nicht beeinflussen, außer Acht lassen.
  • Eine Analyse von Parametern, die jedem von zwei entsprechenden Knoten zugeordnet sind, kann identifizieren, ob jegliche Parameter hinzugefügt wurden (beispielsweise ein Parameter, der in einem Knoten des zweiten Diagramms, nicht aber in dem entsprechenden Knoten des ersten Diagramms vorliegt) oder entfernt wurden (beispielsweise ein Parameter, der in einem Knoten des ersten Diagramms, nicht aber in dem entsprechenden Knoten des zweiten Diagramms vorliegt). Eine Analyse von Parametern kann eine Analyse von Ausdrücken, die die Parameter definieren, Werte der Parameter oder beides umfassen.
  • In manchen Beispielen kann eine Analyse von Parametern, die jedem der zwei entsprechenden Knoten zugeordnet sind, bestimmen, ob die Ausdrücke für entsprechende Parameter modifiziert wurden. Um die Ausdrücke für Parameter zu analysieren, kann die Parameteranalyse an dem Quellcode, der jedem Knoten entspricht, durchgeführt werden. In manchen Beispielen kann die Parameteranalyse durchgeführt werden, nachdem die Diagramme 800, 802 instanziiert und alle Parameter aufgelöst wurden, z. B. nachdem jedes Diagramm jegliche Parameterdateireferenzen durch die Spezifikationen der Knoten aufgerufen hat. Wenn die Parameteranalyse nach der Diagramminstanziierung durchgeführt wird, vergleicht die Diagrammanalysator-Engine 804 Parameterwerte.
  • In manchen Beispielen kann die Reihenfolge der Parameter, die jedem der beiden entsprechenden Knoten zugeordnet sind, durch die Diagrammanalysator-Engine 804 analysiert werden; in manchen Beispielen wird die Reihenfolge der Parameter von der Diagrammanalysator-Engine außer Acht gelassen. In manchen Beispielen können Ausdrücke oder Werte für Parameter, die nur zur Abhängigkeitsanalyse verwendet werden, durch die Diagrammanalysator-Engine 804 analysiert werden; in manchen Beispielen werden Ausdrücke oder Werte für diese Parameter von der Diagrammanalysator-Engine außer Acht gelassen.
  • In manchen Beispielen kann die Diagrammanalysator-Engine 804 externe Dateien, auf die durch die Diagramme oder Übersichtspläne Bezug genommen wird, analysieren, um jegliche Differenzen zwischen den Dateien, auf die durch die Diagramme 800, 802 Bezug genommen wird, zu identifizieren. In manchen Beispielen werden nur bestimmten Dateitypen durch die Diagrammanalysator-Engine 804 analysiert, wie Satzformatdateien (z. B..dml-Dateien), Transformationsdateien (z. B. .xfr-Dateien) oder andere Dateitypen, deren Inhalte die Ausführung der Diagramme beeinflussen können. Weitere Dateien, wie Dateien, die Daten zur Verarbeitung durch die Diagramme oder Übersichtspläne bereitstellen, werden nicht berücksichtigt.
  • In manchen Beispielen können die zu analysierenden Diagramme oder Übersichtspläne vor der Analyse auf ein gemeinsames Dateiformat aktualisiert werden. Beispielsweise können die Diagramme oder Übersichtspläne auf ein aktuelles Dateiformat oder auf das Dateiformat der aktuellsten Diagramme oder Übersichtspläne aktualisiert werden. In manchen Beispielen können Diagramme oder Übersichtspläne in ihren eigenen usprünglichen Dateiformaten analysiert werden. Das Beibehalten des ursprünglichen Dateiformats für den Vergleich kann zweckmäßig sein, z. B. um Differenzen zu identifizieren, die durch Dateiformatänderungen hervorgerufen wurden oder anderweitig damit in Zusammenhang stehen.
  • In manchen Beispielen kann der Umfang der durch die Diagrammanalysator-Engine 804 durchzuführenden Analyse standardmäßig eingestellt sein, z. B. kann die Diagrammanalysator-Engine 804 standardmäßig so eingestellt sein, dass nur Differenzen berücksichtigt werden, die die Diagrammausführung beeinflussen. In manchen Beispielen kann ein Benutzer den Umfang der durch die Diagrammausführungs-Engine durchzuführenden Analyse spezifizieren.
  • In manchen Beispielen kann die grafische Darstellung der Differenzen zwischen Diagrammen in eine Softwareentwicklungsplattform integriert sein. Eine Softwareentwicklungsplattform kann z. B. von einem Softwareentwickler verwendet werden, der Software entwickelt oder wartet, wie z. B. Diagramme. Ein Entwickler kann die grafische Darstellung von Differenzen zwischen einer früheren Version eines Diagramms und einer aktualisierten Version eines Diagramms nutzen, um sich z. B. seine aktuellsten Änderungen in Erinnerung zu rufen, die aktuellen Änderungen eines anderen Entwicklers zu überprüfen oder einen potenziellen Grund identifizieren, aus dem eine Modifikation an einem Diagramm nicht erfolgreich war, oder zu anderen Zwecken.
  • In manchen Beispielen kann die grafische Darstellung der Differenzen zwischen Diagrammen in eine Softwaremanagementsplattform integriert sein. Eine Softwaremanagementplattform kann z. B. von einem Manager verwendet werden, der die Entwicklung oder Wartung von Software leitet, wie Diagramme. Ein Manager kann die grafische Darstellung von Differenzen zwischen einer früheren Version eines Diagramms und einer aktualisierten Version eines Diagramms nutzen, um z. B. den Fortschritt der Softwareentwicklung zu überwachen, Abschnitte eines Diagramms, die einer Weiterentwicklung bedürfen, zu identifizieren, bei der Problembehandlung zu unterstützen, oder zu anderen Zwecken.
  • In manchen Beispielen kann die grafische Darstellung der Differenzen zwischen Diagrammen in ein Betriebsteuerungszentrum integriert sein, das das integrierte Management verschiedener Komponenten einer Verarbeitungsumgebung erleichtert. Ein Steuerungszentrum kann den Status von Komponenten der Verarbeitungsumgebung, wie Rechenvorrichtungen, Anwendungen oder Aufträge, überwachen und anzeigen und kann einem Operator ermöglichen, die Komponenten der Verarbeitungsumgebung aktiv zu managen. Die Beschreibung eines beispielhaften Steuerungszentrums ist in der US-Anmeldung Nr. 14/690.114 zu finden, deren Inhalte durch Bezugnahme vollumfänglich hierin aufgenommen werden.
  • Bezug nehmend auf 12 umfasst eine Verarbeitungsumgebung 900 Hardware- und Softwarekomponenten, die durch einen Benutzer 902 oder in seinem Auftrag zur Verarbeitung von Daten betrieben werden. Die Hardwarekomponenten können Hardwarerechenvorrichtungen 904 wie Server sein, die die Erfinder manchmal als „Hosts“ bezeichnen. Jeder der Server kann einen oder mehrere Datenprozessoren und einen oder mehrere Speicher zum Speichern von Befehlen umfassen, die durch den einen oder die mehreren Datenprozessoren ausgeführt werden. Die Softwarekomponenten der Verarbeitungsumgebung 900 können Anwendungen 906, Aufträge 908 oder Services 910 umfassen. Die Softwarekomponenten werden jeweils auf einem oder mehreren der Hosts 904 ausgeführt oder haben eine Auswirkung auf diese.
  • Eine Anwendung 906 ist ein Computerprogramm wie ein Softwareprodukt, das verwendet werden kann, um verschiedene Datenverarbeitungsfunktionen durchzuführen, einschließlich z. B. des Aufsetzens eines Frameworks zur Datenverarbeitung, des Ausführens eines Datenverarbeitungsframeworks oder Analysierens verarbeiteter Daten. Eine Anwendung kann ein Programm sein, das darauf ausgerichtet ist, eine Aufgabe in einer bestimmten Domain durchzuführen oder einem Benutzer bei deren Durchführung zu unterstützen, wie Textverarbeitung. Ein oder mehrere Aufträge 908 können unter Verwendung eines oder mehrerer der Hosts 904, einer oder mehrerer der Anwendungen 906, oder beider, der Verarbeitungsumgebung 900 ausgeführt werden. Ein Auftrag 908 ist ein Satz eines oder mehrerer Vorgänge, die ausgeführt werden, um Daten zu verarbeiten. Ein Beispiel für einen Auftrag ist ein Diagramm oder ein Übersichtsplan in einer diagrammbasierten Verarbeitungsumgebung.
  • In manchen Beispielen kann eine Anwendung 906 oder ein Auftrag 908 ein oder mehrere Services 910 verwenden. Ein Service 910 ist ein Spezialfall einer Anwendung wie einer lang laufenden Anwendung, z. B. einer Anwendung, von der erwartet wird, dass sie so lange läuft, wie der Host oder Server läuft, der auf einen spezifischen Satz von Aufgaben (Services) gerichtet ist, die im Auftrag einer Anwendung oder eines Benutzers durchzuführen sind. Beispielhafte Aufgaben, die durch ein Service 910 durchgeführt werden können, umfassen z. B. das Protokollieren von Ereignissen oder das Sichtbarmachen von Ereignissen durch eine Benutzerschnittstelle. Beispielhafte Services 910 umfassen z. B. eine Datenbank 912, eine Warteschlange 914, eine Datei 916, einen Anwendungsserver 918 oder einen anderen Servicetyp.
  • Ein integriertes Steuerungszentrum 950 überwacht den Echtzeitstatus der Hardware- und Softwarekomponenten der Verarbeitungsumgebung 900. In manchen Beispielen kann das Steuerungszentrum 950 auf einem oder mehreren Hosts 904 ausgeführt werden; in manchen Beispielen wird das Steuerungszentrum 950 auf einem eigenen Rechenvorrichtung 952 ausgeführt. Beispielsweise kann das Steuerungszentrum 950 den Status der Hosts 904 und Anwendungen 906, auf die der Benutzer 902 Zugriff hat, und die Aufträge 908, die im Auftrag des Benutzers 902 ausgeführt werden, überwachen. Echtzeit-Statusinformationen 954 über die Komponenten der Verarbeitungsumgebung 900 können auf einer Benutzerschnittstelle 956 angezeigt werden. Die Statusinformationen 954 können auf integrierte Weise angezeigt werden, um Beziehungen zwischen einzelnen Komponenten der Verarbeitungsumgebung 900 wie Hosts 904, Anwendungen 906, Aufträge 908, Services 910 oder andere Komponenten hervorzuheben. Die Statusinformationen 954 können angezeigt werden, um den Status einer oder mehrerer der Komponenten oder Beziehungen unter den Status einzelner Komponenten der Verarbeitungsumgebung hervorzuheben. Echtzeit-Statusinformationen und Verlaufsstatusmetrik und Datenverarbeitungsmetrik (z. B. Metrik in Bezug auf Zahlen von verarbeiteten Aufzeichnungen, Verarbeitungszeiten, Verarbeitungsdauern oder anderer Metrik) kann durch das Steuerungszentrum verfügbar sein. Durch die Benutzerschnittstelle 956 kann der Benutzer 902 Handlungen in Bezug auf eine oder mehrere Komponenten der Verarbeitungsumgebung vornehmen oder Handlungen definieren, die automatisch als Reaktion auf ein vorbestimmtes Vorkommnis in Bezug auf eine oder mehrere der Komponenten der Verarbeitungsumgebung durchzuführen sind.
  • Beispiele für Echtzeit-Statusmetrik, die überwacht und angezeigt werden kann, für einen Host 904 umfassen beispielsweise:
    • • Den Betriebszustand des Hosts - z. B. ob der Host online, online mit einem Fehler- oder Warnzustand oder offline ist. In manchen Fällen kann das Steuerungszentrum 950 Details in Bezug auf den Betriebszustand des Hosts überwachen, wie ob der Host aufgrund einer geplanten Wartung offline ist oder aufgrund eines Fehlers offline ist (z. B. eines Festplattenausfalls).
    • • Die gesamte Nutzung der zentralen Verarbeitungseinheit (CPU) des Hosts.
    • • Den gesamten verfügbaren Arbeitsspeicher oder verwendeten Arbeitsspeicher des Hosts.
    • • Die Anzahl von Dateisystemen, die dem Host zugeordnet sind.
    • • Den gesamten verfügbaren Festplattenplatz oder verwendeten Festplattenplatz des Dateisystems.
    • • Eine Anzahl von Aufträgen, die auf dem Host laufen.
    • • Die Identität jedes der Aufträge, die auf dem Host laufen.
    • • Die CPU-Nutzung, Arbeitsspeichernutzung oder beide durch jeden der Aufträge, die auf dem Host laufen.
    • • Eine Anzahl von Anwendungen, die auf dem Host laufen.
    • • Die Identität jeder der Anwendungen, die auf dem Host laufen.
    • • Die CPU-Nutzung, Arbeitsspeichernutzung oder beide durch jede der Anwendungen, die auf dem Host laufen.
    • • Die CPU-Nutzung, Arbeitsspeichernutzung oder beide für den bestimmten Benutzer 902 in Bezug auf die Höchstmenge an CPU oder Arbeitsspeicher, die vom Benutzer zugelassen wird.
    • • Den Status (z. B. Ablaufdatum) eines Lizenzschlüssels, der auf dem Host gespeichert ist, und die Identität der Anwendungen, die dem Lizenzschlüssel zugeordnet sind.
    • • Parameter des Betriebssystems.
    • • Die Anzahl an CPUs.
    • • Die CPU-Klasse.
    • • Die CPU-Geschwindigkeit.
  • Es kann auch eine andere Echtzeit-Statusmetirk überwacht werden. In manchen Beispielen kann der Benutzer 902 spezielle Statusmetrik definieren, die durch das Steuerungszentrum 950 zu überwachen ist.
  • Das Steuerungszentrum 950 kann auch Informationen erhalten, die das Nachverfolgen einer Verlaufsstatusmetrik für einen Host 904 ermöglicht. Beispielsweise kann das Steuerungszentrum 950 Informationen erhalten, die das Nachverfolgen des Verlaufsbetriebszustands des Hosts ermöglichen, wie den Prozentsatz der Zeit, die ein Host 904 über eine gegebene Zeitdauer offline war, die Anzahl von Fehler- oder Warnzuständen, die ein Host 904 über eine gegebene Zeitdauer erfahren hat, oder andere Indikatoren eines Verlaufsbetriebszustands. Das Steuerungszentrum 950 kann Informationen erhalten, die das Nachverfolgen einer mittleren oder gesamten Anzahl von Aufträgen 908, die auf dem Host 904 laufen gelassen werden, einer mittleren oder gesamten Anzahl von Anwendungen 906, die auf dem Host 904 laufen, der mittleren oder maximalen CPU-Auslastung des Hosts 904, eines mittleren oder minimalen verfügbaren Arbeitsspeichers des Hosts 904 oder anderer Indikatoren des Verlaufsstatus des Hosts 904 ermöglichen. Während manche der Informationen dieses Typs in einer oder mehreren log-Dateien für einen Host 904 zu finden sind, macht die integrierte Anzeige, die durch das Steuerungszentrum 950 bereitgestellt ist, die Informationen leichter zugänglich und verständlicher, wodurch es jemandem mit weniger fachspezifischem Wissen ermöglicht wird, auf die Verlaufsstatusmetrik für einen Host 904 zuzugreifen und diese zu analysieren.
  • Beispiele für Echtzeit-Statusmetrik, die für ein Produkt oder Service überwacht und angezeigt werden können, umfassen beispielsweise:
    • • Den Status des Lizenzschlüssels für das Produkt oder den Service - z. B. gültig, gültig, aber läuft bald ab, oder abgelaufen.
    • • Die Identität eines Schlüsselservers, auf dem der Lizenzschlüssel für das Produkt oder den Service veröffentlicht ist.
    • • Die Identität des Hosts, auf das Produkt oder der Service läuft.
    • • Die Anzahl an Aufträgen, die das Produkt oder den Service nutzen.
    • • Die Identität der Aufträge, die das Produkt oder den Service nutzen.
    • • Die Position einer Konfigurationsdatei für das Produkt oder den Service.
    • • Die Position einer log-Datei für das Produkt oder den Service.
    • • Die Identität jeglicher Services, die durch das Produkt oder den Service genutzt werden.
    • • Den Status jedes der Services, die durch das Produkt oder den Service genutzt werden (z. B. online, online mit einem Fehler- oder Warnzustand oder offline).
    • • Die Identität und den Status jeglicher Komponente in Bezug auf das Produkt oder den Service.
  • Es kann auch eine andere Echtzeit-Statusmetrik überwacht werden. In manchen Beispielen kann der Benutzer 902 eine spezielle Statusmetrik definieren, die durch das Steuerungszentrum 950 zu überwachen ist.
  • Beispiele für Echtzeit-Statusmetrik, die für einen Auftrag 908 überwacht und angezeigt werden kann, umfassen beispielsweise:
    • • Den Echtzeit-Betriebszustand des Auftrags - z. B. ob der Auftrag läuft, gestoppt oder pausiert ist, auf Ausführung wartet oder abgeschlossen ist.
    • • Die Startzeit, verstrichene Zeit (falls laufend) oder Endzeit (falls abgeschlossen) des Auftrags.
    • • Ob die gesamte verstrichene Zeit des Auftrags eine Zielverarbeitungszeit (z. B. Service-Level-Agreement (SLA)) für den Auftrag erfüllte.
    • • Die Identität des Hosts, auf dem der Auftrag läuft.
    • • Die CPU-Nutzung durch den Auftrag.
    • • Die Identität jeglicher Produkte oder Services, die durch den Auftrag genutzt werden.
    • • Der Typ der Daten, die durch den Auftrag ausgegeben werden.
    • • Die Position der Daten, die durch den Auftrag ausgegeben werden.
    • • Die Anzahl an Aufzeichnungen, die während der Ausführung des Auftrags verarbeitet werden.
    • • Die Anzahl an Aufzeichnungen, die während der Ausführung des Auftrags abgelehnt werden.
    • • Den Status jedes der Services, die durch den Auftrag genutzt werden.
  • Es kann auch eine andere Echtzeit-Statusmetrik überwacht werden. In manchen Beispielen kann der Benutzer 902 eine spezielle Statusmetrik definieren, die durch das Steuerungszentrum 950 zu überwachen ist.
  • Das Steuerungszentrum 950 kann auch Informationen erhalten, die das Nachverfolgen der Verlaufsstatusmetrik für einen Auftrag 908 ermöglichen. Beispielsweise kann das Steuerungszentrum 950 Informationen erhalten, die das Nachverfolgen der mittleren Laufzeit, der mittleren CPU-Nutzung, der mittleren Anzahl an abgelehnten Aufzeichnungen oder eine andere Verlaufsmetrik für einen gegebenen Auftragstyp erlauben.
  • Beispiele für Handlungen, die in Bezug auf einen Auftrag vorgenommen werden können, umfassen beispielsweise:
    • • Start oder Stopp des Auftrags.
    • • Planen des Auftrags.
    • • Erneutes Laufenlassen eines Auftrags.
    • • Deaktivieren eines Auftrags, so dass er nicht läuft.
    • • Aktivieren eines deaktivierten Auftrags, so dass er läuft.
    • • Aufschieben eines Auftrags.
    • • Freigeben eines aufgeschobenen Auftrags.
    • • Probleme eines Auftrags untersuchen und lösen.
    • • Einen fehlgeschlagenen Auftrag ignorieren, so dass Aufträge mit Abhängigkeiten von ihm trotzdem laufen.
    • • Jegliche Vorgänger- oder Nachfolgeaufträge ansehen und zu diesen navigieren.
    • • Beliebige frühere Durchgänge des Auftrags ansehen und zu diesen navigieren.
    • • Einen Ausgangsauftrag oder beliebige Nachkommenaufträge ansehen und zu diesen navigieren.
    • • Die durch den Auftrag verwendeten Warteschlangen ansehen.
    • • Die durch den Auftrag verwendeten Dateien ansehen.
    • • Die durch den Auftrag verwendeten Ressourcen ansehen.
    • • Die durch den Auftrag verwendeten Produkte und Services ansehen.
  • Das Steuerungszentrum kann auch andere als die oben angeführten Handlungen ermöglichen.
  • Das Steuerungszentrum kann Warteschlangen 914, die von Aufträgen verwendet werden, überwachen. In manchen Umsetzungen hängen Aufträge von den Daten ab, die zwischen Datenverarbeitungskomponenten übertragen werden, weshalb die Kenntnis des Warteschlangenstatus einem Benutzer einen Einblick in das Gesamtleistungsverhalten der Aufträge gewährt.
  • Das Steuerungszentrum kann von den Aufträgen verwendete Ressourcen steuern. Die Ressourcen stellen manche Aspekte der Verarbeitungsumgebung dar, die durch einen Übersichtsplan verwendet wird. Beispielsweise kann eine Hardwarekomponente, Messung oder ein Programmierungsobjekt als Ressource definiert sein. CPU-Zeit, Verarbeitungseinheiten, FTP- (Dateiübertragungsprotokoll-) Anschlüsse, Festplattenkapazitäten, Dateianzahlen, Aufgabenströme und Ereignistrigger sowie JVM-(Java-Virtualmaschinen-) Pools sind Beispiele für Ressourcen. Der Zweck des Definierens von Ressourcen besteht darin, Nachfrage und Kapazität in der Verarbeitungsumgebung auszugleichen. Im Speziellen können Ressourcen verwendet werden, um Höchstgrenzen festzulegen und die dem System auferlegten Auslastungen zu reihen.
  • Die Benutzerschnittstelle 956 zeigt einen Teil oder alle Statusinformationen an, die durch das Steuerungszentrum 950 überwacht werden, und ermöglicht dem Benutzer, Handlungen in Bezug auf eine oder mehrere Komponenten der Verarbeitungsumgebung 900 vorzunehmen. Im Allgemeinen werden Statusinformationen auf der Benutzerschnittstelle 956 auf kohärente, integrierte Weise angezeigt und verbunden, die Beziehungen unter den verschiedenen Komponenten der Verarbeitungsumgebung 900 hervorhebt. Anstatt Informationen über jede einzelne Komponente der Verarbeitungsumgebung in einem Vakuum anzuzeigen, macht dieses Anzeigeparadigma Einblicke in die Überlappung unter den Komponenten der Verarbeitungsumgebung sichtbar oder zugänglich. Mit diesem Anzeigeparadigma können sowohl die Faktoren, die potenziell zu einem Leistungsproblem bei einer bestimmten Komponente beitragen, als auch die poteziellen Wirkungen eines Leistungsproblems an anderen Komponenten verstanden und darauf reagiert werden.
  • Beispielsweise kann der Benutzer 902 mit der integrierten Informationsanzeige, die auf der Benutzerschnittstelle 956 des Steuerungszentrums 950 bereitgestellt ist, jene Aufträge 908 identifizieren, die beeinflusst werden, wenn ein bestimmter Host 904 zur Wartung offline genommen wird. Umgekehrt stellt der Benutzer 902 möglicherweise fest, dass bestimmte Aufträge 908 langsamer als erwartet laufen. Durch die Benutzerschnittstelle 956 kann der Benutzer 902 in der Lage sein zu bestimmen, dass diese Aufträge 908 alle auf demselben Host 904 laufen und dass dieser Host 904 ist CPUgebunden oder I/O- (Eingabe-Ausgabe-) gebunden ist. In beiden Fällen kann der Benutzer 902 eingreifen, um jegliche potenziellen Leistungsprobleme abzuschwächen oder tatsächliche Leistungsprobleme zu lösen. Beispielsweise kann der Benutzer 902 durch eine Benutzerschnittstelle 956 und als Reaktion auf eine Benachrichtigung, dass ein Host 904 zur geplanten Wartung offline genommen wird, die betroffenen Aufträge 908 oder die Anwendungen 906, die von diesen Aufträgen 908 genutzt werden, oder beide temporär auf einen anderen Host 908 migrieren. Im Beispiel des CPU-gebundenen oder I/O-gebundenen Host 904 kann der Benutzer einen Systemadministrator auf potenzielle Kapazitätsprobleme mit diesem Host 904 aufmerksam machen.
  • In manchen Beispielen zeichnet das Betriebssteuerungszentrum, wenn ein einem Diagramm zugeordneter Auftrag ausgeführt wird, die Version des Quellcodes des Diagramms auf. Wenn die erfolgreiche Durchführung eines Auftrags fehlschlägt, kann das dem ausgeführten Auftrag zugeordnete Diagramm mit einer anderen Version des Diagramms verglichen werden (z. B. einem Diagramm, das einem früheren, erfolgreich durchgeführten Auftrag zugeordnet ist). Eine grafische Darstellung der Differenzen zwischen den zwei Versionen des Diagramms kann einem Operator dabei helfen, besser zu verstehen, was sich geändert hat, wodurch der Auftrag möglicherweise fehlgeschlagen ist.
  • In manchen Beispielen kann ein Vergleich zwischen zwei Versionen eines Diagramms als Reaktion auf eine Benutzereingabe durchgeführt werden, wie eine Anfrage durch den Benutzer, mehr Informationen über einen fehlgeschlagenen Auftrag zu erhalten. Beispielsweise kann ein Benutzer durch die Benutzerschnittstelle 956 oder durch ein Warnsignal oder eine Mitteilung, das/die den fehlgeschlagenen Status des Auftrags angibt, auf eine Vergleichsfunktionalität zugreifen.
  • Bezug nehmend auf 13 stellt ein Auftragsfenster 352 in einem Beispiel für eine Betriebssteuerzentrums-Schnittstelle 350 Zugriff auf Details über einen Auftrag, wie beispielsweise einen abgeschlossenen Auftrag, einen aktuell laufenden Auftrag oder einen zukünftig geplanten Auftrag, bereit. Ausgehend vom Auftragsfenster 352 ermöglicht eine Vergleichshandlung 354 den Vergleich der Diagrammversion, auf deren Basis der Auftrag ausgeführt wurde, mit einer anderen Diagrammversion, wie einer aktuellen Version oder einer früheren Version. In dem Beispiel von 12 stellt das Auftragsfenster 352 Details über den aktuellsten erfolgreich durchgeführten Auftrag basierend auf einem bestimmten Diagramm bereit und die Vergleichshandlung 354 vergleicht diese Diagrammversion mit einer aktuellen Diagrammversion. Ein solcher Vergleich kann z. B. zweckmäßig sein, um zu verstehen, weshalb Aufträge, die basierend auf der aktuellen Version des Diagramms laufen, nicht mehr in der Lage sind, erfolgreich abgeschlossen zu werden. Ein solcher Vergleich kann außerdem z. B. zweckmäßig sein, um zu bestimmen, ob das Diagramm in Bezug auf die frühere Version modifiziert wurde.
  • Bezug nehmend auf 14 werden in einem beispielhaften Ansatz zur grafischen Darstellung von Differenzen eine Spezifikation eines ersten Computerprogramms (z. B. ein erstes Diagramm) und eine Spezifikation eines zweiten Computerprogramms (z. B. ein zweites Diagramm) miteinander verglichen (300). Basierend auf dem Vergleich werden eine oder mehrere Differenzen zwischen dem ersten Computerprogramm und dem zweiten Computerprogramm identifiziert (302). Die eine oder mehreren Differenzen können einen Knoten umfassen, der im ersten Diagramm, nicht aber im zweiten Diagramm vorhanden ist. Die eine oder mehreren Differenzen können einen ersten Knoten im ersten Diagramm umfassen, der einem zweiten Knoten im zweiten Diagramm entspricht und ein Merkmal aufweist, das sich vom entsprechenden Merkmal des zweiten Knotens unterscheidet, wie einen Parameterwert oder Parameterausdruck. Eine grafische Darstellung der identifizierten Differenzen wird wiedergegeben (304). Die grafische Darstellung erfolgt als Reaktion auf Benutzerinteraktion.
  • 15 zeigt ein Beispiel eines Datenverarbeitungssystems 1000, bei dem die Verfahren zur grafischen Darstellung von Differenzen genutzt werden können. Das System 1000 umfasst eine Datenquelle 1002, die eine oder mehrere Quellen von Daten umfassen kann, wie Speichervorrichtungen oder Verbindungen zu Onlinedatenströmen, die jeweils Daten in einer Vielzahl von Formaten (z. B. Datenbanktabellen, Tabellenkalkulationsdateien, Flat-Text-Dateien oder einem nativen Format, das von einem Großrechner verwendet wird) speichern oder bereitstellen kann. Bei den Daten kann es sich um logistische Daten, Analysedaten oder maschinelle Daten handeln. Eine Ausführungsumgebung 1004 umfasst ein Vorverarbeitungsmodul 1006 und ein Ausführungsmodul 1012. Die Ausführungsumgebung 1004 kann beispielsweise auf einem oder mehreren Allzweckcomputern unter der Steuerung eines geeigneten Betriebssystems, wie z. B. einer Version des UNIX-Betriebssystems, gehostet sein. Beispielsweise kann die Ausführungsumgebung 1004 eine Umgebung mit mehreren Parallelrechnerknoten umfassen, einschließlich einer Konfiguration von Computersystemen, die mehrere zentrale Verarbeitungseinheiten (CPUs) oder Prozessorkerne nutzen, die entweder lokal (z. B. Multiprozessorsysteme, wie z. B. symmetrische Multiprozessor- (SMP-) Computer) oder lokal verteilt sind (z. B. mehrere Prozessoren, die als Cluster oder Massenparallelrechner- (MPP-) Systeme verbunden sind), oder remote oder remote verteilt sind (z. B. mehrere Prozessoren, die über ein Local-Area-Network (LAN) und/oder Wide-Area Network (WAN) verbunden sind), oder eine beliebige Kombination davon.
  • Speichervorrichtungen, die die Datenquelle 1002 bereitstellen, können in Bezug auf die Ausführungsumgebung 1004 lokal sein und beispielsweise auf einem Speichermedium (z. B. Festpatte 1008) gespeichert sein, das mit einem Computer, der die Ausführungsumgebung 1004 hostet, verbunden ist, oder sie können in Bezug auf die Ausführungsumgebung 1004 remote sein und beispielsweise auf einem Remotesystem (z. B. Großrechner 1010) gehostet sein, das über eine Remote Verbindung (die z. B. durch eine Cloud-Infrastruktur bereitgestellt wird) in Kommunikation mit einem Computer steht, der die Ausführungsumgebung 1004 hostet.
  • Das Vorverarbeitungsmodul 1006 liest Daten aus der Datenquelle 1002 aus und bereitet Datenverarbeitungsanwendungen zur Ausführung vor. Beispielsweise kann das Vorverarbeitungsmodul 1006 eine Datenverarbeitungsanwendung kompilieren, eine kompilierte Datenverarbeitungsanwendung in einem Datenspeichersystem 1016, auf das die Ausführungsumgebung 1004 zugreifen kann, speichern und/oder daraus laden und andere Aufgaben durchführen, um eine Datenverarbeitungsanwendung zur Ausführung vorzubereiten.
  • Das Ausführungsmodul 1012 führt die vom Vorverarbeitungsmodul 1006 vorbereitete Datenverarbeitungsanwendung aus, um einen Datensatz zu verarbeiten und Ausgabedaten 1014 zu erzeugen, die aus der Verarbeitung resultieren. Die Ausgabedaten 1014 können wieder in der Datenquelle 1002 oder in einem Datenspeichersystem 1016 abgespeichert werden, auf das die Ausführungsumgebung 1004 Zugriff hat, oder anderweitig verwendet werden. Auf das Datenspeichersystem 1016 kann auch durch eine Entwicklungsumgebung 1018 zugegriffen werden, in der ein Entwickler 1020 in der Lage ist, die Datenverarbeitungsanwendungen zu konstruieren und zu bearbeiten, die vom Ausführungsmodul 1012 auszuführen sind. Bei der Entwicklungsumgebung 1018 handelt es sich in manchen Umsetzungen um ein System zur Entwicklung von Anwendungen, wie beispielsweise Datenflussdiagrammen, die Eckpunkte umfassen (die Datenverarbeitungskomponenten oder Datensätze darstellen) und durch gerichtete Verbindungen (die Flüsse von Arbeitselementen, d. h. Daten, darstellen) zwischen den Eckpunkten verbunden sind. Eine solche Umgebung wird beispielsweise näher in US-Patent mit der Veröffentlichungsnr. 2007/0011668 mit dem Titel „Managing Parameter for Graph-Based Applications“ beschrieben, das hierin durch Bezugnahme aufgenommen wird. Ein System zur Ausführung solcher diagrammbasierten Berechnungen wird in US-Patent 5.966.072 mit dem Titel „EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS“ beschrieben, dessen Inhalte hierin durch Bezugnahme vollumfänglich aufgenommen werden. Datenflussdiagramme, die gemäß diesem System erstellt wurden, stellen Verfahren bereit, um Informationen in und aus einzelnen Prozessen zu bekommen, die durch Diagrammkomponenten dargestellt sind, um Informationen zwischen diesen Prozessen zu bewegen und eine Ablaufreihenfolge der Prozesse zu definieren. Dieses System umfasst Algorithmen, die Interprozesskommunikationsverfahren aus beliebigen verfügbaren Verfahren auswählen (beispielsweise können Kommunikationspfade gemäß den Verbindungen des Diagramms TCP/IP- oder UNIX-Domain-Sockets oder gemeinsam verwendeten Arbeitsspeicher nutzen, um Daten zwischen den Prozessen zu bewegen).
  • Das Vorverarbeitungsmodul 1006 kann Daten von einer Vielzahl von Systemtypen empfangen, die die Datenquelle 1002 verkörpern können, einschließlich unterschiedlicher Formen von Datenbanksystemen. Die Daten können als Aufzeichnungen mit Werten für entsprechende Felder (auch „Attribute“ oder „Spalten“ genannt), einschließlich möglicher Nullwerte, organisiert sein. Wenn Daten erstmals aus einer Datenquelle ausgelesen werden, startet das Vorverarbeitungsmodul 1006 typischerweise mit ersten Formatinformationen über Aufzeichnungen in dieser Datenquelle. Unter manchen Umständen kann es sein, dass die Aufzeichnungsstruktur der Datenquelle anfangs noch nicht bekannt ist und stattdessen nach einer Analyse der Datenquelle oder der Daten bestimmt wird. Die ersten Informationen über Aufzeichnungen können beispielsweise die Anzahl der Bits, die einen bestimmten Wert darstellen, die Reihenfolge der Felder innerhalb einer Aufzeichnung und den Typ eines Werts (z. B. String, ganze Zahl mit/ohne Vorzeichen), der von den Bits dargestellt wird, umfassen.
  • Der oben beschriebene Ansatz einer grafischen Darstellung von Differenzen kann unter Verwendung eines Computersystems, das geeignete Software ausführt, implementiert werden. Die Software kann beispielsweise Vorgänge in einem oder mehreren Computerprogrammen umfassen, die ein oder mehrere programmierte oder programmierbare Rechensysteme ausführen (die unterschiedliche Architekturen aufweisen können, wie z. B. verteilt, Client/Server oder Grid), die jeweils zumindest einen Prozessor, zumindest ein Datenspeichersystem (einschließlich eines flüchtigen und/oder nichtflüchtigen Speichers und/oder Speicherelementen), zumindest eine Benutzerschnittstelle (zum Empfangen von Eingaben unter Verwendung zumindest einer Eingabevorrichtung oder eines Anschlusses und zum Bereitstellen von Ausgaben unter Verwendung zumindest einer Ausgabevorrichtung oder eines Anschlusses) umfassen. Die Software kann ein oder mehrere Module eines größeren Programms umfassen, beispielsweise eines, das Services in Bezug auf das Design, die Konfiguration und Ausführung der Diagramme bereitstellt. Die Module des Programms (z. B. Elemente eines Diagramms) können als Datenstrukturen oder anderweitig geordnete Daten, die einem in einem Datendepot gespeicherten Datenmodell entsprechen, implementiert sein.
  • Die Software kann auf einem physischen nichttransitorischen Medium wie einer CD-ROM oder einem anderen computerlesbaren Medium implementiert sein (z. B. durch ein(e) Allzweck- oder Spezialzweckrechnersystem oder -vorrichtung lesbar) oder über ein Kommunikationsmedium eines Netzwerks an ein physisches nichttransitorisches Medium eines Rechnersystems, in dem sie ausgeführt wird, (z. B. in einem verbreiteten Signal kodiert) übermittelt werden. Ein Teil der oder die gesamte Verarbeitung kann auf einem Computer für spezifische Zwecke oder unter Verwendung einer spezifischen Hardware durchgeführt werden, wie z. B. Coprozessoren oder Field Programmable Gate Arrays (FPGAs) oder dedizierten anwendungsspezifischen integrierten Schaltungen (ASICs). Die Verarbeitung kann auf verteilte Weise implementiert sein, wobei unterschiedliche Teile der Berechnung, die von der Software spezifiziert sind, von unterschiedlichen Rechnerelementen durchgeführt werden. Jedes dieser Computerprogramme wird vorzugsweise auf einem computerlesbaren Speichermedium (z. B. Solid-State-Speicher oder -Medium oder magnetische oder optische Medien) einer Speichervorrichtung, auf die von einem Allzweck- oder Spezialzweck-programmierbaren Computer zugegriffen werden kann, gespeichert oder auf dieses heruntergeladen, um den Computer zu konfigurieren und zu betreiben, wenn das Speichervorrichtungsmedium vom Computer ausgelesen wird, um die hierin beschriebene Verarbeitung durchzuführen. Das erfindungsgemäße System kann außerdem als physisches nichttransitorisches Medium implementiert sein, das mit einem Computerprogramm konfiguriert wird, wobei das so konfigurierte Medium herbeiführt, dass ein Computer auf eine spezifische und vorbestimmte Weise betrieben wird, um einen oder mehrere der hierin beschriebenen Verarbeitungsschritte durchzuführen.
  • Es wurde eine Reihe von Ausführungsformen der Erfindung beschrieben. Nichtsdestotrotz versteht es sich, dass die vorangegangene Beschreibung den Schutzumfang der Erfindung, der vom Umfang der folgenden Patentansprüche definiert wird, veranschaulichen und nicht einschränken soll. Demgemäß liegen auch noch weitere Ausführungsformen im Schutzumfang der folgenden Patentansprüche. So können beispielsweise zahlreiche Modifikationen vorgenommen werden, ohne vom Schutzumfang der Erfindung abzuweichen. Zusätzlich dazu hängen manche der oben beschriebenen Schritte nicht von einer bestimmten Reihenfolge ab und können daher in einer anderen als der beschriebenen Reihenfolge durchgeführt werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 14690114 [0086]
    • US 5966072 [0112]

Claims (33)

  1. Verfahren zur Anzeige der Differenzen zwischen einem ersten ausführbaren Datenflussdiagramm und einem zweiten ausführbaren Datenflussdiagramm, wobei jedes Datenflussdiagramm ausführbar ist, um Daten zu verarbeiten, die durch das Datenflussdiagramm empfangen wurden, wobei jedes Datenflussdiagramm einen oder mehrere Knoten, die Datenverarbeitungskomponenten darstellen, und eine oder mehrere Verbindungen, die Flüsse von Daten zwischen Komponenten darstellen, umfasst, wobei das Verfahren Folgendes umfasst: Vergleichen einer Spezifikation des ersten ausführbaren Datenflussdiagramms und einer Spezifikation des zweiten ausführbaren Datenflussdiagramms durch einen Computer, um eine oder mehrere Differenzen zwischen dem ersten Datenflussdiagramm und dem zweiten Datenflussdiagramm zu identifizieren, wobei die Spezifikation eines gegebenen ausführbaren Datenflussdiagramms einen oder mehrere Knoten, die jeweils eine Quelle von Daten darstellen, die durch das Datenflussdiagramm zu verarbeiten sind, einen oder mehrere Knoten, die jeweils eine Datenverarbeitungskomponente darstellen, die einen Vorgang definieren, der durchzuführen ist, um die Daten aus der Quelle von Daten zu verarbeiten, und einen oder mehrere Knoten definiert, die jeweils einen Bestimmungsort für Daten darstellen, die durch das Datenflussdiagramm verarbeitet werden; wobei das Vergleichen des ersten Datenflussdiagramms und des zweiten Datenflussdiagramms zumindest eines der Folgenden umfasst: (1) Identifizieren eines/r bestimmten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und (2) Identifizieren eines/r ersten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die einem/r zweiten Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung; und Formulieren einer grafischen Darstellung zumindest mancher der Knoten oder Verbindungen des ersten Datenflussdiagramms oder des zweiten Datenflussdiagramms, wobei die grafische Darstellung einen grafischen Indikator für zumindest eines aus (1) dem/der identifizierten bestimmten Knoten oder Verbindung und (1) der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung umfasst; und Anzeigen der grafischen Darstellung in einer Diagrammeditierschnittstelle.
  2. Verfahren nach Anspruch 1, in dem das erste Datenflussdiagramm eine erste Version eines bestimmten Datenflussdiagramms ist und in dem das zweite Datenflussdiagramm eine zweite Version des bestimmten Datenflussdiagramms ist.
  3. Verfahren nach Anspruch 1 oder 2, in dem das Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung das Identifizieren einer Differenz zwischen einem aufgelösten Parameter des/der ersten Knotens oder Verbindung und einem aufgelösten Parameter des/der zweiten Knotens oder Verbindung umfasst.
  4. Verfahren nach einem der Ansprüche 1 bis 3, in dem das Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung das Identifizieren einer Differenz zwischen einem Ausdruck für einen Parameter des/der ersten Knotens oder Verbindung und einem Ausdruck für einen Parameter des/der zweiten Knotens oder Verbindung umfasst.
  5. Verfahren nach einem der Ansprüche 1 bis 4, in dem der grafische Indikator eine Farbe des/der ersten, zweiten oder bestimmten Knotens oder Verbindung in der grafischen Darstellung ist.
  6. Verfahren nach Anspruch 5, in dem die Farbe des grafischen Indikators einen Typ der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung angibt.
  7. Verfahren nach einem der Ansprüche 1 bis 6, in dem der grafische Indikator eine Schattierung oder Füllung des/der ersten, zweiten oder bestimmten Knotens oder Verbindung in der grafischen Darstellung ist.
  8. Verfahren nach einem der Ansprüche 1 bis 7, in dem der grafische Indikator ein nahe dem/der ersten, zweiten oder bestimmten Knoten oder Verbindung angeordnetes Symbol ist.
  9. Verfahren nach einem der Ansprüche 1 bis 8, in dem der grafische Indikator auf eine Benutzerinteraktion anspricht.
  10. Verfahren nach Anspruch 9, umfassend das Freigeben von Zugriff auf Informationen, die die identifizierte Differenz angeben, die auf Benutzerinteraktion mit dem grafischen Indikator anspricht.
  11. Verfahren nach einem der Ansprüche 1 bis 10, in dem das erste Datenflussdiagramm ein erstes Datenfluss-Subdiagramm enthält und in dem das zweite Datenflussdiagramm ein zweites Datenfluss-Subdiagramm enthält, umfassend: Vergleichen einer Spezifikation des ersten Datenfluss-Subdiagramms und einer Spezifikation des zweiten Datenfluss-Subdiagramms; und Identifizieren einer oder mehrerer Differenzen zwischen dem ersten Datenfluss-Subdiagramm und dem zweiten Datenfluss-Subdiagramm basierend auf dem Vergleichen.
  12. Verfahren nach Anspruch 11, in dem die grafische Darstellung eine grafische Darstellung zumindest eines Abschnitts des ersten Datenfluss-Subdiagramms oder zumindest eines Abschnitts des zweiten Datenfluss-Subdiagramms umfasst, wobei die grafische Darstellung einen grafischen Indikator für zumindest eine der identifizierten Differenzen zwischen dem ersten Datenfluss-Subdiagramm und dem zweiten Datenfluss-Subdiagramm umfasst.
  13. Verfahren nach Anspruch 11 oder 12, in dem die grafische Darstellung eine hierarchische Darstellung zumindest einer der identifizierten Differenzen zwischen dem ersten Datenflussdiagramm und dem zweiten Datenflussdiagramm und zumindest eine der identifizierten Differenzen zwischen dem ersten Datenfluss-Subdiagramm und dem zweiten Datenfluss-Subdiagramm umfasst.
  14. Verfahren nach einem der Ansprüche 1 bis 13, in dem das Vergleichen der Spezifikation des ersten Datenflussdiagramms und der Spezifikation des zweiten Datenflussdiagramms das Vergleichen einer ersten Datei, auf die durch das erste Datenflussdiagramm Bezug genommen wird, und einer zweiten Datei, auf die durch das zweite Datenflussdiagramm Bezug genommen wird, umfasst.
  15. Verfahren nach Anspruch 14, in dem die grafische Darstellung eine grafische Darstellung einer oder mehrerer Differenzen zwischen der ersten Datei und der zweiten Datei umfasst.
  16. Verfahren nach einem der Ansprüche 1 bis 15, in dem das Identifizieren eines/r ersten Knotens oder Verbindung, der/die einem/r zweiten Knoten oder Verbindung entspricht, das Identifizieren des ersten Knotens basierend auf einem oder mehreren aus (1) einer Bezeichnung des/der ersten Knotens oder Verbindung und des/der zweiten Knotens oder Verbindung und (2) einer Kennung des/der ersten Knotens oder Verbindung und des/der zweiten Knotens oder Verbindung umfasst.
  17. Verfahren nach einem der Ansprüche 1 bis 16, in dem das Identifizieren eines/r ersten Knotens oder Verbindung, der/die einem/r zweiten Knoten oder Verbindung entspricht, das Identifizieren des ersten Knotens basierend auf Informationen umfasst, die einem Datenfluss in den oder aus dem ersten Knoten und zweiten Knoten zugeordnet ist.
  18. Verfahren nach einem der Ansprüche 1 bis 17, in dem das Identifizieren eines/r ersten Knotens oder Verbindung, der/die einem/r zweiten Knoten oder Verbindung entspricht, das Identifizieren des/der ersten Knotens oder Verbindung basierend auf Knoten oder Verbindungen umfasst, die stromauf oder stromab des/der ersten Knotens oder Verbindung und des/der zweiten Knotens oder Verbindung angeordnet sind.
  19. Verfahren nach einem der Ansprüche 1 bis 18, umfassend das Erstellen des ersten Datenflussdiagramms und des zweiten Datenflussdiagramms zur Ausführung; und das Vergleichen der Spezifikationen des erstellten ersten und zweiten Datenflussdiagramms.
  20. Nichtflüchtiges computerlesbares Medium, das Befehle zum Veranlassen eines Computers speichert, die Differenzen zwischen einem ersten ausführbaren Datenflussdiagramm und einem zweiten ausführbaren Datenflussdiagramm anzuzeigen, wobei jedes Datenflussdiagramm ausführbar ist, um Daten zu verarbeiten, die durch das Datenflussdiagramm empfangen wurden, wobei jedes Datenflussdiagramm einen oder mehrere Knoten, die Datenverarbeitungskomponenten darstellen, und eine oder mehrere Verbindungen, die Flüsse von Daten zwischen Komponenten darstellen, umfasst, wobei die Befehle den Computer zu Folgendem veranlassen: Vergleichen einer Spezifikation des ersten ausführbaren Datenflussdiagramms und einer Spezifikation des zweiten ausführbaren Datenflussdiagramms, um eine oder mehrere Differenzen zwischen dem ersten Datenflussdiagramm und dem zweiten Datenflussdiagramm zu identifizieren, wobei die Spezifikation eines gegebenen ausführbaren Datenflussdiagramms einen oder mehrere Knoten, die jeweils eine Quelle von Daten darstellen, die durch das Datenflussdiagramm zu verarbeiten sind, einen oder mehrere Knoten, die jeweils eine Datenverarbeitungskomponente darstellen, die einen Vorgang definiert, der durchzuführen ist, um die Daten aus der Quelle von Daten zu verarbeiten, und einen oder mehrere Knoten definiert, die jeweils einen Bestimmungsort für Daten darstellen, die durch das Datenflussdiagramm verarbeitet werden; wobei das Vergleichen des ersten Datenflussdiagramms und des zweiten Datenflussdiagramms zumindest eines der Folgenden umfasst: (1) Identifizieren eines/r bestimmten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und (2) Identifizieren eines/r ersten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die einem/r zweiten Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung; und Formulieren einer grafischen Darstellung zumindest mancher der Knoten oder Verbindungen des ersten Datenflussdiagramms oder des zweiten Datenflussdiagramms, wobei die grafische Darstellung einen grafischen Indikator für zumindest eines aus (1) dem/der identifizierten bestimmten Knoten oder Verbindung und (1) der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung umfasst; und Anzeigen der grafischen Darstellung in einer Diagrammeditierschnittstelle.
  21. System zur Anzeige der Differenzen zwischen einem ersten ausführbaren Datenflussdiagramm und einem zweiten ausführbaren Datenflussdiagramm, wobei jedes Datenflussdiagramm ausführbar ist, um Daten zu verarbeiten, die durch das Datenflussdiagramm empfangen wurden, wobei jedes Datenflussdiagramm einen oder mehrere Knoten, die Datenverarbeitungskomponenten darstellen, und eine oder mehrere Verbindungen, die Flüsse von Daten zwischen Komponenten darstellen, umfasst, wobei das System Folgendes umfasst: einen Prozessor und einen Speicher, die für Folgendes konfiguriert sind: Vergleichen einer Spezifikation des ersten ausführbaren Datenflussdiagramms und einer Spezifikation des zweiten ausführbaren Datenflussdiagramms, um eine oder mehrere Differenzen zwischen dem ersten Datenflussdiagramm und dem zweiten Datenflussdiagramm zu identifizieren, wobei die Spezifikation eines gegebenen ausführbaren Datenflussdiagramms einen oder mehrere Knoten, die jeweils eine Quelle von Daten darstellen, die durch das Datenflussdiagramm zu verarbeiten sind, einen oder mehrere Knoten, die jeweils eine Datenverarbeitungskomponente darstellen, die einen Vorgang definiert, der durchzuführen ist, um die Daten aus der Quelle von Daten zu verarbeiten, und einen oder mehrere Knoten definiert, die jeweils einen Bestimmungsort für Daten darstellen, die durch das Datenflussdiagramm verarbeitet werden; wobei das Vergleichen des ersten Datenflussdiagramms und des zweiten Datenflussdiagramms zumindest eines der Folgenden umfasst: (1) Identifizieren eines/r bestimmten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und (2) Identifizieren eines/r ersten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die einem/r zweiten Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung; und Formulieren einer grafischen Darstellung zumindest mancher der Knoten oder Verbindungen des ersten Datenflussdiagramms oder des zweiten Datenflussdiagramms, wobei die grafische Darstellung einen grafischen Indikator für zumindest eines aus (1) dem/der identifizierten bestimmten Knoten oder Verbindung und (1) der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung umfasst; und Anzeigen der grafischen Darstellung in einer Diagrammeditierschnittstelle.
  22. System zur Anzeige der Differenzen zwischen einem ersten ausführbaren Datenflussdiagramm und einem zweiten ausführbaren Datenflussdiagramm, wobei jedes Datenflussdiagramm ausführbar ist, um Daten zu verarbeiten, die durch das Datenflussdiagramm empfangen wurden, wobei jedes Datenflussdiagramm einen oder mehrere Knoten, die Datenverarbeitungskomponenten darstellen, und eine oder mehrere Verbindungen, die Flüsse von Daten zwischen Komponenten darstellen, umfasst, wobei das System Folgendes umfasst: Mittel zum Vergleichen einer Spezifikation des ersten ausführbaren Datenflussdiagramms und einer Spezifikation des zweiten ausführbaren Datenflussdiagramms, um eine oder mehrere Differenzen zwischen dem ersten Datenflussdiagramm und dem zweiten Datenflussdiagramm zu identifizieren, wobei die Spezifikation eines gegebenen ausführbaren Datenflussdiagramms einen oder mehrere Knoten, die jeweils eine Quelle von Daten darstellen, die durch das Datenflussdiagramm zu verarbeiten sind, einen oder mehrere Knoten, die jeweils eine Datenverarbeitungskomponente darstellen, die einen Vorgang definiert, der durchzuführen ist, um die Daten aus der Quelle von Daten zu verarbeiten, und einen oder mehrere Knoten definiert, die jeweils einen Bestimmungsort für Daten darstellen, die durch das Datenflussdiagramm verarbeitet werden; wobei das Vergleichen des ersten Datenflussdiagramms und des zweiten Datenflussdiagramms zumindest eines der Folgenden umfasst: (1) Identifizieren eines/r bestimmten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und (2) Identifizieren eines/r ersten Knotens oder Verbindung des ersten Datenflussdiagramms, der/die einem/r zweiten Knoten oder Verbindung des zweiten Datenflussdiagramms entspricht, und Identifizieren einer Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung; und Mittel zum Formulieren einer grafischen Darstellung zumindest mancher der Knoten oder Verbindungen des ersten Datenflussdiagramms oder des zweiten Datenflussdiagramms, wobei die grafische Darstellung einen grafischen Indikator für zumindest eines aus (1) dem/der identifizierten bestimmten Knoten oder Verbindung und (1) der identifizierten Differenz zwischen dem/der ersten Knoten oder Verbindung und dem/der zweiten Knoten oder Verbindung umfasst; und Mittel zur Anzeige der grafischen Darstellung in einer Diagrammeditierschnittstelle.
  23. Verfahren zur Anzeige der Differenzen zwischen einer ersten Version eines ausführbaren Datenflussdiagramms und einer zweiten Version des ausführbaren Datenflussdiagramms, wobei das Datenflussdiagramm ausführbar ist, um Daten zu verarbeiten, die durch das Datenflussdiagramm empfangen wurden, wobei jede Version des Datenflussdiagramms einen oder mehrere Knoten, die Datenverarbeitungskomponenten darstellen, und eine oder mehrere Verbindungen, die Flüsse von Daten zwischen Komponenten darstellen, umfasst, wobei das Verfahren Folgendes umfasst: Überwachen eines Status eines Auftrags, der einen oder mehrere Vorgänge umfasst, die ausgeführt werden können, um Daten zu verarbeiten, mit einem integrierten Steuersystem, wobei der Auftrag der ersten Version des ausführbaren Datenflussdiagramms zugeordnet ist; Freigeben einer Ausgabe von Informationen, die den Status des Auftrags angeben; Identifizieren der zweiten Version des ausführbaren Datenflussdiagramms als Reaktion auf Benutzerinteraktion mit dem integrierten Steuersystem oder den ausgegebenen Informationen; Vergleichen einer Spezifikation der ersten Version des Datenflussdiagramms und einer Spezifikation der zweiten Version des Datenflussdiagramms, um eine oder mehrere Differenzen zwischen der ersten Version des Datenflussdiagramms und der zweiten Version des Datenflussdiagramms zu identifizieren, wobei die Spezifikation eines gegebenen ausführbaren Datenflussdiagramms einen oder mehrere Knoten, die jeweils eine Quelle von Daten darstellen, die durch das Datenflussdiagramm zu verarbeiten sind, einen oder mehrere Knoten, die jeweils eine Datenverarbeitungskomponente darstellen, die einen Vorgang definiert, der durchzuführen ist, um die Daten aus der Quelle von Daten zu verarbeiten, und einen oder mehrere Knoten definiert, die jeweils einen Bestimmungsort für Daten darstellen, die durch das Datenflussdiagramm verarbeitet werden; wobei das Vergleichen der ersten Version des Datenflussdiagramms und der zweiten Version des Datenflussdiagramms zumindest eines der Folgenden umfasst: (1) Identifizieren eines/r ersten Knotens oder Verbindung der ersten Version des Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung der zweiten Version des Datenflussdiagramms entspricht, (2) Identifizieren eines/r zweiten Knotens oder Verbindung der zweiten Version des Datenflussdiagramms, der/die keinem/r Knoten oder Verbindung der ersten Version des Datenflussdiagramms entspricht, und (1) Identifizieren eines/r dritten Knotens oder Verbindung der ersten Version des Datenflussdiagramms, der/die einem/r vierten Knoten oder Verbindung der zweiten Version des Datenflussdiagramms entspricht, und Identifizieren einer Differenz zwischen dem/der dritten Knoten oder Verbindung und dem/der vierten Knoten oder Verbindung, Formulieren einer grafischen Darstellung zumindest mancher der Knoten oder Verbindungen der ersten Version des Datenflussdiagramms oder der zweiten Version des Datenflussdiagramms, wobei die grafische Darstellung einen grafischen Indikator für zumindest einen aus (1) dem/der identifizierten ersten Knoten oder Verbindung, (2) dem/der identifizierten zweiten Knoten oder Verbindung und (3) der identifizierten Differenz zwischen dem/der dritten Knoten oder Verbindung und dem/der vierten Knoten oder Verbindung.
  24. Verfahren nach Anspruch 23, in dem ein zuvor ausgeführter Auftrag der zweiten Version des Datenflussdiagramms zugeordnet ist.
  25. Verfahren nach Anspruch 23 oder 24, in dem die grafische Darstellung eine hierarchische Darstellung einer oder mehrerer der identifizierten Differenzen umfasst.
  26. Verfahren nach einem der Ansprüche 23 bis 25, umfassend das Formulieren der grafischen Darstellung zur Anzeige in einer Benutzerschnittstelle des integrierten Steuersystems.
  27. Verfahren nach einem der Ansprüche 23 bis 26, in dem das Identifizieren einer Differenz zwischen der ersten Version des Datenflussdiagramms und der zweiten Version des Datenflussdiagramms das Identifizieren einer Differenz zwischen einem aufgelösten Parameter der ersten Version des Datenflussdiagramms und einem aufgelösten Parameter der zweiten Version des Datenflussdiagramms umfasst.
  28. Verfahren nach einem der Ansprüche 23 bis 27, in dem das Identifizieren einer Differenz zwischen der ersten Version des Datenflussdiagramms und der zweiten Version des Datenflussdiagramms das Identifizieren einer Differenz zwischen einem Ausdruck für einen Parameter der ersten Version des Datenflussdiagramms und einem Ausdruck für einen Parameter der zweiten Version des Datenflussdiagramms umfasst.
  29. Verfahren nach einem der Ansprüche 23 bis 28, in dem das Identifizieren einer Differenz zwischen der ersten Version des Datenflussdiagramms und der zweiten Version des Datenflussdiagramms das Identifizieren einer Differenz zwischen einer ersten Datei, auf die durch die erste Version des Datenflussdiagramms Bezug genommen wird, und einer zweiten Datei, auf die durch die zweite Version des Datenflussdiagramms Bezug genommen wird, umfasst.
  30. Verfahren nach einem der Ansprüche 23 bis 29, in dem das Überwachen des Status des Auftrags das Überwachen eines oder mehrerer aus einer Aktivität des Auftrags, einer tatsächlichen Startzeit des Auftrags, einer geschätzten Startzeit des Auftrags, einer dem Auftrag zugeordneten Verarbeitungsdauer und einer Größe des Auftrags umfasst.
  31. Verfahren nach einem der Ansprüche 23 bis 30, in dem das Überwachen des Status des Auftrags das Bestimmen, ob der Auftrag erfolgreich abgeschlossen wurde, umfasst.
  32. Verfahren nach einem der Ansprüche 23 bis 31, umfassend das Überwachen des Status einer Anwendung, in dem der Auftrag der Anwendung zugeordnet ist.
  33. Verfahren nach einem der Ansprüche 23 bis 32, umfassend das Überwachen des Status einer Rechenvorrichtung, in dem die Anwendung durch die Rechenvorrichtung gehostet wird.
DE112017006164.4T 2016-12-07 2017-12-04 Differenzvergleich von ausführbaren Datenflussdiagrammen Withdrawn DE112017006164T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662431195P 2016-12-07 2016-12-07
US62/431,195 2016-12-07
US15/587,987 2017-05-05
US15/587,987 US10802945B2 (en) 2016-12-07 2017-05-05 Differencing of executable dataflow graphs
PCT/US2017/064493 WO2018106589A1 (en) 2016-12-07 2017-12-04 Differencing of executable dataflow graphs

Publications (1)

Publication Number Publication Date
DE112017006164T5 true DE112017006164T5 (de) 2019-08-29

Family

ID=62240131

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017006164.4T Withdrawn DE112017006164T5 (de) 2016-12-07 2017-12-04 Differenzvergleich von ausführbaren Datenflussdiagrammen

Country Status (8)

Country Link
US (2) US10802945B2 (de)
EP (1) EP3552092B1 (de)
JP (2) JP6913168B2 (de)
CN (1) CN110050257B (de)
AU (1) AU2017370567B2 (de)
CA (1) CA3046071A1 (de)
DE (1) DE112017006164T5 (de)
WO (1) WO2018106589A1 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10633434B2 (en) 2016-06-14 2020-04-28 Regeneron Pharmaceuticals, Inc. Anti-C5 antibodies
US10242079B2 (en) 2016-11-07 2019-03-26 Tableau Software, Inc. Optimizing execution of data transformation flows
US10885057B2 (en) 2016-11-07 2021-01-05 Tableau Software, Inc. Correlated incremental loading of multiple data sets for an interactive data prep application
US11853529B2 (en) 2016-11-07 2023-12-26 Tableau Software, Inc. User interface to prepare and curate data for subsequent analysis
US10802945B2 (en) 2016-12-07 2020-10-13 Ab Initio Technology Llc Differencing of executable dataflow graphs
US10802698B1 (en) * 2017-02-06 2020-10-13 Lucid Software, Inc. Diagrams for structured data
EP3404535A1 (de) * 2017-05-15 2018-11-21 Ecole Nationale de l'Aviation Civile Verfahren und vorrichtung für einen verarbeitungscode
US11010273B2 (en) * 2017-06-28 2021-05-18 Intel Corporation Software condition evaluation apparatus and methods
US10394691B1 (en) * 2017-10-05 2019-08-27 Tableau Software, Inc. Resolution of data flow errors using the lineage of detected error conditions
CN120571008A (zh) 2017-12-13 2025-09-02 瑞泽恩制药公司 抗c5抗体组合及其用途
US10990364B2 (en) * 2018-06-06 2021-04-27 Ab Initio Technology Llc Updating executable graphs
US11250032B1 (en) 2018-10-22 2022-02-15 Tableau Software, Inc. Data preparation user interface with conditional remapping of data values
US10691304B1 (en) 2018-10-22 2020-06-23 Tableau Software, Inc. Data preparation user interface with conglomerate heterogeneous process flow elements
US11126411B2 (en) * 2018-12-13 2021-09-21 Sap Se Dashboard user interface for data driven applications
JP2020160854A (ja) * 2019-03-27 2020-10-01 株式会社日立製作所 コード管理システム、及びコード管理方法
CN110928765B (zh) * 2019-10-11 2021-08-03 京东数字科技控股有限公司 一种链路测试方法及装置
US11100097B1 (en) 2019-11-12 2021-08-24 Tableau Software, Inc. Visually defining multi-row table calculations in a data preparation application
US12443449B2 (en) * 2019-11-15 2025-10-14 Nvidia Corporation Techniques for modifying an executable graph to perform a workload associated with a new task graph
EP3822770A1 (de) * 2019-11-15 2021-05-19 Nvidia Corporation Verfahren zum modifizieren eines ausführbaren graphen zur durchführung einer arbeitslast in zusammenhang mit einem neuen aufgabengraphen
US11487641B1 (en) * 2019-11-25 2022-11-01 EMC IP Holding Company LLC Micro services recommendation system for identifying code areas at risk
US11698847B2 (en) 2020-01-15 2023-07-11 Microsoft Technology Licensing, Llc Diffing a subject replayable execution trace against a comparison replayable execution trace
US11243869B2 (en) * 2020-01-15 2022-02-08 Microsoft Technologly Licensing, LLC Diffing of replayable execution traces
US11698848B2 (en) 2020-01-15 2023-07-11 Microsoft Technology Licensing, Llc Diffing a subject replayable execution trace against a plurality of comparison replayable execution traces
CN112015397B (zh) * 2020-09-07 2023-09-26 深圳职业技术学院 环路检测方法及系统
CN112187579B (zh) * 2020-09-28 2021-11-23 中国建设银行股份有限公司 数据传输异常辅助处理方法、装置、设备及可读存储介质
CN113761419B (zh) * 2021-01-22 2025-08-19 北京沃东天骏信息技术有限公司 拓扑信息的显示方法、装置、电子设备及存储介质
US11567998B2 (en) * 2021-03-25 2023-01-31 Databricks, Inc. Dataflow graph processing
CN113419739B (zh) * 2021-06-22 2022-12-06 网易(杭州)网络有限公司 节点图差异检测方法、装置、电子设备及存储介质
US12517717B2 (en) 2021-10-08 2026-01-06 Ab Initio Technology Llc Automated modification of computer programs
US12032994B1 (en) 2021-10-18 2024-07-09 Tableau Software, LLC Linking outputs for automatic execution of tasks
US11656744B1 (en) * 2022-03-14 2023-05-23 Wolters Kluwer Technology BV Interactive tool for efficiently developing task flows
US11989537B2 (en) * 2022-06-09 2024-05-21 Xilinx, Inc. Dataflow-based computer program visualization and refactoring

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JPH10177477A (ja) * 1996-10-18 1998-06-30 Nippon Steel Corp 業務設計支援システム
US5974254A (en) 1997-06-06 1999-10-26 National Instruments Corporation Method for detecting differences between graphical programs
US7139837B1 (en) * 2002-10-04 2006-11-21 Ipolicy Networks, Inc. Rule engine
US7594227B2 (en) * 2004-03-08 2009-09-22 Ab Initio Technology Llc Dependency graph parameter scoping
KR20070101217A (ko) * 2004-09-16 2007-10-16 텔레노어 아사 개인 웹에서의 문서의 검색, 항행, 및 순위 부여를 위한방법, 시스템, 컴퓨터 프로그램 제품
US7703027B2 (en) * 2005-01-13 2010-04-20 National Instruments Corporation Merging graphical programs
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US9110706B2 (en) * 2009-02-09 2015-08-18 Microsoft Technology Licensing, Llc General purpose distributed data parallel computing using a high level language
US8205113B2 (en) * 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
EP2513782A1 (de) * 2009-12-14 2012-10-24 Ab Initio Technology LLC Festlegung von benutzerschnittstellenelementen
US9811233B2 (en) * 2013-02-12 2017-11-07 Ab Initio Technology Llc Building applications for configuring processes
JP6061273B2 (ja) * 2013-03-29 2017-01-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 表示装置、表示方法、及びプログラム
JP6176587B2 (ja) * 2013-03-29 2017-08-09 日本電気株式会社 移動車両位置検知システム、サーバ、車両端末、移動車両位置検知方法、プログラム、および記録媒体
US10338543B2 (en) * 2014-04-04 2019-07-02 Schneider Electric Software, Llc Integrated model predictive control and advanced process control
US10152406B2 (en) * 2015-08-25 2018-12-11 Fujistu Limited Software program repair
US10802945B2 (en) 2016-12-07 2020-10-13 Ab Initio Technology Llc Differencing of executable dataflow graphs

Also Published As

Publication number Publication date
CN110050257B (zh) 2023-06-30
US11455229B2 (en) 2022-09-27
EP3552092A1 (de) 2019-10-16
JP2020504862A (ja) 2020-02-13
CN110050257A (zh) 2019-07-23
CA3046071A1 (en) 2018-06-14
JP2021180013A (ja) 2021-11-18
JP7535014B2 (ja) 2024-08-15
US20210208999A1 (en) 2021-07-08
JP6913168B2 (ja) 2021-08-04
US20180157579A1 (en) 2018-06-07
AU2017370567B2 (en) 2022-03-10
US10802945B2 (en) 2020-10-13
WO2018106589A1 (en) 2018-06-14
EP3552092B1 (de) 2022-08-17
AU2017370567A1 (en) 2019-06-06

Similar Documents

Publication Publication Date Title
DE112017006164T5 (de) Differenzvergleich von ausführbaren Datenflussdiagrammen
DE69808633T2 (de) Ablaufsteuerung für ein softwaresystem
DE112015003406B4 (de) Datenherkunftssummierung
DE69808632T2 (de) Erzeugung von Softwaresystemen
DE102017102651A1 (de) Vorrichtung zum Formulieren von Regeln in einem Prozesssteuerungsnetzwerk
DE112020004623T5 (de) Ml-basierte ereignishandhabung
DE112011105186T5 (de) Graphdatenbanken zum Speichern mehrdimensionaler Modelle von Software-Angeboten
DE112018002920T5 (de) Datenflussgraphenkonfiguration
DE4134419A1 (de) Dynamische entwurfsschnittstelleneinrichtung fuer leistungsfaehigkeit und konfiguration eines computersystems
CN111813661A (zh) 一种全局业务数据驱动自动测试方法、装置、设备和介质
CH703073B1 (de) Vergleich von Modellen eines komplexen Systems.
DE102010007967A1 (de) Verfahren, Computerprogramm-Produkt sowie computerlesbares Speichermedium zur generischen Erstellung eines Strukturbaums zur Beschreibung eines IT-Verfahrens
DE112020004967T5 (de) Änderungsverwaltung und analytik für microservices
CH703081B1 (de) Analyse eines Modells eines komplexen Systems.
DE112017002645T5 (de) Ausführbare Logik zur Verarbeitung verschlüsselter Daten in Netzen
DE10206903A1 (de) Softwareapplikation, Softwarearchitektur und Verfahren zur Erstellung von Softwareapplikationen, insbesondere für MES-Systeme
DE202017106569U1 (de) Analyse grossangelegter Datenverarbeitungsaufträge
CN112559603B (zh) 特征提取方法、装置、设备及计算机可读存储介质
DE102022126089A1 (de) Ein verfahren zum verfolgen und klonen von datenartefakten, die mit verteilten datenverarbeitungspipelines verbunden sind
DE112017002779T5 (de) Formatspezifische Datenverarbeitungsoperationen
DE112020002515T5 (de) Statische und laufzeitanalyse von computerprogrammsystemen
US12093259B2 (en) Ad hoc data exploration tool
EP1490762B1 (de) Verfahren, software-produkt und system zur universellen computergestuetzten informationsverarbeitung
HK40009086B (en) Differencing of executable dataflow graphs
DE112023005670T5 (de) Programmentwicklungsunterstützungseinrichtung, programmentwicklungsunterstützungsverfahren und programmentwicklungsunterstützungsprogramm

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination