DE69838139T2 - Verfahren und system zur schaffung von datenbankanwendungssoftware,die minimales programmieren benötigen - Google Patents

Verfahren und system zur schaffung von datenbankanwendungssoftware,die minimales programmieren benötigen Download PDF

Info

Publication number
DE69838139T2
DE69838139T2 DE69838139T DE69838139T DE69838139T2 DE 69838139 T2 DE69838139 T2 DE 69838139T2 DE 69838139 T DE69838139 T DE 69838139T DE 69838139 T DE69838139 T DE 69838139T DE 69838139 T2 DE69838139 T2 DE 69838139T2
Authority
DE
Germany
Prior art keywords
application
database
software application
target software
computer
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.)
Expired - Lifetime
Application number
DE69838139T
Other languages
English (en)
Other versions
DE69838139D1 (de
Inventor
Jeffrey L. Ross WALKER
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.)
TenFold Corp
Original Assignee
TenFold Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25462034&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69838139(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by TenFold Corp filed Critical TenFold Corp
Publication of DE69838139D1 publication Critical patent/DE69838139D1/de
Application granted granted Critical
Publication of DE69838139T2 publication Critical patent/DE69838139T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Description

  • 1. Hintergrund der Erfindung
  • Die vorliegende Erfindung betrifft die Computerprogrammierung und insbesondere die automatische Erzeugung von datenbankinteraktiven Softwareanwendungen. Insbesondere betrifft die vorliegende Erfindung die softwarebasierte Erzeugung von kundenspezifischen Anwendungen auf der Grundlage eines Mensch-Maschinen-Dialogs auf hoher Ebene im Gegensatz zur herkömmlichen Computerprogrammierung oder computerunterstützten System-Engineering-Technologie (CASE).
  • Stand der Technik
  • Komplexe, betriebsnotwendige Softwareanwendungen umfassen normalerweise eine große Anzahl von Transaktionen, neben einer anspruchsvollen Endbenutzer-Schnittstelle für jede Transaktion, eine komplexe relationale Datenbank, die Fähigkeit zur Erstellung von wiederkehrenden und Ad-hoc-Berichten, serverbasierte, rechenintensive Softwarekomponenten und zusätzliche Softwareintegrationskomponenten. Aufgrund der Komplexität der Anwendung und der Komponenten, der Schwierigkeiten verbunden mit dem Beschaffen, Management und Erhalt von technisch hoch qualifiziertem Personal sowie der Unsicherheit bei der Verwaltung von großen Projekten in komplizierten und sich verändernden Betriebsumgebungen ist der Entwurf, die Entwicklung und die Realisierung von betriebsnotwendigen Softwareanwendungen teuer, mit hohen Risiken verbunden und häufig erfolglos.
  • Ferner werden betriebsnotwendige Softwareanwendungen, nachdem sie verbessert und weiterentwickelt wurden, zunehmend komplexer und erfordern deshalb zusätzlichen Einsatz von Geld und Arbeitskräften zur Verbesserung, Fehlerbeseitigung und Instandhaltung. Selbst relativ einfache oder geringfügige Änderungen an betriebsnotwendigen Softwareanwendungen erfordern hohe Intelligenz und zahlreiche Testdurchläufe der geänderten Softwareanwendungen.
  • Darüber hinaus haben sich die Programmiermethoden, die mit der Entwicklung von Softwareanwendungen verbunden sind, in den letzten beiden Jahrzehnten kaum geändert. Obwohl der kommerzielle Markt eine Vielzahl von Entwicklungswerkzeugen und neuen Programmiersprachen bietet, erfordern betriebsnotwendige Softwareanwendungen nach wie vor viel Programmierung in mindestens einer Programmiersprache. Verbesserung der Programmierproduktivität wird durch traditionelle Paradigmen, verbunden mit traditionellen Aufgaben wie mühsames und zeitaufwändiges Entwurfsunterlagen-Design, Anwendungskodierung auf niederer Ebene, manuelles Testen und Fehlerbeseitigung in den schriftlichen Codes und die Fehleranfälligkeit bei Korrekturen und Verbesserungen von Softwareanwendungen verhindert. Weitere Mängel im Zusammenhang mit der Entwicklung von traditionellen, komplexen Softwareanwendungen ergeben sich aus Änderungen in der Qualität in sämtlichen Phasen der Entwicklung, wie Definition der Anforderungen, Designspezifikation, Programmierung, Test und alle damit verbundenen Kommunikationen zwischen Kunden, Endbenutzern, Designern, Systemanalysten, Programmierern und Testern. So sind Softwareanwendungsprogrammierer häufig isoliert oder durch das Management oder Marketing von einer direkten Interaktion mit den Endbenutzern oder Kunden abgeschirmt, so daß sie die vom Endbenutzer antizipierten Designanforderungen nicht vollständig kennen oder verstehen. Des weiteren können sich die Designanforderungen, wenn die Softwareentwicklung sich über viele Monate oder Jahre hinzieht, ändern, wenn sich die Markttrends oder die Businessbedürfnisse der Endbenutzer ändern. Wenn das Design der Softwareanwendung nicht in der Lage ist, der Businessdynamik zu folgen, veraltet die Softwareanwendung.
  • Darüber hinaus können die Endbenutzer das gewünschte Softwareanwendungsendprodukt möglicherweise nicht vollständig erfassen oder vor Augen haben oder – noch schlimmer – notwendige Designanforderungen können möglicherweise gar nicht in Erscheinung treten, bevor die Softwareanwendung getestet, vervollständigt oder ausgeliefert wurde. Häufig geschieht es auch, daß die Endbenutzer von kundenspezifischen Anwendungen das gewünschte "look und feel" oder die Funktion der gewünschten kundenspezifischen Anwendungssoftware nicht oder auf unzureichende Weise ausdrücken, solange sie nicht die erste Version des "Endprodukts" gesehen haben. Hierbei ist der Endbenutzer im allgemeinen eher in der Lage, negative Präferenzen durch Aufzählen jener Aspekte zum Ausdruck zu bringen, die seiner Ansicht nach bei der "Endversion" geändert werden müßten. Wenn nun an dieser Stelle, wie es meist der Fall ist, bereits große Beträge in die "Endversion" investiert wurden, muß der Endbenutzer entweder eine weniger ideale "Endversion" des Produkts akzeptieren oder es müssen weitere Ressourcen (d.h. Zeit und Geld) investiert werden, um die "Endversion" mit den neu entdeckten oder unzureichend mitgeteilten Präferenzen auszustatten.
  • Zusätzlich zu den Kommunikationspannen kommt es häufig zu Qualitätsschwankungen bei Softwareanwendungen aufgrund der unterschiedlichen Fähigkeiten von Softwareprogrammierern. So passen manche Softwareprogrammierer weniger auf Details auf, weshalb es zu Defekten oder Fehlern in der Softwareanwendung kommt, die sich direkt auf die Qualität auswirken. Andere Programmierer wiederum stilisieren hingegen ihre Software-Komponenten, die hierdurch funktionell und optisch nicht mit den übrigen Teilen der Softwareanwendung übereinstimmen, was zu einem widersprüchlichen "look-and-feel" der Softwareanwendung führt. Derartige personenabhängige Unstimmigkeiten können die empfundene und tatsächliche Qualität und Leistung beeinträchtigen.
  • Bezüglich des Designs und der Entwicklung von komplexen Softwareanwendungen werden, da die Hardware-Entwicklungsleistung wirtschaftlich zunimmt, neue Softwareanwendungen immer komplexer und anspruchsvoller, so daß ältere Softwareanwendungen veralten. Demzufolge führen traditionelles Softwareanwendungsdesign und Programmiertechniken zu weniger vorhersehbaren und dauerhaften Ergebnissen bei einem unannehmbar hohen Kostenniveau und damit verbundenen Entwicklungsrisiken.
  • Daraus entsteht der Bedarf nach einer Methode und einem System für automatisches oder hochautomatisches Erzeugen von komplexen Datenbanksoftwareanwendungen ohne eingehende, traditionelle und detaillierte Programmierung. Das automatische Erzeugen von komplexen Softwareanwendungen ohne damit verbundene Unstimmigkeiten und Qualitätsschwankungen, bedingt durch unterschiedliche Programmierer, unterstützt die Implementierung oder das Prototyping von komplexen Softwareanwendungen auf eine im Vergleich zur traditionellen Programmierphilosophie schnellere Weise. Die automatische Erzeugung von Softwareanwendungen ermöglicht es einem Anwendungsdesigner, in relativ kurzer Zeit Softwareanwendungen zu prototypisieren und dadurch eine fast endgültige Version der kundenspezifischen Softwareanwendung zur unmittelbaren Bewertung durch einen Endbenutzer herzustellen. Darüber hinaus ermöglicht die automatische Softwareerzeugung dem Anwendungsdesigner auf zweckdienliche Weise Feedback, sowohl Vorlieben als auch Abneigungen, in die nachfolgenden Iterationen der Softwareanwendungen einzubauen, in die die überarbeiteten Präferenzen aufgenommen werden.
  • Die US-Patentschrift 5,495,567 offenbart ein computerimplementiertes Verfahren und ein Computersystem gemäß dem Oberbegriff der unabhängigen Ansprüche.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Erfindungsgemäß wird ein Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung zur Verwendung bei der Interaktion mit einer Anwendungsdatenbank bereitgestellt, mit den folgenden Schritten:
    • a) Durchführen eines Dialogs auf hoher Ebene über einen Anwendungs-Editor, um eine die Zielsoftwareanwendung repräsentierende Beschreibung abzuleiten;
    • b) gegebenenfalls Verfeinern der Beschreibung;
    • c) Speichern der Beschreibung der Zielsoftwareanwendung; und
    • d) bei Ausführung der Zielsoftwareanwendung wird die Beschreibung aufgerufen;
    dadurch gekennzeichnet, daß
    die Zielsoftwareanwendung aus einer wieder verwendbaren universellen Softwareanwendung erzeugt wird;
    die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank definiert und eine Anpassung der universellen Softwareanwendung in die Zielsoftwareanwendung repräsentiert;
    das Verfahren ferner den Schritt des Prototyping der Zielsoftwareanwendung auf der Basis der Beschreibung umfaßt und der Verfeinerungsschritt auf dem Prototyping-Schritt basiert;
    die Beschreibung in einem Wörterbuch in Form einer durch die universelle Softwareanwendung zu referenzierenden Datenbank gespeichert wird; und
    das Wörterbuch von der universellen Softwareanwendung bei Ausführung der Zielsoftwareanwendung aufgerufen wird, um die universelle Softwareanwendung anzupassen, damit sie die Zielsoftwareanwendung wird.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein System zur computerunterstützten Erzeugung einer Zielsoftwareanwendung zur Datenbankverwaltung einer Anwendungsdatenbank bereitgestellt, wobei das System folgendes umfaßt:
    • a) einen Anwendungs-Editor zum Durchführen eines Dialogs auf hoher Ebene, um eine die Zielsoftwareanwendung repräsentierende Beschreibung abzuleiten;
    • b) Mittel zum Verfeinern der Beschreibung;
    • c) einen Speicher zum Speichern der Beschreibung der Zielsoftwareanwendung zur nachfolgenden Referenzierung während der Ausführung der Zielsoftwareanwendung;
    dadurch gekennzeichnet, daß
    die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank definiert und eine Anpassung einer universellen Softwareanwendung in die Zielsoftwareanwendung repräsentiert;
    die Beschreibung in einem Wörterbuch in Form einer Datenbank gespeichert ist;
    die universelle Softwareanwendung wieder verwendbare Softwaremodule umfaßt; und
    das System ferner einen an den Anwendungs-Editor gekoppelten Prototyping-Mechanismus umfaßt, um einen Prototypen der Zielsoftwareanwendung auf der Basis der Beschreibung zu erstellen, wodurch gegebenenfalls eine Verfeinerung der Beschreibung ermöglicht wird; und die universelle Softwareanwendung dafür ausgelegt ist, bei Ausführung der Zielsoftwareanwendung das Wörterbuch zu referenzieren, um einen angepaßten Betrieb der universellen Softwareanwendung abzuleiten, um wie im Anwendungs-Editor beschrieben zu der Zielsoftwareanwendung zu werden.
  • Gemäß einem dritten Aspekt der Erfindung wird außerdem ein computerlesbares Medium zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung zur Interaktion mit einer Anwendungsdatenbank bereitgestellt, wobei das computerlesbare Medium computerausführbare Anweisungen zur Ausführung der folgenden Schritte aufweist:
    • a) Durchführen eines Dialogs auf hoher Ebene über einen Anwendungs-Editor, um eine die Zielsoftwareanwendung repräsentierende Beschreibung abzuleiten;
    • b) gegebenenfalls Verfeinern der Beschreibung;
    • c) Speichern der Beschreibung der Zielsoftwareanwendung; und
    • d) bei Ausführung der Zielsoftwareanwendung wird die Beschreibung aufgerufen;
    dadurch gekennzeichnet, daß
    die Zielsoftwareanwendung aus einer wieder verwendbaren universellen Softwareanwendung erzeugt wird;
    die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank definiert und eine Anpassung der universellen Softwareanwendung in die Zielsoftwareanwendung repräsentiert;
    die computerausführbaren Anweisungen ferner die Schritte des Prototyping der Zielsoftwareanwendung auf der Basis der Beschreibung durchführen und der Verfeinerungsschritt auf dem Prototyping-Schritt basiert;
    die Beschreibung in einem Wörterbuch in Form einer durch die universelle Softwareanwendung zu referenzierenden Datenbank gespeichert wird; und das Wörterbuch von der universellen Softwareanwendung bei Ausführung der Zielsoftwareanwendung aufgerufen wird, um die universelle Softwareanwendung anzupassen, damit sie die Zielsoftwareanwendung wird.
  • Weitere Vorteile der Erfindung werden in der nachfolgenden Beschreibung erläutert und treten teilweise aus der Beschreibung klar zutage oder können bei der Umsetzung der Erfindung erfahren werden. Die Vorteile der Erfindung können mit den Instrumenten und Kombinationen realisiert und erzielt werden, die in den beiliegenden Ansprüchen besonders herausgestellt werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Um besser zu verstehen, auf welche Weise die oben zitierten und weitere Vorteile der Erfindung erzielt werden, wird eine eingehende Beschreibung der zuvor kurz erläuterten Erfindung unter Bezugnahme auf die speziellen Ausführungsformen derselben vorgelegt, die in den beiliegenden Zeichnungen dargestellt sind. Es versteht sich, daß diese Zeichnungen nur eine typische Ausführungsform der Erfindung darstellen und deshalb keine einschränkende Wirkung besitzen; die Erfindung wird mit Hilfe der beiliegenden Zeichnungen eingehender und detaillierter beschrieben und erläutert. Es zeigen:
  • 1 ein vereinfachtes Flußdiagramm, in dem der Entwicklungsprozeß einer Zielanwendung gemäß einer Ausführungsform der vorliegenden Erfindung erläutert wird;
  • 2 ein Blockdiagramm auf hoher Ebene eines beispielhaften Systems zur automatischen Erzeugung einer zieldatenbankbasierten Softwareanwendung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 3 ein vereinfachtes Flußdiagramm, in dem das Verfahren zur Erzeugung einer zieldatenbankbasierten Softwareanwendung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung erläutert wird;
  • 4 ein vereinfachtes Diagramm zur Abbildung einer Satzebene der vorliegenden Erfindung auf ein physisches Datenbankschema einer Anwendungsdatenbank gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 5 ein vereinfachtes Blockdiagramm zur Darstellung der Komponenten eines Anwendungs-Editors zur Erzeugung einer zieldatenbankbasierten Softwareanwendung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 6 ein vereinfachtes Blockdiagramm der Komponenten eines Anwendungswörterbuches gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 7 ein vereinfachtes Blockdiagramm der Komponenten einer universellen Anwendung gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 8 ein vereinfachtes Diagramm zur Darstellung einer beispielhaften Schichtung der Beziehungen zwischen den verschiedenen Ebenen des Wörterbuches und der Anwendungsdatenbank des vorliegenden Systems gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 9 zeigt ein vereinfachtes Diagramm zur Darstellung der Ausführung einer interaktiven Online-Transaktion gemäß einer Ausführungsform der vorliegenden Erfindung; und
  • 10 ein vereinfachtes Diagramm einer Client-Server-Partitionierung der Ausführung einer Zielanwendung gemäß einer Ausführungsform der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Der im folgenden gebrauchte Ausdruck „Prototyp" bezieht sich auf den Vorgang der Erzeugung eines Softwareprogramms oder Softwaremoduls oder eines Anteils hiervon. Die Prototypsoftware kann die Form eines sofort verfeinerten Zielsoftwareprogramms oder einer zum Abschluss gebrachten, auslieferbaren Zielsoftwareanwendung annehmen.
  • Der im folgenden gebrauchte Ausdruck „universelle Anwendung" bezieht sich auf ein Softwaremodul, das in der Lage ist, angepaßte oder Zielsoftwareanwendungen durch Referenzieren einer anwendungsspezifischen Datei, die im folgenden als „Wörterbuch" bezeichnet wird, zu offenbaren. Die universelle Anwendung kann in einer Client-Server-Anordnung partitioniert werden, wobei ein Anteil der universellen Anwendung in einer Client-Umgebung, andere Anteile hingegen in einem Server-Bereich untergebracht sein können.
  • 1 ist ein vereinfachtes Flußdiagramm, in dem ein neu gestaltetes Verfahren zur Softwareentwicklung und -verwendung gemäß der vorliegenden Erfindung dargestellt ist. Die traditionelle Softwareentwicklung war durch ständige Fehlkalkulation, sowohl in der Ablaufplanung als auch bei den mit der Entwicklung der Zielanwendung verbundenen Kosten gekennzeichnet. Die vorliegende Erfindung verwendet sowohl Technologien als auch Methoden zur Veränderung des Paradigmas zur Implementierung der Zielanwendungssoftware. Dieses Paradigma ändert die auf mehrere Jahre geplante Softwareentwicklung in einen Softwareentwicklungsplan, der sich über vier bis acht Monate erstreckt. Um ein solches Softwareentwicklungsparadigma zu ändern, beruht die vorliegende Methodik auf mindestens drei methodologischen Parametern. Als erstes vermindert die vorliegende Erfindung die mit der Softwareentwicklung verbundenen Risiken durch Verkürzung der zur Softwareentwicklung erforderlichen Zykluszeiten. Durch Verminderung der Projektdauer können die Risiken, die mit sich verändernden Unternehmensanforderungen oder Fähigkeiten wie der Finanzierung verbunden sind, vermindert oder gar vermieden werden. Zweitens ist die vorliegende Erfindung dank der Verwendung der nachstehend beschriebenen Technologie in der Lage, eine Anfangsversion der Zielanwendung in sehr kurzer Zeit zu erzeugen und vereinfacht dadurch den schrittweisen Ansatz zur Verbesserung der Zielanwendung gemäß den Präferenzen des Zielanwendungsbenutzers. Diese schrittweisen Ansätze haben gezeigt, daß sie zu größerer Kundenzufriedenheit bei der Endversion der Zielanwendung hauptsächlich dank der zeitlichen Interaktion mit dem Benutzer während der Verbesserung der Zielanwendung führen. Drittens ist es mit der Zielanwendungsentwicklungsmethodik der vorliegenden Erfindung möglich, die Zielanwendung in einer verfeinerten Form fertigzustellen oder zu produktisieren, so daß (i) der Zielanwendungsbenutzer oder Kunde eine Lösung höherer Qualität erhält, (ii) die Anwendung einen längeren Lebenszyklus aufweist, (iii) die Komponenten der Zielanwendung für andere Zielanwendungen wieder verwendet werden können und (iv) die Zielanwendung an andere Kunden vermarktet werden kann.
  • Diese Entwicklungsmethodik bietet eine Ausgangsbasis, um den evolutionären Lebenszyklus von Zielanwendungen zu beenden und Zielanwendungen zum Zwecke der anschließenden Wiederverwendung und des Wiederverkaufs zu produktisieren. Die Designmethodik der vorliegenden Erfindung kann in drei unterschiedliche Stufen unterteilt werden, wie in 1 gezeigt wird. Jede Stufe besitzt eine Reihe von miteinander verknüpften Phasen mit Tätigkeiten, die entweder dem Anwendungsdesigner oder dem Zielanwendungsbenutzer oder beiden zugewiesen ist. In Kombination mit der nachstehend beschriebenen Technologie bietet die vorliegende Methodik einen erfinderischen Ansatz zur Softwareimplementierung. 1 zeigt einen Zielanwendungsentwicklungsprozeß 10, der einen evolutionären Lebenszyklus zur Implementierung von Zielanwendungen bereitstellt und Zielanwendungen produktisiert. Der Zielanwendungsprozeß 10 umfaßt drei verschiedene Stufen, eine Stufe 12 zur Entwicklung der Anwendung 12, eine Stufe 36 zur Nutzung der verpackten Anwendung und eine Stufe 44 zur Unterstützung der Anwendung.
  • Die Stufe 12 zur Entwicklung der Anwendung umfaßt die Tätigkeiten oder Schritte, die erforderlich sind, um die Anforderungen einer Zielanwendung festzulegen, die Zielanwendung vorzubereiten und die Zielanwendung zu nutzen. Die Stufe 12 zur Entwicklung der Anwendung ist die erste Stufe für die Implementierung von neuen Zielanwendungen, obwohl der Implementierungsprozeß die drei Stufen auf zyklische Weise durchläuft. Die Stufe 14 zur Entwicklung von exekutiver Auswertung ist die erste Phase der Stufe 12 zur Entwicklung der Anwendung und umfaßt die Schritte (i) Festlegung des Umfangs der Zielanwendung und Klärung sowie Überwachung von Meilensteinen, wie die eindeutige Identifizierung der Unternehmenserfordernisse, (ii) Demonstration der Technologie, (iii) Erzeugung eines formalen exekutiven Auswertungsdokuments und (iv) Vorstellung eines Projektvorschlags samt Kosten und Ablaufplan. Das exekutive Auswertungsdokument grenzt die Zielanwendung klar ab und kann mit einer intensiven Interaktion mit dem Benutzer verbunden sein, um den Umfang der Zielanwendung genau darzustellen.
  • Die zweite Phase innerhalb der Stufe 12 zur Entwicklung der Anwendung beinhaltet die Phase 16 zur Festlegung der Anforderungen zur Entwicklung einer sehr spezifischen Beschreibung der letzten Implementierung der Zielanwendung. Die Phase 16 zur Festlegung der Anforderungen stützt sich auf den Umfang der Anforderungen, die in der exekutiven Auswertung enthalten sind, die in der Phase 14 zur Entwicklung der exekutiven Auswertung entwickelt wurde. Die Phase 16 zur Festlegung der Anforderungen definiert ferner die Ziele und beschreibt die Zielprozesse für jede funktionelle und technische Komponente der Zielanwendung. Der eigentliche Zweck bei der Ermittlung dieser Informationen liegt in der Maximierung der Nutzbarkeit sämtlicher erzeugter Software, indem dafür gesorgt wird, daß Anteile der Zielanwendung erst dann erzeugt werden, wenn die Zielanwendung vollständig beschrieben wurde.
  • Die Phase 16 zur Festlegung der Anforderungen umfaßt ferner eine Konzepttrainingsphase 18, eine Konzepthandbuchphase 20, eine Anwendungsdemonstrations-Aufzeichnungsphase 22, eine Phase 24 zur Entwicklung der Teststrategie und eine Datenbankdesignphase 26. Die Konzepttrainingsphase 18 stellt das erste größere, auslieferbare Produkt der Phase 16 zur Festlegung der Anforderungen dar. Die Konzepthandbuchphase 20 stellt eine dokumentierte Version der detaillierten Leistungen der Zielanwendung bereit. Dieses zweite wichtige, auslieferbare Produkt führt die Zielanwendungskomponenten wie beispielsweise die Unternehmensfunktionen, Unterstützungsfunktionen, Transaktionen, Smart Codes, Menüs, Berichte, Verantwortlichkeiten, Server und Analysen auf, die nachstehend beschrieben werden. Es muß angemerkt werden, daß auch andere Tätigkeiten während der Konzepthandbuchphase 20 beginnen, wie beispielsweise die Datenbankdesignphase 26 und die Teststrategieentwicklung 24. Die Anwendungsdemonstrations-Aufzeichnungsphase 22 beschreibt eine Demonstration, die letztlich zu einem effektiven Werkzeug zur Übertragung von zwingend erforderlichen Leistungen und Funktionen der Zielanwendung wird. Dieses dritte auslieferbare Produkt innerhalb der Phase 16 zur Festlegung der Anforderungen ist eine Demonstrationsaufzeichnung, die mit den Leistungen gegengeprüft werden kann, die in der Konzepthandbuchphase 20 erzeugt werden. Die Phase 24 zur Entwicklung der Teststrategie definiert eindeutig zusammenhängende Tests zur Gewährleistung der funktionellen Übereinstimmung, dauerhaften Stabilität und Vollständigkeit der Zielanwendung. Der Benutzer oder Kunde der Zielanwendung stellt Beispielszenarien und Daten samt repräsentativen, operationalen Eingaben und Ausgaben zur Verfügung, die bei der Entwicklung von Regressionstests verwendet werden, die zur Verifizierung der gleichbleibenden Funktionstüchtigkeit der Zielanwendung während der Entwicklungs- und Nutzungsprozesse eingesetzt werden müssen. Die Datenbankdesignphase 26 verwendet in der bevorzugten Ausführungsform Daten-Beziehungs-Modelle, um die wichtigsten Datengruppierungen und Zusammenhänge zu beschreiben, um ein logisches Datenbankmuster herzustellen. Obwohl viele Zielanwendungen die Integration von existierenden Datenbankanwendungen erfordern, bietet die Datenbankdesignphase 26 einen Einblick in die Verwaltung und Wartungsaspekte innerhalb einer normalisierten Datenbank.
  • Die Phase 28 zur Vorbereitung der Anwendung, d.h. die dritte, wichtige Phase innerhalb der Anwendungsentwicklungsstufe 12, sieht eine Phase vor, in der die Zielanwendung aus den Definitionen entwickelt wird, die in der vorhergehenden Phase 16 zur Festlegung der Anforderungen erfasst wurden. In dieser Phase wird die Zielanwendung durch Verwendung der nachstehend beschriebenen Architektur vorbereitet, die die zeitgerechte Erzeugung der Zielanwendung erleichtert. Innerhalb der Anwendungsvorbereitungsphase 28 werden Menüs, Sätze, Transaktionen, Serverprogramme und Analysen erzeugt, die die zugrundeliegenden Transaktionen innerhalb der Zielanwendung unterstützen. Das Konzept der Menüs, Sätze, Transaktionen, Serverprogramme und Analysen wird in der nachfolgenden Beschreibung und den Figuren detailliert erläutert. Die Phase 32 verhaltensbezogener Tätigkeiten wird gleichzeitig mit der Anwendungsvorbereitungsphase 28 ausgeführt. Die Phase 32 der verhaltensbezogenen Tätigkeiten wird beinahe ausschließlich vom Benutzer der Zielanwendung durchgeführt. Innerhalb der Phase 32 der verhaltensbezogenen Tätigkeiten bereitet der Zielanwendungsbenutzer die Umgebung vor, in welcher die Zielanwendung eingesetzt werden soll. Diese Vorbereitung umfaßt die Definition von Benutzerrollen und Verantwortlichkeiten, die Beschaffung von Entwicklungshardware und -software, die Bewertung und Genehmigung auslieferbarer Produkte, die Bestätigung von Unternehmensprozessen, die Herstellung von technischen Infrastrukturen zur Unterstützung der Zielanwendung und den Zugang zur Unternehmenskultur, um festzulegen, wie die Zielanwendung am besten in die Unternehmensfunktionen eingebaut werden kann. Die Projektverwaltungsphase 34, die gleichzeitig mit den vorhergehenden Phasen ausgeführt wird, sieht einen Mechanismus zur Festlegung des Zweckes des Projekts, zur Entwicklung eines Projektstatuts, die Festlegung der Rollen und Verantwortlichkeiten aller Teammitglieder, die Bewertung und Ablaufplanung der Projektaufgaben, die Berichterstattung über den Projektstatus und die Überwachung des Fortschritts und der mit jeder Phase verbundenen Abhängigkeiten vor. Die Stufe 36 zur Nutzung der verpackten Anwendung ist die zweite Stufe innerhalb des Zielanwendungsentwicklungsprozesses 10. Die Stufe 36 zur Nutzung der verpackten Anwendung dient zur Vorbereitung und Nutzung der Zielanwendung zwecks Freigabe. Auf dieser Stufe wird die Zielanwendung "produktisiert", weshalb eine Entwicklungs-Umgebungs-Zielanwendung in eine verpackte Zielanwendung verwandelt wird. Die Stufe 36 zur Nutzung der verpackten Zielanwendung umfaßt eine Aktualisierung der Konzepthandbuchphase 38, eine Aktualisierung der Datenbankdesignphase 40 und eine Aktualisierung der Teststrategie 42.
  • Die Stufe 44 zur Unterstützung der Anwendung sorgt für laufende Unterstützung der Benutzer der produktisierten Zielanwendungen. Es muß angemerkt werden, daß die Stufe 44 zur Unterstützung der Anwendung auf die Anwendungsentwicklungsstufe 12 zurückgreift, um Funktionen und Leistungen aufzunehmen, die aus der Anwendungsunterstützungsstufe 44 abgeleitet sind. Der Prozeß 10 zur Entwicklung der Zielanwendung vereinfacht die Erzeugung von anspruchsvollen Zielanwendungen in einer wesentlich kürzeren Zeitspanne, wenn er unter Verwendung des oben beschriebenen Entwicklungsprozesses zusammen mit der nachstehend beschriebenen Architektur zur Entwicklung von Zielanwendungen entwickelt wird.
  • 2 ist ein vereinfachtes Blockdiagramm auf hoher Ebene, das zur Ausführung der vorliegenden Erfindung verwendet wird. Eine kundenspezifische Zielsoftwareanwendung 100 sieht Leistungen vor, die eine Benutzerschnittstelle und Datenmanipulation von Daten umfaßt, die in einer Anwendungsdatenbank 102 enthalten sind. Komplexe, betriebsnotwendige Unternehmensanwendungen enthalten normalerweise eine große Anzahl von Online-Transaktionen, serverbasierte Transaktionen, Berichte, Analysen und Serverprogramme, die alle jeweils zahlreiche Funktionen bereitstellen. Die Datenbank 102 kann bereits vor der Erzeugung der Zielanwendung 100 vorhanden sein oder aber gleichzeitig mit der Erzeugung der Zielanwendung 100 erzeugt werden. Ein Anwendungs-Editor 104 erleichtert das Prototyping einer neuen Anwendung wie zum Beispiel der Zielanwendung 100 durch Erzeugung einer Spezifikation mit Beschreibungen der Transaktionen, Berichte, Analysen, Serverprogramme und Gruppierungen von "Datensätzen" aus der Datenbank 102, die die Basis für solche Transaktionen, Berichte, Analysen und Serverprogramme bildet. In der vorliegenden Erfindung bedeutet Prototyping, schnell eine vollständige, ablaufende Anwendung mit geringst möglicher Programmierung – sofern erforderlich – zu erstellen. Prototyping impliziert außerdem das Ablaufen oder Ausführen einer Anwendung, das Testen der Anwendung, um ihr korrektes Verhalten zu verifizieren, das Beobachten der Anwendung während der Ausführung und das Feststellen der bevorzugten Funktionen, um diese in einer anschließenden Revision einbauen oder ändern zu können.
  • Die Zielanwendung 100 umfaßt ein Wörterbuch 106, das in Übereinstimmung mit einer universellen Anwendung 108 operiert. Das Wörterbuch 106 wird unter Verwendung eines Anwendungs-Editors 104 erstellt, um die individuellen Merkmale der Zielanwendung 100 zu beschreiben. Das Wörterbuch 106 hat in der bevorzugten Ausführungsform die Form einer Datenbank, die als Ablage zur Speicherung einer Anwendungsspezifikation fungiert. Transaktionen, die die Operationen an Daten beschreiben, operieren an Daten aus einer oder mehreren Datenbanktabellen und stellen dem Endbenutzer eine "Ansicht" von Daten vor. In der bevorzugten Ausführungsform sind Datenansichten in Form von Eltern-, Kind-, Geschwister-, Enkelbeziehungen usw. ohne Einschränkungen hierarchisch strukturiert und bilden Datensätze wie ferner in 3 beschrieben ist. In der bevorzugten Ausführungsform ist der Anwendungs-Editor 104 selbst eine Zielanwendung 100, die rekursiv erzeugt wurde und gemäß der Beschreibung des vorliegenden Abschnitts funktioniert. Die universelle Anwendung 108 umfaßt einen reichhaltigen Satz an Anwendungskomponenten (7), die, wenn sie für eine besondere Anwendung im Wörterbuch 106 beschrieben sind, die Ausführung der Zielanwendung 100 anpassen. Die universelle Anwendung 108 "offenbart" dem Endbenutzer kundenspezifische Zielanwendungen 100, wie sie im Wörterbuch 106 beschrieben sind. Wie in 2 gezeigt wird, kann die universelle Anwendung 108 Client- und Server-Anteile umfassen. Die Partitionierung der Funktionen der universellen Anwendung 108 auf Client- und Server-Anteile variiert je nach der spezifischen Betriebsumgebung der Anwendung 100. Bei Betriebsumgebungen wie zum Beispiel Local Area Networks, bei denen der Netzwerkzugang aufgrund von hohem Verkehrsaufkommen oder unzureichenden Ressourcen verstopft oder limitiert ist, kann die Leistung erhöht werden, wenn zusätzliche Funktionen auf den Server-Anteil verteilt werden, so daß der zusätzliche Datentransfer zwischen den Datenbankressourcen (.z.B. Server) und einem Client (z.B. Endbenutzerarbeitsplatz) erleichtert wird. Es muß außerdem angemerkt werden, daß sowohl der Client- als auch der Serveranteil zusammen mit der Datenbank 102 in derselben physischen Hardware, zum Beispiel einem Computer, koexistieren können. Darüber hinaus kann auch das Wörterbuch 106 zusammen mit der Datenbank 102 in derselben physischen Hardware, z.B. einem Computer, koexistieren. Für das Prototyping einer Anwendung beschreibt der Anwendungsdesigner unter Verwendung des Anwendungs-Editors 104 die Zielanwendung durch Beschreiben der Menüstruktur, die in der Ausführung einer Transaktion mit einer definierbaren Datengruppe endet, die als Datensatz bekannt ist. "Ansichten" der Daten werden dem Endbenutzer über Präsentationsmittel vorgestellt, die als ein oder mehrere "Rahmen" bezeichnet werden. In der vorliegenden Erfindung kann Prototyping naturgemäß ein iterativer Prozeß sein. Durch Vereinfachung der zeitgerechten Erzeugung einer Prototyp-Zielanwendung können Präferenzen bei Verbesserungen schneller festgestellt und bearbeitet werden.
  • Wenn der Anwendungsdesigner beginnt, die Anwendung 100 zu entwerfen, muß der Anwendungsdesigner die antizipierte Anwendungsdatenbank 102 im Wörterbuch 106 unter Verwendung des Anwendungs-Editors 104 beschreiben. Wenn eine bereits existierende Anwendungsdatenbank 102 eingebaut werden soll, unterstützt der Anwendungs-Editor 104 den automatisierten Nachbau der existierenden Datenbankinformationen direkt im Wörterbuch 106. Wenn der Anwendungsdesigner auch die Anwendungsdatenbank 102 als Teil der Zielanwendung 100 konzipiert, verwendet der Anwendungsdesigner den Anwendungs-Editor 104, um die Datenbank zu beschreiben. Nach der Beschreibung im Wörterbuch 106 unterstützt der Anwendungs-Editor 104 die automatisierte Vorwärtskonstruktion der gewünschten Zielanwendungsdatenbank 102 durch Definition und Erzeugung des relationalen Datenbankschemas. 3 stellt ein vereinfachtes Flußdiagramm zur Erzeugung einer kundenspezifischen Zielanwendung gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung dar. Die Zielanwendung 100 (2) wird mit Hilfe des Anwendungs-Editors 104 erzeugt (2), wie ferner detailliert in 5 dargestellt ist. Kurz gesagt, stellt der Anwendungs-Editor 104 eine Umgebung zum Editieren und Erzeugen von kundenspezifischen Anwendungen bereit.
  • Innerhalb des Anwendungs-Editors 104 beginnt das Erzeugen des Anwendungsprozesses 120 mit einem Namensanwendungsschritt 122, der die Zielanwendung eindeutig identifiziert. In der bevorzugten Ausführungsform stellt der Anwendungs-Editor 104 (Figur 5) eine graphische Schnittstelle zur bequemen Ausführung des Namensanwendungsschrittes 122 durch Erzeugen eines separaten Wörterbuches 106 oder eines logischen Bereiches innerhalb eines bestehenden Wörterbuches 106 bereit, in dem Beschreibungen mit Transaktionen und bestimmten Definitionen der Zielanwendung für spätere Änderungen durch den Anwendungs-Editor 104 oder zur späteren Verwendung durch die universelle Anwendung 108 gespeichert werden. Die vorliegende Erfindung schließt Sicherheitsleistungen ein, die einen Verantwortlichkeitsassoziierungsschritt 124 und einen Benutzeridentifizierungsschritt 126 umfassen. Der Veranwortlichkeitsassoziierungsschritt 124 ermöglicht es dem Anwendungsdesigner, den Zugang oder die Ausführungsanteile der Zielanwendung unter zugriffsbeschränkten Benutzerklassen aufzuteilen. So kann zum Beispiel eine Zielanwendung, die auf die Verkaufs- und Marketinganwendung gerichtet ist, definierbare Benutzerverantwortlichkeiten wie Verkäufer, Verkaufsleitung, Unternehmensleitung und Systemadministratoren einschließen. Im Benutzeridentifizierungsschritt 126 wird bestimmten Endbenutzern der Zugang zu bestimmten Verantwortlichkeiten erteilt, so daß die Endbenutzer nicht verwirrt sind, wenn sie später in ihrem Menü eine Teilmenge von Transaktionen sehen, die zum Teil die Privilegien eines bestimmten Benutzers überschreiten können.
  • Außerdem sind die einem bestimmten Benutzer nicht verfügbaren Transaktionen durch Verknüpfung der Transaktionen mit Verantwortlichkeiten diesem Benutzer verborgen.
  • In der vorliegenden Erfindung verwendet die Zielanwendung eine Menüstruktur zum Navigieren zwischen verschiedenen Menüniveaus und Transaktionen innerhalb der Zielanwendung. Der Menüdefinitionsschritt 128 dient zum Definieren und Festlegen der Beziehungen zwischen den Hauptmenüeinträgen der Zielanwendung. Der Untermenüdefinitionsschritt 130 erzeugt Untermenüs oder Kindermenüs in Hauptmenü-Einträgen, wobei Verantwortlichkeiten auf Menüs und Untermenüs abgebildet werden, die dann allen Benutzern innerhalb einer Verantwortlichkeitsklasse in gleicher Weise präsentiert werden. Außerdem können Menüs und Untermenüs in der bevorzugten Ausführungsform während der vorbereitenden Phasen der Anwendungsentwicklung grob definiert werden, wodurch ein hierarchisches Design der Zielanwendung ermöglicht wird. Darüber hinaus ist in der bevorzugten Ausführungsform das Konzept der Verantwortlichkeiten, Menüs und Untermenüs ausreichend abstrakt, so daß verschiedene Mittel optisch darstellen können, was die Technik zur Identifizierung des Geschäftszweckes des Benutzers zur Verwendung der Zielanwendung 104 (Verantwortlichkeit), zur Identifizierung der dem Benutzer zur Verfügung stehenden Funktionen (Menüs) und zur Identifizierung der dem Benutzer zur Verfügung stehenden Unterfunktionen (Untermenüs) umfaßt.
  • Der Datenbankdefinitionsschritt 132 erlaubt es einem Anwendungsdesigner, eine Anwendungsdatenbank zum Gebrauch durch die Zielanwendung zu beschreiben. Der Datenbankdefinitionsschritt 132 erlaubt es dem Benutzer, Tabellenspalten für eine logische Datenbank zu definieren und Spaltennamen sowie weitere datenbankbezogene Details aufzuführen. Einheiten und Attribute in der Anwendungsdatenbank können in logische Gruppen zur Aufnahme in die Tabellen unterteilt werden. In der vorliegenden Erfindung können Anwendungsdatenbanken prototypisiert oder von einem Dialog auf hoher Ebene erzeugt werden und physische Tabellen mit entsprechenden Spalten und Beschränkungen umfassen. Im Datenbankdefinitionsschritt 132 definiert ein Anwendungsdesigner innerhalb eines Anwendungs-Editors 104 (5) die Tabellen innerhalb der Anwendungsdatenbank, die bei der Bildung von Transaktionen und Datensätzen verwendet werden, an denen die Transaktionen operieren sollen. Der Datenbankdefinitionsschritt 132 sorgt ferner für die Abbildung zwischen einer physischen Datenbankebene und einer logischen Abbildungsebene, die zum Definieren von Transaktionen und Sätzen verwendet wird (siehe 8).
  • Der Satzdefinitionsschritt 134 definiert einen Satz oder eine Sammlung von Datenelementen, die in Transaktions-, Berichts-, Analyse- oder Serverprogrammschritten verwendet werden. In der bevorzugten Ausführungsform definiert der Satzerzeugungsschritt 134 einen Satz als eine Liste von Feldern (Spalten) und deren Beziehungen. Zur Erzeugung von Sätzen verwendet der Anwendungsdesigner einen Anwendungs-Editor 104 (2), um Informationen innerhalb des Wörterbuches 106 zu erzeugen, das die Beschreibung der Satzdefinitionen enthält. Der Satzerzeugungsschritt 134 definiert und verfeinert ein Satzanwendungsobjekt im Wörterbuch 106. Der Satzerzeugungsschritt 134 ermöglicht das Definieren von Sätzen, die beim Bilden von Transaktionen, Berichten, Analysen und Serverprogrammen verwendet werden. Durch den Gebrauch von Sätzen kann der Anwendungsdesigner ein hierarchisches Design von Anwendungsobjekten beibehalten, die in Transaktionen, Berichten, Analysen und Serverprogrammen verwendet werden. Ein Satz kann eine oder mehrere Ansichten enthalten, die auf entsprechenden relationalen Datenbanktabellen basieren. Des weiteren kann der Anwendungsdesigner einen Satz durch Basieren dieses Satzes auf einem bereits definierten Satz festlegen, wodurch das Vererbungsprinzip aufgerufen wird. Die Vererbung impliziert, daß alle Attribute eines bestehenden Satzes auf den neuen Satz vererbt werden, ohne daß diese Attribute nochmals angegeben werden müssen. Relationale Datenbanken speichern Daten in Tabellen, die sich zum schnellen Speichern, Aktualisieren und Auffinden eignen. Designer von relationalen Datenbanken drängen auf "Normalisierung" von Tabellen, um den Datenspeicher zu minimieren und die Datenflexibilität zu maximieren. Wenn zum Beispiel eine Bestellung in einer relationalen Datenbank gespeichert wird, werden die Daten für eine einzige Bestellung durch Hinzufügen von Reihen in Mehrfachtabellen, einer Reihe in einer Kopftabelle, Lieferantentabelle, Bestellungs-Einzelposten usw. normalisiert. Da die Daten über Mehrfachtabellen verteilt werden, operiert die Zielanwendung an "Datensätzen", wobei ein Satz aus all den Daten besteht, an denen Operationen vorgenommen werden sollen. Deshalb ist ein Satz eine Assoziierung von Daten in einer für den Anwendungsprozeß geeigneten Form.
  • Unter Bezugnahme auf 4, in der ein vereinfachtes Diagramm zum Abbilden einer Satzebene der vorliegenden Erfindung auf ein physisches Datenbankschema einer Anwendungsdatenbank gezeigt wird, kann man sich Sätze bildlich als Geschäftsobjekt zum Sammeln von Daten vorstellen, die eine definierte Gruppe von Beziehungen besitzen. Ein Lieferantenbestellungssatz 144 ist innerhalb einer Satzebene zum logischen Abbilden von Ebene 206 definiert und umfaßt das Lieferantenkennzeichen, den Lieferantennamen, die Bestellungszeile, Bestellungszeilenbeschreibung und Bestellungsbeschreibung. Die Instanzen 146 und 148 umfassen dieselben Elemente wie der Lieferantenbestellsatz 144, aber die Instanzen 146 und 148 bilden auf andere physische Bestellungen ab. Die vorliegende Erfindung erleichtert deshalb das Definieren von Beziehungen als eine Satzeinheit, wie zum Beispiel Lieferantenbestellung, und ermöglicht es dem Benutzer dann mit Hilfe der Satzbezeichnung zu referenzieren oder abzufragen. So kann ein Benutzer in der vorliegenden Erfindung eine Abfrage nach Bestellung Nr. 1 mit der Architektur der vorliegenden Erfindung unter Referenzierung der Satzdefinition und Herausnehmen der entsprechenden Daten aus der Anwendungsdatenbank 102 vornehmen. Durch Erleichterung der Definition von Beziehungen in Sätzen stellt die vorliegende Erfindung eine Abstraktion einer Benutzerschnittstellenebene 208 von einer physischen Ebene 202 bereit. Zusätzlich erleichtert diese Leistung die Kopplung einer neuen Zielanwendung mit einer geerbten Anwendungsdatenbank. Eine von logisch auf physisch erfolgende Abbildungsebene 204 stellt eine Abbildung von Sätzen auf die physischen Anwendungsdatenbankelemente 162, 164, 166 und 168 durch die Ansichten 152, 154, 156 und 158 bereit. Während ein Satz eine Sammlung von einer oder mehreren Ansichten ist, kennt ein Satz auch die Beziehung zwischen den Ansichten. So kann der Bestellungssatz Ansichten enthalten, die als Bestellungskopf, Bestellungsdetailzeilen, Bestellungsdetailzeilenbeschreibung und Bestellungsbeschreibung bezeichnet werden. Die Ansichten enthalten Aufzeichnungen, die Instanzen von Ansichten darstellen. Im unmittelbaren Beispiel gibt es eine Bestellungskopfaufzeichnung und mehrere Bestellungsdetailzeilen, Bestellungsdetailzeilenbeschreibung und Bestellungsbeschreibungsaufzeichnungen in der Bestellung. Darüber hinaus enthalten Aufzeichnungen und Ansichten Felder. Im unmittelbaren Beispiel kann der Bestellungskopf Felder enthalten wie Menge, Lieferanschrift usw. Beim Suchen von Bestellungen einer bestimmten Firma würde eine Instanz des Satzes Bestellungen für jede Bestellung in der Datenbank zurückgesendet. In der vorliegenden Erfindung erlaubt das Satzkonzept dem Anwendungsdesigner, alle Daten zu definieren, an denen die Zielanwendung möglicherweise operieren wird. Die Datenbankbibliothek 238 (7) erzeugt automatisch eine strukturierte Abfragesprache, die zur Manipulation der Anwendungsdatenbank 102 erforderlich ist (2). Unter erneuter Bezugnahme auf 3 werden im Transaktionsdefinitionsschritt 136 Informationen über eine bestimmte Beziehung oder Sammlung von Informationen erfasst und aufrechterhalten. In der bevorzugten Ausführungsform stellt der Anwendungs-Editor 104 eine graphische Benutzerschnittflächen umgebung zum Konfigurieren und Definieren von Transaktionen bereit. Eine Transaktion kann den Benutzer auffordern, einen Datenwert zur Speicherung in der Datenbank einzugeben, bestehende Daten in einer Datenbank zu manipulieren, Daten aus einer Datenbank aufzusuchen und einem Benutzer zu präsentieren oder die vorhergehenden Funktionen auszuführen, ohne einem Benutzer Informationen zu präsentieren. Darüber hinaus kann eine Transaktion eine Vielfalt an Geschäftsregeln aufrufen, die der Anwendungsentwickler als Schnipsel beschreiben kann (5).
  • Der Berichtdefinitionsschritt 138 sorgt für das Erfassen und Aufrechterhalten von Informationen über einen bestimmten Bericht. In der bevorzugten Ausführungsform stellt der Anwendungs-Editor 104 eine graphische Benutzerschnittstellenumgebung zum Konfigurieren und Definieren der Berichte bereit. Ein Benutzer kann bei Bedarf oder auf einem wiederkehrenden Formular, das in der bevorzugten Ausführungsform in einem Server erzeugt wird, einen Bericht anfordern. Zusätzliche Leistungen der universellen Anwendung 108 ermöglichen es dem Benutzer, einen Bericht an einen bestimmten Drucker direkt auszugeben, einen Bericht an den Client-Arbeitsplatz zur Bewertung auszugeben, den Bericht nach der Bewertung auszudrucken, den Bericht nach der Bewertung zu löschen, den Bericht an andere Benutzer zu senden, eine Berichtanforderungen zusammenzufassen, so daß der Benutzer Mehrfachberichte wie Monatsabschlußberichte mit einer Anforderung erhalten und die Definition einer Berichtgruppe aufrechterhalten kann. Darüber hinaus unterstützen alle Berichtanforderungen flexible Optionen wie zum Beispiel Datenbereiche für die im Bericht enthaltenen Daten. In der bevorzugten Ausführungsform können Berichte auch durch Verwendung einer Beschreibungssprache auf hoher Ebene zur genauen Festlegung der Berichtbeschreibung definiert werden.
  • Der Analysedefinitionsschritt 140 sorgt für das Erfassen und Aufrechterhalten von Informationen über bestimmte Analysen. In der bevorzugten Ausführungsform stellt der Anwendungs-Editor 104 eine graphische Benutzerschnittstellenumgebung zum Konfigurieren und Definieren der Analysen bereit. Eine Analyse fragt wichtige Daten aus einer Anwendungsdatenbank 102 ab und präsentiert diese Daten zur interaktiven Manipulation für die Datenanalyse und Entscheidungsunterstützung. Um die Datenanalyse zu vereinfachen, kann der Benutzer die Daten aufwärts oder abwärts sortieren, sich in den verschiedenen Niveaus zusammenfassender Informationen nach oben oder nach unten bewegen, die Daten abwechslungsweise in jeweils zwei von drei Dimensionen zur Analyse ansehen, aufschließen, um Details hinter allen Summen zu sehen, Mehrfachattribute der Daten ansehen, eine Analyse zwecks direkter optischer Analyse kopieren, Analyseinformationen in eine Industriestandardtabelle übertragen oder die Analyse ausdrucken.
  • Der Serverprogrammdefinitionsschritt 142 sorgt für das Erfassen und Aufrechterhalten von Informationen über ein bestimmtes Serverprogramm. In der bevorzugten Ausführungsform stellt der Anwendungs-Editor 104 eine graphische Benutzerschnittstellenumgebung zum Konfigurieren und Definieren von Serverprogrammen bereit. Ein Serverprogramm läuft normalerweise auf einem Server ab oder führt einige Geschäftsfunktionen interaktiv als Teil einer Transaktion, auf einem Formular oder auf Anfrage an einigen Datensätzen der Anwendungsdatenbank 102 aus.
  • 5 zeigt ein vereinfachtes Blockdiagramm des Anwendungs-Editors 104 mit seinen assoziierten Softwaretransaktionen, die bei der Erzeugung einer kundenspezifischen Zielanwendung gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet werden. In der bevorzugten Ausführungsform ist der Anwendungs-Editor 104 selbst eine Anwendung, die aus einem Wörterbuch 106 (2) und einer universellen Anwendung 108 (2) erzeugt wurde. Der Anwendungs-Editor 104 ist eine Anwendung, die eingesetzt wird, um das Wörterbuch 106 zu erzeugen und aufrechtzuerhalten, das Informationen enthält, die die Zielanwendung beschreiben. Der Anwendungs-Editor 104 erlaubt es dem Anwendungsdesigner, Anwendungsdesigns auf hierarchische Weise einzugeben, so daß noch nicht definierte Anwendungsobjekte in höhere Blöcke referenziert werden können.
  • Wie zuvor kurz angesprochen wurde, erlaubt eine Prototyping-Anwendungs-Transaktion 150, eine neue Anwendung zu benennen oder zu definieren oder eine bestehende Anwendung gemäß einem zuvor definierten Anwendungsnamen zu referenzieren. In einer bevorzugten Ausführungsform loggt sich der Anwendungsdesigner in einen Anwendungs-Editor ein und wählt die Prototyping-Anwendungs-Transaktion 150 über eine menügeführte Schnittstelle. Der Anwendungsdesigner kann einen Namen für eine neue Anwendung bereitstellen oder den Namen einer bestehenden Anwendung für Editierzwecke liefern. Wie zuvor kurz angedeutet wurde, umfaßt die Prototyping-Anwendungs-Transaktion 150 den Schritt des Partitionierens von Verantwortlichkeiten gefolgt von der Zuweisung von verschiedenen, zuvor definierten Verantwortlichkeiten an die Benutzer. Es muß angemerkt werden, daß in der bevorzugten Ausführungsform den Anwendungsdesignern während der Entwicklung alle in der Anwendung definierten Verantwortlichkeiten zugewiesen werden, wodurch die Designer in der Lage sind, alle mit den definierten Verantwortlichkeiten verbundenen Transaktionen zu erstellen und zu testen. In der bevorzugten Ausführungsform wird dem Anwendungsdesigner ein softwaregeführtes Menüfenster präsentiert, um eine Suite von Verantwortlichkeiten einzugeben, die mit der in Entwicklung befindlichen Anwendung verbunden sind. Diese Verantwortlichkeiten können in diesem Fenster geordnet werden, indem jeder Verantwortlichkeit eine laufende Nummer, wie zum Beispiel eine Präsentationsordnungsnummer zugewiesen wird. Die Prototyping-Menü-Transaktion 160 wird vom Anwendungs-Editor 104 eingesetzt, um Menüs und Untermenüs zu definieren, die mit der in Entwicklung befindlichen Anwendung verbunden sind.
  • Die Prototyping-Menü-Transaktion 160 definiert und aktualisiert Menü-Anwendungsobjekte, die sich im Wörterbuch 106 befinden. In der bevorzugten Ausführungsform wird die Prototyping-Menü-Transaktion 160 in einem softwaregeführten Fenster präsentiert, das die Eingabe eines eindeutigen Namens des Menüs aufnimmt, das einer zuvor definierten Verantwortlichkeit beigefügt ist. Ein weiteres Feld im Prototyping-Menü-Transaktion-Fenster macht es möglich, ein Menü mit einem anderen Menü zu assoziieren, das zur Erzeugung von Untermenüs verwendet werden kann. In der bevorzugten Ausführungsform bildet das Eingabemodul auch einen Anteil der Prototyping-Menü-Transaktion 160 und definiert Untermenüs und Transaktionen oder andere Arten von Menüprozessen. In der bevorzugten Ausführungsform ermöglicht das Prototyping-Menü-Eingabefenster die Eingabe des Menünamens gefolgt von einer oder mehreren Menüeingaben zur Benennung der Menüoptionen. Die Reihenfolge dieser Menüoptionen kann auch durch Bereitstellung einer Auftragsnummer oder einer fortlaufenden Nummer zur Präsentation der Menüeingaben gewählt werden. Beispielsweise können auch andere Felder wie Schnelltasten und separate Textfelder zur Bereitstellung von isolierten Kommandozeilen eingebaut werden.
  • Die Prototyping-Datenbank-Transaktion 170 nimmt die Definition und die Verfeinerung eines Tabellenanwendungsobjekts im Wörterbuch 106 auf. Die Prototyping-Datenbank-Transaktion 170 vereinfacht die Definition von Datenbanktabellen, die referenziert werden können, wenn ein Satz definiert wird. In der bevorzugten Ausführungsform wird die Prototyping-Datenbank-Transaktion 170 durch einen Anwendungs-Editor 104 über ein interaktives Fenster präsentiert, in dem verschiedene Attribute einer Tabelle angezeigt und aktualisiert werden können. Außerdem ermöglicht die Prototyping-Datenbank-Transaktion 170 ein hierarchisches Design eines Tabellenanwendungsobjekts über die interaktive Fensterumgebung. Die Prototyping-Datenbank-Transaktion 170 bietet eine geeignete Umgebung zum Definieren einer Tabelle durch das Bereitstellen von Tabellennamen und Beschreiben der Basiskomponenten der Tabelle. Durch diese vereinfachte Interaktion ist ein schnelles Prototyping über eine intuitive Umgebung möglich. Darüber hinaus bietet die Prototyping-Datenbank-Transaktion 170 in der bevorzugten Ausführungsform eine intuitive Umgebung für die Datenbankentwicklung. So vereinfacht beispielsweise ein Spaltenmodul die Beschreibung von Tabellen und Spalten durch Bereitstellung von Dateneingabefeldern wie Tabellenname, laufende Nummer für die Spalten, Spaltenname, Datentyp der Spalte, Länge der Spalte in Anschlägen, Beachtung der Groß- und Kleinschreibung in der Spalte, Dezimalformatierung in numerischen Spalten, Dateneingabe-Mußflag, Zulassen von Flag-Änderungen, Vorgabe von Defaultwerten und Beschreibung des Spaltenwertes. Darüber hinaus machen Hierarchie-Module es möglich, verbundene Daten zur effizienteren Verwendung von Sätzen zu gruppieren. Eine Hierarchie kann eine Satzgruppierung innerhalb einer Datenbank oder eine Gruppierung von Datenbanken umfassen. In der bevorzugten Ausführungsform sieht die Prototyping-Datenbank-Transaktion 170 außerdem eine interaktive Umgebung vor, um sowohl Primär- als auch Fremdschlüssel mit Tabellenspalten zu assoziieren. Darüber hinaus sieht die Prototyping-Datenbank-Transaktion 170 ein Verbindungsmodul vor, um zwei oder mehr logische Tabellen innerhalb der Datenbank zu verknüpfen. Die Prototyping-Datenbank-Transaktion 170 kann auch für die Aufnahme von Zeitbeziehungsinformationen in der Datenbank verwendet werden. Für die Bereitstellung von Zeitbeziehungsinformationen kann der Benutzer Daten in einer Tabelle definieren, die eines oder alle der folgenden Kriterien erfüllen: 1) für einen bestimmten Zeitraum wirksam, 2) für einen Zeitraum gültig, 3) tatsächlich in der Datenbank für einen Zeitraum aufgezeichnet oder 4) mit anderen Daten in anderen Tabellen kombiniert, die auf Datumsbereichen basieren. So kann beispielsweise eine tatsächliche Zeitbeziehung durch Verwendung des Anfangs- und des Enddatums in einer Tabelle definiert werden. In der bevorzugten Ausführungsform umfaßt die Prototyping-Datenbank-Transaktion 170 außerdem ein Tabellenimplementierungsmodul, in dem die physische Implementierung der definierten Datenbanktabelle beschrieben ist.
  • Das Mehrfacheinheiten-Modul besitzt die Fähigkeit, auf der Anwendungsdatenbankebene zu definieren, welche Daten in die Anwendungsdaten für eine Einheit und nicht in die Ansicht einer zweiten Einheit eingeschlossen werden soll. So können Datenelemente sich innerhalb der Hierarchie eines Benutzers befinden und diesem Benutzer Zugang zu den Daten ermöglichen, aber seitens einer zweiten Einheit keinen Zugang zu denselben Daten ermöglichen, da diese Daten in der zweiten Hierarchie nicht vorhanden sind.
  • Die Prototyping-Satz-Transaktion 180 erleichtert das Definieren, Verfeinern und Beschreiben von Sätzen im Wörterbuch 106. Die Prototyping-Satz-Transaktion 180 ermöglicht nützliche Satzdefinitionen zur Bildung von Transaktionen, Rahmen, Berichten, Analysen und Serverprogrammen. In der bevorzugten Ausführungsform können Sätze leicht gemäß der Struktur und dem Inhalt eines Satzes durch Bereitstellen eines Satznamens und Beschreiben der Basiskomponenten definiert werden. Die Prototyping-Satz-Transaktion 180 erleichtert ein schnelles Satzdesign, da sie dem Anwendungsdesigner die Flexibilität bietet, so wenig oder so viele Details wie gewünscht bei einem Satz bereitzustellen. Darüber hinaus erlaubt die Prototyping-Satz-Transaktion 180, Änderungen bei einem Satz durch Bereitstellen eines schnellen Zugangs und durch Verfeinerung der wichtigsten Komponenten des Satzes vorzunehmen.
  • Die Prototyping-Satz-Transaktion 180 umfaßt ferner ein Ansichtsmodul zur Beschreibung einer oder mehrerer Ansichten eines Satzes. In der bevorzugten Ausführungsform fordert eine graphische Schnittstelle zur Beschreibung einer besonderen Ansicht den Anwendungsdesigner auf, den Namen des zu prototypisierenden Satzes, eine fortlaufende Nummer oder Auftragsnummer zur Differenzierung zwischen Eltern- und Kindansichten, einen eindeutigen Ansichtnamen innerhalb eines Satzes, eine Basistabelle zur Bezeichnung einer die Basis der vorliegenden Ansicht bildenden Tabelle, den Namen einer Elternansicht der vorliegenden Ansicht, den Namen einer Referenz, die die vorliegende Ansicht mit einer Elternansicht verbindet, und ein allgemeines Beschreibungsfeld einzugeben. Wenn eine neue Ansicht definiert wird, können alle mit der Ansicht assoziierten Felder und Referenzen aufgeführt werden oder in einer bevorzugten Ausführungsform kann ein Benutzer eine Ansichtsskizzierfunktion benutzen, die automatisch eine Definition der vorliegenden Ansicht skizziert. Die Ansichtsskizzierfunktion erzeugt für jede Spalte und Verbindung, die in der Ansichtsbasistabelle definiert ist, ein Feld und eine Referenz. Beim Definieren der Felder und Referenzen bildet die Prototyping-Satz-Transaktion 180 Hypothesen darüber, wie die Felder und Referenzen definiert werden sollten und zeigt automatisch die neuen Felder und Referenzen an, die anschließend editiert werden können. Die Prototyping-Satz-Transaktion 180 umfaßt ferner ein Bedingungsmodul zur Aufnahme der Definition eines Feldes mit unterschiedlichen Berechnungsdefinitionen, die verwendet werden, wenn besondere Bedingungen erfüllt sind. So kann beispielsweise eine Bedingung eingegeben werden, in der festgelegt wird, wann der "Berechnungs"-Wert auf das Feld angewendet werden soll; wenn beispielsweise der Bedingungsausdruck als wahr beurteilt wird, wird das Feld auf den Wert des "Berechnungs"-Ausdrucks gesetzt. In der bevorzugten Ausführungsform wird der Defaultwert, wenn eine Bedingung nicht festgelegt ist, in dem Feld eingesetzt, wenn alle anderen Bedingungen als falsch bewertet werden. Die Prototyping-Satz-Transaktion 180 umfaßt ferner ein Referenzmodul zum Definieren von verbindungsähnlichen Beziehungen, allerdings eher auf der Satzebene als auf der logischen Tabellenebene einer Verbindung.
  • Die Prototyping-Transaktionen-Transaktion 190 definiert Transaktionen, die die Sätze verwenden, die zuvor definiert wurden. Mit dem Anwendungs-Editor 104 kann ein Satz definiert und eine diesen Satz verwendende Transaktion beschrieben werden. In der vorliegenden Erfindung erleichtert die Prototyping-Transaktionen-Transaktion 190 das Beschreiben von Rahmen, Feldanzeigeattributen und Feldverhalten. In der bevorzugten Ausführungsform sieht die Prototyping-Transaktionen-Transaktion 190 eine interaktive Schnittstelle zum Beschreiben einer Transaktion durch Definieren eines Anfangszustands und Bereitstellen von Transaktionsattributen für Felder im ausgewählten Satz vor. Solche Transaktionen können auch verwendet werden, um einen oder mehrere Rahmen für die vorliegende Transaktion zu definieren. Wenn Rahmen prototypisiert werden, zeigt der Anwendungs-Editor 104 die Felder in Rahmen unter Verwendung von Defaultrahmendefinitionen an. Obwohl die Prototyping-Transaktionen-Transaktion 190 das Anzeigen und Aktualisieren von verschiedenen Attributen einer Transaktion erleichtert, können auch andere Leistungen verwendet werden, um wichtigere Verfeinerungen schnell einzugliedern. Die Prototyping-Transaktionen-Transaktion 190 ermöglicht außerdem die Anzeige einer ganzen Transaktion.
  • Ein Aktionsmodul definiert den Anteil von Transaktionen, die ausgeführt werden sollen, wie beispielsweise Aufgaben oder Logiksätze, die zu bestimmten Zeiten innerhalb einer Transaktion ausgeführt werden können. Ein Tastenmodul aktiviert Aktionen, die vom Benutzer gestartet werden können, während andere Aktionen, die nicht vom Benutzer gestartet werden können, durch einen Funktionsaufruf innerhalb der Transaktion aktiviert werden.
  • Die Prototyping-Transaktionen-Transaktion 190 enthält Rahmendesign-Defaultwerte zum Erzeugen von Transaktionsrahmen und Anzeigen von Feldern. Durch Verwendung der Defaulttransaktionsrahmenkonventionen bieten die Transaktionsrahmen dem Anwendungsbenutzer innerhalb einer Anwendung eine einheitliche "look-and-feel"-Umgebung. Die Prototyping-Transaktionen-Transaktion 190 vereinfacht Änderungen der Defaultrahmenkonfiguration durch Zulassen von Änderungen, die im Wörterbuch 106 aufgezeichnet und gespeichert werden, um von einer universellen Anwendung 108 benutzt werden zu können (2). Darüber hinaus ist ein Bereich eine benannte Sammlung von Feldern, die das Gruppieren von zugehörigen Daten zur Referenzierung und Manipulation ermöglichen.
  • Die Prototyping-Transaktionen-Transaktion 190 umfaßt ein Smart-gicks-Modul, um dem Benutzer eine Domäne gültiger Werte zu präsentieren, die mit dem fraglichen Feld assoziiert sind, das aus der Smart-Code-Tabelle referenziert ist (siehe nachstehend unter Prototyping-Smart-Code-Transaktion 195). Wenn beispielsweise das in einer Transaktion zu konfigurierende Feld einem Residenzzustand entspricht, referenziert das Smartpick-Modul eine Smart-Code-Tabelle und sucht nach der Liste gültiger Werte, die in der Smart-Code-Tabelle eingeschränkt sind. Der Endbenutzer ist gezwungen, im fraglichen Feld einen Wert einzugeben, der innerhalb der Domäne von gültigen Werten vorkommt, wie sie vom Smart-pick-Modul präsentiert werden. Ein Validierungsmodul definiert die Regeln für Validierungsfelder, und zwar entweder einzeln oder als eine Gruppe von Feldern.
  • Die Prototyping-Smart-Code-Transaktion 195 vereinfacht das Hinzufügen einer neuen Smart-Code-Transaktion, die einen Smart-Code-Satz erzeugt und einen neuen Smart-pick durch Verwendung des Smart-Code-Satzes definieren kann. Durch Verwendung von Smart-Codes können Defaultwerte als Präferenzen festgelegt und bei der Anwendungserzeugung verwendet werden. Smart-Codes sehen eine zentralisierte Position für Wertelisten in einer kundenspezifischen Zielanwendung vor. Smart-Codes kann man sich allgemein als Referenzdaten vorstellen. So weiß der Anwendungsdesigner beispielsweise, daß eines der Felder in einer Transaktion sich in einem Residenzzustand befindet. Eine Folge von Wahlmöglichkeiten kann programmiert werden und die Einschränkungen für die Domäne eines gültigen Wertes können für eine bestimmte Spalte in einer Tabelle vorsehen werden. Der Anwendungsprogrammierer begrenzt hiermit die Domäne von gültigen Wahlmöglichkeiten, die der Endbenutzer in die Datenbank eingeben kann. Die Bericht-Transaktion 200 sieht ein automatisches Verfahren zum Erzeugen von Berichtunterlagen vor. Der Anwendungsdesigner legt die Felder und Informationsdaten fest, die in den ausgegebenen Bericht aufgenommen werden sollen und kodiert diese Felder innerhalb der Berichtspezifikation. Berichte können automatisch aus Sätzen erzeugt werden, die zuvor in der Prototyping-Satz-Transaktion 180 festgelegt wurden. Die Analyse-Transaktion 175 sieht ein hierarchisches Verfahren zum Analysieren von Datensätzen im Bereich der vorliegenden Erfindung vor. Die Daten können anfangs in einer hochzusammengefassten Form präsentiert werden, die zunehmend stärker detaillierte Datenebenen besitzt. So können Daten beispielsweise in Jahresform präsentiert werden, wobei dieses Format in vierteljährliche Datendarstellungen aufgefächert oder zerlegt werden kann. Vierteljährliche Datendarstellungen können weiter in monatliche Summen innerhalb des jeweiligen Quartals zerlegt werden. Diese monatlichen Summen können weiter in wöchentliche und tägliche Summen zerlegt werden, bis einzelne Einträge oder Geschäftstransaktionen aufgeführt werden. Ein solches Analysewerkzeug ermöglicht es dem Benutzer, Tendenzen und Anomalien auf zeitsparende Weise zu beurteilen.
  • Die Server-Transaktion 185 sieht Mittel zum Partitionieren von Anteilen einer Anwendung vor, die möglicherweise eine eindeutige Verarbeitung von rechenintensiven Anteilen oder komplexen algorithmischen Anteilen in ein diskretes Serverprogramm zur Ausführung dieser Logik erfordert. Traditionelle Batch-Programme ähneln den Server-Programmen der vorliegenden Erfindung darin, daß es sich bei beiden um eigenständige Programme zum Ausführen bestimmter Programmfunktionen handelt. Allerdings sind in der vorliegenden Erfindung die meisten Server-Programme von den bestehenden Server-Programmen aus einer Komponenten-Server-Bibliothek entworfen oder nach diesen bearbeitet. In der vorliegenden Erfindung werden die Server-Programme normalerweise als Konsequenz einer Transaktionstätigkeit aufgerufen, die entweder durch eine Endbenutzer-Aktion oder als Ergebnis der elektronischen Ankunft einer Transaktion von einer anderen Anwendung oder einem Informationsprovider eintreten.
  • 6 stellt ein vereinfachtes strukturelles Blockdiagramm einer Wörterbuch-Datenbank gemäß einer Ausführung der vorliegenden Erfindung dar. Wie oben kurz erläutert wurde, ist das Wörterbuch 106 in der bevorzugten Ausführungsform eine relationale Datenbank bestehend aus der Datenbeschreibung von Struktur, Komponenten, Logik und Verhalten der Zielanwendung sowie den Anwendungsobjekten, die zur Zielanwendung beitragen. Wenn die universelle Anwendung 108 (2) die Ausführung startet, referenziert die universelle Anwendung 108 das Wörterbuch 106, um die zuvor erwähnten, auf die kundenspezifische Natur der Zielanwendung bezogenen Beschreibungen abzufragen. Das Wörterbuch 106 ist in vier Hauptkategorien von Objekten eingeteilt: (i) gemeinsam benutzte Objekte, die auch als Componentware bezeichnet werden, (ii) eindeutige Zielanwendungsobjekte, (iii) Umgebungsobjekte und (iv) Standardobjekte. Die gemeinsam benutzten Objekte 410 umfassen Unter-Anwendungen, die wieder verwendet oder in Anwendungen eingegliedert werden können, die gebräuchliche Funktionen umfassen. Zu den wichtigen Objekten zählen das Buchhaltungsobjekt 412, das einen Hauptbuch-Eintragerzeuger bereitstellt, der in jeder Anwendungsdatenbank operieren kann, auch wenn er nicht als mit der Zielanwendung gleichlaufend vorgesehen ist. Auch das Fakturierungsobjekt 414 stellt die gemeinsam genutzte Fähigkeit bereit, Rechnungen und Gebühren zu erzeugen und zu kalkulieren. Das Fakturierungsobjekt 414 stellt ein elementareres Objekt bereit, aus dem ein umfassenderes Verständnis der gemeinsam genutzten Objekte gewonnen werden kann. So besteht beispielsweise eine der Funktionen, die ein Allzweck-Fakturierungsobjekt erfüllt, aus der Erzeugung von Rechnungen. Zur Rechnungserzeugung ist es erforderlich, Daten zu sammeln, diese in Rechnungen zu kompilieren und ein Event zu definieren, das den Start des Fakturierungsprozesses veranlaßt. Beim Fakturierungsobjekt 414 besteht ein Teil des Objekts aus der Beschreibung der innerhalb der Anwendungsdatenbank zu sammelnden Daten und aus einer Beschreibung des Events, das das Fakturierungsobjekt ansteuert. Es ist anzumerken, daß alle wichtigen gemeinsam benutzten Objekte gleichzeitig operieren. Wenn das Fakturierungsobjekt ausgeführt wird, wird das Fakturierungsdatum in seiner eigenen Ursprungs- oder Fakturierungsdatenbank gesammelt, die abwechselnd verwendet wird, um die Rechnungen zu erzeugen. Das Arbeitsablauf-Objekt 416 ist noch ein weiteres wichtiges Objekt, das Routing-Anwendungen für die Datenverarbeitung bereitstellt. Wenn ein Verarbeitungsprozeß gestartet wird, kann das Arbeitsablauf-Objekt 416 die eingegebenen Daten beispielsweise einem Komplex von Bewertungen unterwerfen, um die anschließende Verarbeitung der eingegebenen Daten festzulegen. So können im Versicherungswesen beim Verarbeiten einer Versicherungsanwendung beispielsweise die Versicherungsanwendungsinformationen gemäß dem Arbeitsablauf-Objekt eingegeben werden, das die Ablaufsteuerung zur Bewertung der eingegebenen Informationen enthält. Zuerst wird vielleicht die Höhe der erforderlichen Deckung bewertet, gefolgt von der Bewertung des Kredits der Person, die die Police anfordert. Darüber hinaus können auch mit der Police assoziierte Abzweigungen festgelegt werden, um einen normalerweise nicht interaktiven Datenfluß zu vervollständigen.
  • Weniger wichtige Objekte innerhalb der gemeinsam benutzten Objekte 410 umfassen das Kalender-Objekt 418 zum Eingliedern der Zeit und zur Zeiteinteilung in der Zielanwendung. Das Kalender-Objekt 418 bietet ferner verschiedene Verfahren zum Teilen und Präsentieren der in die Zielanwendung einzugliedernden Zeit. Das geographische Objekt 420 sieht eine vorab festgelegte Struktur zum eindeutigen Definieren der geographischen Anteile der Zielanwendung vor. Das Planungsobjekt 422 stellt die Funktion für die Planung von Aktivitäten wie den Zeitplangeber für zeitaktivierte Tätigkeiten bereit. Das Maßeinheiten-Objekt 424 stellt die Fähigkeit bereit, verschiedene Maßeinheiten für verschiedene Zwecke zu definieren, wovon einige absolute Maßeinheiten, z.B. Dutzend, andere hingegen relative Maßeinheiten sein können.
  • Die eindeutige Zielanwendungsobjekt-Kategorie 430 von Wörterbuch-Objekten umfaßt wichtige und weniger wichtige, von der Zielanwendung verwendbare Objekte. Das Analyse-Objekt 432 sieht ein Verfahren zum Aufschließen oder Zerlegen einer Präsentation von Daten vor, wie sie oben in der Analyse 175 von 5 erläutert wurde. Wenn eine Analyse im Wörterbuch 106 definiert ist, ist eine Dimension der Analyse entsprechend in Reihen, Spalten und Seiten definiert, die die Elemente umfassen, die in jedem ihrer Schnittpunkte berechnet werden.
  • Weitere wichtige eindeutige Zielanwendungsobjekte umfassen das Anwendungsobjekt 434, das eine Konfiguration der Kennzeichnung für die Zielanwendung und für andere Anwendungen vorsieht, die von der Zielanwendung verwendet werden können. Das Hierarchieobjekt 436 sieht Funktionen zum Definieren von hierarchischen Beziehungen und von Elementen wie Eltern-Kind-Beziehungen vor, die zur Hierarchie beitragen. Das logische Tabellen-Objekt 438 sieht einen Speicherplatz für die Speicherung des verwendeten Anwendungsdatenbankschemas vor. Das Menü-Objekt 440 sieht Menünamen, einschließlich einer Liste von Untermenüs und Transaktionen vor, die mit den genannten Menüs assoziiert sind. Das Verantwortlichkeiten-Objekt 442 sieht das Partitionieren der Menüs in der Zielanwendung vor. Wenn eine Verantwortlichkeit vom Anwendungs-Editor definiert wurde, entspricht die Verantwortlichkeit der Spitze eines Menü-Baumes mit Untermenüs und Transaktionen. Darüber hinaus ist die Anwendungsdatenbank dazu bestimmt, festzulegen, in welcher Anwendungsdatenbank ein Benutzer sich anmelden muß. Das Satz-Objekt 444 sieht die Speicherung der definierten Satzelemente vor, die im Prototyp-Satz 180 aus 5 definiert sind. Das Transaktionsobjekt 446 sieht die Speicherung von definierenden Anzeigeinformationen, wie z.B. von Bereichen und Rahmen vor, die sich auf eine Transaktion beziehen. Weniger wichtige Objekte innerhalb der eindeutigen Zielanwendungsobjekte 430 umfassen das Funktionsobjekt 448 zur Bereitstellung von Funktionen, die im allgemeinen Ablaufparameter umfassen. In der vorliegenden Erfindung enthält das Funktionsobjekt 448 eine übergeordnete Sprachprogrammierung statt einer untergeordneten traditionellen Quellcodeprogrammierung. Das Job-Objekt 450 umfaßt vordefinierte Aufgaben, die aufgerufen werden können, wie beispielsweise Berichte oder andere nicht vom Benutzer gestartete Prozesse. Das Bericht-Objekt 452 beschreibt das Format des auf Anfrage zu erzeugenden Berichts. Die Bericht-Objekte 452 sind wie viele andere Objekte in einer übergeordneten, erfindungsimmanenten Programmiersprache geschrieben. Das Reihungsobjekt 454 wird von logischen Tabellen als Konstrukt verwendet, das in einer Datenbank üblicherweise als Ersatzschlüssel bezeichnet wird. Das Smart-Code-Objekt 456 sieht eine Sammlung von üblicherweise kryptischen Werten vor, die einem anzuzeigenden, benutzerfreundlicheren Wert entsprechen. Das Smart-Field-Objekt 458 sieht Definitionen von strukturellen Validierungen von Feldern innerhalb einer Datenbank vor. Das Schnipsel-Objekt 460 sieht funktionsartige Fähigkeiten vor, die als Teil eines Verarbeitungsabflusses integriert und initiiert werden können. Der Schnipsel ist unbenannt, das heißt, er wird nicht durch Referenz zu seinem Bezeichner aufgerufen, sondern ist inline und kann daher innerhalb des Ausführungsprozesses ausgeführt werden. Das Transformationsobjekt 462 sieht die Fähigkeit vor, ein Datenstück einem anderen zu beschreiben sowie Geschäftsanwendungsdaten, beispielsweise auf Fakturierungsdaten und ferner auf Fakturierungsevents abzubilden. Das Trips-Objekt 464 ermöglicht es, Daten von einer Datenbank zu einer anderen mit Hilfe des Datenbewegers 230 aus 7 zu bewegen.
  • Das Umgebungsobjekt 470 als Kategorie von Wörterbuchobjekten umfaßt wichtige und weniger wichtige Objekte, die in der Zielanwendung verwendet werden können. Umgebungsobjekte sind Objekte, die eine Zielanwendung auf eine bestimmte Umgebung zuschneiden. Das Geschäftseinheiten-Objekt 472 sieht die Fähigkeit vor, Daten durch Geschäftseinheiten in der Anwendungsdefinition durch Definieren der Geschäftseinheiten und Verbinden derselben mit der Zielanwendung zu teilen. Das Konfigurationsobjekt 474 sieht eine benannte Sammlung von Wörterbuchobjekten vor. Das Konfigurationsobjekt 474 verhält sich ähnlich wie herkömmliche Konfigurationsdateien, die in Personal Computerumgebungen üblich sind. Das Datenbank-Objekt 476 sieht die Plazierung des Namens der Anwendungsdatenbank vor, die von der Zielanwendung referenziert wird. Das Endbenutzer-Objekt 478 sieht das Auflisten von individuellen Benutzern der Zielanwendung vor. Das Host-Objekt 480 identifiziert die Art von Hardware, die die entsprechende Zielsoftware aufnimmt. Hosts können Kunden- und Server-Hosts umfassen. Es ist unerläßlich, die Host-Adresse einzugliedern, um Funktionen, wie beispielsweise Trips, zu unterstützen. Das Netzwerkobjekt 482 sieht eine Beschreibung der Abhängigkeiten zwischen den Hosts vor. Das Präferenzeinstellungs-Objekt 484 sieht veränderbare Defaultwerte vor, um Daten einem Benutzer zu präsentieren. Beispiele hierfür sind Tageszeiten und Anzeigepräferenzen. Das Sicherheit-durch-Wert-Objekt 486 sieht Sicherheiten für bestimmte Datensätze durch Zugangsbeschränkung für andere Benutzer vor. Beispielsweise verhindert der Sicherheit-durch-Wert-Schutz in einem Verkaufsauftragsystem, daß ein Verkäufer in die Kundenaufträge eines anderen Verkäufers oder in andere damit zusammenhängende Daten Einsicht nimmt. Diese Fähigkeit ist strukturimmanent und die Einstellung der Beschränkungen hat keinen Einfluß auf das Anwendungsdesign. Eine solche Sicherheit wird der Datenstruktur beim Design auferlegt und erlaubt im angeführten Beispiel dem Verkäufer nur die Daten einzusehen, die mit den Kunden des Verkäufers verbunden sind. Das Summenobjekt 488 ermöglicht es, Ergebnisse von Datensammlungen wie Summen der Verkäufe eines Monats oder eines Jahres einmal zu erzeugen und für einen späteren Zugang durch andere zu speichern, ohne die Summe der gewünschten Datensammlungen erneut berechnen zu müssen. Zusätzliche Funktionen innerhalb des Summenobjekts 488 verlangen, daß Summen beispielsweise ungültig gemacht werden, wenn sich Datenwerte innerhalb der Sammlung ändern. Weniger wichtige Objekte innerhalb der Umgebungsobjekte 470 umfassen das Client-Vorprozessierungsobjekt 490, das Regeln vorsieht, um die Client-Server-Umgebung schneller und effizienter beim Verarbeiten von großen Datenmengen zu machen. Deshalb können Summenwerte, die von einem Server häufig über das Netz abgefragt werden, im Cachespeicher des Client-Site lokal gespeichert und im Server-Site aktualisiert werden, wenn die Werte sich ändern. Das Communities-Objekt 492 stellt eine Namenssammlung von Hosts für das Datenrouting in einer Netzwerkinstallation bereit. Das Dateien-Objekt 494 sieht einen Mechanismus zum Speichern der Betriebssystemdateien im Wörterbuch vor, um diese beispielsweise über Trips 464 an andere Systeme für andere allgemeine Zwecke zu senden. Ein Jobstream-Objekt 496 stellt eine Namenssammlung von Jobs bereit, die über eine Einzelabfrage ausgeführt werden können. Wenn beispielsweise ein Jobstream definiert ist, wird die Job-Ordnung und die Beziehung zwischen den Jobs (z.B. Zeit- und Datenabhängigkeiten) festgelegt. Das Reise-Objekt 498 legt eine Liste von auszuführenden Trips 464 fest und kann auch Zeitaktivierungsinformationen umfassen, um festzulegen, wann die Reise aufgerufen werden soll. Das vorprozessierte Datenobjekt 500 ähnelt der Client-Vorprozessierung 490, allerdings entstehen vorprozessierte Daten 500 im Server-Anteil der Konfiguration, wo der Server häufige Daten – ähnlich wie beim Cache-Speichern – im vorhinein abrufen kann, um sie dem abfragenden Client rascher zur Verfügung stellen zu können. Das Berichtgruppen-Objekt 502 sieht ein Auflisten einer Sammlung von Berichten vor, die als Gruppe ausgeführt werden. Durch Verwendung des Berichtgruppen-Objekts 502 können mit einem Einzelberichtsbefehl Mehrfachberichte erzeugt werden. Das Abfrage-Objekt 504 sieht ein Auflisten der tatsächlichen Job-, Jobstream- oder Berichtgruppen-Aufrufe vor. So kann beispielsweise eine Berichtgruppe definiert und 25mal ausgeführt werden, wobei jede Ausführung eine Abfrage darstellt, die durch eine andere gestartet wird. Das Abfrage-Objekt 504 zeichnet zugehörige Informationen auf, z.B. wann die Abfrage gestartet wurde, ob sie erfolgreich abgeschlossen wurde, wann sie abgeschlossen wurde und welche Ressourcen eingesetzt wurden.
  • Die Standardobjektkategorie 510 von Wörterbuchobjekten umfaßt wichtige und weniger wichtige Objekte, die in der Zielanwendung verwendet werden. Wesentliche Objekte umfassen Präferenz-Objekte 512, die ein Auflisten der in der Zielanwendung eingegliederten Präferenzen vorsehen. Eine zuvor festgelegte Form von Hauptkassenbüchern ist ein solches Beispiel für Präferenzen. Ein System-Objekt 514 sieht das Speichern von Variablen vor, die vom System eingestellt werden, wie beispielsweise Tageszeit und -datum, Systembenutzer, Veranwortlichkeiten-Name und Sessionsnummer. Diese Werte werden von der Umgebung während der Laufzeit geladen. Das Nachrichten-Objekt 516 strukturiert Daten, die zwischen den Verarbeitungen durchlaufen. So kann beispielsweise eine Dateneingabe (z.B. die Datenquelle 618 aus 10) neue Lagerverkaufspreise vorsehen, die in der Anwendungsdatenbank angewendet werden, die mit der Zielanwendung assoziiert ist. Die Preisdaten werden durch das Nachrichten-Objekt 516 in eine Nachrichtenstruktur umgewandelt, die ein standardisiertes Mittel zur Kommunikation zwischen den Verarbeitungen darstellt. Nachdem die Nachricht übermittelt wurde, weiß die Empfangsverarbeitung, wie die Nachricht dekodiert und verarbeitet werden muß, da sie im Nachrichtenformat präsentiert wurde.
  • Weniger wichtige Objekte innerhalb der Standard-Objekte 510 umfassen das Aktionsart-Objekt 518, das ein Definieren von Standardaktionen vorsieht. Es muß angemerkt werden, daß Transaktionen Aktionen aufrufen können, die unter eine begrenzte Anzahl von Aktionsarten fallen. Diese Standardaktionsarten können bei Mehrfachzielanwendungen üblich sein. Das Implementierungsart-Objekt 520 sieht einen Deskriptor für die Art und die Version der Anwendungdatenbank software vor, die in der Zielanwendung verwendet wird. Beispiele für Datenbankarten und -versionen umfassen unter anderem Oracle 7, Oracle 8 und Sybase System 11. Das Sprachenobjekt 511 sieht einen Deskriptor für die Benutzerschnittstellen-Sprache vor, die in der vorliegenden Konfiguration der Zielanwendung verwendet wird. Das Konstantenobjekt 524 sieht das Auflisten von zuvor definierten Buchstabenwerten vor, die in der Zielanwendung verwendet werden. Das Tastenart-Objekt 526 sieht das Auflisten von ausgewählten bevorzugten Tastenarten vor, die von der Rahmenerstellung angezeigt werden. Das Transaktionsstil-Objekt 528 sieht das Definieren der optischen Präsentation einer Transaktion vor. Transaktionen können so definiert werden, daß sie einen bestimmten Stil enthalten. Das Anzeigestil-Objekt 530 sieht Definitionen eines Stils vor, in dem Daten, wie z.B. Optionslisten oder Listen mit Kästchen zum Markieren der getroffenen Wahl, präsentiert werden. Das Gerätemarken-Objekt 532 definiert die Hardware, mit der die Zielanwendung ausgeführt wird, während das Betriebssystem-Objekt 534 das Betriebssystem definiert, mit dem die Zielanwendung ausgeführt wird.
  • 7 zeigt ein vereinfachtes Blockdiagramm von Software-Komponenten und Standards in der universellen Anwendung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Die universelle Anwendung 108 bildet eine ausführbare Infrastruktur zur Ausführung von wieder verwendbaren und anpassbaren Verarbeitungen bei sukzessiven Zielanwendungen.
  • Das Analysatormodul 224 sieht ein Analysewerkzeug zur Bewertung der Inhalte eines Satzes durch Bereitstellung einer tabellenartigen Schnittstelle vor. Wenn der Anwendungdesigner die Analysatortransaktion 224 startet, fragt die Analysatortransaktion 224 Daten ab, die einem Suchkriterium entsprechen, und erstellt ein Analyseblatt, das in der bevorzugten Ausführungsform eine Reihe für jeden verschiedenen, in ein Reihenfeld zurückgeführten Wert und eine Spalte für jeden verschiedenen, in ein Spaltenfeld zurückgeführten Wert enthält.
  • Das Selbsttestmodul 226 sieht eine interaktive Möglichkeit zum automatischen Testen der Zielanwendungen durch Simulation von Interaktionen wie z.B. Tastenanschläge und Mouseklicks vor, die die Interaktion durch einen Endbenutzer repräsentieren. Bei Ausführung des Selbsttestmoduls 226 erzeugt ein interner Berichter einen Bericht, der jede simulierte Endbenutzer-Interaktion mit der Zielanwendung dokumentiert, zusätzlich zu jeder Antwort, die von der Zielanwendung als Antwort auf eine Benutzerdateneingabe gestartet wurde. In der bevorzugten Ausführungsform umfaßt das Selbsttestmodul 226 ferner ein Dienstprogramm, das automatisch die laufenden Testergebnisse mit bestätigten Testergebnissen vergleicht und einen Bericht erstellt, in dem die Unterschiede aufgeführt sind. Das Selbsttestmodul 226 sieht das automatische Testen vor und trägt dadurch zu kürzeren Softwareentwicklungszyklen und zu erheblich verbesserter Qualität der Anwendung im Vergleich zum gegenwärtigen Brauch in der Industrie bei.
  • Das Berichtermodul 228 vereinfacht die Erzeugung von datenbankbasierten Berichten. In der vorliegenden Ausführungsform interpretiert das Berichtermodul 228 eine Beschreibung von Berichten in höherer Programmiersprache, fragt dementsprechend Daten ab und erzeugt Berichte wie beschrieben. Wie z.B. mit der Entwicklung von Rahmen, entwirft das Berichtermodul 228 automatisch Berichte von einer Berichtbeschreibung und sieht ein automatisches Formatieren vor, wobei es sich auf interne Defaultparameter des Berichtermoduls 228 stützt. Allerdings akzeptiert das Berichtermodul 228 Formatierungsanweisungen, um die bevorzugte Verschiebung von Datenelementen innerhalb eines Berichts zu ermöglichen. Anders als die übrigen Datenbankberichterzeuger, erzeugt das Berichtermodul 228 Berichte von Ablaufdatenwerten, die in der Anwendungsdatenbank lokalisiert sind – im Gegensatz zu potentiell veralteten, aus Berichten hervorgehenden Datenwerten, die aus gelagerten Daten erzeugt werden. Darüber hinaus verwendet das Berichtermodul 228 logische Datenbankdefinitionen, die im Wörterbuch 106 enthalten sind (3), im Gegensatz zu physischen Datenbankdefinitionen, die häufig obskur sind. Da physische Datenbankimplementierungen sich entwickeln können, bleiben Berichte, die durch das Berichtermodul 228 erzeugt werden, konsistent mit den im Wörterbuch 106 residenten Datendefinitionen.
  • Das Datenbewegermodul 230 vereinfacht das Bewegen von Daten von einer Datenbank zur anderen und das Bewegen von datenbankfremden Dateien von einem Knoten zum anderen. Aufgrund der Komplexität von Datenbanksystemen erfordert das Bewegen oder das Wandern von Daten von einem Computer zum anderen, wie z.B. zu Altsystemen hin oder weg, im allgemeinen ein ausgeklügeltes manuelles Programmieren. Das Datenbewegermodul 230 vereinfacht das Bewegen von Daten über verschiedene Datenbankdesigns, heterogene Datenbanken, Zugangsverfahren oder Dateiensysteme innerhalb eines Netzwerks. Das Datenbewegermodul 230 vereinfacht das Vergleichen, Sammeln und Konsolidieren von Daten, die Datenreplikation und verschiedene andere datenbewegungsbezogene Funktionen.
  • Das Client-Modul 232 ist ein konfigurierbarer, datengesteuerter, client-basierter Transaktionsprozessor, der Informationen über Transaktionen liest, um die Transaktionsverarbeitung und die hiermit verknüpften Benutzerschnittstellenrahmen zu verwalten. Das Client-Modul 232 bewertet die Informationen über die Transaktionen und die ihnen zugrundeliegenden Sätze und legt das optimale Verfahren zur Erzeugung des SQL-Codes zur Koppelung mit der Anwendungsdatenbank fest. In einer Client-Server-Konfiguration koppelt das Client-Modul 232 an einen Server mit Anteilen der universellen Anwendung an, die dort lokalisiert sind, durch Erzeugung von Nachrichten zur Übertragung zwischen Client- und Server-Anteil der universellen Anwendungen. Das Rahmenbaumodul 234, das Rahmenstandards und Inhaltsbeschreibungen aus dem Wörterbuch 106 verwendet, entwirft Präsentationsfenster oder -rahmen für den Endbenutzer während der Ausführung der Zielanwendung. Moderne, hochentwickelte Zielanwendungen müssen intuitiv, konsistent und leicht benutzbar sein, um die Kundenerwartungen zu erfüllen. Die Zielanwendungen verwenden graphische Benutzerschnittstellen, um diesen Erwartungen zu entsprechen. In der vorliegenden Erfindung umfassen die Rahmen Fenster, Eingabefelder oder Bildschirme, die für die Wahrnehmung des Endbenutzers erzeugt werden. Aufgrund der großen Anzahl von Rahmen in komplexen Anwendungen speichert die vorliegende Erfindung eine Beschreibung des Rahmens und erzeugt oder baut den Rahmen mit Hilfe des Rahmenbaumoduls 234, anstatt eine Reihe von zuvor gezeichneten Rahmen zu speichern. Da das vorliegende System Rahmen aus einer Beschreibung innerhalb des Wörterbuches 106 zusammenbaut, besitzen nachfolgende Rahmen darüber hinaus ein konsistentes Rahmenthema statt stilistisch unterschiedlicher Rahmen, wie dies häufig geschieht, wenn Rahmen von verschiedenen Anwendungsprogrammierern gezeichnet oder erzeugt werden.
  • Das Verwaltermodul 236 ist ein konfigurierbarer, datengesteuerter, serverbasierter Planer, der die Ausführung der Serveraufgaben aufruft und verwaltet. Eine Aufgabe, wie sie in der vorliegenden Erfindung definiert wird, ist ein autonomes Serverprogramm oder Unterprogramm, das das Verwaltermodul 236 ausführt. Der Anwendungsdesigner definiert zulässige Aufgaben und speichert jede zulässige Aufgabe in einer serverresidenten Verwalter-Datenbank, einschließlich einer Beschreibung dessen, wie das Verwaltermodul 236 die Aufgaben aufrufen sollte, z.B. Aufrufen der Aufgabe als Unterprogramm, als autonomes Programm oder durch Delegieren des Aufrufens an ein anderes Verwaltermodul, im allgemeinen an einen anderen Server. Beispiele für Standardaufgaben, die vom Verwaltermodul 236 aufgerufen werden, umfassen Aufgaben, die benannt werden, um sowohl in einer Anwendungsdatenbank 102 als auch im Wörterbuch 106 zu lesen und zu operieren.
  • Das Datenbankbibliothekmodul 238 führt Datenbankoperationen an anderen Modulen oder Bibliotheken aus. Wenn beispielsweise eine Zielanwendung Zugang benötigt, um an Daten aus der Datenbank zu operieren, ruft die Zielanwendung Funktionen aus dem Datenbankbibliothekmodul 238 auf und fordert den gewünschten Dienst an. In der vorliegenden Erfindung erlaubt das Datenbankbibliothekmodul 238 eine externe Definition der Anwendungsdatenbank, an der die Zielanwendung im Wörterbuch 106 operiert. Wie bereits erläutert wurde, speichert das Wörterbuch 106 darüber hinaus eine Definition von Basisdatengruppen, die als Sätze bezeichnet werden, an denen die Zielanwendung operiert. Die Zielanwendung ruft dann Datenbankbibliothek-Anwendungsprogrammierschnittstellen (APIs) auf, um an Daten in der Anwendungsdatenbank zu operieren.
  • Das Transport-Gerät-Modul 240 sieht eine Transportbewertungfähigkeit vor, um die Art des Transportprotokolls festzulegen, das beim Transfer zwischen physischen Plattformen aufgerufen wird, beispielsweise ob TCP und wann ein solches Protokoll aufgerufen werden soll. Darüber hinaus legt das Transport-Gerät-Modul 240 das effizienteste Routing für Nachrichten und die Transferterminierung solcher Nachrichten fest. Das Transport-Gerät-Modul 240 ist in Verbindung mit der Netzwerkbibliothek 264 die Komponente, die die Kommunikation zwischen verschiedenen Computern unterstützt.
  • Das Compiler-Modul 242 wandelt eine Beschreibung in höherer Programmiersprache in tragbare Metafile-Daten um. In der vorliegenden Erfindung wird eine höhere Programmiersprache definiert, die ein schnelles Prototyping aufgrund der hohen Ebene der Sprache erleichtert. Die von der vorliegenden Erfindung verwendete höhere Programmiersprache ermöglicht alltägliche Programmierfunktionen wie beispielsweise Variablendeklaration und I/O-Verarbeitung, die von der Softwarearchitektur durchgeführt werden muß, ohne ein Programmieren auf niederer Ebene für jede Transaktion oder Aktion unter Einbeziehung der Datenbank zu erfordern.
  • Das Sprachenmodul 244 sieht eine höhere Sprachsyntax vor, die von der Zielanwendung bei Transaktionen wie Berichterzeugung und Datenbankverwaltung aufgerufen werden kann. Die höhere Sprache ist keine traditionelle Verfahrenssprache, weshalb die Sprachmechanismen auf niederer Ebene dem Zielanwendungsdesigner verborgen bleiben.
  • Das Metafile-Bibliothek-Modul 246 sieht das Gruppieren von Beschreibungen auf hoher Sprachebene in einem kompilierten Format vor, das von der Zielanwendung ausgeführt werden kann. Wie oben offenbart wurde, erfordert traditionelles Programmieren eine erhebliche Menge an Variablendeklarationen. Das Metafile-Bibliothek-Modul 246 umfaßt die Variablendefinitionen, um den Gebrauch von höherer Sprache zu unterstützen, die vom Anwendungsdesigner für das begrenzte Programmieren von Berichten verwendet wird.
  • Das Regressionstest-Bibliothek-Modul 248 unterstützt die Anlage, das System und den Regressionstest von Bibliotheken, Geräten, Setzern, Serverprogrammen, universellen Anwendungskomponenten und der gesamten Zielanwendung. Die Tests können regelmäßig ausgeführt werden und werden automatisch auf den Testkriterien basierend ausgeführt, die durch Erzeugung von der zu testenden Zielanwendung oder Komponente festgelegt werden. Da die Testkriterien vorab festgelegt werden, können sich Revisionen der Zielanwendung nach wie vor auf früher festgelegte Testwerte stützen, ohne weitere Änderungen an den Testparametern zu erfordern. Das Optionsdateien-Bibliothek-Modul 250 umfaßt Funktionen und genaue Angaben zur Betriebsumgebung der Zielanwendung. Die Angaben können Präferenzen wie beispielsweise benutzerdefinierte Einstellungen und Konfigurationen wie Datum/Zeit-Formatpräferenzen und Währungspräferenzen umfassen.
  • Das Validierungsbibliothek-Modul 252 führt Feldvalidierungen und Cross-Feld-Validierungen gemäß benutzerdefinierten Bedingungen aus, die auf bestimmten Datenfeldern angebracht werden. Diese Bedingungen, beispielsweise die für relationale Datenbanksysteme üblichen Bedingungen, sehen Datenkontrollen für die Daten vor, die in den Transaktionen zur Speicherung innerhalb eines Feldes einer Anwendungsdatenbank eingegeben werden. Validierungen vermindern Datenfehler und Verwirrung, wenn Werte kombiniert oder manipuliert werden, indem die angeforderten Werte angezeigt werden, und helfen dadurch beim diagnostischen Testen, bei der Leistungsevaluation und Anwendungsabstimmung der Zielanwendung.
  • Das Drehknopf- und Drehscheiben-Bibliothek-Modul 254 ermöglicht es dem Anwendungsdesigner, die Fehlerdiagnose für verschiedene Ebenen der universellen Anwendung 108 einzuschalten, je nachdem, in welcher ein Fehlverhalten festgestellt wird oder welche Analyse und Abstimmung benötigt. So kann beispielsweise die für einen Anteil der Technologie erzeugte SQL ebenso wie das mit der Ausführung der SQL durch die Datenbanksoftware z.B. Oracle, verknüpfte Timing zur Evaluation angezeigt werden.
  • Das Fehler-Bibliothek-Modul 256 sieht die Anforderungsfunktion zum Abfangen und Berichten von Fehlern vor, die von der Architektur der vorliegenden Erfindung aufgedeckt werden und zeigt dem Anwendungsdesigner eine Warnung bei solchen Bedingungen an.
  • Das Übliche-Routinen-Bibliothek-Modul 258 sieht eine Ebene zwischen dem Betriebssystem-Bibliothek-Modul 260 vor, die den Anteil darstellt, der zwischen verschiedenen Betriebssystemen portiert wurde, damit alle anderen Anteile der universellen Anwendung direkt portieren.
  • Das Betriebssystem-Bibliothek-Modul 260 kann Anpassungen und ein erneutes Kompilieren zwischen den Betriebssystemplattformen erforderlich machen. Das Betriebssystem-Bibliothek-Modul 260 gewährleistet die Übertragbarkeit der universellen Anwendung 108 durch Unterstützung verschiedener Betriebssysteme wir Unix, Windows 95, Windows NT usw.
  • Das Datascope-Modul 262 sieht ein analytisches Werkzeug vor, das beim Testen der Inhalte eines zuvor definierten Satzes in einem optischen Format verwendet wird. Wenn beispielsweise ein Satz erzeugt wird und der Anwendungsdesigner den Inhalt eines Satzes optisch sehen will, ohne eine wirkliche Transaktion zu bilden und einen Bericht zu schreiben, um die Daten des Satzes zu präsentieren, stellt das Datascope-Modul 262 ein Werkzeug zum Öffnen und Lesen des Inhalts eines bestimmten Satzes bereit.
  • Das Netzwerk-Bibliothek-Modul 264 sieht einen Routine-Satz zum Unterstützen verschiedener Industrie-Standard-Protokolle wie DCOM, CORBA und TCP/IP vor. Das Transport-Gerät-Modul 240 verwendet die Routinen des Netzwerk-Bibliothek-Moduls 264.
  • Das Nachrichten-Bibliothek-Modul 266 sieht einen Satz von Routinen zum Manipulieren von Nachrichten vor. Wenn beispielsweise eine Transaktion durch Einfügen eines Datenelements in eine Datenbank ausgeführt wird, würde ein Nachrichtentyp zugewiesen und das Nachrichten-Bibliothek-Modul 266 würde die Definition der Nachricht aus dem Nachrichten-Bibliothek-Modul 266 lesen, um die Struktur der zu übersendenden Nachricht festzulegen. Das Nachrichten-Bibliothek-Modul 266 sieht einen Satz von APIs zum Bestücken, Lesen, Erzeugen und Senden von Nachrichten vor.
  • Das Vollständigkeitskontroll-Modul 268 stellt eine Reihe von Routinen dar, die die Daten in einer Anwendungsdatenbank 102 ansehen und prüfen, um zu verifizieren, daß die Daten eine definierte Qualität oder Vollständigkeit besitzen. So können die in einer relationalen Anwendungsdatenbank gespeicherten Daten beispielsweise von einem Datenbankmanipulationsdienstprogramm auf unangemessene Weise aktualisiert und verändert werden. Solche Dienstprogramme können möglicherweise den in der Anwendungsdatenbank eingegebenen Datenwerten keine angemessenen Beschränkungen auferlegen. Das Vollständigkeitskontroll-Modul 268 führt eine Verarbeitungsfunktion durch Verifizierung der Vollständigkeit der in einer Anwendungsdatenbank residenten Daten gemäß den zuvor definierten Beschränkungen für solche Daten aus. Das Vollständigkeitskontroll-Modul 268 erhält diese Datenbeschränkungen durch Lesen der Definition der Anwendung im Wörterbuch 102.
  • Das Server-Modul 270 sieht eine Reihe von Server-Verarbeitungen oder -Komponenten vor, die von den in der Zielanwendung operierenden Servern gemeinsam benutzt werden können. Die Server, wie sie in der vorliegenden Erfindung verstanden werden, sind in 10 detailliert aufgeführt.
  • Das Transaktions-Server-Modul 272 sieht eine allgemeinere Version eines Servers für Verarbeitungstransaktionen vor. Server, wie sie in 10 detailliert aufgeführt sind, sehen eine kundenspezifische Verarbeitung von Verarbeitungsanteilen vor. Transaktions-Server sehen ähnliche Funktionen beim Client-Anteil der universellen Anwendung vor, ohne eine Benutzerschnittstelle zum Starten oder Aktivieren von Transaktionen erforderlich zu machen.
  • Das Summengerät-Modul 274 sieht einen Vorgang zum Sammeln und Erzeugen von Zusammenfassungen einer Sammlung von Datenelementen vor, wenn dies angefordert wird und bewahrt außerdem die Ergebnisse des Zusammenfassungsvorgangs für spätere Summenabfragen auf.
  • Das Hierarchie-Gerät-Modul 276 sieht die Fähigkeit vor, eine Hierarchie, wie zuvor in 6 beschrieben, zu definieren und zu verwenden. So kann ein Benutzer beispielsweise eine Liste von Geschäftsstellen innerhalb eines bestimmten Gebiets bewerten wollen. Anschließend will der Benutzer vielleicht diese Auswahl in ihre Unterelemente aufschließen oder zerlegen, um kleinere Gebiete zu bewerten, wobei dieser Vorgang bis in die untersten, in dieser Hierarchie definierten Ebenen fortgesetzt werden kann.
  • Das Umwandlungs-Server-Modul 278 sieht die Fähigkeit vor, die als erste Struktur definierten Daten in die Daten zu übertragen, die als zweite Struktur definiert wurden. So kann beispielsweise ein Benutzer in einer Kauf-Zielanwendung einen Kaufauftragssatz festlegen, um Daten hierin zu empfangen und anschließend vielleicht diesen Kaufauftragssatz in einen genehmigten Kaufauftragssatz zu verwandeln.
  • Das Umwandlungs-Server-Modul 278 sieht die Regeln vor, die notwendig sind, um einen Datensatz in einen anderen Datensatz zu verwandeln.
  • Der C-Kodierstandard 280 definiert das Format zum Kodieren von kundenspezifischen Anteilen der Zielanwendung. Durch Anfordern eines Standards zum Kodieren von kundenspezifischen Anteilen der Zielanwendung wird die Übertragbarkeit zwischen Plattformen wie UNIX und Windows-Umgebungen auf ein Höchstmaß gebracht. Außerdem werden durch die Erzwingung eines Standards für kodierte Module die Lesbarkeit und die Verständlichkeit von kundenspezifischen Anteilen maximiert und dadurch die Aufrechterhaltung und Integration von kundenspezifischen Software-Modulen durch andere erleichtert.
  • Die Benutzer-Schnittstellen-Bibliothek 282 sieht einen Satz von Benutzer-Schnittstellen-Routinen vor, die das graphische Front-End für eine Vielfalt von graphischen Schnittstellen wie Motif, Windows und andere bereitstellen. Durch Bereitstellen einer Benutzer- Schnittstellen-Bibliothek können die anderen Komponenten der universellen Architektur mit der Bibliothek, die angesteuert wird, vereinigt werden, je nachdem, welches Benutzer-Front-End verwendet wird. Der Nachrichten-Standard 284 sieht einen Schnittstellen-Mechanismus zum Informationsaustausch zwischen der Architektur, wie beispielsweise der Zielanwendung, und anderen externen Komponenten vor. Während APIs für den Informationsaustausch und die Kommunikation zwischen Abläufen innerhalb der Zielanwendung verwendet werden, werden Nachrichten benutzt, um mit anderen Komponenten oder Einheiten außerhalb der Architektur zu kommunizieren. Der graphische Schnittstellen-Standard 286 sieht einen Standard für die Entwicklung von Menüs, Tasten und anzeigebezogenen Informationen vor, um den präsentierten Daten einheitliche "look-and-feel"-Merkmale zu verleihen. Eine graphische Schnittstellen-Bibliothek 288 stellt die effektiven Routinen bereit, die verwendet werden, um die aufgenommenen Informationen anzuzeigen und die Benutzer-Schnittstellen-Bibliothek 282 aufzurufen, um festzulegen, wie die Informationen auf dem Bildschirm zur Präsentation der Zielanwendung für den Benutzer plaziert werden sollen.
  • Die Verwaltungsfreigabe-Komponente 290 sieht die Versions- oder Konfigurationskontrolle von späteren Wiederholungen oder Revisionen von individuellen Komponenten innerhalb der universellen Anwendung sowie eine Verwaltung und Kontrolle für andere Komponenten, wie beispielsweise die Zielanwendungs-Bibliothek, vor. Die Verwaltungsfreigabe-Komponente 290 verifiziert, daß alle Versionen der Komponenten innerhalb der universellen Anwendung mit dem Betriebssystem des Host kompatibel sind, auf dem die Zielanwendung ausgeführt wird.
  • Ein Übersetzer 292 liest die Architektursprache durch Referenzieren der Metafile-Bibliothek 246 und Extrahieren eines Pseudocodes für das Übersetzen durch den Übersetzer 292 in einen ausführbaren Code zur Ausführung seitens der Architektur. Der Metafile-Standard 294 sieht einen Standard für das Kodieren von Funktionen auf höherer Ebene unter Verwendung der Architektursprache vor, die in der Metafile-Bibliothek 246 für das Ausführen durch die Architektur gespeichert und cross-referenziert sind.
  • Der Präferenz-Standard 296 sieht ein Verfahren zum Erzeugen von Ablaufparametern vor, die als Parameter soft-kodiert sind, um die Ausführung der Architektur bei Ablauf zu ändern, ohne die Struktur des Architekturcodes zu ändern.
  • 8 ist ein vereinfachtes Diagramm, das eine beispielhafte Schichtung der Beziehungen der vorliegenden Erfindung gemäß einer Ausführung dieser Erfindung darstellt. Das Wörterbuch 106 kann als geschichtet oder auf verschiedenen Ebenen angeordnet betrachtet werden, die durch definitorische Verknüpfungen miteinander verbunden sind. Die Zielanwendung 100 umfaßt eine Reihe von Transaktionen, die in 8 beispielhaft als eine Verkäufertransaktion 210 und eine Firmentransaktion 212 gezeigt werden, die eine Auftragseingangs-Zielanwendung 100 bilden. Eine Benutzerschnittflächenebene 208 beschreibt prototypisierte Transaktionen, die zuvor im Prototyping-Transaktions-Modul 190 beschrieben wurden (5). Da Transaktionen, Berichte, Analysen oder Serverprogramme an Daten aus einer Datenbank operieren, die in eine oder mehrere Sätze gruppiert wurden, umfaßt das Wörterbuch 106 ferner eine Definition dieser Sätze. Wie in 8 gezeigt wird, umfassen beispielhafte Beschreibungen von Sätzen einen Verkäufersatz 214 und einen Firmensatz 216, die jeweils einer Verkäufertransaktion 210 und einer Firmentransaktion 212 entsprechen. Eine Satzebene zum logischen Abbilden von Ebene 206 wird durch Verwendung des Prototyping-Satz-Moduls 180 (5) bereitgestellt, um die Gruppierung oder Sammlung von transaktional relevanten Daten in einem Satz festzulegen.
  • Das Prototyping-Datenbank-Modul 170 (5) vereinfacht das Abbilden von der logischen zur physischen Ebene 204, wobei Datenelemente, die innerhalb eines Satzes enthalten sind und logische Definitionen auf physische Datenspeicherplätze oder Strukturen abgebildet werden. Eine physische Ebene 204 umfaßt physische Datenelemente, die in einem Schema in der Anwendungsdatenbank 102 organisiert sind. Die Anwendungsdatenbank 102 kann unter Verwendung von wohlbekannten Techniken wie Dritte Normalform (eine Designtechnik), Datendefinitionssprache (DDL) oder andere Datenbank-Partitionierungstechniken, wie die von Oracle oder Sybase, konfiguriert werden.
  • 9 zeigt ein vereinfachtes Diagramm, das die Ausführung einer interaktiven Transaktion gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Wie in 2 dargelegt wurde, kann eine universelle Anwendung 108 in einen Client- und einen Server-Anteil partitioniert werden. Ein Client-Anteil oder Vorgang 300 startet in der bevorzugten Ausführungsform die Ausführung einer interaktiven Transaktion. An einem Endbenutzer-Arbeitsplatz auf der Betriebssystemebene wird dem Endbenutzer ein Symbol präsentiert, das eine zuvor definierte Zielanwendung bezeichnet. Der Endbenutzer wählt und startet daraufhin die Zielanwendung. In der bevorzugten Ausführungsform ist das Zielanwendungssymbol mit einer .bat-Datei (in Windows 95® und in ähnlicher, aber anderer Weise in Windows NT®, OpenLook, Motif® oder anderen Fenster-Betriebssystemen) verknüpft, die abwechselnd das Client-Modul 232 (7) mit der Anweisung startet, um das festgelegte Zielanwendungswörterbuch 106 zu verwenden, um ein angepaßtes Verhalten für die universelle Anwendung zu erhalten. Der Client-Vorgang 300 besitzt ein Anmeldeverfahren 301, in dem der Endbenutzer aufgefordert wird, einen zuvor festgelegten Benutzernamen und ein Paßwort einzugeben. Wenn der Benutzername und das Paßwort richtig sind, zeigt der Client-Vorgang 300 den Verantwortlichkeitsvorgang 302 an, der dem Endbenutzer die Auswahl der Verantwortlichkeiten bietet, zu denen der Endbenutzer auf der Grundlage der zuvor festgelegten, mit dem Benutzernamen und dem Paßwort des Endbenutzers verbundenen Befugnisse berechtigt ist. Wenn der Endbenutzer zu nur einer Verantwortlichkeit berechtigt ist, wählt der Client-Vorgang 300 diese automatisch aus. Sobald der Endbenutzer eine Verantwortlichkeit ausgewählt hat, zeigt der Client-Vorgang 300 dem Endbenutzer einen Rahmen mit Optionen oder Menüs an, in denen der Endbenutzer im Wahl-Transaktionsschritt 305 erfolgreich durch eine Menühierarchie navigiert, um zur gewünschten Transaktion zu gelangen.
  • Der Client-Vorgang 300 erzeugt im Schritt 310 die geeignete SQL zur Abfrage der Wörterbuch-Datenbank. Wie oben beschrieben wurde, ist das Wörterbuch 106 in der bevorzugten Ausführungsform als eine Datenbank implementiert, in der das Datenbankgerät SQL-Befehle für das Abfragen und Zurücksenden von Daten vom Wörterbuch 106 zum Client-Vorgang 300 verwendet. In der bevorzugten Ausführungsform nimmt der Client-Vorgang 300 im Schritt 315 eine lokale Cache-Speicherung oder Speicherung der Beschreibung der Transaktion am lokalen Arbeitsplatz oder auf der Festplatte des Computers vor. Durch diese lokale Cache-Speicherung benötigt der Client-Vorgang 300 keinen Fernzugriff mehr auf das Wörterbuch 106 und erleidet folglich keine Leistungseinbuße. Im Client-Vorgang 300 erzeugt der Schritt 320 einen Transaktionsrahmen durch Verwendung des Rahmenbaumoduls 234 (7) in der universellen Anwendung 108. Wenn eine Anwendung auf Daten in einer Anwendungsdatenbank zugreift oder diese aktualisiert, muß ein SQL-Code für die Abfrage der Anwendungsdatenbank 325 erzeugt werden. Die Anwendungsdatenbank 325 verwendet anschließend den SQL-Code beim Zurücksenden von Datenbankdatenwerten, die durch die Transaktion präsentiert wurden. Die dem Endbenutzer präsentierte Transaktion umfaßt eine oder mehrere Transaktionen, die vom Endbenutzer gewählt werden können und Funktionen wie das Abfragen oder Aktualisieren der Anwendungsdatenbank 325 in einem Schritt 330 ausführen. Derartiges Abfragen oder Aktualisieren von Datenwerten innerhalb der Anwendungsdatenbank 325 stützt sich auch auf die Erzeugung des SQL-Codes für den Zugriff auf die Daten in der Datenbank 325.
  • 10 ist ein vereinfachtes Diagramm einer Client-Server-Partitionierung der Ausführung einer Zielanwendung gemäß einer Ausführungsform der vorliegenden Erfindung. Wie oben in 2 kurz dargestellt wurde, umfaßt die Zielanwendung ein Wörterbuch 106 und eine universelle Anwendung 108 (2), die einen Client-Anteil und einen Server-Anteil aufweist, der mit einer Anwendungsdatenbank 102 gekoppelt ist. Bei Anwendungskonfigurationen, die eine umfangreiche Verarbeitung erfordern, sieht eine dezentralisierte Architektur eine effizientere Verteilung der Aufgabenausführung vor. In 10 ist eine eher auf dem Peer-to-Peer-Prinzip basierende, dezentralisierte Architektur gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. So kann der Anwendungsdesigner bei der Erzeugung einer Zielanwendung oder der Systemadministrator einer vollständigen Zielanwendung Anteile der universellen Anwendung gemäß der Verarbeitungskapazität der Zielinstallations-Hardware, des Betriebssystems und der Kommunikationssoftware konfigurieren und verteilen. Diese Verteilung der universellen Anwendung erscheint dem Benutzer der Zielanwendung transparent. In 10 koppelt sich ein Benutzer an eine Zielanwendung über einen Client-Arbeitsplatz 614 an, der die Form eines Personal Computers oder einer anspruchsvolleren, rechenbetonten Umgebung wie z.B. eines Unix-Arbeitsplatzes besitzen kann. Der Benutzer ruft die Ausführung der Zielanwendung auf, die abwechselnd den Client-Anteil 620 einer universellen Anwendung 108 startet (2 und 7). In der bevorzugten Ausführungsform enthält der Client-Anteil 620 den Client 232 (7), der eine Folge von Datentransfer-APIs umfaßt, um den Austausch von Verarbeitungsanweisungen und -daten innerhalb der Client-Server-Architektur 600 zu unterstützen. Die Datentransfer-APIs 616 stellen eine übliche Schnittstelle mit dem Server-Anteil 622 bereit, der physisch im Client-Arbeitsplatz 614 untergebracht werden oder – wie in der bevorzugten Ausführungsform – sich in einem separaten Server-Gerät befinden kann, der mit dem Client-Arbeitsplatz 614 über standardisierte Netzwerktechniken verbunden ist.
  • Während des Ausführungsverlaufs einer Zielanwendung wird dem Benutzer eine Reihe von Menüs präsentiert, die entweder in Zusatzmenüs oder Transaktionen enden, wie oben beschrieben wurde. Der Client-Anteil 620 sendet Transaktionsanforderungen über Datentransfer-APIs 616, die von einem Dispatcher 604 evaluiert werden. Der Dispatcher 604 evaluiert die Nachrichten, um zu bestimmen, welcher Server die übertragenen Anforderungen bearbeitet. Der Dispatcher 604 überträgt die Anforderungen an die zugewiesenen Server zur Verarbeitung oder zu einer anderen Instanz des Dispatchers 604, die sich auf einem anderen Server befinden kann. Wenn die Anteile der Zielanwendung spezielles oder anspruchsvolles Bearbeiten erfordern, kann ein Anwendungsdesigner einen Custom-Server 624 zur Bearbeitung einer spezifischen Anforderung oder einer Reihe von Anforderungen erstellen. 10 zeigt zwei solcher angepaßter Server, und zwar einen Margen-Server 608 und einen Gebühren-Server 610, die in einer beispielhaften Börsen-Zielanwendung verwendet werden. Wie oben erläutert wurde, wird die Ausführung einer Zielanwendung durch die Inhalte des Wörterbuches 106 angepaßt. Deshalb muß, wenn ein Benutzer die Zielanwendung startet, regelmäßig das Wörterbuch 106 konsultiert werden. Um das Auffinden von Daten aus der Wörterbuch-Datenbank zu erleichtern, gibt der Client-Anteil 620 Datentransfer-APIs aus, die mit der vorherigen Besprechung mit dem Server-Anteil 622 konsistent sind. Neben der Abwicklung von nicht ausdrücklich angeforderten Server-Anfragen überträgt der Transaktions-Server 612 Nachrichtenabfragen an die Nachrichtenbibliothek 266, die selbständig den abgefragten SQL-Code präsentiert, der benötigt wird, um eine Anwendungsdatenbank 102 zum Auffinden von Elementen des Wörterbuches 106 abzufragen. Diese Nachrichtenverarbeitung erleichtert das Eingeben, Auffinden oder Ändern von Daten innerhalb einer Anwendungsdatenbank 102.
  • Die vorliegende Architektur erleichtert auch das Empfangen und Präsentieren von Daten bei einer Drittquelle, wie beispielsweise der Datenquelle 618, ohne daß Interaktionen seitens des Benutzers am Client-Arbeitsplatz 614 erforderlich sind. Die Datenquelle 618 kann die Form einer flachen Datei für das Verarbeiten durch die Zielanwendung oder anderer Datenversorgungen besitzen, von denen die Zielanwendung Daten empfangen oder übertragen kann.

