DE202006000135U1 - Vorrichtung zum Erzeugen von Programmcode eines Nutzerprogrammes - Google Patents

Vorrichtung zum Erzeugen von Programmcode eines Nutzerprogrammes Download PDF

Info

Publication number
DE202006000135U1
DE202006000135U1 DE202006000135U DE202006000135U DE202006000135U1 DE 202006000135 U1 DE202006000135 U1 DE 202006000135U1 DE 202006000135 U DE202006000135 U DE 202006000135U DE 202006000135 U DE202006000135 U DE 202006000135U DE 202006000135 U1 DE202006000135 U1 DE 202006000135U1
Authority
DE
Germany
Prior art keywords
unit
code
program
user
database
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
DE202006000135U
Other languages
English (en)
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.)
Framework Systems GmbH
Original Assignee
Framework Systems GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Framework Systems GmbH filed Critical Framework Systems GmbH
Priority to DE202006000135U priority Critical patent/DE202006000135U1/de
Publication of DE202006000135U1 publication Critical patent/DE202006000135U1/de
Priority to US11/620,136 priority patent/US7913224B2/en
Priority to DE102007001773A priority patent/DE102007001773A1/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
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Vorrichtung zum automatisierten Erzeugen von auf einer nutzerseitigen Ablaufeinheit lauffähigem Programmcode eines Nutzerprogramms mit
einer zum Programmierzugriff durch eine Bedienperson ausgebildeten Editiereinheit (10), die zum visuell unterstützten Auswählen und/oder Gestalten von Ein- und/oder Ausgabemasken, Formularen, Prozessablaufdarstellungen, Datentypen und/oder Datenspeichereinheften des Nutzerprogramms ausgebildet ist,
einer der Editiereinheit zugeordneten Codegenerator- und/oder Codeumsetzereinheit (12) sowie einer dieser zugeordneten Codespeichereinheit (14),
wobei die Editiereinheit, die Codegenerator- und/oder Codeumsetzereinheit sowie die Codespeichereinheit als Funktionselemente einer für Programmentwicklungszwecke eingerichteten Datenverarbeitungsvorrichtung, insbesondere im Rahmen einer Software-Entwicklungsumgebung, realisiert sind,
dadurch gekennzeichnet, dass
die Codegenerator- und/oder Codeumsetzereinheit ein Ausgabesignal der Editiereinheit datenmäßig und automatisiert so umsetzt, dass die Ein- und/oder Ausgabemasken, Formulare, Prozessablaufdarstellungen, Datentypen und/oder Datenspeichereinheiten des Nutzerprogramms in Klassen und/oder Methoden einer C#-Programmierumgebung umgesetzt werden und von der Codespeichereinheit als C#-Klassen und/oder C#-Methoden datenbankmäßig in einer Quellcode-Programmdatenbank der Codespeichereinheit abgelegt werden und der Codespeichereinheit eine Ablaufcodeerzeugungseinheit (18) zum Erzeugen des lauffähigen Programmcodes des...

