-
Gebiet der Erfindung
-
Die vorliegende Anmeldung betrifft allgemein Computer und Computeranwendungen und insbesondere Bearbeitung von Artefakten an einem zeitbezogenen Referenzpunkt.
-
Hintergrund
-
Wissen wird oft übergreifend über eine Gruppe von digitalen Artefakten oder Dateien wie Textdateien, Bildern, Binärdateien, Quellcode, proprietäre Anwendungsdateien und Sonstiges erfasst und fragmentiert. In dem Verlauf eines Erfassens oder Erstellens von derartigem Wissen werden implizite Beziehungen zwischen den Artefakten in der Gruppe erstellt und/oder angenommen. Um den Zustand des Wissens an einem bestimmten Zeitpunkt zu verstehen oder anzuzeigen, müssen oft alle oder viele der Erfassungsartefakte geprüft werden, wie sie an diesem Zeitpunkt vorhanden waren.
-
Die Typen von Wissen und ihre Erfassungsartefakte können sich weit voneinander unterscheiden. Zu Beispielen zählen: für Menschen verständliches Wissen, erfasst in Textverarbeitungsdokumenten, Kalkulationstabellen, Bildern, Diagrammen und Sonstigem; ausführbares „Wissen”, erfasst in Quellcode, Binärdateien, Konfigurationsdateien usw.; verteiltes Transaktionswissen, erfasst in verteilten Transaktionssystemen; Geschäftsprozesswissen, erfasst in den verschiedenen Systemen und Diensten, die zu dem Prozess zusammengesetzt sind; Prozess-/Thread-Wissen, erfasst in den Laufzeiten eines Parallel-/Multithread-Programms.
-
Es gibt Systeme, die verschiedene Typen von Wissen erfassen und zueinander in Beziehung setzen. Zu Beispielen für derartige Systeme zählen Abhängigkeitsmanagement-Systeme, Versionssteuerungssysteme, Content-Management-Systeme. Diese Systeme erfassen einen Artefaktzustand nur an bezeichneten Punkten, zum Beispiel über Versionen, Meilensteine, Festschreibungspunkte; nicht jedoch die Gruppe von Aktionen/Änderungen, die ein Artefakt von einem Zustand N in einen Zustand N + 1 umgewandelt haben. Navigation und Beziehungen zwischen Artefakten sind um ihren Zustand an den bezeichneten Punkten organisiert und auf ihn begrenzt.
-
Ein Anzeigen des Zustands einer Gruppe von zusammengehörigen Artefakten an einem bestimmten Zeitpunkt ist nicht möglich, wenn ein bezeichneter Punkt – z. B. Versionen, Meilensteine, Festschreibungspunkte – für diesen Zeitpunkt nicht vorhanden ist. Beim aktuellen Stand der Technik sind Benutzer nicht fähig, auf den Zustand einer Gruppe von Artefakten zuzugreifen, wie sie zum Zeitpunkt Y vorhanden waren, und/oder einen neuen Zustand der Artefakte beginnend ab ihrem Zustand zum Zeitpunkt Y zu erstellen, wobei Y nicht die Gegenwart ist, und der Zustand zum Zeitpunkt Y nicht explizit durch eine Version, einen Meilenstein, einen Festschreibungspunkt oder an einem anderen derartigen bezeichneten Punkt erfasst wird, der durch bekannte Methodiken erfasst wurde. Ein derartiges Unvermögen stellt einen einschränkenden Faktor beim gemeinsamen Erstellen und Erkennen von Wissen, beim Debugging (Fehlerbehebung) von verteilten und/oder parallelen Systemen, beim Erkennen von forensischem Wissen und Sonstigem dar.
-
Außerdem müssen beim aktuellen Stand der Technik Artefakte unter der Steuerung einer einzelnen Instanz/Installation dieser Systeme stehen, damit sie zueinander in Beziehung gesetzt werden können und somit das erfasste/fragmentierte Wissen neu erstellt werden kann. Beziehungen zwischen Artefakten, von denen eines oder mehrere vollständig außerhalb der Hierarchien der Systeme vorhanden sind, können nicht erfasst oder navigiert werden.
-
Kurzdarstellung
-
Ein System zum Anzeigen und Bearbeiten von Artefakten an einem zeitbezogenen Referenzpunkt kann in einem Aspekt einen oder mehrere Artefaktentwürfe enthalten, die jedem von einer Mehrzahl von Artefakten zugehörig sind. Jeder der Artefaktentwürfe kann einen Zustand des zugehörigen Artefakts an einem Zeitpunkt und einen oder mehrere Befehle in einem Befehlsstapel darstellen, die einen direkten Vorgänger des Artefaktentwurfs in den Artefaktentwurf umgewandelt haben. Ein Mehrzahl von Verfolgbarkeitsverknüpfungen und Verfolgbarkeitseckpunkten können Verbindungen zwischen den Artefaktentwürfen darstellen. Eine Verfolgbarkeitsverknüpfung kann eine Kante zwischen einem Artefaktentwurf eines Artefakts in der Mehrzahl von Artefakten und einem Artefaktentwurf eines weiteren Artefakts in der Mehrzahl von Artefakten enthalten. Der Artefaktentwurf eines Artefakts in der Mehrzahl von Artefakten und der Artefaktentwurf eines weiteren Artefakts in der Mehrzahl von Artefakten können die Verfolgbarkeitseckpunkte bilden. Ein Modul kann betriebsfähig sein, um auf einem Prozessor ausgeführt zu werden und von einem zeitbezogenen Referenzpunkt aus über die Mehrzahl von Verfolgbarkeitsverknüpfungen durch eines oder mehrere Artefakte der Mehrzahl von Artefakten zu navigieren.
-
Ein Verfahren zum Anzeigen und Bearbeiten von Artefakten an einem zeitbezogenen Referenzpunkt kann in einem Aspekt ein Empfangen eines Befehls enthalten, der ein erstes Artefakt bearbeitet. Das Verfahren kann auch ein Hinzufügen eines Zeitstempels zu dem Befehl enthalten. Das Verfahren kann ferner ein Speichern des Befehls in einem Befehlsstapel enthalten. Das Verfahren kann ferner noch ein Speichern eines aktuellen Zustands des ersten Artefakts und des Befehlsstapels als einen Artefaktentwurf enthalten. Ferner kann das Verfahren noch in Reaktion auf ein Erkennen, dass der Befehl eine Aktion ist, die auf ein zweites Artefakt zugreift, ein Erstellen einer Verfolgbarkeitsverknüpfung zwischen dem Artefaktentwurf und einem zweiten Artefaktentwurf enthalten, der dem zweiten Artefakt zugehörig ist.
-
Ein computerlesbares Speichermedium, das ein Programm von Anweisungen speichert, die von einer Maschine ausgeführt werden können, um ein oder mehrere hierin beschriebene Verfahren auszuführen, kann ebenfalls bereitgestellt werden.
-
Weitere Merkmale sowie die Struktur und Funktion von verschiedenen Ausführungsformen werden im Folgenden ausführlich unter Bezugnahme auf die begleitenden Zeichnungen beschrieben. In den Zeichnungen geben gleiche Bezugszeichen identische oder funktional ähnliche Elemente an.
-
Kurzbeschreibung der verschiedenen Ansichten der Zeichnungen
-
Die 1A bis 1B veranschaulichen einen Verwendungsfall des Systems und der Methodik der vorliegenden Offenbarung in einer Ausführungsform.
-
2 ist eine Systemdarstellung, die Komponenten des Systems der vorliegenden Offenbarung in einer Ausführungsform veranschaulicht.
-
3 veranschaulicht ein Beispiel für ein Senden von Befehlen an ein TCS (Temporal Control System, d. h. Zeitbezogenes Steuersystem) in einer Ausführungsform der vorliegenden Offenbarung.
-
4 veranschaulicht ein Beispiel für ein Erstellen eines Artefaktentwurfs in einer Ausführungsform der vorliegenden Offenbarung.
-
5 veranschaulicht einen Beispielfolgeablauf zum Erstellen einer Verfolgbarkeitsverknüpfung in einer Ausführungsform der vorliegenden Offenbarung.
-
6 veranschaulicht einen Beispielfolgeablauf, der ein Szenario veranschaulicht, in dem ein Benutzer die Zustände verschiedener Artefakte in einer Ausführungsform der vorliegenden Offenbarung anzeigen kann.
-
7 veranschaulicht eine schematische Darstellung eines beispielhaften Computer- oder Verarbeitungssystems, welches das zeitbezogene Steuersystem in einer Ausführungsform der vorliegenden Offenbarung umsetzen kann.
-
Ausführliche Beschreibung
-
Die vorliegende Offenbarung stellt in einer Ausführungsform ein System und eine Methodik zum Anzeigen und Bearbeiten von Artefakten in einer Artefaktgesamtheit dar, wie sie an einem vorherigen Zeitpunkt vorhanden war. Zum Beispiel kann ein Benutzer, (wobei ein Benutzer ein Mensch oder ein automatisiertes System ist), der den Zustand von Artefakt x anzeigt, wie er zum Zeitpunkt y war, wählen, weitere Artefakte anzuzeigen, die von einem Benutzer des Systems in ihrem Zuständen angezeigt werden, in denen sie zum Zeitpunkt y waren. Ein Benutzer kann optional eine neue Pfadweiterleitung für ein oder mehrere Artefakte verzweigen, wobei der Anfangszustand einer neuen Verzweigung eines Artefakts der Zustand eines Artefakts zum Zeitpunkt y ist. Ein Benutzer kann Artefaktentwurfsgrafiken durchqueren, wobei Artefaktentwürfe durch Verfolgbarkeitsverknüpfungen verbunden sind, sodass ein Anzeigen des Zustands von Artefakt x einen Benutzer in die Lage versetzt, alle Artefakte anzuzeigen, die mit x in ihren Zuständen verbunden sind, in denen sie an Zeitpunkten waren, an denen jede Verbindung zum Artefakt x erstellt worden ist.
-
Im Allgemeinen beziehen sich Artefakte auf Komponenten oder Elemente, die in Projekten oder Arbeit verwendet oder erstellt werden. Artefakte können digitale Artefakte sein, zum Beispiel Komponenten oder Elemente in Informationstechnologiesystemen, wie beispielsweise Dateien, Bilder, Binärdateien, Quellcode, proprietäre Anwendungsdateien und Sonstiges, die in Arbeitsspeichereinheiten gespeichert werden und über einen Computerprozessor zugänglich sein können. Somit kann eine interessante Artefaktgesamtheit ein Datenverarbeitungssystem sein. Das System und die Methodik der vorliegenden Anmeldung kann auch auf Datenverarbeitungsbeschreibungen eines beliebigen anderen Typs von Systemen angewendet werden, zum Beispiel mechanische oder chemische Systeme, die anhand von Zuständen und Übergängen beschrieben und einem Datenverarbeitungssystem zugeordnet werden können. Die Komponenten in diesen Systemen können als digitale Artefakte beschrieben oder dargestellt werden. Das System und die Methodik der vorliegenden Offenbarung stellt unter anderem einen zeitbezogenen Mechanismus zum Rückgängig machen oder Ausführen für digitale Artefakte bereit.
-
Die 1A bis 1B veranschaulichen einen Verwendungsfall des Systems und der Methodik der vorliegenden Offenbarung in einer Ausführungsform. Bei 102 bearbeitet ein Benutzer ein erstes Artefakt. Bei 104 fügt jede Bearbeitungsaktion einen Befehl mit Zeitstempel zu einem wiederholbaren/zurückführbaren Befehlsstapel eines ersten Artefakts hinzu. Der Befehlsstapel enthält einen oder mehrere Befehle, die das Artefakt geändert haben. Bei 106 kann der Benutzer eine Option erhalten, einen ersten Artefaktzustand als einen Entwurf zuzuweisen, z. B. unter Verwendung von Beschriftungen, Tags oder anderen Elementen. Entwurf bezieht sich auf einen Zustand eines Artefakts an einem Zeitpunkt und als solcher gespeichert, wie durch einen Benutzer angegeben. Zum Beispiel kann ein erster Artefaktentwurf aus einem ersten Artefakt erstellt werden, und eine Gruppe von Befehlen, die das erste Artefakt in den ersten Artefaktentwurf umgewandelt haben, kann in einem Befehlsstapel gespeichert werden. Anschließende Zugriffe auf das erste Artefakt können auf einen oder mehrere der ersten Artefaktentwürfe des ersten Artefaktentwurfs erfolgen.
-
Bei 108 wird das erste Artefakt von einem oder mehreren anderen Artefakten verwendet oder wiederverwendet. Das System der vorliegenden Offenbarung erkennt in einer Ausführungsform eine derartige Verwendung und erstellt in Reaktion darauf eine Verfolgbarkeitsverknüpfung bei 110, zum Beispiel von dem ersten Artefaktentwurf (Quelle) zu einem Entwurf eines weiteren Artefakts (Ziel). In einer Ausführungsform wird die Verfolgbarkeitsverknüpfung zu dem Entwurf erstellt, der angezeigt, verwendet, auf den zugegriffen und/oder Bezug genommen wurde, als die Verknüpfung erstellt wurde. Wenn zum Beispiel die Quellen und das Ziel in Editorprogrammen geöffnet werden und ein Ausschneiden und Einfügen oder eine andere ähnliche Operation ausgeführt wird, ist die offene Version die Quelle; wenn zum Beispiel das erste Artefakt nicht in seiner Gesamtheit in einem Editorprogramm oder einem Viewer (Anzeigeprogramm) angezeigt/verwendet wird, sondern sich stattdessen zum Beispiel auf einer Liste von Artefakten in einer Browser-Anwendung/einem Viewer oder dergleichen befindet, über die bzw. das Benutzer sehen können, welche Artefakte vorhanden sind, wäre die Quelle jeder beliebige in dem Browser ausgewählte Entwurf. Ein derartiger Browser kann explizit eine Liste aller Entwürfe jedes Artefakts zeigen, und der Benutzer kann explizit einen Entwurf wählen, oder der Browser kann eine Liste von Artefakten zeigen und eine Annahme vorgeben, wie beispielsweise „letzter Entwurf”, „zuletzt angezeigter Entwurf” usw. Das System kann auch ohne explizite Aktion an sich seitens des Benutzers die Verwendung eines weiteren Artefakts automatisch erkennen. Wenn ein Benutzer zum Beispiel Text in ein Werkzeug eingibt, das den Benutzer in die Lage versetzt, eine ausführbare Geschäftslogik zu erstellen, und der Benutzer das Wort „Kunde” eingibt, wobei „Kunde” in einer Geschäftsontologie definiert wurde, könnte die Geschäftslogik automatisch als das Ziel und die Eingabe „Kunde” in der Ontologie erkannt werden, oder die Ontologie selbst könnte als die Quelle erkannt werden; in diesem Fall wäre der Entwurf der Ontologie, die aktuell durch das Logikerstellungswerkzeug verwendet wird, der Entwurf, der als die Quelle angegeben wird.
-
Als weiteres Beispiel kann das System der vorliegenden Offenbarung in einer Ausführungsform einen Zugriff oder eine Verwendung des ersten Artefakts von dem einen oder den mehreren Artefakten erkennen. Ein Beispiel kann ein Tabellenkalkulations-Anwendungsprogramm sein, das Daten aus einem elektronischen Dokument einer Textverarbeitungsanwendung in ein elektronisches Kalkulationstabellendokument kopiert. In diesem Beispiel wird eine Verfolgbarkeitsverknüpfung zwischen einem Artefaktentwurf erstellt, der dem Dokument des Tabellenkalkulations-Anwendungsprogramms zugehörig ist, und einem Artefaktentwurf, der dem Dokument der Textverarbeitungsanwendung zugehörig ist. Bei 112 können Verfolgbarkeitsverknüpfungen zwischen dem ersten Artefaktentwurf (Quelle) und dem zweiten Artefaktentwurf (Ziel) auch direkt durch einen Benutzer erstellt werden.
-
Zum Beispiel navigiert ein Benutzer bei 114, nachdem eines oder mehrere der Artefakte zu einem späteren Zeitpunkt als dem Zeitpunkt, an dem die Verfolgbarkeitsverknüpfung erstellt wurde, bearbeitet/geändert worden sind, zu einem Entwurf eines ersten Artefakts unter Verwendung eines Aufforderungscharakters (Affordanz), z. B. Zeitachse, Stapel, Baum usw. Aufforderungscharakter beziehen sich auf Mittel, durch die Benutzer verschiedene Aktionen ausführen können. Zu Aufforderungscharaktern in einer Ausführungsform in der vorliegenden Offenbarung können unter anderem, aber nicht darauf beschränkt, eine Anwendungsprogrammschnittstelle (API) zählen, die ein programmbezogenes Mittel ist, das von interaktiven Werkzeugen sowie von automatisierten Systemen zum Zugreifen auf und/oder Bearbeiten von Artefaktentwürfen verwendet wird; ein Artefakt-Viewer, ein Programm oder Modul zum Anzeigen des Zustands eines Artefaktentwurfs, sodass er von einem Benutzer erkannt werden kann; ein Editorproramm, ein Programm oder Modul, mit dem der Zustand eines Artefakts geändert werden kann und wodurch Befehle und/oder Artefaktentwürfe erstellt werden; ein Navigationswerkzeug, ein Dienstprogramm wie beispielsweise eine Zeitachse, ein Datenbaum und/oder Sonstiges für usw. zum Erreichen und/oder Auswählen eines Artefaktentwurfs oder eines Punkts in einem Befehlsstapel eines Entwurfs zwischen zwei Entwürfen, wodurch er als ein zeitbezogener Referenzpunkt ausgewählt wird, wobei ein Verfolgbarkeitseckpunkt über eine Verfolgbarkeitsverknüpfung erreicht wird. Verfolgbarkeitseckpunkt bezieht sich auf ein Artefakt oder einen Artefaktentwurf, der eine Verfolgbarkeitsverknüpfung aufweist.
-
Bei 116 wählt ein Benutzer zum Beispiel zu einem späteren Zeitpunkt einen Entwurf eines ersten Artefakts oder einen Punkt in dem Befehlsstapel zwischen zwei Entwürfen als einen zeitbezogenen Referenzpunkt für weitere Artefakte. Zeitbezogener Referenzpunkt bezieht sich auf einen Zeitpunkt, der von einem Benutzer ausgewählt wurde, sodass jedes Artefakt, das von dem Benutzer geöffnet, bearbeitet oder auf das von ihm zugegriffen wird, so dargestellt wird, wie es zu diesem Zeitpunkt war. Dieser Zustand wird in einer Ausführungsform der vorliegenden Offenbarung entweder durch einen Artefaktentwurf erfasst, der zu dem Zeitpunkt erstellt wurde, auf den Bezug genommen wird, oder durch Ausführen/Zurückführen eines Befehlsstapels eines Artefakts für einen Entwurf, der zeitlich nahe an dem Zeitpunkt liegt, auf den Bezug genommen wird, um zu dem Zustand des Artefakts zu dem Zeitpunkt zu gelangen, auf den Bezug genommen wird.
-
Bei 118 bestimmt das System der vorliegenden Offenbarung weitere Artefakte, die durch den Benutzer angezeigt werden oder bisher von dem Benutzer angezeigt wurden, um zum Beispiel diese weiteren Artefakte in ihren Zuständen zu zeigen, in denen sie sich am zeitbezogenen Referenzpunkt befunden haben oder als sie nahe an dem zeitbezogenen Referenzpunkt waren.
-
Bei 120 wird bestimmt, ob die Zustände von einem oder mehreren weiteren Artefakten, die aktuell angezeigt werden und/oder anderweitig durch den Benutzer des Systems bearbeitet werden, an dem zeitbezogenen Referenzpunkt durch Entwürfe der weiteren Artefakte (z. B. Entwurf y) dargestellt werden, und falls dies so ist, zeigt das System in einer Ausführungsform der vorliegenden Offenbarung die Entwürfe (y) bei 122. Dies kann durch Durchqueren der Verfolgbarkeitsverknüpfung erfolgen, die dem ausgewählten Entwurf zugehörig ist, indem der zeitbezogene Referenzpunkt angegeben und ein Zieleckpunkt der Verfolgbarkeitsverknüpfung gefunden wird. Der Zieleckpunkt wäre das eine oder die mehreren weiteren Artefakte.
-
Bei 124 wird bestimmt, ob der zeitbezogene Referenzpunkt zwischen zwei Entwürfen von einem oder mehreren weiteren Artefakten liegt, und falls dies so ist, wählt das System der vorliegenden Offenbarung in einer Ausführungsform Entwürfe der weiteren Artefakte, die dem zeitbezogenen Referenzpunkt zeitlich am nächsten sind, und rollt die Zustände der weiteren Artefakte zu dem zeitbezogenen Referenzpunkt, z. B. durch Wiederholen/Zurückführen der Befehlsstapel der weiteren Artefakte bei 126. Der zeitbezogene Referenzpunkt würde zwischen zwei Entwürfen liegen, wenn der als Referenzpunkt ausgewählte Zeitpunkt sich nach dem Zeitstempel eines Entwurfs des weiteren Artefakts, aber vor dem Zeitstempel des nachfolgenden Entwurfs des weiteren Artefakts befindet und Befehle in dem Befehlsstapel zwischen den beiden Entwürfen vorhanden sind. In einer Ausführungsform der vorliegenden Offenbarung werden die Schritte 124 und 126 ausgeführt, wenn sich am Referenzpunkt kein Entwurf eines weiteren Artefakts befindet. In dem Fall, in dem sich kein Entwurf eines weiteren Artefakts an dem zeitbezogenen Referenzpunkt befindet, können mehrere verschiedene Schritte ausgeführt werden, wie im Folgenden beschrieben.
-
Wenn der zeitbezogene Referenzpunkt vor dem allerersten Entwurf des weiteren Artefakts liegt, können einer oder mehrere der folgenden Schritte ausgeführt werden: nichts für das weitere Artefakt anzeigen und den Benutzer informieren, dass das weitere Artefakt zu diesem Zeitpunkt nicht vorhanden war; den frühesten Entwurf des weiteren Artefakts anzeigen, den Benutzer aber warnen, dass er nicht von demselben Zeitpunkt stammt wie der Referenzpunkt und hervorstechend den Zeitpunkt anzeigen, von dem sein Entwurf stammt; den Entwurf des weiteren Artefakts, das vorher gezeigt wurde, weiterhin anzeigen und den Benutzer informieren, dass das Artefakt zum zeitbezogenen Referenzzeitpunkt noch nicht vorhanden war.
-
Wenn der zeitbezogene Referenzpunkt nach dem Zeitstempel des letzten Entwurfs eines weiteren Artefakts liegt, kann das Verfahren der vorliegenden Offenbarung in einer Ausführungsform den letzten Entwurf des weiteren Artefakts anzeigen, da es der aktuelle Entwurf für diesen Zeitpunkt ist.
-
Für den Fall, in dem sich der Referenzpunkt zwischen zwei Entwürfen des weiteren Artefakts befindet, ist die folgende Aufeinanderfolge von Befehlen und Entwürfen eines Artefakts zu berücksichtigen, wobei alle einen Zeitstempel haben: ENTWURF 1, c1, c2, c2, c4, ENTWURF 2, c5, c6, c7, c8, c9, c10, c11, c12, c13, ENTWURF 3. Während sich die exakte Definition von „am nächsten” abhängig von der Natur der Befehle ändert, da vorstellbar ist, dass einige Befehle zeitaufwendiger und/oder anspruchsvoller als andere in einigen anderen Dimensionen als Zeit (Umsetzungskosten, Komplexität usw.) sind, wird für die Zwecke dieses Beispiels eine grob vereinfachende Welt angenommen, in der die Zeit und die Kosten aller Befehle identisch sind (in einer realen Umsetzung sind nicht alle Befehle gleich, und die Definition von „nahe” kann anwendungsspezifisch sein). Angenommen, der Referenzpunkt liegt zwischen c7 und c8. Da c7 3 Befehle von ENTWURF 2 entfernt ist, und c8 6 Befehle von ENTWURF 3 entfernt ist, könnte man mit ENTWURF 2 beginnen und anschließend die Befehle c5, c6 und c7 ausführen, um zu einem Zustand zu gelangen, der als dem Referenzpunkt „am nächsten” betrachtet wird, und diesen Zustand anzeigen.
-
Das System der vorliegenden Offenbarung enthält in einer Ausführungsform einen Aufforderungscharakter, der einen Benutzer in die Lage versetzt, bei 128 zum Beispiel einen anderen Entwurf eines Artefakts auszuwählen und/oder anzuzeigen als einen Entwurf, der vom System gewählt wurde. Die Methodiken in einer Ausführungsform der vorliegenden Offenbarung ermöglichen Benutzern zu verstehen und zu steuern, wie sich Artefakte im Lauf der Zeit unabhängig voneinander und in Beziehung zueinander entwickeln. Betrachtet wird ein Beispiel, in dem der Benutzer den Entwurf X von Artefakt 1 als den zeitbezogenen Referenzpunkt auswählt und der eine Verknüpfung zum Entwurf Y von Artefakt 2 hat, sodass das System den Entwurf Y anzeigt. An diesem Punkt möchte sich der Benutzer zum Beispiel eventuell Entwurf Y – 1 und/oder Y + 1 von Artefakt 2 ansehen, um dessen Entwicklung vor und nach der Erstellung der Verfolgbarkeitsverknüpfung besser zu verstehen. Der Benutzer kann dies zum Beispiel unter Verwendung eines Zeitachsen-Widgets tun, das eine Navigation zwischen den verschiedenen Entwürfen von Artefakt 2 gestattet.
-
Bei 130 wird für den Benutzer eine Option bereitgestellt, einen Entwurf zu bearbeiten, der kein neuester Entwurf in einem Entwurfbaum eines Artefakts ist, um eine neue Verzweigung in einem Entwurfbaum eines Artefakts zu erstellen, wobei das Startdatum einer neuen Verzweigung eines Artefakts ein Zustand eines Artefakts in dem Entwurf ist, von dem aus die neue Verzweigung erstellt wird.
-
Bei 132 kann der Benutzer in die Lage versetzt werden, unter Verwendung eines Aufforderungscharakters, der ein Durchqueren einer Artefaktentwurfsgrafik ermöglicht, zu einem (Ziel-)Artefakt zu navigieren, das sich in einer Verfolgbarkeitsgrafik eines ersten Artefaktentwurfs (Quelle) befindet, wobei die Kanten in einer Artefaktentwurfsgrafik Verfolgbarkeitsverknüpfungen sind.
-
Bei 134 kann der Benutzer den Entwurf des (Ziel-)Artefakts anzeigen, zu dem die Verfolgbarkeitsverknüpfung erstellt wurde und/oder den Entwurf des (Ziel-)Artefakts, der seinen Zustand an dem aktuellen zeitbezogenen Referenzpunkt darstellt.
-
In den 1A bis 1B zeigen die Schritte 102, 104 und 106 ein Beispiel dafür, wie ein Artefaktentwurf und ein Befehlsstapel erstellt werden können. Die Schritte 108, 110 und 112 zeigen ein Beispiel dafür, wie eine Verfolgbarkeitsverknüpfung zwischen verschiedenen Artefakten oder Artefaktentwürfen erstellt werden kann. Schritt 114 zeigt, wie ein Benutzer einen Entwurf und einen zugehörigen Befehlsstapel anzeigen kann. Die Schritte 116, 118, 120, 122, 124, 126 und 128 zeigen Beispiele dafür, wie weitere Entwürfe, die mit einem ausgewählten Entwurf verknüpft sind, an einem von einem Benutzer wählbaren zeitbezogenen Referenzpunkt oder nahe an diesem zeitbezogenen Referenzpunkt angezeigt werden können. Schritt 130 zeigt ein Beispiel dafür, wie ein Benutzer einen Entwurf anzeigen und bearbeiten und eine neue Verzweigung in einem Entwurfbaum erstellen kann. Die Schritte 132 und 134 zeigen, wie ein Benutzer auf der Grundlage von Verfolgbarkeitsverknüpfungen durch verschiedene Entwürfe navigieren kann. Es sollte klar sein, dass diese Schritte nicht alle sofort zusammen oder in der gezeigten Reihenfolge ausgeführt werden müssen.
-
Das System der vorliegenden Offenbarung kann auch als „Zeitbezogenes Steuersystem” oder TCS (Temporal Control System) bezeichnet werden. 2 ist eine Systemdarstellung, die Komponenten des Systems der vorliegenden Offenbarung in einer Ausführungsform veranschaulicht. Ein TCS-Server 202 kann einen persistenten Speicher (Speichereinheit) für digitale Artefaktentwürfe 204 und Verfolgbarkeitsverknüpfungen und -eckpunkte 206 enthalten und stellt einen TCS-Service 208 zum Erstellen, Zugreifen auf und Verwalten von digitalen Artefaktentwürfen (einschließlich Befehlen) 204 und Verfolgbarkeitsverknüpfungen 206 bereit.
-
Ein Artefaktentwurf bezieht sich auf den Zustand eines Artefakts an einem Zeitpunkt. Ein Befehlsstapel enthält einen oder mehrere Befehle, die seit der ersten Erstellung dieses Entwurfs ausgegeben wurden, um seinen anfänglichen Inhalt/Zustand in seinen aktuellen Inhalt/Zustand umzuwandeln. Entwürfe können als „abgeschlossen” oder „bearbeitbar” bezeichnet werden. Zum Beispiel können Entwürfe bearbeitbar sein bis entweder der Benutzer sie explizit sperrt oder das System sie sperrt, um die logische Integrität der Artefaktgesamtheit zu bewahren. Wenn zum Beispiel mehr als ein untergeordneter Entwurf aus diesem Entwurf erstellt worden ist, sollte das System besser den Entwurf sperren statt dessen weitere Bearbeitung zuzulassen, die im Entwurfbaum des Artefakts einen komplizierten Ripple-Effekt (automatischen Berechnungseffekt) auslöst, der einen inkonsistenten Zustand des Baums verursachen kann. Ein abgeschlossener Entwurf ist einer, der nicht mehr bearbeitet werden kann. Allerdings kann auf seiner Grundlage ein neuer untergeordneter Entwurf erstellt werden. Eine bearbeitbare Version eines Entwurfs umfasst einen gegenwärtigen Zustand eines Artefakts sowie den Befehlsstapel, der den Zustand des übergeordneten Werts des Entwurfs in den Zustand umgewandelt hat, der durch den bearbeitbaren Entwurf erfasst wird. Wenn ein Entwurf „gesperrt” wird, wird er von „bearbeitbar” in „abgeschlossen” geändert. Sobald ein untergeordneter Entwurf aus einem abgeschlossen Entwurf erstellt wird, kann der abgeschlossene Entwurf in einer Ausführungsform der vorliegenden Offenbarung ohne das Löschen oder Aufheben der Verbindung der untergeordneten Entwürfe nicht mehr zurückgesetzt werden, um bearbeitbar zu sein.
-
Es kann mehr als ein Artefaktentwurf erstellt und verwaltet werden, der einem Artefakt zugehörig ist. Diese mehreren Entwürfe können von der Konzeption her einem Code mit mehreren Verzweigungen in einem Versionssteuerungssystem ähnlich sein. Ein bestimmter Entwurf in der Datenbank/dem persistenten Speicher wird eindeutig über seine Entwurfskennung (ID) identifiziert, die einmalig ist. Das Artefakt, von dem es ein Entwurf ist, hat ebenfalls eine eindeutige ID, und diese eindeutige Artefakt-ID wird zusammen mit dem Entwurf gespeichert. Somit können in einer Ausführungsform der vorliegenden Offenbarung ein Artefakt und zugehörige Entwürfe zum Beispiel entsprechend ihren eindeutigen IDs aufgezeichnet werden, über die alle zugehörigen Abfragen ausgeführt werden können.
-
Die Verfolgbarkeitsverknüpfung 206 stellt eine Inhaltserzeuger-Nutzer-Beziehung zwischen zwei Artefakten dar. Diese Beziehung kann durch eine einmalige Aktion vergegenständlicht werden, wie beispielsweise ein Ausschneiden und Einfügen, eine periodische Aktion wie beispielsweise das Auslösen/Abwickeln von Ereignissen, oder eine kontinuierliche Aktion wie die Bereitstellung/Inanspruchnahme von Energie. Eine Verfolgbarkeitsverknüpfung stellt eine definitive Verknüpfung zwischen zwei Artefakten dar. Die Quellen und Ziele dieser Verfolgbarkeitsverknüpfungen können spezielle Entwürfe (an einem speziellen zeitbezogenen Punkt) von speziellen Artefakten sein. Der Verfolgbarkeitseckpunkt 206 ist ein Erzeuger oder Nutzer am Ende einer Verfolgbarkeitsverknüpfung. Ein Eckpunkt identifiziert einen Artefaktentwurf und kann auch eine Verschiebung in den Befehlsstapel des identifizierten Artefakts identifizieren.
-
In der vorliegenden Offenbarung können Benutzer eine oder mehrere Personen oder automatisierte Systeme sein, die Artefakte anzeigen und/oder auf sie zugreifen und/oder sie bearbeiten. Der TCS-Service 208 kann ein oder mehrere Anwendungsprogramme und Schnittstellen enthalten, die es einem Benutzer 212 oder einem automatisierten System 214 wie einem weiteren Computerprogramm oder System gestatten, die Artefaktentwürfe 204 und die Verfolgbarkeitsverknüpfungen 206 zu erstellen, auf sie zuzugreifen und sie zu verwalten.
-
Aufforderungscharakter beziehen sich auf Module oder Programme oder dergleichen, mit denen Benutzer verschiedene Aktionen ausführen. Zu Aufforderungscharaktern gehören unter anderem, aber ohne darauf eingeschränkt zu sein:
- – TCS-API: ein programmbezogenes Mittel, das von interaktiven Werkzeugen sowie von automatisierten Systemen zum Zugreifen auf und/oder Bearbeiten von Artefaktentwürfen verwendet wird.
- – Artefakt-Viewer: ein Mittel zum Anzeigen des Zustands eines Artefaktentwurfs, sodass er von einem Menschen erkannt werden kann. Der von einem Viewer angezeigte Artefaktentwurf kann durch die in einem weiteren Aufforderungscharakter vorgenommene Auswahl bestimmt werden, wobei der weitere Aufforderungscharakter den zeitbezogenen Referenzpunkt bestimmt.
- – Editorprogramm: ein Mittel, mit dem ein Benutzer den Zustand eines Artefakts ändert und dadurch Befehle und/oder Artefaktentwürfe erstellt.
- – Navigation: ein Mittel, wie beispielsweise eine Zeitachse, ein Baum usw. zum:
- – Erreichen und/oder Auswählen eines Artefaktentwurfs oder eines Punkts in einem Befehlsstapel eines Entwurfs zwischen zwei Entwürfen.
- – Auswählen eines zeitbezogenen Referenzpunkts.
- – Erreichen eines Verfolgbarkeitseckpunkts über eine Verfolgbarkeitsverknüpfung.
-
TCS-Werkzeuge und/oder TCS-aktivierte Werkzeuge können mehrere Aufforderungscharakter enthalten, die in einer einzelnen Benutzeroberfläche gruppiert sind, z. B. ein Werkzeug, das von Benutzern für die Interaktion mit dem TCS-Server 202 und/oder dem TCS-Service verwendet wird. TCS-aktivierte Werkzeuge 210 können zum Beispiel Texteditorprogramme, Grafikeditorprogramme, weitere Programme mit TCS-Funktionalität sein, z. B. als Plug-In, die eine Schnittstellenbildung mit dem TCS-Service 208 und/oder dem TCS-Server 202 gestatten. Zum Beispiel können ein TCS-aktiviertes Texteditorprogramm oder eine Textverarbeitungsanwendung automatisch bestimmen, dass ein TCS-Artefakt bearbeitet wird, und einen oder mehrere Befehle für einen Befehlsstapel erstellen, der dem Artefakt zugehörig ist, und eine Option zum Zuweisen des Artefakts als einen Artefaktentwurf anbieten.
-
3 veranschaulicht ein Beispiel für ein Senden von Befehlen an ein TCS in einer Ausführungsform der vorliegenden Offenbarung. Ein automatisiertes System 314 kann Befehle an einen TCS-Service 308 senden, der ein Artefakt modifiziert oder ändert. Desgleichen kann ein Benutzer z. B. unter Verwendung von Aufforderungscharaktern manuell befehlserzeugende Aktionen auf TCS-aktivierten Werkzeugen 310 ausführen, um Änderungen an einem Artefakt vorzunehmen. TCS-aktivierte Werkzeuge können die befehlserzeugenden Aktionen in Befehle umwandeln, die an den TCS-Service 308 gesendet werden, um die Änderungen an dem Artefakt vorzunehmen. Das geänderte Artefakt kann als ein Artefaktentwurf 304 gesichert oder gespeichert werden und die Befehle (z. B. c1, c2, c3, c4, c5, ...) enthalten, die angewendet wurden, um den anfänglichen Zustand des Entwurfs in seinen aktuellen Zustand umzuwandeln.
-
4 veranschaulicht ein Beispiel für ein Erstellen eines Artefaktentwurfs in einer Ausführungsform der vorliegenden Offenbarung. Ein automatisiertes System 414 kann einen Aufruf zum Erstellen eines Entwurfs von einem Artefakt an einen TCS-Service 408 senden. Desgleichen kann ein Benutzer z. B. unter Verwendung von Aufforderungscharaktern manuell anfordern, einen Entwurf auf TCS-aktivierten Werkzeugen 410 zu erstellen. Die TCS-aktivierten Werkzeuge 410 senden einen Aufruf zum Erstellen eines Entwurfs an den TCS-Service 408. Der TCS-Service 408 und der TCS-Server 402 erstellen einen Artefaktentwurf auf der Grundlage des Aufrufs. Der Aufruf kann Eingaben wie eine Artefaktkennung und eine Entwurfskennung enthalten. Das erstellte Artefakt kann in einer Ausführungsform der vorliegenden Offenbarung in dem TCS-Server 402 gespeichert werden.
-
Verschiedene Artefaktentwürfe 404, 406 können erstellt werden, die verschiedene Gruppen von Befehlen enthalten, die auf den vorherigen Artefaktzustand angewendet wurden. Auf diese Weise können Verzweigungen von Artefaktentwürfen erstellt werden. Als Beispiel wird eine Firma mit Niederlassungen im ganzen Land angenommen, die eine zweistufige Jahresurlaubsstrategie fährt: jeder Mitarbeiter erhält insgesamt 15 bezahlte Urlaubstage plus 5 zusätzliche Urlaubstage jede 5 Jahre, die er in der Firma gearbeitet hat. Von diesen 15 bezahlten Urlaubstagen sind 7 für das gesamte Land angesetzt, und die restlichen 8 Tage unterliegen der Kontrolle jedes regionalen Managers, der entweder feste Tage zuweist, an denen alle Mitarbeiter frei haben, oder den Mitarbeitern freistellt, diese 8 Tage nach ihrem Gutdünken zu verwenden. Das landesweite Urlaubsstrategiedokument kann das anfängliche Artefakt sein, das die oben beschriebene Strategie umreißt. Für jede Region des Landes erstellt der regionale Manager einen regionalen untergeordneten Entwurf, der weitere Informationen hinzufügt und angibt, wie die 8 Tage unter regionaler Kontrolle zugeordnet werden. Diese regionale Strategie kann sich von Jahr zu Jahr ändern, und somit können sich die untergeordneten Entwürfe im Lauf der Zeit ändern.
-
5 veranschaulicht einen Beispielfolgeablauf zum Erstellen einer Verfolgbarkeitsverknüpfung, wie zum Beispiel am Element 108 in 1 angegeben. Ein Benutzer 502 kann unter Verwendung eines TCS-aktivierten Werkzeugs 506 Inhalt vom Entwurf x von Artefakt 1 (A1.Dx) zum Entwurf y Artefakt 2 (A2.Dy) 504 kopieren. Das TCS-aktivierte Werkzeug 506 kann einen TCS-Service 510 über das Hinzufügen der Verfolgbarkeitsverknüpfung (TL1) von A2.Dy (Ziel) zu A1.Dx (Quelle) in Schritt 508 benachrichtigen. Der TCS-Service 510 fügt die Verfolgbarkeitsverknüpfung z. B. in eine Datenbank 514 ein, auf die in 5 als TCS-DB verwiesen wird. Die Verfolgbarkeitsverknüpfung kann Werte für SourceArtifactID, TargetArtifactID, SourceDraftID, TargetDraftID enthalten, z. B. A1.ID,A2.ID,A1.Dx.ID,A2.Dy.ID wie gezeigt. Die Datenbank (z. B. TCS-DB) kann als der persistente Speicher für den TCS-Server dienen und stellt Abfragefunktionalitäten für alle darin gespeicherten Daten bereit.
-
6 veranschaulicht einen Beispielfolgeablauf, der ein Szenario veranschaulicht, in dem ein Benutzer die Zustände verschiedener Artefakte anzeigen kann. Der Folgeablauf zeigt ein Öffnen von zwei Artefakten, die zwischen sich eine Verfolgbarkeitsverknüpfung aufweisen, ein Auswählen eines früheren Entwurfs von einem als den zeitbezogenen Referenzpunkt und ein Öffnen des entsprechenden Entwurfs des weiteren Artefakts. Der Benutzer kann den letzten Entwurf von Artefakt 1 bei 602 über ein TCS-aktiviertes Werkzeug öffnen, der das TCS-aktivierte Werkzeug bei 604 auslöst, um einen Inhalt A1.latest von einem TCS-Service abzurufen. Der TCS-Service ruft in Reaktion darauf den Inhalt A1.latest bei 606 zum Beispiel durch Abfrage von einer Datenbank ab, z. B. TCS-DB (z. B. SELECT ARTIFACT_CONTENT FROM ArtifactDrafts WHERE ARTIFACT_ID=AI.ID AND DRAFT_ID=A1.latest.ID). Die TCS-DB gibt den abgefragten Inhalt bei 608 an den TCS-Service zurück. Der TCS-Service gibt den Inhalt bei 610 an das TCS-aktivierte Werkzeug zurück. Desgleichen löst der Benutzer, der den letzten Entwurf von Artefakt 2 bei 612 öffnet, das TCS-aktivierte Werkzeug aus, um bei 614 den letzten Entwurf von Artefakt 2 (A2.latest) vom TCS-Service abzurufen, der wiederum den Inhalt bei 616 zum Beispiel durch eine Abfrage aus der Datenbank abruft (z. B. SELECT ARTIFACT_CONTENT FROM ArtifactDrafts WHERE ARTIFACT_ID=A2.ID AND DRAFT_ID=latest.ID). Die TCS-DB gibt A2.latest.content bei 618 an den TCS-Service zurück, der den Inhalt bei 620 an das TCS-aktivierte Werkzeug zurückgibt.
-
Ein Benutzer kann einen Aufforderungscharakter verwenden (z. B. eine für den Benutzer grafisch dargestellte Zeitachse), um zu einem früheren Entwurf von Artefakt 1 (A1) zu gelangen, der zum Beispiel bei 622 ein Öffnen dieses früheren Entwurfs, A1.latest-n (Entwurf letztes n von Artefakt 1) auslöst. Das TCS-aktivierte Werkzeug ruft bei 624 vom TCS-Service den Inhalt dieses Entwurfs ab, Inhalt A1.latest-n. Bei 626 ruft der TCS-Service den Inhalt von einer Datenbank, z. B. TCS-DB, beispielsweise durch eine Abfrage ab (z. B. SELECT ARTIFACT_CONTENT FROM ArtifactDrafts WHERE ARTIFACT_ID=A1.ID AND DRAFT_ID=latest-n.ID). Bei 628 gibt die TCS-DB A1.latest-n.content an den TCS-Service zurück. Bei 630 gibt der TCS-Service A1.latest-n.content an das TCS-aktivierte Werkzeug zurück.
-
Ein Benutzer kann A1.latest-n als zeitbezogenen Referenzpunkt einstellen. Bei 632 setzt ein Benutzer den zeitbezogenen Referenzpunkt auf A1.latest-n.CreationTime. Bei 634 kann das TCS-aktivierte Werkzeug über den TCS-Service auf Verfolgbarkeitsverknüpfungen zwischen A1.latest-n und A2 prüfen. Der TCS-Service fragt bei 636 die TCS-DB ab, um Entwürfe von weiteren Artefakten abzurufen, die an diesem zeitbezogenen Referenzpunkt verknüpft sind. Eine Beispielabfrage kann sein „SELECT * FROM TraceabilityLinks WHERE (SourceArtifactID=A1.ID and TargetArtifactID=A2 and SourceDraftID=latest-n.ID) or (SourceArtifactID=A12.ID and TargetArtifactID=A1 and TargetDraftID=latest-n.ID).” Als Ergebnis dessen werden weitere Entwürfe, die mit dem vom Benutzer gewählten zeitbezogenen Referenzpunkt verknüpft sind, bei 638 an den TCS-Service und danach bei 640 an das TCS-aktivierte Werkzeug zurückgegeben. Der Benutzer, der das Werkzeug verwendet, kann dann auf weitere Entwürfe, die mit dem vom Benutzer gewählten zeitbezogenen Referenzpunkt verknüpft sind, zugreifen und/oder diese anzeigen.
-
Bei 640 hat das Werkzeug eine Liste mit Verfolgbarkeitsverknüpfungen zwischen A1 und A2 empfangen. Die Darstellung zeigt ein Auswahlfeld („alt”, d. h. Alternativen). Die erste Auswahl – „keine Verfolgbarkeitsverknüpfung vorhanden” – bedeutet, dass es keine Verknüpfung zwischen A1 und A2 gibt. In diesem Fall kann der Benutzer benachrichtigt werden, dass es keine entsprechenden Entwürfe gibt, und die Folge endet. Die zweite Auswahl – „es gibt mindestens eine Verfolgbarkeitsverknüpfung” – bedeutet, dass eine Verknüpfung zwischen A1 und A2 vorhanden ist, sodass das Werkzeug die Schritte 642 bis 652 durchläuft, um den Entwurf von A2 (A2.latest-k) anzuzeigen, der dem zeitbezogenen Referenzpunkt entspricht (d. h. A1.latest-n.CreationTime), der vom Benutzer ausgewählt wurde. Zu beachten ist, dass die Werte von „k” in A2.latest-k und „n” in A1.latest-n nicht identisch sein müssen; zum Beispiel kann A2 7 Entwürfe (k = 7) seit dem zeitbezogenen Referenzpunkt gehabt haben, während A1 15 Entwürfe gehabt hat (n = 15).
-
Durch Auswählen eines zeitbezogenen Referenzpunkts aus der Perspektive eines Artefakts kann ein Benutzer den Zustand eines weiteren Artefakts zu demselben oder im Wesentlichen selben Zeitpunkt anzeigen. Wie oben erörtert, kann die Methodik der vorliegenden Offenbarung den Zustand des weiteren Artefakts auf der Grundlage von beispielsweise verschiedenen Kombinationen von Szenarien identifizieren. Zum Beispiel angenommen, dass die beiden Artefakte A und B sind, und dass eine Verfolgbarkeitsverknüpfung mit B als Quelle und A als Ziel vorhanden ist. Die folgenden verschiedenen Algorithmen können auf der Grundlage des Szenarios beim Auffinden der Eckpunkte für die Verknüpfung verwendet werden:
- – Ein Benutzer wählt einen Entwurf von A als den Referenzpunkt, und dieser entspricht einem Entwurf von B. In diesem Szenario wird kein Ausführen/Zurückführen des Befehlsstapels für B benötigt.
- – Ein Benutzer wählt einen Entwurf von A als den Referenzpunkt, und dieser entspricht nicht einem Entwurf von B. In diesem Szenario wird ein Ausführen/Zurückführen des Befehlsstapels für B möglicherweise benötigt.
- – Ein Benutzer wählt einen Punkt zwischen zwei Entwürfen von A, irgendwo in einem Befehlsstapel zwischen zwei Entwürfen in der Historie von A, und dieser entspricht einem Entwurf von B. In diesem Szenario wird kein Ausführen/Zurückführen des Befehlsstapels für B benötigt.
- – Ein Benutzer wählt einen Punkt zwischen zwei Entwürfen von A, irgendwo in einem Befehlsstapel zwischen zwei Entwürfen in der Historie von A, und dieser entspricht nicht einem Entwurf von B. In diesem Szenario wird ein Ausführen/Zurückführen des Befehlsstapels für B möglicherweise benötigt.
-
Als ein Beispiel-Verwendungsszenario für das System und/oder die Methodik der vorliegenden Offenbarung wird ein Beispielunternehmen (Unternehmen A) angenommen. Das Unternehmen A ist ein großes multinationales Unternehmen mit Tochtergesellschaften in allen Bereichen digitaler Medien – ein Musik-Label, CD-Produktion und -Vertrieb, Musik-Onlineverkäufe, mobile Nachrichten-Apps, Elektronik, Home-Entertainment-Systeme usw. Das Unternehmen A hat ein Data Warehouse, das Daten über ihre Kunden von allen Tochtergesellschaften zusammenträgt. Das Unternehmen A verwendet diese Daten produktübergreifend für Vertrieb und Marketing ihrer verschiedenen Produktlinien. Als Teil seiner eCommerce-Infrastruktur verfügt das Unternehmen A über einen Absatzchancen-Identifizierungsdienst (OIS – Opportunity Identifier Service), der eine Kombination aus Geschäftsregeln und vorhersagender Analyse verwendet, um die Informationen im Data Warehouse des Unternehmens A so aufzubereiten, dass Absatzchancen für den Verkauf höherwertiger Waren/zusätzlicher Waren identifiziert werden, wenn ein Kunde die Website besucht.
-
Der Entwicklungsprozess von betrieblichen Entscheidungen des Unternehmens A, wie z. B. diejenigen, die im OIS erfasst werden, funktioniert wie folgt:
- – der Geschäftseigentümer legt Anforderungen in freiem Text fest;
- – ein Wirtschaftsanalyst arbeitet mit dem Geschäftseigentümer zusammen, um ein Entscheidungsmodell zu erstellen, das die Geschäftslogik einschließlich Geschäftsvokabular, Regeln, erforderlichen Daten und Analyseverwendungen erfasst;
- – die IT verbindet Umsetzungsartefakte mit jedem Aspekt des Entscheidungsmodells (ausführbare Regeln, Analysemodelle, betriebliche Daten usw.);
- – die Entscheidung wird angewendet.
-
Zum Beispiel angenommen, dass ein OIS-Teamleiter (Person A), der mit Person B arbeitet, die zum Vertriebsteam des Unternehmens A gehört, ein Rootkit zu jeder CD und jeder mobilen Anwendung hinzufügt, die das Unternehmen A verkauft. Das Rootkit wird verwendet, um mehr Informationen darüber zu sammeln, welche Websites Kunden besuchen, um die Qualität der Identifizierung von Absatzchancen des OIS auf der Website des Unternehmens A zu verbessern. Ein Dokument wird geschrieben, das freien Text auf Geschäftsebene zum Beschreiben, welche neuen Informationen in der OIS-Datenbank aus den Daten erfasst werden, die durch das Rootkit gesammelt werden, und eine Beschreibung enthält, wie die Daten verwendet werden sollten, um Absatzchancen zu identifizieren.
-
In dem System der vorliegenden Offenbarung ist das Dokument ein neues Artefakt, das in einem TCS-aktivierten Texteditorprogramm erstellt/bearbeitet wird. Jedes Mal, wenn ein Benutzer ein Wort hinzufügt, löscht oder bearbeitet, wird dieser Vorgang durch das Editorprogramm an das TCS als ein Befehl gesendet, der zu dem Befehlsstapel des aktuellen Entwurfs dieses Dokuments im TCS hinzugefügt werden soll. In einer Ausführungsform der vorliegenden Offenbarung erstellt ein Einfügen in ein Dokument, das in dem TCS-aktivierten Texteditorprogramm bearbeitet wird, eine Verfolgbarkeitsverknüpfung mit dem Dokument als dem Verbraucher und der Verknüpfung, die in dem Text, in dem die Einfügung auftrat, auf die Verschiebung + Länge zeigt. Ein Kopieren aus dem Dokument erstellt eine Verfolgbarkeitsverknüpfung mit dem Dokument als dem Erzeuger und der Verknüpfung, die auf die Verschiebung + Länge zeigt, die kopiert wurde. TCS-aktivierte Editorprogramme tauschen Daten mit dem TCS aus, um in einer Ausführungsform der vorliegenden Offenbarung zusammen die Verfolgbarkeitsverknüpfung zu erstellen. Jeder verschiedene Typ von TCS-aktiviertem Client, ob ein Editorprogramm, ein Buildsystem oder Sonstiges kann selbstständig bestimmen, was einen Befehl darstellt und was einen neuen Entwurf darstellt.
-
Als Nächstes wird das OIS-Entscheidungsmodell bearbeitet, um verschiedene Elemente zu dem Modell hinzuzufügen. Die Bearbeitung des Modells löst in dem System der vorliegenden Offenbarung ein Hinzufügen von Befehlen zu dem Befehlsstapel des aktuellen Entwurfs des Entscheidungsmodells im TCS aus. Zum Beispiel können Definitionen zu dem Vokabular hinzugefügt werden, das dem Modell zugehörig ist. Jede Bearbeitung des Vokabulars wird als ein Befehl in dem Befehlsstapel des aktuellen Entwurfs des Vokabulars an das TCS gesendet. Sobald die neuen Vokabularbegriffe hinzugefügt sind, kann der Benutzer dies als einen neuen Entwurf des Vokabulars bezeichnen. Das OIS-Entscheidungsmodell kann auch bearbeitet werden, um neue untergeordnete Entscheidungen hinzuzufügen, die Geschäftsregeln enthalten, die diese Begriffe beim Verweisen auf Rootkit-Daten verwenden. Jedes Mal, wenn eine untergeordnete Entscheidung oder Regel hinzugefügt oder bearbeitet wird, sendet das Entscheidungsmodell-Editorprogramm einen neuen hinzuzufügenden Befehl an den Befehlsstapel des aktuellen Entwurfs des Entscheidungsmodells im TCS. Das OIS-Entscheidungsmodell kann ferner so bearbeitet werden, dass Aufrufe an Analysemodelle hinzugefügt werden, um die Wahrscheinlichkeit eines erfolgreichen Verkaufs höherwertiger Waren oder zusätzlicher Waren zu bestimmen. Diese Wahrscheinlichkeiten werden in den Geschäftsregeln verwendet. Wenn in einer Ausführungsform der vorliegenden Offenbarung spezifische Modelle entdeckt werden/auf diese verwiesen wird, kann an diesem Punkt eine Verfolgbarkeitsverknüpfung mit dem Entscheidungsmodell als dem Verbraucher und dem Analysemodell als dem Erzeuger erstellt werden. Wenn in einer Ausführungsform der vorliegenden Offenbarung nur eine Beschreibung vorhanden ist, welche Wahrscheinlichkeit auf der Grundlage welcher Gruppe von Variablen bestimmt werden muss, wird noch keine Verknüpfung erstellt.
-
Die IT-Gruppe des Unternehmens A kann dann das OIS-Datenbank-(DB)Schema aktualisieren, um die im freien Text beschriebenen Spalten aufzunehmen. Das Schema-Editorprogramm ist in einer Ausführungsform der vorliegenden Offenbarung TCS-aktiviert, und daher sendet jede Bearbeitung an das TCS einen Befehl, der zu dem Befehlsstapel des aktuellen Entwurfs hinzugefügt werden soll. Nachdem die Bearbeitung abgeschlossen ist, kann der Benutzer sie als einen neuen Entwurf bezeichnen.
-
Die IT-Gruppe des Unternehmens A kann zum Beispiel auch eine OIS-Analysebibliothek mit neuen Analysemodellen aktualisieren, welche die neuen Spalten zum Bestimmen von Wahrscheinlichkeiten verwenden, ob ein Kunde ein bestimmtes Angebot annimmt. In einer Ausführungsform der vorliegenden Offenbarung kann jedes Analysemodell sein eigenes Artefakt sein, und die Analysebibliothek kann ein zusammengesetztes Artefakt sein, möglicherweise ein Binärprogramm, das aus einer Gruppe von Analysemodellen erstellt wurde. Bearbeitungen an Modellen erstellen Befehle in den Befehlsstapeln ihrer Entwürfe, und Builds (Erstellen oder Hinzufügen) der Bibliothek erstellen ebenfalls einen neuen Entwurf der Bibliothek in einer Ausführungsform der vorliegenden Offenbarung.
-
Die IT-Gruppe des Unternehmens A kann auch die Analysereferenzen des Entscheidungsmodells mit den neuen Analysemodellen verbinden. Dies wird durch Bearbeitungen an dem Entscheidungsmodell erreicht, die neue Befehle in dem Befehlsstapel des Entscheidungsmodell-Artefakts erstellen können, und die auch einen neuen Entwurf erstellen können.
-
Der OIS wird durch das ausführbare Entscheidungsmodell, die Analysemodelle, das neue DB-Schema aktualisiert und beginnt somit, die durch das Rootkit gesammelten Daten zum Identifizieren neuer Absatzchancen zu verwenden. Wenn das Buildsystem TCS-aktiviert ist, werden neue Builds als neue Entwürfe des Anwendungs-/Service-Binärprogramms betrachtet, und das Hinzufügen/Aktualisieren von Quellen, aus denen das Binärprogramm aufgebaut ist, wird als Befehle betrachtet.
-
Zu einem späteren Zeitpunkt beschließt der OIS-Teamleiter (z. B. Person A), einigen freien Text auf Geschäftsebene in dem Dokument anders zu formulieren, der die Funktionalität dieses neuen OIS-Merkmals beschreibt. In Reaktion darauf sendet das TCS-aktivierte Texteditorprogramm (das die Person A zum Umformulieren des freien Texts verwendet), Befehle und Entwürfe an das TCS. Nach der Bearbeitung des freien Texts verwendet die Person A Verfolgbarkeitsverknüpfungen zwischen dem freien Text, dem Entscheidungsmodell, dem Geschäftsvokabular, den Datenbankspalten und den variablen Analysemodellnamen, um schnell jede Ausdruckweise bzw. die Namen zu finden und zu ändern, die ebenfalls anders formuliert werden müssen. Zum Beispiel kann die Person A einen Aufforderungscharakter (wie beispielsweise einen Baum) verwenden, um die Graphen von Artefakten anzuzeigen, die mit dem Dokument über Verfolgbarkeitsverknüpfungen verbunden sind, und navigiert über die Verknüpfungen zu dem genauen Speicherort in diesen Artefakten, die die Sprache/Namen verwenden, die er in dem Dokument geändert hat. In einer Ausführungsform der vorliegenden Offenbarung wird jedes Artefakt in seinem jeweiligen TCS-aktivierten Editorprogramm geöffnet. Die Person A bearbeitet die Artefakte, erstellt somit eine Serie von Befehlen und schließlich neue Entwürfe jedes Artefakts und verwendet/verbreitet die neuen Entwürfe als geeignet.
-
In dem Fall, dass das Unternehmen A beschließt, das Rootkit zu entfernen und zu dem OIS-Entscheidungsmodell zurückzukehren, bevor das Rootkit darin integriert wurde, können das TCS und die TCS-aktivierten Systeme und Werkzeuge verwendet werden, indem der Entwurf des OIS-Entscheidungsmodells von dem Tag vor den Änderungen der Person A gewählt wird und als der zeitbezogene Referenzpunkt eingestellt wird. Auf diese Weise ist das Unternehmen A in der Lage, die Entwürfe der OIS-Entscheidungsmodelle, des OIS-Build, der Analysebibliothek und des DB-Schemas sofort zu identifizieren, die Änderungen vorausgingen, die für ein Konzept der Person A relevant sind, und das OIS ohne irgendwelche Rootkit-Merkmale wiederherzustellen. In einer Ausführungsform der vorliegenden Offenbarung kann ein Aufforderungscharakter (wie beispielsweise eine Zeitachse) verwendet werden, um zu dem Entwurf des OIS-Entscheidungsmodells zu navigieren, der vor den Änderungen der Person A vorhanden war, und diesen Entwurf des Entscheidungsmodells als den zeitbezogenen Referenzpunkt einzustellen. TCS-Werkzeug- oder Benutzer-Oberflächenelemente wie Schaltflächen auf einer Symbolleiste können zum Ausführen derartiger Aktionen verwendet werden. Ein weiterer Aufforderungscharakter (wie beispielsweise ein Baum) kann verwendet werden, um alle Artefakte auszuwählen, die Verfolgbarkeitsverknüpfungen zu/von dem Entscheidungsmodell haben, alle zurück zu dem zeitbezogenen Referenzpunkt zu rollen und den OIS neu zu erstellen und erneut zu verwenden.
-
Mit dem System und der Methodik der vorliegenden Offenbarung lässt sich der Ablauf einer Aktion rückgängig machen, die für ein Artefakt vorgenommen wurde. Entsprechende Aktionen zum Rückgängigmachen können an verschiedenen Artefakten (z. B. zwei Textverarbeitungsdokumenten, drei Tabellendokumenten und einem Wiki) in beispielsweise einem Vorgang vorgenommen werden, indem eine Artefaktgesamtheit zu einem vorherigen Zeitpunkt zurückgeführt wird. Die Verfolgbarkeitsverknüpfungen von Artefakten verwalten auch die Historie von Korrelationen und das Vorhandensein von Quellen-Ziel-Beziehungen, wenn z. B. Entwurf x von Artefakt y zum Zeitpunkt z erstellt wurde. In Wechselbeziehung zueinander stehende Artefakte können an einem bestimmten zeitbezogenen Referenzpunkt verfolgt werden. Das System und die Methodik der vorliegenden Offenbarung stellen auch die Fähigkeit des Benutzers bereit, die komplette Artefaktgesamtheit in ihren Zustand an einem bestimmten zeitbezogenen Referenzpunkt zu verschieben.
-
Bekannte Versionssteuerungssysteme sind in ihrer Gruppierung von Artefakten in ein Tag/eine Version/einen Snapshot streng hierarchisch; die Fähigkeit, alle Artefakte an einem zeitbezogenen Referenzpunkt interaktiv anzuzeigen und zu bearbeiten, ohne einen Tag/eine Version/einen Snapshot über die gesamte umgebende Hierarchie übergreifend erstellen zu müssen, existiert nicht. Die Fähigkeit, zwischen verbundenen Artefakten zu navigieren und ihre Zustände zum Verbindungszeitpunkt anzuzeigen, ohne einen Tag/eine Version/einen Snapshot über die gesamte umgebende Hierarchie übergreifend erstellen zu müssen, existiert nicht.
-
Das System der vorliegenden Offenbarung kann in einer Ausführungsform gut funktionieren, wenn eine Gruppe von Artefakten sich zusammen in einem System befindet oder in unterschiedlichen Systemen verteilt ist. Zum Beispiel kann das System als verteiltes Versionssteuerungssystem DVCS (Distributed Version Control System) verwendet werden. Das System der vorliegenden Offenbarung löst in einer Ausführungsform ein Prüfpunktproblem für verteilte Kompensation oder Zurückführung. Das System der vorliegenden Offenbarung stellt in einer Ausführungsform eine Zeitmaschine für ein Debugging von parallelen/Multithread-Anwendungen bereit, stellt eine Rückführungsfunktion für die Zeit bereit. Das System der vorliegenden Offenbarung ermöglicht einem Benutzer in einer Ausführungsform, sich zum Beispiel auf der Grundlage von zeitbezogenen Referenzpunkten zeitübergreifend durch eine Artefaktgesamtheit zu bewegen. Das System und die Methodik der vorliegenden Offenbarung kann in einer Ausführungsform in Verbindung mit vorhandenen Versionssteuerungs- oder ähnlichen Systemen verwendet werden.
-
7 veranschaulicht eine schematische Darstellung eines beispielhaften Computer- oder Verarbeitungssystems, welches das zeitbezogene Steuersystem in einer Ausführungsform der vorliegenden Offenbarung umsetzen kann. Das Computersystem ist nur ein Beispiel für ein geeignetes Verarbeitungssystem und soll keinerlei Einschränkung in Bezug auf den Schutzumfang der Verwendung oder Funktionalität von Ausführungsformen der hierin beschriebenen Methodik andeuten. Das gezeigte Verarbeitungssystem kann mit zahlreichen weiteren Umgebungen oder Konfigurationen für Universal- oder Sonder-Datenverarbeitungssysteme betriebsfähig sein. Zu Beispielen für bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit dem in 7 gezeigten Verarbeitungssystem geeignet sein können, zählen PC-Systeme, Servercomputersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der oben genannten Systeme oder Einheiten und dergleichen aufweisen, sie sind aber nicht darauf beschränkt.
-
Das Computersystem kann in dem allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen beschrieben werden, wie beispielsweise Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen umsetzen. Das Computersystem kann in verteilten Cloud-Computing-Umgebungen betrieben werden, wobei Aufgaben von entfernt angeordneten Verarbeitungseinheiten ausgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule sich sowohl in lokalen als auch entfernt angeordneten Computersystem-Speichermedien befinden, die Speichereinheiten enthalten.
-
Die Komponenten des Computersystems können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 12, einen Systemarbeitsspeicher 16 und einen Bus 14 enthalten, der verschiedene Systemkomponenten einschließlich des Systemarbeitsspeichers 16 mit dem Prozessor 12 verbindet, sie sind aber nicht darauf beschränkt. Der Prozessor 12 kann ein zeitbezogenes Steuermodul 10 enthalten, das hierin beschriebene Serviceverfahren für zeitbezogene Steuerung ausführt. Das Modul 10 kann in die integrierten Schaltungen des Prozessors 12 programmiert oder vom Arbeitsspeicher 16, einer Speichereinheit 18 oder einem Netzwerk 24 oder Kombinationen davon geladen werden.
-
Der Bus 14 kann einen oder mehrere von mehreren beliebigen Typen von Busstrukturen darstellen, einschließlich eines Arbeitsspeicherbusses oder Arbeitsspeicher-Controllers, eines Peripheriebusses, eines beschleunigten Grafikanschlusses und eines Prozessors oder lokalen Busses unter Verwendung von einer aus einer Vielfalt von Busarchitekturen. Als Beispiel und nicht einschränkend enthalten derartige Architekturen einen Industry Standard Architecture-(ISA)Bus, Micro Channel Architecture-(MCA)Bus, Enhanced ISA-(EISA)Bus, einen lokalen Video Electronics Standards Association-(VESA)Bus und Peripheral Component Interconnects-(PCI)Bus.
-
Das Computersystem kann eine Vielfalt von Medien aufweisen, die von einem Computersystem gelesen werden können. Derartige Medien können alle verfügbaren Medien sein, auf die von dem Computersystem zugegriffen werden kann, und sie können sowohl flüchtige als auch nicht-flüchtige Medien, austauschbare und nicht-austauschbare Medien enthalten.
-
Der Systemarbeitsspeicher 16 kann vom Computersystem lesbare Medien in der Form von flüchtigem Arbeitsspeicher enthalten wie beispielsweise einen Direktzugriffspeicher (RAM) und/oder einen Cache-Zwischenspeicher oder Sonstige. Das Computersystem kann ferner weitere austauschbare/nicht-austauschbare, flüchtige/nicht-flüchtige Computersystem-Speichermedien enthalten Nur als Beispiel kann das Speichersystem 18 für ein Lesen von und ein Schreiben auf nicht-austauschbare, nicht-flüchtige Magnetdatenträger bereitgestellt werden (z. B. eine „Festplatte”). Obwohl nicht gezeigt, können ein Magnetplattenlaufwerk für ein Auslesen und Beschreiben einer austauschbaren, nicht-flüchtigen Magnetplatte (z. B. eine Diskette) und ein optisches Plattenlaufwerk für ein Auslesen oder Beschreiben einer austauschbaren, nicht-flüchtigen optischen Platte wie einem CD-ROM, DVD-ROM oder andere optische Datenträger bereitgestellt werden. In solchen Fällen können alle über eine oder mehrere Datenträgerschnittstellen mit dem Bus 14 verbunden werden.
-
Das Computersystem kann auch mit einer oder mehreren externen Einheiten 26 Daten austauschen, wie beispielsweise einer Tastatur, einer Zeigeeinheit, einer Anzeige 28 usw.; einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem zu interagieren; und/oder allen Einheiten (z. B. Netzwerkkarte, Modem usw.), die es dem Computersystem ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über Eingabe-/Ausgabe-(E/A)Schnittstellen 20 erfolgen
-
Außerdem kann das Computersystem mit einem oder mehreren Netzwerken 24, wie beispielsweise einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z. B. dem Internet), über einen Netzwerkadapter 22 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 22 Daten mit den anderen Komponenten des Computersystems über den Bus 14 aus. Es sollte klar sein, dass, obwohl nicht gezeigt, andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem verwendet werden könnten. Beispiele dafür, ohne darauf beschränkt zu sein, sind: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
-
Wie einem Fachmann klar sein wird, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert werden. Dementsprechend können Aspekte der vorliegenden Erfindung in der Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (einschließlich Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, auf die alle hierin allgemein als „Schaltung”, „Modul” oder „System” Bezug genommen werden kann. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darin ausgeführten computerlesbaren Programmcode verkörpert ist.
-
Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu spezielleren Beispielen (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würde Folgendes zählen: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer CD-ROM, eine optische Speichereinheit, eine Magnetspeichereinheit oder jede geeignete Kombination des Vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes konkrete Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit einem darin verkörperten computerlesbaren Programmcode enthalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein derartiges verbreitetes Signal kann jede einer Vielfalt von Formen annehmen, einschließlich elektromagnetisch, optisch oder jede geeignete Kombination davon, es ist aber nicht darauf beschränkt. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung übertragen, verbreiten oder transportieren kann.
-
In einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, einschließlich drahtlos, drahtgebunden, über ein Lichtwellenleiterkabel, HF usw. oder eine geeignete Kombination des Vorgenannten, er ist aber nicht darauf beschränkt.
-
Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben werden, einschließlich einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C” oder ähnlichen Programmiersprachen, einer Scripting-Sprache wie Perl, VBS oder ähnlichen Sprachen und/oder Funktionssprachen wie Lisp und ML und logikorientierten Sprachen wie Prolog. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden sein, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters).
-
Aspekte der vorliegenden Erfindung werden unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaubildern und Kombinationen von Blöcken in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
-
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, einschließlich Anweisungen, die die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegebene Funktion/Handlung umsetzen.
-
Die Computerprogrammanweisungen können auch auf einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten geladen werden, um die Ausführung einer Serie von Arbeitsschritten auf dem Computer, einer anderen Vorrichtung, die programmierbare Daten ausführt, oder anderen Einheiten zu veranlassen, um einen über den Computer umgesetzten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Handlungen bereitstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
-
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Es ist ebenfalls anzumerken, dass in einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge auftreten können als in den Figuren angegeben. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es wird ebenfalls angemerkt, dass jeder Block in den Blockschaubildern und/oder in der Veranschaulichung des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder der Veranschaulichung des Ablaufplans durch spezielle Systeme auf der Grundlage von Hardware, die die angegebenen Funktionen oder Handlungen ausführen, oder Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.
-
Das Computerprogrammprodukt kann alle jeweiligen Funktionen aufweisen, die die Umsetzung der hierin beschriebenen Methodik ermöglichen, und die – wenn sie in ein Computersystem geladen werden – fähig sind, die Verfahren auszuführen. Computerprogramm, Software-Programm, Programm oder Software bedeuten in dem gegenwärtigen Kontext jeden Ausdruck, in jeder Sprache, jeden Code oder jede Schreibweise von einer Gruppe von Anweisungen, die dazu bestimmt sind, ein System mit einer Fähigkeit zur Informationsverarbeitung zu veranlassen, eine bestimmte Funktion entweder direkt oder nach einem oder beidem des Folgenden auszuführen: (a) Konvertierung in eine andere Sprache, einen anderen Code oder eine andere Schreibweise; und/oder (b) Wiedergabe in einer anderen Materialform.
-
Die hierin verwendete Terminologie dient nur zum Zweck der Beschreibung von bestimmten Ausführungsformen und soll die Erfindung keinesfalls einschränken. Die hierin verwendeten Singularformen „ein”, „eine” und „der/die/das” sollen auch die Pluralformen mit einschließen, es sei denn, der Kontext gibt eindeutig anderes vor. Es versteht sich des Weiteren, dass die Begriffe „weist auf” und/oder „aufweisend” bei Verwendung in dieser Patentschrift das Vorhandensein ausgewiesener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.
-
Die entsprechenden Strukturen, Materialien, Handlungen und Entsprechungen aller Mittel oder Schritt-plus-Funktion-Elemente, in den nachstehenden Ansprüchen sollen, sofern vorhanden, alle Strukturen, Materialien oder Handlungen zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen enthalten, wie speziell beansprucht. Die Beschreibung der vorliegenden Erfindung wurde zum Zweck der Veranschaulichung und Beschreibung erstellt, sie soll aber keineswegs erschöpfend oder auf die Erfindung in der offenbarten Form eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, ohne von dem Schutzbereich und dem Erfindungsgedanken der Erfindung abzuweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu erklären und es anderen Fachleuten zu ermöglichen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifizierungen zu verstehen, die für die vorgesehene bestimmte Verwendung geeignet sind.
-
Verschiedene Aspekte der vorliegenden Offenbarung können als ein Programm, eine Software oder Computeranweisungen verkörpert sein, die in einem Computer oder einem von Maschinen verwendbaren oder lesbaren Medium verkörpert sind, das den Computer oder die Maschine veranlasst, die Schritte des Verfahrens beim Ausführen auf dem Computer, dem Prozessor und/oder der Maschine auszuführen. Eine Programmspeichereinheit, die von einer Maschine lesbar ist und konkret ein Programm von Anweisungen verkörpert, die durch die Maschine ausführbar sind, um verschiedene Funktionen und Verfahren auszuführen, die in der vorliegenden Offenbarung beschrieben werden, wird ebenfalls bereitgestellt.
-
Das System und Verfahren der vorliegenden Offenbarung kann auf einem Mehrzweckcomputer oder einem Spezialcomputersystem umgesetzt und ausgeführt werden. Die Begriffe „Computersystem” und „Computernetzwerk”, wie sie in der vorliegenden Anmeldung verwendet werden, können eine Vielfalt von Kombinationen stationärer und/oder tragbarer Computer-Hardware, Software, Peripherie- und Speichereinheiten enthalten. Das Computersystem kann eine Mehrzahl von einzelnen Komponenten enthalten, die vernetzt oder anderweitig verbunden sind, um gemeinsam zu arbeiten, oder es kann eine oder mehrere eigenständige Komponenten enthalten. Die Hardware- und Software-Komponenten des Computersystems der vorliegenden Anmeldung können stationäre und tragbare Einheiten wie Desktop, Laptop und/oder Server enthalten oder darin enthalten sein. Ein Modul kann eine Komponente einer Einheit, eine Software, ein Programm oder System sein, das einige „Funktionalität” umsetzt, die als Software, Hardware, Firmware, elektronische Schaltung usw. verkörpert sein kann.
-
Die oben beschriebenen Ausführungsformen sind veranschaulichende Beispiele, und die vorliegende Erfindung sollte nicht so ausgelegt werden, dass sie auf diese bestimmten Ausführungsformen begrenzt ist. Somit können verschiedene Änderungen und Modifizierungen von einem Fachmann vorgenommen werden, ohne vom Erfindungsgedanken oder Schutzumfang der Erfindung abzuweichen, wie sie in den Ansprüchen im Anhang definiert wird.