Claims (27)

  1. Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (100) zur Verwendung bei der Interaktion mit einer Anwendungsdatenbank (102), mit den folgenden Schritten: a) Durchführen eines Dialogs auf hoher Ebene über einen Anwendungs-Editor (104), um eine die Zielsoftwareanwendung (100) repräsentierende Beschreibung abzuleiten; b) gegebenenfalls Verfeinern der Beschreibung; c) Speichern der Beschreibung der Zielsoftwareanwendung (100); und d) bei Ausführung der Zielsoftwareanwendung (100) wird die Beschreibung aufgerufen; dadurch gekennzeichnet, daß die Zielsoftwareanwendung (100) aus einer wieder verwendbaren universellen Softwareanwendung (108) erzeugt wird; die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank (102) definiert und eine Anpassung der universellen Softwareanwendung (108) in die Zielsoftwareanwendung repräsentiert; das Verfahren ferner den Schritt des Prototyping der Zielsoftwareanwendung (100) auf der Basis der Beschreibung umfaßt und der Verfeinerungsschritt auf dem Prototyping-Schritt basiert; die Beschreibung in einem Wörterbuch (106) in Form einer durch die universelle Softwareanwendung (108) zu referenzierende Datenbank gespeichert wird; und das Wörterbuch (106) von der universellen Softwareanwendung (108) bei Ausführung der Zielsoftwareanwendung (100) aufgerufen wird, um die universelle Softwareanwendung (108) anzupassen, damit sie die Zielsoftwareanwendung (100) wird.
  2. Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (100) nach Anspruch 1, wobei der Schritt des Durchführens eines Dialogs auf hoher Ebene die folgenden Schritte umfaßt: a) eindeutiges Identifizieren der Zielsoftwareanwendung (100) mit einem Namen; b) Ausstatten der eindeutig identifizierten Zielsoftwareanwendung (100) mit Zugangssicherheit; c) Definieren von Menüs zum Navigieren in der gesamten Zielsoftwareanwendung (100), um die Transaktionen auszuführen.
  3. Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (100) nach Anspruch 2, wobei der Schritt des Ausstattens mit Zugangssicherheit die folgenden Schritte umfaßt: a) Festlegen von Verantwortlichkeiten, um Endbenutzer in der Zielsoftwareanwendung (100) einzuteilen, auf für ihre festgelegte Verantwortlichkeit exklusive Teile der Zielsoftwareanwendung (100) zuzugreifen und diese auszuführen; b) Identifizieren der Endbenutzer der Zielsoftwareanwendung (100); und c) Assoziieren der Endbenutzer der Zielsoftwareanwendung (100) mit mindestens einer der Verantwortlichkeiten.
  4. Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (100) nach Anspruch 2, wobei die Datensätze aus der Anwendungsdatenbank (102) eine Teilmenge von Daten aus der Anwendungsdatenbank (102) bilden.
  5. Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (100) nach Anspruch 4, ferner mit dem Schritt des Definierens einer logischen Anwendungsdatenbank gemäß einem Schema, aus dem die Sätze abgeleitet werden.
  6. Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (100) nach Anspruch 5, ferner mit dem Schritt des Abbildens der logischen Anwendungsdatenbank auf die Anwendungsdatenbank (102).
  7. Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (100) nach Anspruch 6, ferner mit dem Schritt des Definierens der Anwendungsdatenbank (102) gemäß einem Schema, wenn die Anwendungsdatenbank (102) vor der Erzeugung der Zielsoftwareanwendung (100) nicht existiert.
  8. Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftware anwendung (100) nach Anspruch 4, wobei der Transaktionsdefinitionsschritt ferner die folgenden Schritte umfaßt: a) Definieren von Ansichten von Daten aus den Sätzen, wobei die Ansichten eine dem Endbenutzer zu präsentierende Ansammlung der Daten innerhalb der Sätze bilden; b) Definieren von Rahmen aus den Ansichten von Daten, um die Daten aus der Anwendungsdatenbank (102) anzuzeigen und anzuordnen.
  9. Verfahren zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (100) nach Anspruch 8, ferner mit den folgenden Schritten: a) Definieren einer intelligenten Codetabelle, die aus einer eingeschränkten Domäne gültiger Werte für die Daten aus der Datenbank besteht; b) Präsentieren der eingeschränkten Domäne von gültigen Werten in den Rahmen, aus denen der Endbenutzer auswählen kann.
  10. System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (100) zur Datenbankverwaltung einer Anwendungsdatenbank (102), wobei das System folgendes umfaßt, a) einen Anwendungs-Editor (104) zum Durchführen eines Dialogs auf hoher Ebene, um eine die Zielsoftwareanwendung (100) repräsentierende Beschreibung abzuleiten, b) Mittel zum Verfeinern der Beschreibung; c) einen Speicher zum Speichern der Beschreibung der Zielsoftwareanwendung (100) zur nachfolgenden Referenzierung während der Ausführung der Zielsoftwareanwendung (100); dadurch gekennzeichnet, daß die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank (102) definiert und eine Anpassung einer universellen Softwareanwendung (108) in die Zielsoftwareanwendung repräsentiert; die Beschreibung in einem Wörterbuch (106) in Form einer Datenbank gespeichert ist; die universelle Softwareanwendung wieder verwendbare Softwaremodule umfaßt und daß das System ferner einen an den Anwendungs-Editor (104) angekoppelten Prototyping-Mechanismus umfaßt, um einen Prototypen der Zielsoftwareanwendung (100) auf der Basis der Beschreibung zu erstellen, wodurch gegebenenfalls eine Verfeinerung der Beschreibung ermöglicht wird; und die universelle Softwareanwendung dafür ausgelegt ist, bei Ausführung der Zielsoftwareanwendung (100) das Wörterbuch (106) zu referenzieren, um einen angepaßten Betrieb der universellen Softwareanwendung (108) abzuleiten, um wie dem Anwendungs-Editor (104) beschrieben, zu der Zielsoftwareanwendung (100) zu werden.
  11. System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (100) zur Datenbankverwaltung einer Anwendungsdatenbank (102) nach Anspruch 10, wobei der Anwendungs-Editor (104) folgendes umfaßt: a) ein Modul zum eindeutigen Identifizieren der Zielsoftwareanwendung (100) mit einem Namen; b) ein Modul zum Ausstatten der eindeutig identifizierten Zielsoftwareanwendung (100) mit Zugangssicherheit; c) ein Modul zum Definieren von Menüs zum Navigieren in der gesamten Zielsoftwareanwendung (100) um Transaktionen auszuführen; und d) ein Modul zum Definieren der an der Anwendungsdatenbank (102) in der Zielsoftwareanwendung (100) durchzuführenden Transaktionen.
  12. System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (100) zur Datenbankverwaltung einer Anwendungsdatenbank (102) nach Anspruch 11, wobei das Modul zum Ausstatten mit Zugangssicherheit folgendes umfaßt: a) ein Modul zum Festlegen von Verantwortlichkeiten, um_ Endbenutzer in der Zielsoftwareanwendung (100) einzuteilen, auf für ihre festgelegte Verantwortlichkeit exklusive Teile der Zielsoftwareanwendung (100) zuzugreifen und diese auszuführen; b) ein Modul zum Identifizieren der Endbenutzer der Zielsoftwareanwendung (100); und c) ein Modul zum Assoziieren der Endbenutzer der Zielsoftwareanwendung (100) mit mindestens einer der Verantwortlichkeiten.
  13. System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (100) zur Datenbankverwaltung einer Anwendungsdatenbank (102) nach Anspruch 11, wobei das Modul zum Definieren der Transaktionen ferner ein Modul zum Erzeugen von Datensätzen aus der Anwendungsdatenbank (102), auf die die Transaktionen einwirken, umfaßt, wobei die Sätze eine Teilmenge der Daten aus der Anwendungsdatenbank (102) bilden sollen.
  14. System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (100) zur Datenbankverwaltung einer Anwendungsdatenbank (102) nach Anspruch 13, wobei der Anwendungs-Editor (104) ferner ein Modul zum Definieren einer logischen Anwendungsdatenbank gemäß einem Schema, aus dem die Sätze abgeleitet werden, umfaßt.
  15. System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (100) zur Datenbankverwaltung einer Anwendungsdatenbank (102) nach Anspruch 14, wobei der Anwendungs-Editor (104) ferner ein Modul zum Abbilden der logischen Anwendungsdatenbank auf die Anwendungsdatenbank (102) umfaßt.
  16. System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (100) zur Datenbankverwaltung einer Anwendungsdatenbank (102) nach Anspruch 15, wobei der Anwendungs-Editor (104) ferner ein Modul zum Definieren der Anwendungsdatenbank (102) gemäß einem Schema, wenn die Anwendungsdatenbank (102) vor der Erzeugung der Zielsoftwareanwendung (100) nicht existiert, umfaßt.
  17. System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (100) zur Datenbankverwaltung einer Anwendungsdatenbank (102) nach Anspruch 13, wobei das Modul zum Definieren von Transaktionen ferner folgendes umfaßt: a) ein Modul zum Definieren von Ansichten von Daten aus den Sätzen, wobei die Ansichten eine dem Endbenutzer zu präsentierende Ansammlung der Daten innerhalb der Sätze bilden; b) ein Modul zum Definieren von Rahmen aus den Ansichten von Daten, um die Daten aus der Anwendungsdatenbank (102) anzuzeigen und anzuordnen.
  18. System zur computerunterstützten Erzeugung von einer Zielsoftwareanwendung (100) zur Datenbankverwaltung einer Anwendungsdatenbank (102) nach Anspruch 17, wobei der Anwendungs-Editor (104) ferner folgendes umfaßt: a) ein Modul zum Definieren einer intelligenten Codetabelle, die aus einer eingeschränkten Domäne gültiger Werte für die Daten aus der Datenbank besteht; b) ein Modul zum Präsentieren der eingeschränkten Domäne von gültigen Werten in den Rahmen, aus denen der Endbenutzer auswählen kann.
  19. Computerlesbares Medium zur computerunterstützten Datenbankverwaltungssoftwareerzeugung einer Zielsoftwareanwendung (100) zur Interaktion mit einer Anwendungsdatenbank (102), wobei das computerlesbare Medium computerausführbare Anweisungen zur Ausführung der folgenden Schritte aufweist; a) Durchführen eines Dialogs auf hoher Ebene über einen Anwendungs-Editor (104), um eine die Zielsoftwareanwendung (100) repräsentierende Beschreibung abzuleiten; b) gegebenenfalls Verfeinern der Beschreibung; c) Speichern der Beschreibung der Zielsoftwareanwendung (100); und d) bei Ausführung der Zielsoftwareanwendung (100) wird die Beschreibung aufgerufen. dadurch gekennzeichnet, daß die Zielsoftwareanwendung (100) aus einer wieder verwendbaren universellen Softwareanwendung (108) erzeugt wird; die Beschreibung Transaktionen an Datensätzen aus der Anwendungsdatenbank (102) definiert und eine Anpassung der universellen Softwareanwendung (108) in die Zielsoftwareanwendung repräsentiert; die computerausführbaren Anweisungen ferner den Schritt des Prototyping der Zielsoftwareanwendung (100) auf der Basis der Beschreibung durchführen und der Verfeinerungsschritt auf dem Prototyping-Schritt basiert; die Beschreibung in einem Wörterbuch (106) in Form einer durch die universelle Softwareanwendung (108) zu referenzierende Datenbank gespeichert wird; und das Wörterbuch (106) von der universellen Softwareanwendung (108) bei Ausführung der Zielsoftwareanwendung (100) aufgerufen wird, um die universelle Softwareanwendung (108) anzupassen, damit sie die Zielsoftwareanwendung (100) wird.
  20. Computerlesbares Medium nach Anspruch 19, wobei die computerausführbaren Anweisungen zum Durchführen eines Dialogs auf hoher Ebene ferner computerausführbare Anweisungen zum Ausführen der folgenden Schritte umfassen: a) eindeutiges Identifizieren der Zielsoftwareanwendung (100) mit einem Namen; b) Ausstatten der eindeutig identifizierten Zielsoftwareanwendung (100) mit Zugangssicherheit; c) Definieren von Menüs zum Navigieren in der gesamten Zielsoftwareanwendung (100), um die Transaktionen auszuführen.
  21. Computerlesbares Medium nach Anspruch 20, wobei die computerausführbaren Anweisungen zum Ausstatten mit Zugangssicherheit computerausführbare Anweisungen zum Ausführen der folgenden Schritte umfassen: a) Festlegen von Verantwortlichkeiten, um Endbenutzer in der Zielsoftwareanwendung (100) einzuteilen, auf für ihre festgelegte Verantwortlichkeit exklusive Teile der Zielsoftwareanwendung (100) zuzugreifen und diese auszuführen; b) Identifizieren der Endbenutzer der Zielsoftwareanwendung (100); und c) Assoziieren der Endbenutzer der Zielsoftwareanwendung (100) mit mindestens einer der Verantwortlichkeiten.
  22. Computerlesbares Medium nach Anspruch 20, wobei die computerausführbaren Anweisungen zum Definieren von Transaktionen ferner computerausführbare Anweisungen zum Ausführen des folgenden Schritts umfassen: Erzeugen von Datensätzen aus der Anwendungsdatenbank (102), woran die Transaktionen operieren, wobei die Sätze eine Teilmenge von Daten aus der Anwendungsdatenbank (102) bilden sollen.
  23. Computerlesbares Medium nach Anspruch 22, wobei die computerausführbaren Anweisungen ferner computerausführbare Anweisungen zum Ausführen des folgenden Schritts umfassen: Definieren einer logischen Anwendungsdatenbank gemäß einem Schema, aus dem die Sätze abgeleitet werden.
  24. Computerlesbares Medium nach Anspruch 23, wobei die computerausführbaren Anweisungen ferner computerausführbare Anweisungen zum Ausführen des folgenden Schritts umfassen: Abbilden der logischen Datenbank auf die Anwendungsdatenbank (102).
  25. Computerlesbares Medium nach Anspruch 24, wobei die computerausführbaren Anweisungen ferner computerausführbare Anweisungen zum Ausführen des folgenden Schritts umfassen: Definieren der Anwendungsdatenbank (102) gemäß einem Schema, wenn die Anwendungsdatenbank (102) vor der Erzeugung der Zielsoftwareanwendung (100) nicht existiert.
  26. Computerlesbares Medium nach Anspruch 22, wobei die computerausführbaren Anweisungen zum Definieren von Transaktionen ferner computerausführbare Anweisungen zum Ausführen der folgenden Schritte umfassen: a) Definieren von Ansichten von Daten aus den Sätzen, wobei die Ansichten eine dem Endbenutzer zu präsentierende Ansammlung der Daten innerhalb der Sätze bilden; b) Definieren von Rahmen aus den Ansichten von Daten, um die Daten aus der Anwendungsdatenbank (102) anzuzeigen und anzuordnen.
  27. Computerlesbares Medium nach Anspruch 26, wobei die computerausführbaren Anweisungen ferner computerausführbare Anweisungen zum Ausführen der folgenden Schritte umfassen: a) Definieren einer intelligenten Codetabelle, die aus einer eingeschränkten Domäne gültiger Werte für die Daten aus der Datenbank besteht; b) Präsentieren der eingeschränkten Domäne von gültigen Werten in den Rahmen, aus denen der Endbenutzer auswählen kann.