Description

  • Die vorliegende Erfindung betrifft eine Vorrichtung zum automatisierten Erzeugen von auf einer nutzerseitigen Ablaufeinheit lauffähigem Programmcode eines Nutzerprogrammes nach dem Oberbegriff des Hauptanspruches.
  • Derartige Vorrichtungen sind aus dem Stand der Technik allgemein bekannt, insbesondere in Form sogenannter Software-Entwicklungssuiten, wie sie beispielsweise von der Firma Microsoft als integrierte Entwicklungswerkzeuge für die Programmiersprachen Visual Basic oder Visual C# angeboten und von typischerweise spezialisierten Softwareentwicklern benutzt werden.
  • Wesentliches Merkmal derartiger bekannter Vorrichtungen ist die visuelle Unterstützung der Programmierarbeit durch die Bedienperson, nämlich das Vorsehen geeigneter, baukastenartig strukturierter Objekte in Form von Steuer- oder Bedienfeldern, symbolischen Darstellungen von Daten, Datenbanken oder anderen Elementen des Nutzerprogrammes, welche es dem Programmierer erlauben, einfach und übersichtlich Masken, Formulare, Reports od.dgl. durch einfaches Auswählen, Bewegen und Verknüpfen derartiger Objekte bzw. Elemente zu erzeugen, woraufhin dann aus einer solchen visuellen und vom Programmierer erzeugten Darstellung durch die gattungsgemäß bekannte Codegeneratoreinheit Quellcode in der jeweils vorgesehenen Programmiersprache erzeugt wird.
  • Auf diese Weise lässt sich nicht nur der manuelle Programmieraufwand für den Programmierer reduzieren, auch lassen sich ansprechende Gestaltungen in geringer Entwicklungszeit und mit kleiner Fehlerrate erzeugen.
  • Allerdings unterstützen derartige, bekannte Vorrichtungen die Entwicklung gerade von komplexen, auf repetetiven Vor gängen aufgebauten Anwendungen, wie etwa von Geschäftsprozess-Anwendungen, Transaktionssystemen od.dgl., nur bedingt, denn bereits die durch das jeweilige Dateisystem bestimmte Ablage der von der Editiereinheit erzeugten Objekte und die begrenzte visuelle Unterstützung gerade von Prozessabläufen macht es erforderlich, dass der Programmierer noch beträchtliche Codebestandteile durch manuelle, zeilenweise (und textbasierte) Programmierarbeit erstellt und darüber hinaus -- aufwändig -- durch zusätzliche Programmierarbeit die von der Codegeneratoreinheit erzeugten, etwa eine Eingabemaske entsprechenden Codefragmente geeignet zusammenstellen und verbinden muss. Hierdurch bleibt dem Programmierer als Softwareentwickler zwar größtmögliche Flexibilität und Variabilität in der -- visuell unterstützten -- Entwicklung des Nutzerprogrammes, komplexe Anwendungen bewirken jedoch eine (überproportional) hohe Komplexität, die nur von besonders erfahrenen Programmierern als Bedienpersonen eines gattungsbildenden Systems bewältigt werden kann.
  • Entsprechend waren daher bislang gängige, visuell unterstützte Programmierumgebungen der gattungsbildenden Art nur begrenzt Anwendungen zugänglich, bei welchen auf der Basis weitgehend standardisierter Abläufe, Objekte und Nutzerschnittstellen, für ein jeweils spezifisches Nutzerprogramm nur geringe Anpassungen vorgenommen werden mussten.
  • Aufgabe der vorliegenden Erfindung ist es daher, eine gattungsbildende Vorrichtung zum Erzeugen von lauffähigem Programmcode eines Nutzerprogramms im Hinblick auf eine Eignung für komplexe Anwendungen, insbesondere im Umfeld der Geschäftsprozessmodellierung und -unterstützung, zu verbessern, wobei insbesondere die Ablage von durch die Codegeneratoreinheit erzeugten Quellcodes in der jeweils betreffenden Programmiersprache im Hinblick auf eine zu verwaltende Vielzahl von Codefragmenten, ein einfaches und zuverlässiges Wieder-Auffinden und -Benutzen sowie bessere Übersichtlichkeit zur Vermeidung von Fehlern optimiert werden soll.
  • Damit ist es dann auch Aufgabe der vorliegenden Erfindung, Systemprogrammierung und -pflege mit der gattungsbildenden Vorrichtung einem weiteren Nutzerkreis als Programmierern, insbesondere auch weniger erfahrenen und weniger spezialisierten Programmierern, zugänglich zu machen.
  • Die Aufgabe wird durch die Vorrichtung mit den Merkmalen des Hauptanspruches gelöst; vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen beschrieben.
  • Ferner wird Schutz beansprucht für eine Verwendung der Erfindung zur Erstellung von Nutzerprogrammen als ERP- und/oder Transaktionssysteme im geschäftlichen Umfeld, wobei eine Verwendung zur einfachen Anbindung von mobilen nutzerseitigen Ablaufeinheiten (Clients) als besonders bevorzugt gelten soll.
  • In erfindungsgemäß vorteilhafter Weise setzt die Codegenerator und/oder Codeumsetzereinheit das Ausgabesignal der Editiereinheit datenmäßig und automatisiert in Klassen oder Methoden der C#-Programmierumgebung um, wobei diese Klassen bzw. Methoden dann datenbankmäßig in einer Quellcode-Programmierdatenbank, die der Codespeichereinheit zugeordnet ist, abgelegt werden.
  • Durch diese Maßnahme wird zunächst erreicht, bekannte und technologisch gut beherrschte Datenbanktechnologien (bevorzugt ist hier der Einsatz einer SQL-Datenbank, weiter bevorzugt die Verwendung einer generischen, SQL-fähigen Datenbankschicht, welche mit gängigen Engines und Applikationen, etwa MS SQL oder Oracle, zusammenarbeitet) zu nutzen, um in optimal organisierter, leistungsmäßig optimierter und insbesondere auch für große (Code-) Datenmengen und eine Vielzahl von Codefragmenten geeigneter Weise Quellcode abzulegen, vorzuhalten und für spätere Pflege oder Überarbeitung oder für das Erzeugen des lauffähigen Programmcodes bereitzuhalten.
  • Im Gegensatz zu der gängigen, file- bzw. dateisystembasierten Organisation werden dadurch nicht nur erhöhte Qualitätsmaßstäbe in der Softwarerealisierung durchsetzbar, auch eignet sich die erfindungsgemäße Vorrichtung damit für komplexe Anwendungen mit einer bislang nur schwer beherrschbaren Vielzahl von automatisiert zu erzeugenden Quellcode-Komponenten, so dass, insbesondere im Umfeld der Geschäftsprozessanwendungen, ein bislang unerreichbarer Anteil an Programmieraufgaben durch die Vorrichtung unterstützt werden kann (und damit nicht mehr -- aufwändig und fehlerträchtig -- programmiert werden muss). In der praktischen Realisierung wird erwartet, dass etwa 95 % des Quellcodes für eine Geschäftsanwendung mit Hilfe der vorliegenden Erfindung durch Wirkung der Editiereinheit und der Codegenerator- bzw. Codeumsetzereinheit unterstützt bzw. automatisiert werden kann und nur die verbleibenden 5 % durch manuelle Programmierung (weiterbildungsgemäß auch durch entsprechende Funktionalität der erfindungsgemäßen Editiereinheit ermöglicht) realisiert werden müssen.
  • Besonders vorteilhaft im Rahmen der Erfindung wird zudem die C#-Programmierumgebung verwendet, da diese -- als Bestandteil des ansonsten bekannten Net-Umfeldes -- nicht nur günstig für die Realisierung von und Verbindung mit Internet-Technologien ist, sondern zudem auch spracheninhärente Eigenschaften -- insbesondere die Vererbung -- die günstige Möglichkeit bieten, einmal durch den Programmierer erzeugte Objekte (z.B. eine Maske oder ein Formular) mit ihren spezifischen Eigenschaften auf weitere Objekte derselben Anwendung (d.h. des betreffenden Nutzerprogramms) automatisiert zu übertragen.
  • Erfindungsgemäß ist zudem vorgesehen, dass die Ablaufcode-Erzeugungseinheit aus dem (Quellcode-) Inhalt der Codespeichereinheit (genauer gesagt: der Quellcode-Programmdatenbank der Codespeichereinheit) den lauffähigen Programmcode so erzeugt, dass dieser -- geeignet in einem Verzeichnis eines Webservers abgelegt -- unter Nutzung ansonsten be kannten Technologien lauffähig ist und insbesondere auf der Basis eines Internetprotokolls (bevorzugt HTTP) durch stationäre oder mobil angebundene Clients ausgeführt werden kann. Insoweit bietet dann der Webserver für den lauffähigen Programmcode eine geeignete Laufzeitumgebung an, weiterbildungsgemäß (und insbesondere im Hinblick auf mobile Clients) auch durch geeignetes Session-Management bzw. das Vorsehen einer Serialisierungseinheit, mit welcher temporär getrennte Clients laufende Benutzersessions wieder aufleben lassen und weiterführen können.
  • In besonders vorteilhafter Weise wird zudem XML als Basis für die Kommunikation zwischen der nutzerseitigen Ablaufeinheit (Client) und den Webserver verwendet; auf diese Weise kann damit die Nutzerseite nicht nur von der auf dem Webserver ablaufenden Anwendungen (Nutzerprogramm) logisch und syntaktisch getrennt werden, auch wird der Zugriff für eine Vielzahl von Client-Plattformen ermöglicht, solange diese XML-basiert zugreifen: Im Rahmen der Erfindung und mit besonderer Eignung für portable Clients kann daher ein nutzerseitig weiterbildungsgemäß eingerichteter Viewer nicht nur auf der Basis von Java und/oder HTML arbeiten, sondern etwa auch portable Systeme in Form von PDAs (mittels z.B. ASP .Net für ein Microsoft Pocket PC-Umfeld) einschließen.
  • Im Ergebnis entsteht durch die vorliegende Erfindung in überraschend einfacher und leistungsfähiger Weise ein System zur unterstützten Software-Erstellung, welches das Potential und die Leistungsfähigkeit existierender, visuell unterstützter Software-Entwicklungsplattformen im Hinblick auf deutlich erhöhten Unterstützungs- und Automatisierungsgrad bei der Software-Erstellung, insbesondere für komplexe, Geschäftsprozess-orientierte Anwendungen, erhöht, dabei den Komfort und die Sicherheit kommerzieller Datenbanktechnologie für die Behandlung des (überwiegend automatisiert) generierten Codes nützt und die Vorteile gerade des .Net-Umfeldes realisiert, um mobile Anwendungen (bzw. gemischt mobile und stationäre Anwendungen) wirkungsvoll zu unterstützen. Am Ende wird mit der erfindungsgemäßen Vorrichtung ein System geschaffen, welches in wesentlich weitgehenderer Weise auch unternehmensnahem und spezialisierten Programmierern die Nutzung der leistungsfähigen Software-Entwicklungsumgebungen zur System-(Weiter-)Entwicklung und -pflege von komplexen, unternehmensnahen Anwendungen zugänglich macht, ohne dass die Mitwirkung spezialisierter Programmierer erforderlich sein sollte.
  • Weitere Vorteile, Merkmale und Einzelheiten der Erfindung ergeben sich aus der nachfolgenden Beschreibung bevorzugter Ausführungsbeispiele sowie anhand der Zeichnungen; diese zeigen in
  • 1: ein schematisches Blockschaltbild der erfindungsgemäßen Vorrichtung zum automatisierten Erzeugen von auf einer nutzerseitigen Ablaufeinheit lauffähigem Programmcode eines Nutzerprogrammes gemäß einer ersten, bevorzugten Ausführungsform der Erfindung und
  • 2: ein schematisches Blockschaltbild zum verdeutlichen logischer relationaler Datenbankstrukturen für eine Datenbankablage von Formulardaten in der Codespeichereinheit gemäß 1.
  • Wie in der 1 schematisch durch horizontal verlaufende, gestrichelt gezeichnete Trennstriche angedeutet, lässt sich das gezeigte Ausführungsbeispiel in verschiedene, mittels einer oder mehreren Datenverarbeitungseinrichtungen realisierter Funktionsgruppen aufteilen und begreifen: So ist eine erste Funktionsgruppe 30 für die Programmentwicklung vorgesehen, nämlich mittels einer (durch einen Programmierer als Bedienperson) betätigbaren Editiereinheit 10, einer dieser zugeordneten und nachgeschalteten Codegeneratoreinheit 12 sowie einer mit der Codegeneratoreinheit 12 zusammenwirkenden Codespeichereinheit 14, welche eine SQL-Datenbank für durch die Einheit 12 erzeugten C#-Quellcode (sowie zusätzlich für die mit der Editiereinheit 10 erzeugten visuellen oder symbolischen Elemente in einer Editorspezifischen Codierung) ist und eine mittels einer relationalen Datenbank realisierte, standardisierte Datenbank aufweist.
  • Der Funktionsgruppe 30 benachbart in 1 ist als Funktionsgruppe 32 eine Ablaufcodeerzeugungseinheit in der Art einer Compilereinheit 18 gezeigt, welche (mit schematisch gezeigtem Zugriff auf die SQL-Datenbank 14) zum Erzeugen lauffähigen Programmcodes aus dem C#-Quellcode der Datenbank 14 ausgebildet ist. Angestoßen wird dieser Erzeugungsvorgang durch ein schematisch gezeigtes Triggersignal 20, welches automatisch oder z.B. durch Benutzereingabe erfolgen kann.
  • Wiederum logisch (und üblicherweise auch physikalisch) getrennt von der Funktionsgruppe 32 ist die einen Webserver 22 aufweisende Funktionsgruppe 34, wobei der Webserver zum Ausführen des (von der Einheit 18 erzeugten) lauffähigen Programmcodes mit Hilfe geeigneter Runtime-Module ausgebildet ist und zu diesem Zweck auf die in einer schematisch gezeigten Dateisystemeinheit 28 abgelegten lauffähigen Programmcodes zufgreift. Die schematisch gezeigte Datenbankeinheit 24 verdeutlicht noch etwaige Datenbankfunktionalität sowie Datenquellen des lauffähigen Nutzerprogrammes, so dass die im Bereich 34 angeordnete Funktionsgruppe als (Weberserver-basierte) Ablaufumgebung für das fertig erstellte, lauffähige Nutzerprogramm verstanden werden kann.
  • Nutzerseitig (im Bereich 36) greift nunmehr eine schematisch gezeigte Clienteinheit (Ablaufeinheit) 26 zum Ausführen der Anwendung (Nutzerprogramm) auf den Webserver 22 zu, wobei die Kommunikation auf der Basis eines Internet-Protokolls (HTTP) sowie XML-basiert erfolgt, so dass -- mobil oder stationär -- die Clienteinheit 26 mittels nahezu beliebiger Plattformen realisiert werden kann.
  • Auf die so beschriebene Weise entsteht damit ein gerade auch für leistungsfähige Geschäftsprozess-Anwendungen geeignetes, flexibles, mobil einsetzbares und einfach skalierbares Entwicklungs- und Ablaufsystem, welches die Bedürfnisse einfacher und effizienter Programmentwicklung mit leistungsfähigen und sicheren Ablaufbedingungen kombiniert, dies bei größtmöglicher Flexibilität im Nutzerzugriff.
  • Durch die Nutzung von Webtechnologien in der Client-Kommunikation können dabei zudem geeignete Sicherheitstechnologien (z.B. SSL oder VPN) implementiert werden, ohne dass dies andere Funktionsbereiche des Systems beeinflusst.
  • Ein typischer Bedien- und Prozessablauf der in 1 schematisch gezeigten Vorrichtung würde sich wie folgt darstellen: Eine Bedienperson als Programmierer erstellt mit Hilfe der Editiereinheit 10 und der ihm darüber zugänglichen (typischerweise standardisiert vorliegenden) Bibliotheken geeignete Ein- und/oder Ausgabemasken des zu erstellenden Nutzerprogramms, ferner gewünschte Formulare, Prozessablaufdarstellungen, Datentypen in Form von Variablen und weitere Elemente bzw: Objekte, wie sie für die Realisierung einer typischen Geschäftsprozessanwendung erforderlich sind.
  • In weiterbildungsgemäßer Weise ist zudem die Editiereinheit für eine Gruppe von Bedienpersonen geeignet, wobei vorteilhaft und wirksam verhindert werden kann, dass mehrere Programmierer (Bedienpersonen) gleichzeitig dasselbe Objekt (z.B. Maske oder Formular) editieren können.
  • Die Codegeneratoreinheit 12 setzt dann die von der Einheit 10 visuell unterstützt erstellten Objekte in C#-Quellcode um, welcher -- geeignet indiziert und weitergehend datenbankmäßig aufbereitet -- in der SQL-Datenbank 14 abgelegt wird. Genauer gesagt, erzeugt die Einheit 14 nicht nur die jeweiligen Objekten entsprechenden Codefragmente in Form von C#-Klassen und/oder Methoden, auch werden diese geeignet als Datenbankeinträge für die Datenbank 14 aufbereitet und in dieser abgelegt.
  • Nachfolgende Änderungen oder Modifikationen dieses C#-Quellcodes erfolgen dann wiederum nicht unmittelbar durch Editieren des Datenbankinhaltes, sondern durch (visuell unterstütztes) Bearbeiten im Editor, woraufhin wiederum die Codegeneratoreinheit 12 entsprechend geänderten C-Sharp-Code für die Datenbank 14 erzeugt.
  • Während die überwiegende Mehrzahl der vom Programmierer mittels der Editiereinheit 10 durchzuführenden Programmierarbeit visuell bzw. objektmäßig durch existierende Muster oder Vorlagen unterstützt ist, bietet die Editiereinheit die zusätzliche Möglichkeit, in der Art eines traditionellen text- bzw. zeilenbasierten Programmcode-Editors, zusätzliche Methoden zu kreieren, wobei diese dann mittels der Einheit 12 unmittelbar in die Datenbank 14 eingepflegt werden.
  • 2 verdeutlicht in stark vereinfachter und abstrahierter Form eine relationale Datenbankstruktur für das datenbankbasierte Ablegen in der Codespeichereinheit 14; im Beispiel der 2 werden in Form der schematisch gezeigten Datenbanktabelle 40 bis 46 Formulardaten und diesbezüglicher Programmcode gespeichert, wobei analog für weitere Objekte (etwa Reports, Komponenten, Metadatentypen und Workflows usw.) entsprechende Tabellen und relationale Tabellenverknüpfungen vorgesehen sind.
  • Die durch die Editiereinheit 10 visuell unterstützt erzeugten Reports werden einerseits durch unmittelbaren Zugriff auf die Einheit 14 (für nicht-C#-Programmcode) sowie mittels der Einheit 12 (für dadurch erzeugten C#-Quellcode) in die Datenbankeinheit 14 eingetragen, entsprechend der in 2 gezeigten Tabellenstruktur. Genauer gesagt erfasst eine zentrale Tabelle 42 (tblRep_Form) eine Bezeichnung des jeweiligen Formulars im Datenfeld F-Name, ferner zugehörige Eigenschaftsdaten (im Feld F-Data) und stellt ein Index-Datenfeld (F-ID) zur relationalen Verknüpfung mit weiteren Tabellen bereit; so ist dieser Index über eine 1:n-Verknüpfung mit der Tabelle 44 verknüpft, welche, zu einem zugehörigen Indexfeld, durch einen Benutzer eingegebenen C#-Quellcode (als Methoden) im Datenfeld FM-Code ablegt. Der durch Wirkung der Einheit 12 erzeugte C#-Quellcode wird in einer Tabelle 40 abgelegt (Datenfeld lblF_SavedCode), verknüpft über eine 1:1-Relation zum Index der Tabelle 42. Schematisch zeigt 2 noch eine weitere Tabelle 46 (tblRep Controls), welche, wiederum über 1:n mit der Tabelle 42 verknüpft, Daten über Steuerelemente jeweiliger Formulare beinhaltet. Die Darstellung der 2 ist dabei als rein schematisch, stark verkürzt und lediglich exemplarisch für Formulare (als eine Gattung von vielen weiteren möglichen Elementen) zu verstehen; im Hinblick auf zahlreiche weitere, datenbankmäßig im Rahmen der vorliegenden Erfindung zu unterstützende Elemente mit zugehörigem C#-Quellcode und umfangreiche Anwendungen stellt dabei die Datenspeichereinheit 14 eine leistungsfähige Datenbankanwendung dar, welche auf der Systemebene dann geeignet von entsprechend leistungsfähigen, ansonsten bekannten Engines (im vorliegenden Beispiel MS SQL) realisiert wird.
  • Das Auslösen eines Steuersignals 20 aktiviert dann die Ablaufcodeerzeugungseinheit 18, welche zunächst den für das gewünschte Nutzerprogramm relevanten C#-Quellcode aus der Datenbank 14 vollständig zusammenfügt und diesen dann in eine ablauffähige Form in der Art eines Compilers überführt; im praktischen Ausführungsbeispiel hieraus MSIL oder .DLL-Dateien erzeugt, welche dann in einer geeigneten Runtime-Umgebung unmittelbar ausgeführt werden können. Abgelegt wird das Ergebnis der Ablauferzeugungseinheit im Dateisystem 28, welches dem Webserver 22 zugeordnet ist.
  • Die Ausführung des Nutzerprogramms erfolgt dann durch nutzerseitigen (26) Zugriff auf den Webserver 22, wobei auf diesem dann der lauffähige Programmcode ausgeführt wird. Durch die Verwendung einer XML-Kommunikationsbasis zwischen Client 26 und Webserver 22 wird damit die erzeugte Anordnung multiplattformfähig; die Verwendung von gängigen Webtechnologien ermöglicht zudem geeignete Sicherheitskonfigurationen sowie das geeignete Vorsehen von mobilen und/oder stationären Clientzugriffen.

Claims (10)

  1. Vorrichtung zum automatisierten Erzeugen von auf einer nutzerseitigen Ablaufeinheit lauffähigem Programmcode eines Nutzerprogramms mit einer zum Programmierzugriff durch eine Bedienperson ausgebildeten Editiereinheit (10), die zum visuell unterstützten Auswählen und/oder Gestalten von Ein- und/oder Ausgabemasken, Formularen, Prozessablaufdarstellungen, Datentypen und/oder Datenspeichereinheften des Nutzerprogramms ausgebildet ist, einer der Editiereinheit zugeordneten Codegenerator- und/oder Codeumsetzereinheit (12) sowie einer dieser zugeordneten Codespeichereinheit (14), wobei die Editiereinheit, die Codegenerator- und/oder Codeumsetzereinheit sowie die Codespeichereinheit als Funktionselemente einer für Programmentwicklungszwecke eingerichteten Datenverarbeitungsvorrichtung, insbesondere im Rahmen einer Software-Entwicklungsumgebung, realisiert sind, dadurch gekennzeichnet, dass die Codegenerator- und/oder Codeumsetzereinheit ein Ausgabesignal der Editiereinheit datenmäßig und automatisiert so umsetzt, dass die Ein- und/oder Ausgabemasken, Formulare, Prozessablaufdarstellungen, Datentypen und/oder Datenspeichereinheiten des Nutzerprogramms in Klassen und/oder Methoden einer C#-Programmierumgebung umgesetzt werden und von der Codespeichereinheit als C#-Klassen und/oder C#-Methoden datenbankmäßig in einer Quellcode-Programmdatenbank der Codespeichereinheit abgelegt werden und der Codespeichereinheit eine Ablaufcodeerzeugungseinheit (18) zum Erzeugen des lauffähigen Programmcodes des Nutzerprogramms so zugeordnet ist, dass als Reaktion auf ein Anforderungssignal (20) die Ablaufcodeerzeugungseinheit (18) den Inhalt der Quellcode-Programmdatenbank in den durch einen Web server (22) mittels eines internetfähigen Protokolls nutzerseitig bereitzustellenden und bevorzugt nutzerspezifisch lauffähigen Programmcode des Nutzerprogramms umsetzt.
  2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass das internetfähige Protokoll http ist.
  3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass zum Zugriff auf die Editiereinheit dieser eine XML-basierte Viewereinheit für die Bedienperson vorgeschaltet ist.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der nutzerspezifisch lauffähige Programmcode XML-basiert ist und/oder eine XML-basierte Kommunikation zwischen nutzerseitiger Ablaufeinheit und Webserver ermöglicht.
  5. Vorrichtung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die nutzerseitige Ablaufeinheit eine portable oder stationäre Datenverarbeitungseinrichtung (16) ist, die einen Java-basierten, einen ASP .Net, einen .Net oder einen Html basierten Viewer aufweist.
  6. Vorrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Quellcode-Programmdatenbank datenbanktypunabhänig SQL-basiert realisiert ist und zum Zusammenwirken mit einer standardisierten Datenbankumgebung, insbesondere einem MS SQL-Server und/oder einer Oracle-Datenbankengine, ausgebildet ist.
  7. Vorrichtung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Editiereinheit zum Einfügen oder manuellen Eingeben von zusätzlichem C#-Programmcode eingerichtet ist.
  8. Vorrichtung nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Editiereinheit so ausgebildet ist, dass als Bestandteil einer Ein- oder Ausgabemaske, eines Formulars oder einer Prozessdarstellung ausgewählte oder gestaltete Eigenschaften oder Elemente, insbesondere ein grafisches Steuerelement, durch eine der C#-Programmiersprache inhärente Vererbungswirkung auf logisch und/oder abhängig verbundene Eigenschaften oder Elemente weiterer Ein- und/oder Ausgabemasken, Formulare bzw. Prozessdarstellungen automatisch übertragen werden.
  9. Vorrichtung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Editiereinheit zum visuell unterstützten Eingeben von Prozessschritten eines Prozessablaufs, insbesondere von Regel-, Datenbankzugriffs- oder Entscheidungsschritten, ausgebildet ist, wobei diesen Schritten zugeordnete, vorbestimmte grafische Symbole in einer dem Prozessablauf entsprechenden Abfolge zueinander auf einer zweidimensionalen Darstellungsebene der Editiereinheit angeordnet, miteinander verbunden sowie jeweiligen Prozessschritten zugehörige Prozessschrittparamater zugeordnet werden können.
  10. Vorrichtung nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass die Editiereinheit Mittel zur Steuerung eines Zugriffs durch mehrere Bedienpersonen aufweist, die so ausgebildet sind, dass ein Zugriff auf eine Ein- oder Ausgabemaske, ein Formular, eine Prozessablaufdarstellung, einen Datentyp und/oder eine Datenspeichereinheit des Nutzerprogramms durch eine Bedienperson zu einem betreffenden Zeitpunkt ausschließlich für diese Bedienperson möglich ist.
DE202006000135U 2006-01-05 2006-01-05 Vorrichtung zum Erzeugen von Programmcode eines Nutzerprogrammes Expired - Lifetime DE202006000135U1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE202006000135U DE202006000135U1 (de) 2006-01-05 2006-01-05 Vorrichtung zum Erzeugen von Programmcode eines Nutzerprogrammes
US11/620,136 US7913224B2 (en) 2006-01-05 2007-01-05 Device for the automated generation of program code
DE102007001773A DE102007001773A1 (de) 2006-01-05 2007-01-05 Vorrichtung zum automatisierten Erzeugen von Programmcode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE202006000135U DE202006000135U1 (de) 2006-01-05 2006-01-05 Vorrichtung zum Erzeugen von Programmcode eines Nutzerprogrammes

Publications (1)

Publication Number Publication Date
DE202006000135U1 true DE202006000135U1 (de) 2006-04-20

Family

ID=36314252

Family Applications (2)

Application Number Title Priority Date Filing Date
DE202006000135U Expired - Lifetime DE202006000135U1 (de) 2006-01-05 2006-01-05 Vorrichtung zum Erzeugen von Programmcode eines Nutzerprogrammes
DE102007001773A Ceased DE102007001773A1 (de) 2006-01-05 2007-01-05 Vorrichtung zum automatisierten Erzeugen von Programmcode

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE102007001773A Ceased DE102007001773A1 (de) 2006-01-05 2007-01-05 Vorrichtung zum automatisierten Erzeugen von Programmcode

Country Status (2)

Country Link
US (1) US7913224B2 (de)
DE (2) DE202006000135U1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109840086A (zh) * 2018-12-14 2019-06-04 深圳壹账通智能科技有限公司 程序代码获取方法及装置、计算机装置、及可读存储介质
CN117453229A (zh) * 2023-12-26 2024-01-26 天津戎行集团有限公司 一种用于自动代码生成数据库的输出代码解析方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656346B2 (en) * 2009-02-18 2014-02-18 Microsoft Corporation Converting command units into workflow activities
WO2013091672A1 (de) * 2011-12-23 2013-06-27 Paade Gmbh Verfahren zur erzeugung von ausführbarem code
US10817819B2 (en) * 2012-07-16 2020-10-27 Micro Focus Llc Workflow compilation
US9038017B2 (en) 2012-08-23 2015-05-19 Cognizant Technology Solutions India Pvt. Ltd. Method and system for facilitating rapid development of end-to-end software applications
US9164877B2 (en) * 2013-06-21 2015-10-20 Sap Se Business application inspection and modification
JP6340886B2 (ja) * 2014-04-10 2018-06-13 株式会社ジェイテクト プログラマブルロジックコントローラ用プログラムの作成支援装置及びプログラマブルロジックコントローラ用プログラムの作成支援方法
US10963795B2 (en) 2015-04-28 2021-03-30 International Business Machines Corporation Determining a risk score using a predictive model and medical model data
US11157491B2 (en) * 2018-10-18 2021-10-26 Sap Se Compilation framework for dynamic inlining
CN112230914B (zh) * 2019-07-15 2023-09-15 腾讯科技(深圳)有限公司 小程序的制作方法、装置、终端及存储介质
CN110851128A (zh) * 2019-11-04 2020-02-28 紫光云技术有限公司 一种基本功能的应用代码生成方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860004A (en) * 1996-07-03 1999-01-12 Sun Microsystems, Inc. Code generator for applications in distributed object systems
US6604110B1 (en) * 2000-08-31 2003-08-05 Ascential Software, Inc. Automated software code generation from a metadata-based repository
US20030056195A1 (en) * 2001-07-19 2003-03-20 Hunt Joseph R. Code generator
US7152229B2 (en) * 2002-01-18 2006-12-19 Symbol Technologies, Inc Workflow code generator
US7131110B2 (en) * 2002-03-21 2006-10-31 Sun Microsystems, Inc. Method and apparatus for generating a code bridge
US20030200532A1 (en) * 2002-04-17 2003-10-23 Thomas Gensel System and method for sharing reusable code base
US6895409B2 (en) * 2002-06-17 2005-05-17 Adaptik Corporation Method and apparatus for creating an adaptive application
US20050257193A1 (en) * 2004-05-13 2005-11-17 Alexander Falk Method and system for visual data mapping and code generation to support data integration
US7761848B1 (en) * 2005-03-15 2010-07-20 Open Invention Network, Llc Code generator tool for building software applications with reusable components

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109840086A (zh) * 2018-12-14 2019-06-04 深圳壹账通智能科技有限公司 程序代码获取方法及装置、计算机装置、及可读存储介质
CN117453229A (zh) * 2023-12-26 2024-01-26 天津戎行集团有限公司 一种用于自动代码生成数据库的输出代码解析方法
CN117453229B (zh) * 2023-12-26 2024-02-23 天津戎行集团有限公司 一种用于自动代码生成数据库的输出代码解析方法

Also Published As

Publication number Publication date
US7913224B2 (en) 2011-03-22
US20070157163A1 (en) 2007-07-05
DE102007001773A1 (de) 2007-10-31

Similar Documents

Publication Publication Date Title
DE202006000135U1 (de) Vorrichtung zum Erzeugen von Programmcode eines Nutzerprogrammes
EP2350873B1 (de) Erfassung des visuellen inhalts von browserfenstern
WO2015044374A1 (de) Verfahren und einrichtung zur automatisierten erzeugung und bereitstellung wenigstens einer softwareanwendung
EP3032408B1 (de) Verfahren zur erzeugung von lauffähigen applikationen mit dynamischen skalierbaren vektorgrafiken
DE102004036976A1 (de) Verfahren zur Generierung von Internetseiten, zugehöriges Computerprogramm und Computersystem
DE102013001196A1 (de) Verfahren zum Bereitstellen einer Benutzerschnittstelle, Computersystem und Computerprogrammprodukt
DE60032403T2 (de) Speziell adaptierte Wiedergabe und Darstellung von Datenbankinformationen
DE102006033863A1 (de) Verschaltungsschnittstelle für flexibles Online/Offline-Deployment einer n-schichtigen Softwareapplikation
EP2171582A1 (de) Fernbedienung eines browser-programms
DE10336648A1 (de) System und Verfahren zur web-basierten Überwachung und Steuerung mehrerer räumlich verteilter Anlagen
EP2620868A1 (de) Arbeitsfluss-Management-System für Computernetze
EP3355186A1 (de) Erzeugung und ausführung von software-modulen
EP1861796A2 (de) Verfahren zum erstellen einer dokumentation
Büringer Development of a Business Process Abstraction Component based on Process Views
Alder et al. Prozess-Steuerungen
DE10065323C2 (de) Verfahren zur Steuerung der Anordnung von graphischen Elementen
WO2002037339A2 (de) System, verfahren und computerprogramm zur konfiguration von objekten
EP3048777B1 (de) Verfahren zum webbasierten zugriff auf ein automatisierungsgerät, computerprogramm zur ausführung des verfahrens und system
Moritz et al. Praxisbuch SharePoint-Entwicklung
Finkes A hierarchical Eclipse-based editor for system dependency graphs
WO2024088533A1 (de) Integrierte entwicklungsumgebung zur vollständigen softwaretechnischen programmierung einer grafischen benutzeroberfläche einer mensch-maschine-schnittstelle für industrielle maschinensteuerungen
EP1234231A2 (de) Verfahren zur erzeugung grafischer benutzerschnittstellen für computerprogramme
EP1454212A2 (de) Cpl-editor
Krogmann Eclipse Rich Client Platform
DE10139761B4 (de) Computeranordnung in Form eines Client-/Server-Systems mit einer Datei einer Auszeichnungssprache für die Parametrisierung einer automatischen Abfrage sowie entsprechendes Verfahren

Legal Events

Date Code Title Description
R207 Utility model specification

Effective date: 20060524

R150 Utility model maintained after payment of first maintenance fee after three years

Effective date: 20090323

R151 Utility model maintained after payment of second maintenance fee after six years
R151 Utility model maintained after payment of second maintenance fee after six years

Effective date: 20120302

R152 Utility model maintained after payment of third maintenance fee after eight years

Effective date: 20140220

R071 Expiry of right