DE69838139T 1997-09-17 1998-09-15 Verfahren und system zur schaffung von datenbankanwendungssoftware,die minimales programmieren benötigen Expired - Lifetime DE69838139T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/932,255 US6016394A (en) 1997-09-17 1997-09-17 Method and system for database application software creation requiring minimal programming
US932255 1997-09-17
PCT/US1998/019108 WO1999014651A2 (en) 1997-09-17 1998-09-15 Method and system for database application software creation requiring minimal programming

Publications (2)

Publication Number Publication Date
DE69838139D1 DE69838139D1 (de) 2007-09-06
DE69838139T2 true DE69838139T2 (de) 2008-05-08

Family

ID=25462034

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69838139T Expired - Lifetime DE69838139T2 (de) 1997-09-17 1998-09-15 Verfahren und system zur schaffung von datenbankanwendungssoftware,die minimales programmieren benötigen

Country Status (7)

Country Link
US (1) US6016394A (de)
EP (1) EP1015969B1 (de)
AT (1) ATE368252T1 (de)
AU (1) AU733773B2 (de)
CA (1) CA2304020C (de)
DE (1) DE69838139T2 (de)
WO (1) WO1999014651A2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202014006343U1 (de) 2014-08-07 2014-08-21 Db Systel Gmbh Rechneranlage, Datenträger sowie Signalfolge für ein Programm zur Wiederverwendung von ausführbaren Softwarekonfigurationen für Softwaresysteme
WO2015185328A1 (de) 2014-06-06 2015-12-10 Rode Oliver Computerimplementiertes verfahren und signalfolge für ein programm zur wiederverwendung von ausführbaren softwarekonfigurationen für softwaresysteme sowie rechneranlage und ein computerprogramm mit programmcode zur durchführung des verfahrens

Families Citing this family (354)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6158044A (en) * 1997-05-21 2000-12-05 Epropose, Inc. Proposal based architecture system
US6099317A (en) * 1998-10-16 2000-08-08 Mississippi State University Device that interacts with target applications
US6442572B2 (en) * 1998-01-28 2002-08-27 International Business Machines Corporation Method of and computer system for performing a transaction on a database
US7197534B2 (en) * 1998-09-01 2007-03-27 Big Fix, Inc. Method and apparatus for inspecting the properties of a computer
US8914507B2 (en) * 1998-09-01 2014-12-16 International Business Machines Corporation Advice provided for offering highly targeted advice without compromising individual privacy
US6263362B1 (en) * 1998-09-01 2001-07-17 Bigfix, Inc. Inspector for computed relevance messaging
US6170081B1 (en) * 1998-09-17 2001-01-02 Unisys Coporation Method and system for interfacing to a variety of software development tools
US6308146B1 (en) * 1998-10-30 2001-10-23 J. D. Edwards World Source Company System and method for simulating user input to control the operation of an application
US6237003B1 (en) * 1998-11-30 2001-05-22 Platinum Technology Ip, Inc. Method and apparatus for supporting dynamic run-time object definition in a relational database management system
US20070162420A1 (en) * 2004-01-21 2007-07-12 Oracle International Corporation Techniques for automatically discovering a database device on a network
US6487547B1 (en) * 1999-01-29 2002-11-26 Oracle Corporation Database appliance comprising hardware and software bundle configured for specific database applications
US7277919B1 (en) * 1999-03-19 2007-10-02 Bigfix, Inc. Relevance clause for computed relevance messaging
US8151242B1 (en) * 1999-04-06 2012-04-03 Ns Solutions Corporation Description support apparatus and method for requisition sheet, and recording medium
US6768985B1 (en) * 1999-08-30 2004-07-27 Unisys Corporation Method and apparatus for administration of database partitions
US6842906B1 (en) 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US6742015B1 (en) 1999-08-31 2004-05-25 Accenture Llp Base services patterns in a netcentric environment
US6571282B1 (en) 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US6549949B1 (en) 1999-08-31 2003-04-15 Accenture Llp Fixed format stream in a communication services patterns environment
US6601192B1 (en) 1999-08-31 2003-07-29 Accenture Llp Assertion component in environment services patterns
US6640249B1 (en) 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6615253B1 (en) 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US7289964B1 (en) 1999-08-31 2007-10-30 Accenture Llp System and method for transaction services patterns in a netcentric environment
US6578068B1 (en) 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US6954220B1 (en) 1999-08-31 2005-10-11 Accenture Llp User context component in environment services patterns
US6601234B1 (en) 1999-08-31 2003-07-29 Accenture Llp Attribute dictionary in a business logic services environment
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US6640244B1 (en) 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
FR2799855A1 (fr) * 1999-10-15 2001-04-20 Sual E Procede pour creer une structure hierarchique variable d'acces a des actions dans un systeme informatique
US6301701B1 (en) * 1999-11-10 2001-10-09 Tenfold Corporation Method for computer-assisted testing of software application components
WO2001048636A1 (en) * 1999-12-28 2001-07-05 Computer Associates Think, Inc. Method and apparatus for maintaining multi-instance database management systems with hierarchical inheritance and cross-hierarchy overrides
US7849117B2 (en) * 2000-01-12 2010-12-07 Knowledge Sphere, Inc. Multi-term frequency analysis
US7617491B1 (en) 2000-01-20 2009-11-10 Priceline.Com Incorporated Apparatus, system, and method for validating network communications data
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US7505762B2 (en) 2004-02-27 2009-03-17 Fusionone, Inc. Wireless telephone data backup system
US8156074B1 (en) * 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
US8620286B2 (en) * 2004-02-27 2013-12-31 Synchronoss Technologies, Inc. Method and system for promoting and transferring licensed content and applications
US7082609B2 (en) * 2000-03-31 2006-07-25 Schlumbergersema Telekom Gmbh & Co. Kg Meta application system and method
US20020087341A1 (en) * 2000-03-31 2002-07-04 Jochen Kappel Customer care and billing system
US6460041B2 (en) 2000-04-26 2002-10-01 Inshift Technologies, Inc. Browser-based database-access engine apparatus and method
DE60119934D1 (de) 2000-05-25 2006-06-29 Manyworlds Inc Netzwerkverwaltungs- und zugriffssystem für unscharfe inhalte
US6742001B2 (en) * 2000-06-29 2004-05-25 Infoglide Corporation System and method for sharing data between hierarchical databases
US6694392B1 (en) * 2000-06-30 2004-02-17 Intel Corporation Transaction partitioning
US7895334B1 (en) 2000-07-19 2011-02-22 Fusionone, Inc. Remote access communication architecture apparatus and method
US8073954B1 (en) 2000-07-19 2011-12-06 Synchronoss Technologies, Inc. Method and apparatus for a secure remote access system
US6785805B1 (en) 2000-08-08 2004-08-31 Vi Technology, Inc. Network-based configuration method for systems integration in test, measurement, and automation environments
US6738765B1 (en) 2000-08-11 2004-05-18 Attensity Corporation Relational text index creation and searching
FR2813132B1 (fr) * 2000-08-16 2003-01-31 Marc Vogel Systeme d'interface d'acces aux donnees d'une base de donnees
US7386495B2 (en) * 2001-03-23 2008-06-10 International Business Machines Corporation System and method for processing tax codes by company group
US7155403B2 (en) * 2001-03-22 2006-12-26 International Business Machines Corporation System and method for leveraging procurement across companies and company groups
US7283976B2 (en) * 2001-03-22 2007-10-16 International Business Machines Corporation System and method for invoice imaging through negative confirmation process
US8027892B2 (en) 2001-03-28 2011-09-27 International Business Machines Corporation System and method for automating invoice processing with positive confirmation
US7356496B2 (en) * 2001-03-22 2008-04-08 International Business Machines Corporation System and method for synchronizing ledger accounts by company group
US7197480B1 (en) * 2000-09-07 2007-03-27 International Business Machines Corporation System and method for front end business logic and validation
US6772167B1 (en) * 2000-09-07 2004-08-03 International Business Machines Corporation System and method for providing a role table GUI via company group
US6795830B1 (en) 2000-09-08 2004-09-21 Oracle International Corporation Techniques for providing off-host storage for a database application
US7536686B2 (en) * 2000-09-08 2009-05-19 Oracle International Corporation Techniques for automatically installing and configuring database applications
US6993657B1 (en) 2000-09-08 2006-01-31 Oracle International Corporation Techniques for managing database systems with a community server
US6640231B1 (en) * 2000-10-06 2003-10-28 Ontology Works, Inc. Ontology for database design and application development
US6832226B1 (en) * 2000-10-11 2004-12-14 Bruce H. Parker Method of providing data dictionary-driven web-based database applications
WO2002033505A2 (en) * 2000-10-16 2002-04-25 Vidius Inc. A method and apparatus for supporting electronic content distribution
US8161081B2 (en) 2001-03-16 2012-04-17 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US6775825B1 (en) * 2000-10-31 2004-08-10 Hewlett-Packard Development Company, L.P. Common software application definition for resource management
US7885981B2 (en) * 2000-10-31 2011-02-08 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
EP1364313A2 (de) * 2000-10-31 2003-11-26 Michael Philip Kaufman System und verfahren zum automatischen erzeugen von benutzerschnittstellen für beliebig komplexe oder grosse datenbanken
US7587446B1 (en) * 2000-11-10 2009-09-08 Fusionone, Inc. Acquisition and synchronization of digital media to a personal information space
US7818435B1 (en) 2000-12-14 2010-10-19 Fusionone, Inc. Reverse proxy mechanism for retrieving electronic content associated with a local network
CA2329559A1 (en) * 2000-12-22 2002-06-22 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for generating serialization code for representing a model in different type systems
JP2002236583A (ja) * 2001-02-07 2002-08-23 Fujitsu Ten Ltd 組込み用ソフトウェアモジュール
US7243077B2 (en) 2001-03-02 2007-07-10 International Business Machines Corporation Method and computer program product for managing an internet trading network
US6938053B2 (en) * 2001-03-02 2005-08-30 Vality Technology Incorporated Categorization based on record linkage theory
US7024662B2 (en) 2001-03-14 2006-04-04 Microsoft Corporation Executing dynamically assigned functions while providing services
US7302634B2 (en) * 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7188091B2 (en) * 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US7761397B2 (en) * 2001-03-21 2010-07-20 Huelsman David L Rule processing method and apparatus providing automatic user input selections
US6965887B2 (en) * 2001-03-21 2005-11-15 Resolutionebs, Inc. Rule processing methods for automating a decision and assessing satisfiability of rule-based decision diagrams
US8615566B1 (en) 2001-03-23 2013-12-24 Synchronoss Technologies, Inc. Apparatus and method for operational support of remote network systems
US7543269B2 (en) * 2001-03-26 2009-06-02 Biglever Software, Inc. Software customization system and method
US20020169738A1 (en) * 2001-05-10 2002-11-14 Giel Peter Van Method and system for auditing an enterprise configuration
US7134122B1 (en) 2001-05-31 2006-11-07 Oracle International Corporation One click deployment
WO2003014927A2 (en) * 2001-08-08 2003-02-20 Trivium Systems Inc. Scalable messaging platform for the integration of business software components
US20030061106A1 (en) * 2001-09-21 2003-03-27 Sunday Orhomuru Data transfer or transfer of data using wireless mobile phone and any other wireless mobile devices
CA2357937A1 (en) 2001-09-28 2003-03-28 Ibm Canada Limited-Ibm Canada Limitee Database diagnostic system and method
US6944855B2 (en) * 2001-10-25 2005-09-13 Siemens Medical Solutions Health Services Corporation System, method, and article of manufacture for creating and updating an application using software application elements
US7904504B2 (en) * 2001-10-31 2011-03-08 Hewlett-Packard Development Company, L.P. Policy enforcement and access control for distributed networked services
EP1310887A1 (de) * 2001-11-07 2003-05-14 Concreto S.R.L. Prozess und System für die automatische Verwaltung von Verfahren, Aktivitäten und Arbeitsabläufen in der Bauindustrie
US20030093433A1 (en) * 2001-11-14 2003-05-15 Exegesys, Inc. Method and system for software application development and customizible runtime environment
US7937281B2 (en) * 2001-12-07 2011-05-03 Accenture Global Services Limited Accelerated process improvement framework
US20030115570A1 (en) * 2001-12-13 2003-06-19 International Business Machines Corporation Development environment for building software applications that mimics the target environment
US20030172368A1 (en) * 2001-12-26 2003-09-11 Elizabeth Alumbaugh System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology
US7062502B1 (en) * 2001-12-28 2006-06-13 Kesler John N Automated generation of dynamic data entry user interface for relational database management systems
US7587379B2 (en) 2002-03-20 2009-09-08 Huelsman David L Method and system for capturing business rules for automated decision procession
US6944627B2 (en) * 2002-04-23 2005-09-13 International Business Machines Corporation Content management system and methodology employing a tree-based table hierarchy featuring arbitrary information retrieval from different locations in the hierarchy
US7082455B2 (en) * 2002-04-23 2006-07-25 International Business Machines Corporation Method and apparatus of parameter passing of structured data for stored procedures in a content management system
US7035854B2 (en) * 2002-04-23 2006-04-25 International Business Machines Corporation Content management system and methodology employing non-transferable access tokens to control data access
US6999966B2 (en) * 2002-04-23 2006-02-14 International Business Machines Corporation Content management system and methodology for implementing a complex object using nested/recursive structures
US6947948B2 (en) * 2002-04-23 2005-09-20 International Business Machines Corporation Version-enabled, multi-typed, multi-targeting referential integrity relational database system and methodology
US6950815B2 (en) * 2002-04-23 2005-09-27 International Business Machines Corporation Content management system and methodology featuring query conversion capability for efficient searching
US6938050B2 (en) * 2002-04-23 2005-08-30 International Business Machines Corporation Content management system and methodology employing a tree-based table hierarchy which accomodates opening a dynamically variable number of cursors therefor
US6895409B2 (en) * 2002-06-17 2005-05-17 Adaptik Corporation Method and apparatus for creating an adaptive application
US20040002958A1 (en) 2002-06-26 2004-01-01 Praveen Seshadri System and method for providing notification(s)
US7698276B2 (en) 2002-06-26 2010-04-13 Microsoft Corporation Framework for providing a subscription based notification system
US20040006564A1 (en) * 2002-06-28 2004-01-08 Lucovsky Mark H. Schema-based service for identity-based data access to category data
US9886309B2 (en) 2002-06-28 2018-02-06 Microsoft Technology Licensing, Llc Identity-based distributed computing for device resources
AU2003259453A1 (en) * 2002-07-19 2004-02-09 Sap Aktiengesellschaft Business solution management (bsm)
EP1437662A1 (de) * 2003-01-10 2004-07-14 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Zugriff auf eine Datenbank
US7392246B2 (en) * 2003-02-14 2008-06-24 International Business Machines Corporation Method for implementing access control for queries to a content management system
US7890938B2 (en) * 2003-02-26 2011-02-15 Novell, Inc. Heterogeneous normalization of data characteristics
US20080320054A1 (en) * 2003-04-09 2008-12-25 Cindy Howard Database and Software Conversion System and Method
US7383257B2 (en) * 2003-05-30 2008-06-03 International Business Machines Corporation Text explanation for on-line analytic processing events
US7433878B2 (en) * 2003-06-23 2008-10-07 American Express Travel Related Services Company, Inc. Method and system for interfacing with accounting systems
WO2005010715A2 (en) 2003-07-21 2005-02-03 Fusionone, Inc. Device message management system
US7814093B2 (en) * 2003-07-25 2010-10-12 Microsoft Corporation Method and system for building a report for execution against a data store
US20050021538A1 (en) * 2003-07-25 2005-01-27 Activeviews, Inc. Method and system for displaying a relational abstraction of a data store
US20050038786A1 (en) * 2003-08-11 2005-02-17 International Business Machines Corporation (Ibm) Self-configuration of database tables
US7587380B2 (en) * 2003-09-29 2009-09-08 Huelsman David L Rule processing method, apparatus, and computer-readable medium to generate valid combinations for selection
US7552102B2 (en) * 2003-09-29 2009-06-23 Huelsman David L Rule processing method, apparatus, and computer-readable medium to provide improved selection advice
US7565337B2 (en) * 2003-09-29 2009-07-21 Huelsman David L Batch validation method, apparatus, and computer-readable medium for rule processing
US20050091184A1 (en) * 2003-10-24 2005-04-28 Praveen Seshadri Personalized folders
US7669177B2 (en) * 2003-10-24 2010-02-23 Microsoft Corporation System and method for preference application installation and execution
US7137099B2 (en) * 2003-10-24 2006-11-14 Microsoft Corporation System and method for extending application preferences classes
US20050102276A1 (en) * 2003-11-06 2005-05-12 International Business Machines Corporation Method and apparatus for case insensitive searching of ralational databases
US7376665B2 (en) * 2003-11-06 2008-05-20 At&T Delaware Intellectual Property, Inc. Systems, methods and computer program products for automating retrieval of data from a DB2 database
US7788638B2 (en) * 2003-11-21 2010-08-31 Citigroup Global Markets Inc. Method and system for data file processing
US7539652B2 (en) 2003-11-28 2009-05-26 Manyworlds, Inc. Adaptive self-modifying and recombinant systems
US8600920B2 (en) * 2003-11-28 2013-12-03 World Assets Consulting Ag, Llc Affinity propagation in adaptive network-based systems
US7606772B2 (en) 2003-11-28 2009-10-20 Manyworlds, Inc. Adaptive social computing methods
US7526459B2 (en) 2003-11-28 2009-04-28 Manyworlds, Inc. Adaptive social and process network systems
US20090018918A1 (en) 2004-11-04 2009-01-15 Manyworlds Inc. Influence-based Social Network Advertising
US7526458B2 (en) 2003-11-28 2009-04-28 Manyworlds, Inc. Adaptive recommendations systems
US7526464B2 (en) * 2003-11-28 2009-04-28 Manyworlds, Inc. Adaptive fuzzy network system and method
USRE45770E1 (en) 2003-11-28 2015-10-20 World Assets Consulting Ag, Llc Adaptive recommendation explanations
US8566263B2 (en) * 2003-11-28 2013-10-22 World Assets Consulting Ag, Llc Adaptive computer-based personalities
DE60325076D1 (de) * 2003-12-18 2009-01-15 Sap Ag Verfahren und Rechnersystem zur Bestimmung der Komplexität einer Benutzerschnittstelle
US7467386B2 (en) * 2004-01-16 2008-12-16 International Business Machines Corporation Parameter passing of data structures where API and corresponding stored procedure are different versions/releases
US7853665B1 (en) * 2004-02-18 2010-12-14 Microsoft Corporation Content targeting with audiences
US20080082421A1 (en) * 2004-05-12 2008-04-03 Richard Onyon Monetization of an advanced contact identification system
US9542076B1 (en) 2004-05-12 2017-01-10 Synchronoss Technologies, Inc. System for and method of updating a personal profile
EP1759521B1 (de) * 2004-05-12 2016-06-29 Synchronoss Technologies, Inc. Erweitertes kontaktidentifikationssystem
US20060020501A1 (en) * 2004-07-22 2006-01-26 Leicht Howard J Benefit plans
US20060041930A1 (en) * 2004-08-23 2006-02-23 Hafeman Joseph E Accessing personal information
US7328222B2 (en) * 2004-08-26 2008-02-05 Oracle International Corporation Method and apparatus for preserving data coherency in a database by generating a command object that includes instructions for writing a data record to a local cache
CN101052948A (zh) * 2004-09-10 2007-10-10 图形公司 对象过程图应用程序开发系统
US7734559B2 (en) * 2004-09-28 2010-06-08 Huelsman David L Rule processing method and apparatus providing exclude cover removal to simplify selection and/or conflict advice
US7565640B2 (en) * 2004-10-01 2009-07-21 Microsoft Corporation Framework for seamlessly authoring and editing workflows at design and runtime
US20060074735A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Ink-enabled workflow authoring
US7805324B2 (en) * 2004-10-01 2010-09-28 Microsoft Corporation Unified model for authoring and executing flow-based and constraint-based workflows
US8170901B2 (en) * 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
US7631291B2 (en) * 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US7464366B2 (en) * 2004-10-01 2008-12-09 Microsoft Corporation Programming interface for a componentized and extensible workflow model
US20060074704A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Framework to model cross-cutting behavioral concerns in the workflow domain
US7451432B2 (en) * 2004-10-01 2008-11-11 Microsoft Corporation Transformation of componentized and extensible workflow to a declarative format
KR20080017313A (ko) * 2005-05-19 2008-02-26 퓨전원 인코포레이티드 원격 무선 전화기 자동 파괴
US7747894B2 (en) * 2005-06-06 2010-06-29 Microsoft Corporation Transport-neutral in-order delivery in a distributed system
US9015652B2 (en) * 2005-12-21 2015-04-21 Sap Se Dynamically-generated operating system for sensor networks
US7992128B2 (en) * 2006-01-27 2011-08-02 Sap Ag Computer software adaptation method and system
US20070192152A1 (en) * 2006-02-13 2007-08-16 Itt Manufacturing Enterprises, Inc. Software phase sequencer editor and method of editing
US8069439B2 (en) * 2006-03-30 2011-11-29 Microsoft Corporation Framework for modeling continuations in workflows
US7739135B2 (en) * 2006-03-30 2010-06-15 Microsoft Corporation Asynchronous fault handling in process-centric programs
US20070239505A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Abstract execution model for a continuation-based meta-runtime
US8024405B2 (en) * 2006-03-30 2011-09-20 Microsoft Corporation Declarative model for concurrency-control across lightweight threads
US20070250295A1 (en) * 2006-03-30 2007-10-25 Subx, Inc. Multidimensional modeling system and related method
US20070239498A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Framework for modeling cancellation for process-centric programs
US20070244910A1 (en) * 2006-04-12 2007-10-18 Microsoft Corporation Business process meta-model
US20070288890A1 (en) 2006-05-17 2007-12-13 Ipreo Holdings, Inc. System, method and apparatus to allow for a design, administration, and presentation of computer software applications
US7890921B2 (en) 2006-07-31 2011-02-15 Lifecylce Technologies, Inc. Automated method for coherent project management
US8381180B2 (en) * 2006-09-08 2013-02-19 Sap Ag Visually exposing data services to analysts
US8032566B2 (en) * 2006-12-04 2011-10-04 Teradata Us, Inc. Tools for defining and using custom analysis modules
US8285732B2 (en) * 2006-12-18 2012-10-09 Sap Ag Method and system for providing themes for software applications
CN101606144A (zh) * 2007-01-26 2009-12-16 富盛旺公司 用于备份内容以供移动设备使用的系统和方法
US7870169B2 (en) * 2007-06-29 2011-01-11 International Business Machines Corporation Method for enabling traceability and recovery from errors during migration of software applications
US8260714B2 (en) * 2007-08-09 2012-09-04 Panasonic Corporation Terminal apparatus and system thereof
US8429645B2 (en) * 2007-08-14 2013-04-23 International Business Machines Corporation Method for optimizing migration of software applications to address needs
US20090049064A1 (en) * 2007-08-15 2009-02-19 Lori Alquier Data and application model for configurable tracking and reporting system
AU2008229743A1 (en) * 2007-10-03 2009-04-23 Britesoft Solutions (M) Sdn Bhd Cutomizable Application System
US8181111B1 (en) 2007-12-31 2012-05-15 Synchronoss Technologies, Inc. System and method for providing social context to digital activity
US8370795B1 (en) * 2008-01-31 2013-02-05 Intuit Inc. Method and system for explaining a value of a field in a form
DE102009019319A1 (de) 2009-04-30 2011-01-05 Sascha Lehner Verfahren zur Erzeugung mindestens einer Anwendungsbeschreibung
US9524345B1 (en) 2009-08-31 2016-12-20 Richard VanderDrift Enhancing content using linked context
US9703550B1 (en) * 2009-09-29 2017-07-11 EMC IP Holding Company LLC Techniques for building code entities
US8255006B1 (en) 2009-11-10 2012-08-28 Fusionone, Inc. Event dependent notification system and method
US9639707B1 (en) 2010-01-14 2017-05-02 Richard W. VanderDrift Secure data storage and communication for network computing
US8943428B2 (en) 2010-11-01 2015-01-27 Synchronoss Technologies, Inc. System for and method of field mapping
US20120137278A1 (en) 2010-11-30 2012-05-31 International Business Machines Corporation Generating a customized set of tasks for migration of a deployed software solution
US20120180033A1 (en) * 2011-01-12 2012-07-12 David Amos Brown System and Methodology for Autonomous, Value-Centric, Architectural, Software Programming
US9063673B2 (en) * 2011-08-30 2015-06-23 Uniquesoft, Llc System and method for implementing application code from application requirements
WO2013090433A1 (en) * 2011-12-12 2013-06-20 Black Point Technologies Llc Systems and methods for trading using an embedded spreadsheet engine and user interface
CA2827343A1 (en) * 2012-09-17 2014-03-17 Adam Rabie System and method for presenting big data through a web-based browser enabled user interface
US8887128B2 (en) * 2012-12-17 2014-11-11 Sas Institute Inc. Computer-implemented systems and methods for automated generation of a customized software product
US9959329B2 (en) * 2013-07-03 2018-05-01 Sap Se Unified master report generator
US9805070B2 (en) 2013-07-09 2017-10-31 Oracle International Corporation Dynamic migration script management
US9762461B2 (en) 2013-07-09 2017-09-12 Oracle International Corporation Cloud services performance tuning and benchmarking
US9442983B2 (en) 2013-07-09 2016-09-13 Oracle International Corporation Method and system for reducing instability when upgrading software
US11157664B2 (en) 2013-07-09 2021-10-26 Oracle International Corporation Database modeling and analysis
US9747311B2 (en) * 2013-07-09 2017-08-29 Oracle International Corporation Solution to generate a scriptset for an automated database migration
US10776244B2 (en) 2013-07-09 2020-09-15 Oracle International Corporation Consolidation planning services for systems migration
US9996562B2 (en) 2013-07-09 2018-06-12 Oracle International Corporation Automated database migration architecture
US9792321B2 (en) 2013-07-09 2017-10-17 Oracle International Corporation Online database migration
US9967154B2 (en) 2013-07-09 2018-05-08 Oracle International Corporation Advanced customer support services—advanced support cloud portal
US9535935B2 (en) * 2013-12-09 2017-01-03 Sap Se Schema-based application model validation in a database
CN104699717B (zh) * 2013-12-10 2019-01-18 中国银联股份有限公司 数据挖掘方法
US9535664B1 (en) * 2014-04-23 2017-01-03 William Knight Foster Computerized software development process and management environment
US11294665B1 (en) 2014-04-23 2022-04-05 William Knight Foster Computerized software version control with a software database and a human database
US9729583B1 (en) 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
CN104866398B (zh) * 2015-06-17 2018-08-07 株洲南车时代电气股份有限公司 一种基于lkj分时运行多种车载应用软件的方法和系统
US10275502B2 (en) * 2015-12-22 2019-04-30 Opera Solutions Usa, Llc System and method for interactive reporting in computerized data modeling and analysis
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11036696B2 (en) 2016-06-07 2021-06-15 Oracle International Corporation Resource allocation for database provisioning
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US10282700B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US10496803B2 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10565397B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10353673B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10585968B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US10242228B2 (en) 2016-06-10 2019-03-26 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10496846B1 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US10509920B2 (en) * 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for processing data subject access requests
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10454973B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US10509894B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10572686B2 (en) 2016-06-10 2020-02-25 OneTrust, LLC Consent receipt management systems and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US10416966B2 (en) 2016-06-10 2019-09-17 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10649741B2 (en) * 2016-10-17 2020-05-12 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
US11720330B2 (en) 2016-10-17 2023-08-08 Engineer.ai Corp. Application development involving instant protoyping
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
GB2574905A (en) * 2018-06-18 2019-12-25 Arm Ip Ltd Pipeline template configuration in a data processing system
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11681504B1 (en) 2019-04-26 2023-06-20 Opturo, Inc. Automated application builder using configuration files
US11256671B2 (en) 2019-09-13 2022-02-22 Oracle International Corporation Integrated transition control center
WO2022011142A1 (en) 2020-07-08 2022-01-13 OneTrust, LLC Systems and methods for targeted data discovery
EP4189569A1 (de) 2020-07-28 2023-06-07 OneTrust LLC Systeme und verfahren zur automatischen blockierung der verwendung von verfolgungswerkzeugen
US11475165B2 (en) 2020-08-06 2022-10-18 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US11526624B2 (en) 2020-09-21 2022-12-13 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
EP4241173A1 (de) 2020-11-06 2023-09-13 OneTrust LLC Systeme und verfahren zur identifizierung von datenverarbeitungsaktivitäten auf der basis von datenentdeckungsergebnissen
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
US11442906B2 (en) 2021-02-04 2022-09-13 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
WO2022170254A1 (en) 2021-02-08 2022-08-11 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US11601464B2 (en) 2021-02-10 2023-03-07 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
US11546661B2 (en) 2021-02-18 2023-01-03 OneTrust, LLC Selective redaction of media content
WO2022192269A1 (en) 2021-03-08 2022-09-15 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4528644A (en) * 1983-07-18 1985-07-09 Pitney Bowes Inc. Customizing the firmware after assembly of an electronic postage meter
US4827404A (en) * 1986-04-14 1989-05-02 Schlumberger Technology Corporation Method and system for computer programming
US4831526A (en) * 1986-04-22 1989-05-16 The Chubb Corporation Computerized insurance premium quote request and policy issuance system
JPS63181033A (ja) * 1987-01-23 1988-07-26 Hitachi Ltd プログラム自動生成方式
JP2592955B2 (ja) * 1989-04-04 1997-03-19 株式会社東芝 プログラム自動生成装置
DE69031028T2 (de) * 1990-02-26 1997-11-20 Oracle Corp System zum physikalischen Entwurf von Datenbanken
US5586314A (en) * 1990-05-02 1996-12-17 Electronic Data Systems Corporation Graphic information modeling and icon-based intermediate text language generation
US5297279A (en) * 1990-05-30 1994-03-22 Texas Instruments Incorporated System and method for database management supporting object-oriented programming
JPH06502941A (ja) * 1990-07-20 1994-03-31 テンプル ユニヴァーシティ―オブ ザ コモンウエルス システム オブ ハイヤー エデュケーション 異種オペレーティングシステムを有する高レベル仮想コンピュータのシステム
US5423041A (en) * 1990-09-28 1995-06-06 Texas Instruments Incorporated Coupling rules to an object-oriented program
US5566330A (en) * 1991-08-20 1996-10-15 Powersoft Corporation Method for forming a reusable and modifiable database interface object
JPH05233239A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd プログラム自動生成装置
US5485601A (en) * 1992-05-14 1996-01-16 Ching; Hugh Completely automated and self-generating software system
US5830065A (en) * 1992-05-22 1998-11-03 Sitrick; David H. User image integration into audiovisual presentation system and methodology
US5353401A (en) * 1992-11-06 1994-10-04 Ricoh Company, Ltd. Automatic interface layout generator for database systems
US5504885A (en) * 1993-06-29 1996-04-02 Texas Instruments Incorporated O-R gateway: a system for connecting object-oriented application programs and relational databases
US5819090A (en) * 1994-03-04 1998-10-06 Ast Research, Inc. Application control module for common user access interface
US5615379A (en) * 1994-08-26 1997-03-25 Sprint International Communications Corp. Method for editing data stored in files in which the file formats are unknown
US5819251A (en) * 1996-02-06 1998-10-06 Oracle Corporation System and apparatus for storage retrieval and analysis of relational and non-relational data

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015185328A1 (de) 2014-06-06 2015-12-10 Rode Oliver Computerimplementiertes verfahren und signalfolge für ein programm zur wiederverwendung von ausführbaren softwarekonfigurationen für softwaresysteme sowie rechneranlage und ein computerprogramm mit programmcode zur durchführung des verfahrens
DE102014210854A1 (de) 2014-06-06 2015-12-17 Oliver Rode Computerimplementiertes Verfahren und Signalfolge für ein Programm zur Wiederverwendung von ausführbaren Softwarekonfigurationen für Softwaresysteme sowie Rechneranlage und ein Computerprogramm mit Programmcode zur Durchführung des Verfahrens
DE202014006343U1 (de) 2014-08-07 2014-08-21 Db Systel Gmbh Rechneranlage, Datenträger sowie Signalfolge für ein Programm zur Wiederverwendung von ausführbaren Softwarekonfigurationen für Softwaresysteme

Also Published As

Publication number Publication date
DE69838139D1 (de) 2007-09-06
WO1999014651A2 (en) 1999-03-25
EP1015969A4 (de) 2002-03-13
CA2304020C (en) 2005-07-12
EP1015969A2 (de) 2000-07-05
WO1999014651B1 (en) 1999-10-07
US6016394A (en) 2000-01-18
WO1999014651A3 (en) 1999-05-06
AU9388598A (en) 1999-04-05
EP1015969B1 (de) 2007-07-25
AU733773B2 (en) 2001-05-24
ATE368252T1 (de) 2007-08-15
CA2304020A1 (en) 1999-03-25

Similar Documents

Publication Publication Date Title
DE69838139T2 (de) Verfahren und system zur schaffung von datenbankanwendungssoftware,die minimales programmieren benötigen
CN113094037B (zh) 表单和工作流的交互方法、开发平台、设备及存储介质
DE60311805T2 (de) Erfassung, Zusammenstellung und/oder Visualisierung von strukturellen Merkmalen von Architekturen
US7895563B2 (en) Managing reusable software assets
DE10121790B4 (de) Softwarekonfigurationsverfahren zur Verwendung in einem Computersystem
CN1918589B (zh) 通过虚拟文档架构来促进协同编辑和承担责任的自动出版系统
US7577934B2 (en) Framework for modeling and providing runtime behavior for business software applications
US7590972B2 (en) Role-oriented development environment
US7730446B2 (en) Software business process model
DE112018002872T5 (de) Integriertes system zur regelbearbeitung, simulation, versionssteuerung und geschäftsprozessverwaltung
US6957206B2 (en) Computer system and method with adaptive N-level structures for automated generation of program solutions based on rules input by subject matter experts
US6959429B1 (en) System for developing data collection software applications
JP7373563B2 (ja) ウェブサイト構築システム用の構成可能なアプリケーションの作成および処理のためのシステムおよび方法
DE102004043788A1 (de) Programm Generator
Sharon et al. Tools that bind: creating integrated environments
Lumertz et al. User interfaces metamodel based on graphs
EP1490762B1 (de) Verfahren, software-produkt und system zur universellen computergestuetzten informationsverarbeitung
US20120209887A1 (en) System, Process and Article of Manufacture for Automatic Generation of Subsets of Existing Databases
US20230359814A1 (en) System and method for creation and handling of configurable applications for website building systems
Fox et al. Activity planning for the Phoenix Mars lander mission
Lee Adaptable Software Reuse: Binding Time Aware Modelling Language to Support Variations
Lukas Visualizing Feature Coupling Evolution by Utilizing Source Code Co-Change and Issue Tracking Data
Godbole Integration of knowledge-based expert system and relational database to grade buildings for wind resistance: design and implementation
Nelson A requirements specification of modifications to the Functional Description of the Mission Space Resource Center
Malley et al. DATA WAREHOUSE: EMPHASIS IN DECISION SUPPORT

Legal Events

Date Code Title Description
8364 No opposition during term of opposition