DE102011112451A1 - Method for developing, testing and operating e.g. computer program, involves reading out procedure manual by data processing system for executing process steps by data processing system - Google Patents

Method for developing, testing and operating e.g. computer program, involves reading out procedure manual by data processing system for executing process steps by data processing system Download PDF

Info

Publication number
DE102011112451A1
DE102011112451A1 DE201110112451 DE102011112451A DE102011112451A1 DE 102011112451 A1 DE102011112451 A1 DE 102011112451A1 DE 201110112451 DE201110112451 DE 201110112451 DE 102011112451 A DE102011112451 A DE 102011112451A DE 102011112451 A1 DE102011112451 A1 DE 102011112451A1
Authority
DE
Germany
Prior art keywords
computer program
data
data processing
processing system
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.)
Withdrawn
Application number
DE201110112451
Other languages
German (de)
Inventor
Patrik Stellmann
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.)
Gdv Dienstleistungs & Co KG GmbH
Gdv Dienstleistungs-Gmbh & Co KG
Original Assignee
Gdv Dienstleistungs & Co KG GmbH
Gdv Dienstleistungs-Gmbh & Co KG
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 Gdv Dienstleistungs & Co KG GmbH, Gdv Dienstleistungs-Gmbh & Co KG filed Critical Gdv Dienstleistungs & Co KG GmbH
Priority to DE201110112451 priority Critical patent/DE102011112451A1/en
Publication of DE102011112451A1 publication Critical patent/DE102011112451A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management

Abstract

The method involves generating a program source code (44) of a computer program. An instance of the computer program is controlled by providing control data for influencing a program sequence. A test of the computer program is produced and/or executed with a test case (52). A consistency is tested and/or a consistency report is generated. A human-readable and/or machine-readable documentation (80) is generated. Data and/or information are combined in a procedure manual. The manual is read out by a data processing system for executing process steps by the processing system. The data processing system is selected from a group consisting of computer system, personal computer, mobile telephone, laptop, tablet computer, distributed processor system and client-server system. Independent claims are also included for the following: (1) a program product i.e. computer program product, for executing a method for developing, testing and operating computer program software (2) a data processing system.

Description

Die Erfindung betrifft ein Verfahren zur Softwareentwicklung, insbesondere zum Entwickeln und/oder Testen und/oder Betreiben eines Computerprogramms. Außerdem betrifft die Erfindung ein Programmprodukt zur Ausführung des Verfahrens. Des Weiteren betrifft die Erfindung eine Datenverarbeitungsanlage zur Ausführung der Verfahren.The invention relates to a method for software development, in particular for developing and / or testing and / or operating a computer program. Moreover, the invention relates to a program product for carrying out the method. Furthermore, the invention relates to a data processing system for carrying out the method.

Die Entwicklung einer Software bzw. eines Computerprogramms vollzieht sich im Allgemeinen in mehreren Schritten. Dabei werden die Schritte üblicherweise durch wenigstens eine Person durchgeführt, bei der es sich insbesondere um Planer, Entwickler, Designer, Programmierer und/oder Benutzer handelt. Diese Personen bzw. Entwickler arbeiten häufig im Rahmen des Entwicklungsprozesses auch als Arbeitsgruppe bzw. Team zusammen.The development of a software or a computer program generally takes place in several steps. The steps are usually carried out by at least one person, who is in particular a planner, developer, designer, programmer and / or user. These people or developers often work together as a working group or team as part of the development process.

In einem ersten vorbereitenden Schritt der Softwareentwicklung erfolgt eine Spezifikation, also eine Festlegung der Anforderungen an das Computerprogramm durch den oder die Entwickler. Hierbei werden unter anderem die zu Grunde legenden bzw. zu bearbeitenden Daten, die damit durchzuführenden Verarbeitungsschritte bzw. Berechnungen und/oder die entsprechenden Definitionen, insbesondere von Schnittstellen, Datenmodellen etc., und andere spezifische Anforderungen festgelegt.In a first preparatory step of the software development, a specification is made, that is, a definition of the requirements for the computer program by the developer or developers. Among other things, the underlying data or data to be processed, the processing steps or calculations to be performed therewith and / or the corresponding definitions, in particular of interfaces, data models, etc., and other specific requirements are determined.

Als nächstes erfolgt die eigentliche Programmierung im Schritt der sogenannten Umsetzung. Ausgehend von den vorgegebenen Randbedingungen und Definitionen von Schnittstellen etc. wird nun der auch als Quellcode bzw. englisch Sourcecode, bezeichnete, eigentliche Quelltext, geschrieben. Dieser wird im Regelfall vollständig manuell durch wenigstens eine Person, wie einen Programmierer, entwickelt. Häufig ist jedoch ein ganzes Entwicklerteam mit einem Projekt beschäftigt. Gegebenenfalls kann aber auch eine Unterstützung des Entwicklers bzw. der Entwickler durch einen Computer, zum Beispiel durch eine entsprechende Programmierumgebung, erfolgen. Damit können beispielsweise aufgrund konkreter Vorgaben durch den Benutzer und entsprechender Einstellungen in der Programmierumgebung einzelne Quelltextabschnitte erzeugt werden, die dann durch den Programmierer vervollständigt werden müssen. In jedem Fall muss der Entwickler die Spezifikation auswerten und direkt oder indirekt in Quellcode umsetzen. Sobald dieser Quelltext vollständig vorliegt, wird er gegebenenfalls von Fehlern, wie Programmierfehlern und/oder Syntaxfehlern, befreit und schließlich zu einem fertigen Programm kompiliert, das auf einer Datenverarbeitungsanlage bzw. einem Computersystem lauffähig ist.Next, the actual programming takes place in the step of the so-called implementation. Starting from the given boundary conditions and definitions of interfaces, etc., the actual source code, also called source code or English source code, is written. This is usually fully developed manually by at least one person, such as a programmer. Often, however, a whole development team is busy with a project. Optionally, however, a support of the developer or developers by a computer, for example, by an appropriate programming environment, take place. Thus, for example, due to concrete specifications by the user and corresponding settings in the programming environment, individual source text sections can be generated, which then have to be completed by the programmer. In any case, the developer must evaluate the specification and translate it directly or indirectly into source code. Once this source code is complete, it may be freed from errors such as programming errors and / or syntax errors, and eventually compiled into a finished program executable on a data processing system or computer system.

Zur Sicherstellung einer hohen Softwarequalität steht im Allgemeinen ein Test des fertiggestellten Computerprogramms an. Im Rahmen einer solchen Maßnahme einer Qualitätssicherung lassen sich beispielsweise Abweichungen von vorher getroffenen Anforderungen und versteckte Programmierfehler entdecken und gegebenenfalls beseitigen. Hierzu wird das fertige Computerprogramm üblicherweise mit Eingabedaten gefüttert, die insbesondere zulässige und nicht zulässige Wertebereiche abdecken, um damit im Rahmen eines solchen so genannten Testfalls die korrekte Funktionsweise und Fehlerbehandlung zu testen.To ensure a high quality of software is generally a test of the finished computer program. In the context of such a measure of quality assurance, for example, deviations from previously met requirements and hidden programming errors can be discovered and possibly eliminated. For this purpose, the finished computer program is usually fed with input data covering in particular permissible and non-permissible ranges of values in order to test the correct functioning and error treatment in the context of such a so-called test case.

Für den eigentlichen Betrieb des Computerprogramms kann es außerdem erforderlich sein, insbesondere bereits im Voraus entsprechende Informationen bereitzustellen bzw. gezielte Eingriffe zur Laufzeit vorzunehmen. Beispielsweise können geeignete Einstellungen an einem Serversystem vorgenommen werden, auf dem eine Instanz der Software, also ein ablaufendes Programm, läuft. Dabei können beispielsweise Informationen wie Ablaufsteuerungsdaten, Berechtigungen, Wertebereiche etc. vorgegeben werden. Des Weiteren kann beispielsweise auch die eigentliche Benutzeroberfläche auf einem Server- oder einem Clientrechner im Rahmen der Softwareentwicklung während des Betriebs erzeugt oder variiert werden. Hier kann beispielsweise ebenso eine Vorgabe von Wertebereichen, Hilfetexten und Fehlermeldungen erforderlich sein.For the actual operation of the computer program, it may also be necessary in particular to provide corresponding information in advance or to carry out targeted interventions at runtime. For example, suitable settings can be made on a server system running an instance of the software, that is to say an executing program. In this case, for example, information such as flow control data, authorizations, value ranges, etc. can be specified. Furthermore, for example, the actual user interface on a server or a client computer can be generated or varied during the software development during operation. Here, for example, a specification of value ranges, help texts and error messages may also be required.

Alle vorstehend genannten Verfahrensschritte bei der Softwareentwicklung erfordern jeweils eine Reihe aufwändiger Benutzereingriffe durch den oder die Programmierer. Diese Benutzereingriffe werden dabei jeweils seitens des Programmierers bzw. Entwicklers aus den Vorgaben der Spezifikation abgeleitet. Auch die Qualitätssicherung leitet die Anforderungen an die Programmfunktionen eigenständig erneut aus der Spezifikation ab. Diese prinzipbedingt separate Durchführung jedes einzelnen Entwicklungsschritts der Software mit manuellen Eingaben bzw. Eingriffen macht den Entwicklungsprozess sehr arbeitsaufwändig und insbesondere auch fehleranfällig. Ein solches Vorgehen führt damit auch häufig zu Inkonsistenzen und Programmfehlern, da die Spezifikation für die Verfahrensschritte jeweils durch Menschen ausgewertet wird und zudem häufig späteren Änderungen im Prozess unterliegt, da sie im Allgemeinen vorab nicht vollständig geprüft worden ist.All of the aforementioned software development process steps require a series of complex user interventions by the programmer (s). These user interventions are derived in each case by the programmer or developer from the specifications of the specification. Quality assurance also independently derives the requirements for the program functions from the specification. This principle-independent implementation of each individual development step of the software with manual inputs or interventions makes the development process very labor-intensive and in particular error-prone. Such a procedure also often leads to inconsistencies and program errors, since the specification for the method steps is evaluated by humans in each case and is often subject to later changes in the process, since it has generally not been fully tested in advance.

Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Softwareentwicklung, insbesondere eines Computerprogramms anzugeben, der einerseits die Softwareentwicklung vereinfacht und andererseits insbesondere die Gefahr von Fehlern und Inkonsistenzen reduziert.The present invention is therefore based on the object of specifying a method for software development, in particular of a computer program, which on the one hand simplifies software development and on the other hand reduces the risk of errors and inconsistencies on the one hand.

Die Aufgabe wird durch ein Verfahren gemäß Anspruch 1 gelöst.The object is achieved by a method according to claim 1.

Das Verfahren zum Entwickeln von Software, wie insbesondere eines Computerprogramms, vorzugsweise zum Entwickeln und/oder Testen und/oder Betreiben der Software bzw. des Computerprogramms, weist demnach mindestens einen der folgenden Verfahrensschritte auf:

  • – Generierung eines Programmquelltextes des Computerprogramms, insbesondere eines Programmquelltextgerüstes;
  • – Steuerung wenigstens einer Instanz des Computerprogramms, vorzugsweise durch Bereitstellung von Steuerdaten zur Beeinflussung des Programmablaufs;
  • – Erzeugung und/oder Durchführung wenigstens eines Tests des Computerprogramms mit insbesondere wenigstens einem Testfall;
  • – Überprüfung der Konsistenz und/oder Generierung wenigstens eines Konsistenzreports für wenigstens einen der oben genannten Verfahrensschritte;
  • – Generierung einer menschenlesbaren und/oder maschinenlesbaren Dokumentation.
The method for developing software, in particular a computer program, preferably for developing and / or testing and / or operating the software or the computer program, therefore has at least one of the following method steps:
  • Generation of a program source text of the computer program, in particular of a program source text framework;
  • - Controlling at least one instance of the computer program, preferably by providing control data for influencing the program flow;
  • Generating and / or carrying out at least one test of the computer program, in particular with at least one test case;
  • Checking the consistency and / or generation of at least one consistency report for at least one of the above-mentioned method steps;
  • - Generation of human-readable and / or machine-readable documentation.

Dabei werden zur Durchführung zumindest der durchzuführenden, vorzugsweise aller Verfahrensschritte erforderlichen Daten und/oder Informationen in einem Verfahrenshandbuch zusammengefasst. Außerdem wird das Verfahrenshandbuch durch eine Datenverarbeitungsanlage ausgelesen zur Durchführung des wenigstens einen Verfahrensschrittes.In this case, at least the data and / or information required to be carried out, preferably all of the method steps, are summarized in a procedure manual. In addition, the procedure manual is read by a data processing system for performing the at least one method step.

Vorteilhaft ist hieran insbesondere die Zusammenfassung sämtlicher erforderlicher Informationen an einer zentralen Stelle, nämlich in dem Verfahrenshandbuch. Das Verfahrenshandbuch wird im Rahmen der Spezifikation insbesondere bereits vollständig erstellt. Dadurch ist es möglich, jegliche Informationen zentral abzulegen und im gesamten Entwicklungsprozess vorzuhalten, vorzugsweise unverändert, insbesondere zumindest nach Abschluss der Spezifikation. Um einen einzelnen oder mehrere der Verfahrensschritte im Rahmen der Softwareentwicklung durchzuführen, muss nun jeweils lediglich das Verfahrenshandbuch ausgelesen werden. Da für alle Verfahrensschritte derselbe Informationsstand vorliegt, werden Inkonsistenzen und Fehler zumindest auf ein Minimum reduziert oder sogar gänzlich ausgeschlossen. Eine weitere Verbesserung besteht insbesondere darin, dass das Verfahrenshandbuch durch eine Datenverarbeitungsanlage ausgelesen wird, statt fehleranfällig durch einen Menschen. Damit wird der Entwicklungsprozess für das Computerprogramm durch den Einsatz elektronischer Datenverarbeitung vereinfacht. Gegenüber einem menschlichen Programmierer sinkt durch Einsatz einer Datenverarbeitungsanlage zum Auslesen des Verfahrenshandbuchs die Fehlerquote außerdem deutlich, da einem Computersystem keine Fehler beim Auslesen solcher Informationen unterlaufen.This is particularly advantageous in the summary of all necessary information at a central point, namely in the procedure manual. In particular, the procedure manual is already completely created within the scope of the specification. This makes it possible to store all information centrally and maintain it in the entire development process, preferably unchanged, in particular at least after completion of the specification. In order to carry out a single or several of the method steps in the context of software development, now only the procedure manual has to be read out. Since the same level of information is available for all process steps, inconsistencies and errors are at least reduced to a minimum or even completely excluded. A further improvement is, in particular, that the procedure manual is read by a data processing system, instead of prone to error by a human. This simplifies the development process for the computer program through the use of electronic data processing. Compared to a human programmer, by using a data processing system for reading out the procedure manual, the error rate also drops significantly because a computer system does not make mistakes in reading such information.

Bevorzugt wird das Verfahrenshandbuch durch wenigstens eine Person, insbesondere einen Planer, einen Programmierer, einen Designer, oder anderen menschlichen Benutzer erstellt bzw. geschrieben. Somit können die erforderlichen Informationen an zentraler Stelle in dem Verfahrenshandbuch abgelegt werden. Alle erforderlichen Informationen und Anforderungen an die Entwicklung des Computerprogramms werden so direkt durch die dazu qualifizierten Personen bereitgestellt. Weiter bevorzugt werden die Daten und/oder Informationen für das Verfahrenshandbuch durch wenigstens eine Person vorgegeben, wobei das Verfahrenshandbuch wiederum insbesondere durch eine Datenverarbeitungsanlage aus diesen Daten und/oder Informationen erstellt wird. In diesem Fall kann bereits die Erstellung des Verfahrenshandbuchs computergestützt oder nahezu vollständig durch einen Rechner durchgeführt werden, um damit bereits an dieser Stelle die Fehlerquote und den Aufwand zu reduzieren. Vorzugsweise können die Vorgehensweisen zur Erstellung des Verfahrenshandbuchs auch miteinander kombiniert werden. Beispielsweise können dementsprechend einige Teile des Verfahrenshandbuchs durch einen menschlichen Benutzer erfasst werden, während andere Teile computergestützt aus den gemachten Vorgaben entstehen.Preferably, the procedure manual is created or written by at least one person, in particular a planner, a programmer, a designer, or other human user. Thus, the required information can be stored centrally in the procedure manual. All necessary information and requirements for the development of the computer program are thus provided directly by the qualified persons. More preferably, the data and / or information for the procedure manual are predetermined by at least one person, wherein the procedure manual in turn is created in particular by a data processing system from these data and / or information. In this case, the preparation of the procedure manual can already be carried out computer-assisted or almost completely by a computer in order to already reduce the error rate and the effort at this point. Preferably, the procedures for creating the procedure manual can also be combined with each other. For example, accordingly, some parts of the procedure manual may be detected by a human user, while other parts may be computer-assisted from the specifications made.

Insbesondere werden das Verfahrenshandbuch und/oder die dem Computerprogramm beziehungsweise einer Instanz desselben zugeordneten Daten und/oder Informationen und/oder die dem wenigstens einen durchgeführten Verfahrensschritt zugeordneten Daten und/oder Informationen an zentraler Steile gespeichert. Es handelt sich bei der zentralen Stelle vorzugsweise um eine Datenbank, besonders bevorzugt auf einem zentralen Serversystem. Insbesondere wird zumindest ein Teil der bzw. vorzugsweise werden alle Ein- und/oder Ausgabewerte des Programmablaufs und/oder Zustandsparameter einer Instanz des Computerprogramms an zentraler Stelle gespeichert. Dies erfolgt vorzugsweise ebenfalls in der wenigstens einen Datenbank. Eine zentrale Speicherung bietet den Vorteil, dass die Informationen an einer einzigen Stelle zusammengefasst sind. Dies kann vorzugsweise ein zentraler, insbesondere über das Internet erreichbarer Server sein. Die Datenbank sorgt dabei insbesondere für einen schnellen Zugriff über standardisierte Schnittstellen. Indem auch weitere Informationen, wie beispielsweise die Zustandsparameter und/oder die Ein- bzw. Ausgabewerte einzelner Instanzen des Computerprogramms, zu dessen Laufzeit in der Datenbank abgelegt werden, ergeben sich besondere Vorteile. Es ist insbesondere möglich, den Programmablauf zu überwachen, gezielt Parameter vorab festzulegen bzw. insbesondere zur Laufzeit der Software zu modifizieren bzw. zu optimieren.In particular, the procedure manual and / or the data associated with the computer program or an instance thereof and / or information and / or the data and / or information associated with the at least one method step are stored at a central location. The central location is preferably a database, particularly preferably a central server system. In particular, at least a portion of or preferably all input and / or output values of the program sequence and / or status parameters of an instance of the computer program is stored at a central location. This is preferably also done in the at least one database. Centralized storage offers the advantage that the information is concentrated in one place. This can preferably be a central, in particular accessible via the Internet server. In particular, the database ensures quick access via standardized interfaces. By also further information, such as the state parameters and / or the input or output values of individual instances of the computer program are stored at its term in the database, there are particular advantages. In particular, it is possible to monitor the program sequence, to predetermine specific parameters in advance or, in particular, to modify or optimize the software at runtime.

Das Verfahrenshandbuch liegt vorzugsweise als wenigstens ein, insbesondere als genau ein strukturiertes Dokument vor. Das strukturierte Dokument ist bevorzugt computerlesbar und/oder menschenlesbar. Außerdem ist das strukturierte Dokument besonders bevorzugt in einer plattformunabhängigen Dokumentensprache formuliert. Als eine solche Sprache kommen vorzugsweise die ”Hypertext Markup Language” (HTML) und insbesondere die ”Extensible Markup Language” (XML) in Betracht. Ein strukturiertes Dokument zeichnet sich dabei insbesondere durch einen hierarchischen Aufbau aus. Die darin vorhandenen Daten und Informationen werden in einer streng strukturierten Form lediglich an den entsprechenden, dafür vorgesehenen Stellen abgelegt. Die Überprüfung eines solchen strukturierten Dokumentes auf Korrektheit ist damit auf sehr einfache Weise durchzuführen, da jedes enthaltene Objekt beziehungsweise Element einen definierten Anfang und ein definiertes Ende aufweisen muss. Dies gilt dabei grundsätzlich für die Objekte aller Hierarchiestufen des Dokuments. Außerdem kann zu jedem Objekt vorgeschrieben werden, welche Informationen einzutragen sind, so dass damit der Umfang der jeweiligen Spezifikation einer Software vorgeschrieben werden kann. Ein solches strukturiertes Dokument als textbasierte Datenstruktur lässt sich insbesondere auf einfache Weise in einer Datenbank ablegen. The procedure manual is preferably present as at least one, in particular as a precisely structured document. The structured document is preferably computer-readable and / or human-readable. In addition, the structured document is particularly preferably formulated in a platform-independent document language. As such a language preferably the "Hypertext Markup Language" (HTML) and in particular the "Extensible Markup Language" (XML) come into consideration. A structured document is characterized in particular by a hierarchical structure. The data and information contained therein are stored in a strictly structured form only at the appropriate, designated places. Checking such a structured document for correctness is thus very easy to carry out, since each contained object or element must have a defined beginning and a defined end. This basically applies to the objects of all hierarchy levels of the document. In addition, it can be prescribed for each object which information is to be entered, so that the scope of the respective specification of a software can be prescribed. In particular, such a structured document as a text-based data structure can be stored in a simple manner in a database.

Besonders bevorzugt werden die Daten und/oder Informationen aus dem Verfahrenshandbuch mittels wenigstens eines Skriptes ausgelesen. Ein Skript ist im Allgemeinen ein Programm beispielsweise zur Steuerung von Anwendungen zur Laufzeit, das üblicherweise in einer interpretierten Skriptsprache formuliert ist, also nicht vorab in Maschinensprache kompiliert werden muss. Es kann aber auch als maschinenlesbarer Code vorliegen, Als Skriptsprache wird bevorzugt die ”Extensible Stylesheet Language Transformations” (XSLT) verwendet. Diese Skriptsprache ist insbesondere gerade für die Bearbeitung, Analyse und Datenverarbeitung von strukturierten Dokumenten in der ”Extensible Markup Language” (XML) vorgesehen. Somit kann das in XML formulierte Verfahrenshandbuch optimal verarbeitet werden.Particularly preferably, the data and / or information from the process manual is read out by means of at least one script. A script is generally a program, for example, for controlling applications at runtime, which is usually formulated in an interpreted scripting language, that is, does not have to be compiled in advance in machine language. It can also be a machine-readable code. The scripting language is preferably the Extensible Stylesheet Language Transformations (XSLT). This scripting language is especially intended for the processing, analysis and data processing of structured documents in Extensible Markup Language (XML). Thus, the procedural manual formulated in XML can be optimally processed.

Aus den Daten des Verfahrenshandbuchs wird vorzugsweise ein Quelltextgerüst generiert. Dabei werden dem Verfahrenshandbuch alle relevanten Informationen, insbesondere die dort festgelegten Definitionen und/oder Schnittstellen, entnommen, insbesondere zur Erzeugung der vorgesehenen Funktionsaufrufe innerhalb des Quelltextes. Bevorzugt werden sogenannte Klassen-Definitionen aus der objektorientierten Programmierung aus dem Verfahrenshandbuch abgeleitet, wobei weiter bevorzugt die wenigstens eine Methode der jeweiligen Klasse im Allgemeinen durch einen Programmierer zu entwickeln ist. Bei den aus dem Verfahrenshandbuch abgeleiteten Informationen handelt es sich insbesondere um Eingabe- und/oder Ausgabeparameter, Funktionsnamen, Datenstrukturen, Wertebereiche, Beschreibungs- und/oder Hilfetexte etc. Vorzugsweise sind alte relevanten Informationen vollständig in dem Verfahrenshandbuch abgelegt. Damit wird eine vollständige Spezifikation der Software gewährleistet.From the data of the procedure manual, a source code framework is preferably generated. All relevant information, in particular the definitions and / or interfaces defined there, is taken from the procedure manual, in particular for generating the intended function calls within the source text. Preferably, so-called class definitions are derived from object-oriented programming from the manual of procedures, wherein more preferably the at least one method of the respective class is generally to be developed by a programmer. The information derived from the process manual is, in particular, input and / or output parameters, function names, data structures, value ranges, descriptions and / or help texts, etc. Preferably, old relevant information is stored completely in the procedure manual. This ensures a complete specification of the software.

Besonders bevorzugt läuft zumindest eine Instanz des Computerprogramms auf einem zentralen Serversystem ab. Damit können die Daten an zentraler Stelle vorgehalten werden. Weiter bevorzugt wird eine Benutzeroberfläche als Schnittstelle zu einem Benutzer der Software auf dem Serversystem und/oder einem Clientsystem dargestellt bzw. erzeugt. Dazu kommunizieren insbesondere der Programmteil zur Erzeugung der Benutzeroberfläche als Clientkomponente und das Computerprogramm als Serverkomponente auf dem Serversystem miteinander, insbesondere über das Internet. Vorzugsweise werden die erforderlichen Daten für die Benutzeroberfläche vom Serversystem an das Clientsystem geliefert. Umgekehrt überträgt das Clientsystem die Eingaben eines Benutzers vorzugsweise an den Server. Damit wird eine zentrale Datenhaltung und ein flexibler Einsatz der Software beim jeweiligen Kunden ermöglicht.Particularly preferably, at least one instance of the computer program runs on a central server system. Thus, the data can be kept in a central location. More preferably, a user interface is displayed or generated as an interface to a user of the software on the server system and / or a client system. In particular, the program part for generating the user interface as a client component and the computer program as a server component on the server system communicate with one another, in particular via the Internet. Preferably, the required user interface data is provided by the server system to the client system. Conversely, the client system preferably transmits the inputs of a user to the server. This enables centralized data management and flexible use of the software by the respective customer.

Insbesondere wird die Auswahl der zur Laufzeit des Computerprogramms erforderliches Informationen und/oder Daten anhand des Verfahrenshandbuchs bestimmt. Vorzugsweise stellt die Benutzeroberfläche dem Benutzer insbesondere aus dem Verfahrenshandbuch abgeleitet lediglich diejenigen Informationen bereit, die einerseits in der konkreten Situation erforderlich sind und die er andererseits aufgrund seiner Benutzerrechte auch einsehen darf.In particular, the selection of the information and / or data required at runtime of the computer program is determined by means of the procedure manual. Preferably, the user interface, in particular derived from the manual of the user, merely provides the user with information which, on the one hand, is required in the specific situation and which, on the other hand, he is allowed to see on the basis of his user rights.

Die Aufgabe wird außerdem durch ein Programmprodukt bzw. ein Computerprogrammprodukt zur Durchführung eines Verfahrens gemäß den obigen Ausführungen gelöst, sofern das Programmprodukt auf einer programmtechnisch eingerichteten Datenverarbeitungsanlage abläuft, also insbesondere auf einem Computersystem, einem Personalcomputer (PC), einem Mobiltelefon, einem Laptop, einem Tabletcomputer, einem verteilten Rechnersystem, einem Client-Server-System und dergleichen.The object is also achieved by a program product or a computer program product for carrying out a method according to the above statements, provided that the program product runs on a program-equipped data processing system, ie in particular on a computer system, a personal computer (PC), a mobile phone, a laptop, a Tablet computer, a distributed computer system, a client-server system and the like.

Die Aufgabe der Erfindung wird außerdem gelöst durch eine Datenverarbeitungsanlage zur Ausführung des beschriebenen Verfahrens mit einem in einem der Datenverarbeitungsanlage zugeordneten Speicher hinterlegten Programmprodukt gemäß obigen Ausführungen.The object of the invention is also achieved by a data processing system for carrying out the method described with a stored in one of the data processing system memory stored program product according to the above.

Eine bevorzugte Ausführungsform der Erfindung wird im Folgenden anhand der Zeichnungen näher beschrieben. In dieser zeigtA preferred embodiment of the invention will be described in more detail below with reference to the drawings. In this shows

1 eine überblicksartige, schematische Darstellung zur Entwicklung eines Computerprogramms gemäß der Erfindung, und 1 an overview-like, schematic representation of the development of a computer program according to the invention, and

2 eine detaillierte schematische Darstellung zur Entwicklung eines Computerprogramms gemäß der Erfindung. 2 a detailed schematic representation of the development of a computer program according to the invention.

Ein Prozess zur Entwicklung einer Software bzw. eines Computerprogramms lässt sich im Allgemeinen in einer Reihe unabhängiger Verfahrensschritte unterliegen. Das entsprechende hier beschriebene Verfahren beinhaltet dementsprechend die einzelnen Verfahrensschritte, wobei einzelne Schritte ausgespart werden können. Im Folgenden wird eine Unterteilung in vier wesentliche Verfahrensschritte vorgenommen, die den Schritten der Integration (A), der Umsetzung (B), des Tests (C) und des Betriebs (D) entsprechen. Auch wenn diese Aufteilung nicht zwingend ist, handelt es sich dabei um die üblicherweise vorhandenen Verfahrensschritte. Ein Zeitstrahl 10 markiert die übliche Abfolge.A process for developing software or a computer program can generally be subject to a number of independent process steps. The corresponding method described here accordingly includes the individual process steps, wherein individual steps can be omitted. In the following, a subdivision into four essential process steps is carried out, which correspond to the steps of integration (A), implementation (B), test (C) and operation (D). Even if this division is not mandatory, these are the usual procedural steps. A timeline 10 marks the usual sequence.

In der 1 ist beispielhaft ein solches Verfahren abgebildet. Der Schritt der Spezifikation A beinhaltet eine Reihe vorbereitender Tätigkeiten und tatsächlicher Entwicklungsarbeit. Die Rahmenbedingungen der Software werden festgelegt, indem sämtliche Daten und Informationen, die zur vollständigen Beschreibung und Entwicklung des Softwareprogramms erforderlich sind, zusammengetragen werden. Dies wird kurz als ”Verfahrenshandbuch” als solches bzw. als Teil einer sogenannten Bestandsdokumentation 20 bezeichnet. Das Verfahrenshandbuch beschreibt sozusagen die Realität mit den in Software abzubildenden Prozessen aus der realen Welt, also beispielsweise die durchzuführenden Verwaltungsvorgänge einschließlich der entsprechenden zugehörigen Datenverarbeitung.In the 1 is exemplified such a method. The step of specification A involves a series of preparatory activities and actual development work. The framework of the software is determined by gathering all data and information required to fully describe and develop the software program. This will be briefly referred to as the "Manual of Procedures" as such or as part of a so-called inventory documentation 20 designated. The procedure manual describes, as it were, the reality with the real-world processes to be mapped in software, thus, for example, the administrative processes to be performed, including the corresponding associated data processing.

Die Bestandsdokumentation 20 beinhaltet demnach mehrere Teile. Zum einen ist dies das eigentliche sogenannte Verfahrenshandbuch bzw. AV-Verfahrenshandbuch 22, in dem konkret die in Software abzubildenden und durchzuführenden Verfahrensschritte der zugrundeliegenden Abläufe aus dem realen Leben niedergelegt sind. Außerdem enthält die Bestandsdokumentation 20 ein Systemarchitekturhandbuch 24, das entsprechende Informationen zur verwendeten Systemarchitektur und deren Besonderheiten enthält. Dies betrifft insbesondere die ausführenden Datenverarbeitungssysteme, um die Software entsprechend anpassen zu können. Sofern ein Datenmodell 26 vorgesehen ist, sind darin vorzugsweise Informationen zur Verwendung und Zuordnung von Daten, entsprechenden Verarbeitungsschritten und zulässigen Wertebereichen beschrieben. Schließlich werden auch so genannte Rechnerlisten 28 geführt, die insbesondere für den späteren Betrieb des fertigen Computerprogramms erforderlich sind.The existing documentation 20 therefore contains several parts. On the one hand, this is the actual so-called procedural manual or AV-manual 22 in which the procedural steps of the underlying processes from real life that are to be imaged and executed in software are specified. In addition, the existing documentation is included 20 a system architecture manual 24 containing appropriate information about the used system architecture and its special features. This applies in particular to the executing data processing systems in order to adapt the software accordingly. Unless a data model 26 is provided, preferably information on the use and assignment of data, corresponding processing steps and permissible value ranges are described therein. Finally, so-called computer lists are also 28 led, which are required in particular for the subsequent operation of the finished computer program.

Ausgehend von dieser Bestandsdokumentation 20 lässt sich ein Pflichtenheft 30 erstellen. Dieses Pflichtenheft 30 ist zur konkreten Beschreibung des Umfangs der zu entwickelnden Software vorgesehen. Es kann als Auszug aus der Bestandsdokumentation 20 erstellt werden. Bei eventuellen Änderungen kann es wieder in die Bestandsdokumentation 20 zurückgeschrieben werden, um damit ausgehend von geänderten Anforderungen die Bestandsdokumentation 20 entsprechend auf dem aktuellen Stand zu halten. Im Übrigen kann aus dem Pflichtenheft 30 auch eine so genannte Vorabdokumentation 32 generiert werden. Diese dient bereits während des Entwicklungsprozesses als Informationsquelle sowohl für die Softwareentwickler wie auch für die Anwender der Software, also insbesondere die Auftraggeber für die Software.Based on this inventory documentation 20 can be a specification 30 create. This specification 30 is intended for a concrete description of the scope of the software to be developed. It can be an excerpt from the existing documentation 20 to be created. If there are any changes, it can be returned to the existing documentation 20 be written back to the existing documentation from changed requirements 20 to keep up to date. Incidentally, from the specification 30 also a so-called preliminary documentation 32 to be generated. This already serves as an information source during the development process for both the software developers and the users of the software, in particular the clients for the software.

Eine Erstellung bzw. Bearbeitung 34 der Bestandsdokumentation 20 kann manuell erfolgen, wird aber im Allgemeinen computergestützt vorgenommen. Hierzu wird die Bestandsdokumentation 20 als zentrale Datenquelle in Form eines sogenannten strukturierten Dokuments erzeugt und abgelegt. Als entsprechende Dokumentensprache sieht man in diesem Fall die Extensible Markup Language (XML). In einem derartigen Dokument lassen sich unterschiedlichste Datenstrukturen und verschiedenste Dokumentation einheitlich kodieren. Damit ist es möglich, in einem zentralen Dokument eine Vielzahl unterschiedlicher Dokumenttypen bzw. -formate bereitzuhalten, die für den hier beschriebenen Softwareentwicklungsprozess erforderlich sind.A creation or editing 34 of the existing documentation 20 can be done manually but is generally computerized. The stock documentation is used for this 20 as a central data source in the form of a so-called structured document created and stored. In this case, the Extensible Markup Language (XML) can be seen as the corresponding document language. In such a document a variety of data structures and a variety of documentation can be coded uniformly. This makes it possible to provide a large number of different document types or formats in a central document, which are required for the software development process described here.

Die rechnerseitige Be- und Verarbeitung der Bestandsdokumentation 20 erfolgt in der Regel ausschließlich durch ”Extensible Stylesheet Language Transformations”-Skripte oder kurz XSLT-Skripte. Diese sind speziell für die Bearbeitung der hier vorhandenen XML-Daten vorgesehen. Die entsprechenden Skripte sind dabei im Entwicklungssystem vorgesehen bzw. werden gegebenenfalls an die entsprechenden Gegebenheiten des Entwicklungsprozesses im Einzelfall angepasst.The computer-side processing and processing of the existing documentation 20 is usually done exclusively by "Extensible Stylesheet Language Transformations" scripts or short XSLT scripts. These are especially intended for the processing of the existing XML data. The corresponding scripts are provided in the development system or, if appropriate, are adapted to the respective circumstances of the development process in individual cases.

Unterschiedliche Softwarepakete können schließlich anwenderseitig zur Erstellung und Bearbeitung der einzelnen Teile der Bestandsdokumentation 20 zum Einsatz kommen. Eine Bearbeitung des gesamten Dokuments der Bestandsdokumentation 20 erfolgt dabei entsprechend mit einem XML-Editor. Listen und Tabellen werden in der Regel mit einem Tabellenkalkulationsprogramm bearbeitet. Zur Bearbeitung von Diagrammen kann eine entsprechende Software zur grafischen Datenaufbereitung verwendet werden. Sofern vorhanden, kann das wenigstens eine Datenmodell 26 mit einem entsprechenden Werkzeug zur Modellierung von Datenstrukturen generiert bzw. modifiziert werden. Schließlich können die XSLT-Skripte selber mit einem geeigneten Skript-Editor generiert und/oder bearbeitet werden.Finally, different software packages can be used by the user to create and edit the individual parts of the existing documentation 20 be used. A processing of the entire document of the existing documentation 20 takes place accordingly with an XML editor. Lists and tables are usually edited using a spreadsheet program. For the processing of diagrams a corresponding software for the graphic data processing can be used. If available, this can be at least one data model 26 with a corresponding Tool for modeling data structures can be generated or modified. Finally, the XSLT scripts themselves can be generated and / or edited with a suitable script editor.

Die Daten der Bestandsdokumentation 20 werden an zentraler Stelle in einer Datenbank 40 abgelegt. Diese Datenbank 40 enthält damit alle wesentlichen Informationen über das Softwareentwicklungsprojekt und dient als zentrale Datenquelle. Die Datenbank 40 wird zumeist an zentraler Stelle auf einem Serversystem abgelegt, das insbesondere netzwerkweit verfügbar ist, beispielsweise über das Internet. Somit kann von nahezu überall auf die Bestandsdokumentation 20 zugegriffen werden.The data of the existing documentation 20 be centralized in a database 40 stored. This database 40 contains all essential information about the software development project and serves as a central data source. Database 40 is usually stored in a central location on a server system, which is particularly available network-wide, for example via the Internet. Thus, from almost anywhere on the inventory documentation 20 be accessed.

Der Schritt der Umsetzung B schließt sich an die Spezifikation A an. Ausgehend von den in der Bestandsdokumentation 20 enthaltenen Daten wird in diesen Verfahrensschritt der eigentliche Quelltext 44 des Computerprogramms erstellt. Dazu werden die entsprechenden Informationen aus der Bestandsdokumentation 20 ausgelesen, indem über die zentrale Datenbank 40 auf sie zugegriffen wird. Dies geschieht auch hier mittels XSLT-Skripten. Ein sogenannter Quellcodegenerator 42 analysiert die Eingabedaten aus der Bestandsdokumentation 20 und generiert daraus entsprechende Definitionen von Klassenobjekten und zugehörige Quellcodeteile mit Platzhaltern für diesen Objekten zugeordnete Methoden. Konstanten und Variablen werden ebenfalls definiert. Außerdem werden Schnittstellen zwischen den einzelnen Programmteilen und für eine eventuelle Zusammenarbeit mit externen Datenquellen festgelegt.The step of the implementation B follows the specification A. Starting from the ones in the existing documentation 20 data contained in this process step is the actual source code 44 created by the computer program. For this, the corresponding information from the existing documentation 20 read out by using the central database 40 it is accessed. This also happens here by means of XSLT scripts. A so-called source code generator 42 analyzes the input data from the existing documentation 20 and generates corresponding definitions of class objects and associated source code parts with wildcards for methods assigned to these objects. Constants and variables are also defined. In addition, interfaces between the individual program parts and for possible cooperation with external data sources are defined.

Im Rahmen der Umsetzung B können dem Quellcode 44 basierend auf der Bestandsdokumentation 20 beispielsweise noch ergänzende Elemente wie Codevorlagen, Verzeichnisstrukturen, Deklarationen, etc. hinzugefügt werden. Die lediglich als Gerüst definierten Methoden der Klassen werden dann insbesondere durch menschliche Programmierer mit konkretem Quelltext zur Datenverarbeitung gemäß dem Verfahrenshandbuch gefüllt. Dabei sind die Programmierer folglich an die Inhalte der Bestandsdokumentation 20 bzw. des daraus abgeleiteten Pflichtenhefts 30 gebunden. Somit werden die bereits als Gerüst angelegten Methoden mit Leben gefüllt.As part of the implementation B can the source code 44 based on the existing documentation 20 For example, additional elements such as code templates, directory structures, declarations, etc. are added. The methods of the classes, which are only defined as framework, are then filled in particular by human programmers with concrete source code for data processing in accordance with the procedural manual. The programmers are therefore interested in the contents of the existing documentation 20 or the resulting specification 30 bound. Thus, the already established as a scaffolding methods are filled with life.

Der somit vervollständigte Quellcode 44 kann dann noch mit zusätzlichen Werkzeugen nach verschiedenen Kriterien überprüft werden. Beispielsweise dient ein Syntaxvalidator zur Verifizierung der Syntax, um so für eine möglichst fehlerfreie Quellcodeerzeugung zu sorgen. Außerdem können sogenannte Code-Dokumentationen dem Quelltext 44 selber hinzugefügt werden, um dessen Lesbarkeit zu verbessern.The thus completed source code 44 can then be checked with additional tools according to different criteria. For example, a syntax validator serves to verify the syntax in order to ensure as error-free source code generation as possible. In addition, so-called code documentation the source code 44 itself to improve its readability.

Im Verfahrensschritt der Umsetzung B wird außerdem noch die Umwandlung des erzeugten Quelltextes in ein lauffähiges Programm vorgenommen. In diesem als ”Kompilieren” bezeichneten Schritt wird der Quelltext durch einen sogenannten ”Compiler” auf einem Rechnersystem in direkt ausführbare Maschinensprache umgewandelt. Alternativ kann auch eine so genannte interpretierte Programmiersprache verwendet werden, bei der die Umwandlung durch einen sogenannten ”Interpreter” erst zur Laufzeit des Computerprogramms erfolgt. Eine Syntaxprüfung und einfache Plausibilitätsprüfung ist aber in beiden Fällen möglich.In the process step of the implementation B, the conversion of the generated source text into an executable program is also carried out. In this step, referred to as "compiling", the source text is converted by a so-called "compiler" on a computer system into directly executable machine language. Alternatively, a so-called interpreted programming language can be used, in which the conversion by a so-called "interpreter" only takes place at runtime of the computer program. A syntax check and simple plausibility check is possible in both cases.

Ergänzt wird dies gegebenenfalls durch einen Abgleich mit den in der Bestandsdokumentation 20 vorgegebenen Daten, die eine deutlich detailliertere Prüfung der Software zulassen als sie lediglich auf Ebene des Quelltextes ohne diese Zusatzinformationen erfolgen könnte. Dies wird insbesondere im Schritt C, dem Test des Computerprogramms durchgeführt.If necessary, this is supplemented by a comparison with the ones in the existing documentation 20 given data, which allow a much more detailed examination of the software than could be done only on the level of the source text without this additional information. This is done in particular in step C, the test of the computer program.

Sobald ein lauffähiges Computerprogramm generiert worden ist, kann sich der erwähnte Verfahrensschritt C anschließen, bei dem ein Test beziehungsweise eine Qualitätssicherung des lauffähigen Computerprogramms vollzogen wird. Hierzu werden basierend auf Daten der Bestandsdokumentation 20 dort insbesondere unter Zuhilfenahme des Datenmodells 26 und des AV-Verfahrenshandbuchs 22 sogenannte Testfälle 52 generiert. Die Testfälle 52 werden durch einen sogenannten Testfallgenerator 50 erzeugt. Dieser lässt sich insbesondere durch speziell geschulte Mitarbeiter der Qualitätssicherung als separates Modul innerhalb des Verfahrens bedienen.As soon as an executable computer program has been generated, the mentioned method step C can follow, in which a test or quality assurance of the executable computer program is performed. To do this, based on data from the inventory documentation 20 in particular with the help of the data model 26 and the AV Procedural Manual 22 so-called test cases 52 generated. The test cases 52 be through a so-called test case generator 50 generated. This can be used, in particular, by specially trained quality assurance staff as a separate module within the procedure.

Diese Testfälle 52 dienen als komplexe Eingabeszenarien für das zu testende Computerprogramm. Dabei werden bestimmte Wertebereiche als Benutzereingaben vorgegeben, aufgrund dessen die zu erwartenden Resultate mit den tatsächlichen von der Software zurückgelieferten Ergebnissen verglichen werden. Dies gilt für zurückgegebene Werte ebenso wie für Fehlermeldungen. Damit können Softwaretests zur Sicherung einer hohen Softwarequalität auf einfache Weise und ebenfalls im Rahmen des Gesamtverfahrens erfolgen.These test cases 52 serve as complex input scenarios for the computer program to be tested. Certain ranges of values are specified as user inputs, on the basis of which the expected results are compared with the actual results returned by the software. This applies to returned values as well as to error messages. This software testing can be done to ensure a high quality software in a simple manner and also in the context of the overall process.

Die Daten zur Erzeugung der Testfälle 52 werden der Bestandsdokumentation 20 entnommen, indem auf die zentrale Datenbank 40 zugegriffen wird. Entsprechend können die Ergebnisse der einzelnen Testläufe wieder in die Datenbank 40 zurückgeschrieben werden. Damit wird zusätzlich eine vollständige Dokumentation auch der Softwaretests ermöglicht. Eine entsprechende Anpassung der Bestandsdokumentation 20 beziehungsweise entsprechende Änderungen in den manuell programmierten Quelltextabschnitten ist damit auf einfache Weise möglich. Entsprechende erneute Testfalldurchläufe lassen sich dann direkt mit den vorherigen vergleichen.The data for generating the test cases 52 become the inventory documentation 20 taken by the central database 40 is accessed. Accordingly, the results of each test run back into the database 40 be written back. This additionally enables a complete documentation of the software tests. A corresponding adjustment of the existing documentation 20 or corresponding changes in the manually programmed source text sections is thus simple Way possible. Corresponding renewed test case runs can then be compared directly with the previous ones.

Im Verfahrensschritt des Betriebs D befindet sich das Computerprogramm im Allgemeinen erst nach erfolgreichem Abschluss der vorhergehenden Schritte A und B, insbesondere aber nach den entsprechenden Tests im Schritt C.In the method step of the operation D, the computer program is generally only after the successful completion of the preceding steps A and B, but in particular after the corresponding tests in step C.

Im Betrieb kann das Computerprogramm beispielsweise als monolithisches Programm betrieben werden, bei dem eine eigentliche datenverarbeitende Komponente und eine Bedienoberfläche in einem einzelnen Programm auf einem einzelnen Rechnersystem ablaufen. Zumeist wird dagegen eine Client-Server-Lösung bei großen Softwareentwicklungsprojekten bevorzugt werden. In diesem Fall läuft eine eigentliche datenverarbeitende Serverkomponente 64 für jede Instanz des Computerprogramms als separater Prozess auf einem zentralen Serversystem 60. Eine Benutzeroberfläche 66 dient zur Interaktion mit einem Benutzer der Software. Aber auch Mischformen bei der Aufteilung der Komponenten sind möglich.In operation, the computer program may be operated, for example, as a monolithic program in which an actual data processing component and a user interface run in a single program on a single computer system. In most cases, however, a client-server solution will be preferred for large software development projects. In this case, an actual data processing server component is running 64 for each instance of the computer program as a separate process on a central server system 60 , A user interface 66 is used to interact with a user of the software. But mixed forms in the distribution of components are possible.

Die Benutzeroberfläche 66 ist dabei grundsätzlich unabhängig von der Serverkomponente 64, kann aber auf demselben Rechnersystem ablaufen und ihre Ausgabe bzw. Benutzeroberfläche 66 beispielsweise über ein Netzwerk, wie dem Internet, auf einem entfernten Clientsystem 62 ausgeben. Dies kann beispielsweise in Form einer Webseite oder ähnlichem geschehen. Alternativ kann die Benutzeroberfläche 66 durch ein separates Programm auf einem entfernten Clientsystem 62 ablaufen, beispielsweise als Skript zur Steuerung entsprechender Bibliotheken für eine grafische Ausgabe. Schließlich können die Serverkomponente 54 und die Clientkomponente 66 beispielsweise auch auf zwei separaten Serversystemen 60 ablaufen und über das Netz miteinander und mit einem Benutzer interagieren.The user interface 66 is basically independent of the server component 64 but can run on the same computer system and its output or user interface 66 for example, over a network, such as the Internet, on a remote client system 62 output. This can be done for example in the form of a web page or the like. Alternatively, the user interface 66 through a separate program on a remote client system 62 for example, as a script to control appropriate libraries for graphical output. Finally, the server component 54 and the client component 66 for example, on two separate server systems 60 and interact with each other and with the user via the network.

In jedem Fall müssen die Serverkomponente 64 und die Clientkomponente 66 miteinander kommunizieren, um die erforderlichen Daten auszutauschen. Die auszutauschenden Informationen sind einerseits die Steuerungsdaten für die Benutzeroberfläche, also Ein- und Ausgabeparameter, Wertebereiche, Meldungen, Hilfetexte, Anordnung der Ein- und Ausgabefelder etc. und andererseits die zurückgelieferten Daten der Benutzereingaben. Die Kommunikation kann direkt zwischen den Komponenten vollzogen werden oder alternativ durch jeweiligen Zugriff auf die zentrale Datenbank 40. Durch einen solchen Zugriff auf dieselbe Datenbank 40 ist gleichzeitig gewährleistet, dass sämtliche zur Laufzeit verarbeiteten Informationen beim Austausch zwischen Serversystem 60 und Clientsystem 62 zentral abgespeichert werden. Somit bleiben diese Informationen sowohl für die Weiterverarbeitung, für Dokumentationszwecke, wie auch zur Fehlersuche erhalten.In any case, the server component 64 and the client component 66 communicate with each other to exchange the required data. The information to be exchanged is on the one hand the control data for the user interface, ie input and output parameters, value ranges, messages, help texts, arrangement of the input and output fields, etc., and on the other hand the returned data of the user input. The communication can be done directly between the components or alternatively by respective access to the central database 40 , Through such access to the same database 40 At the same time it ensures that all information processed at runtime is exchanged between server systems 60 and client system 62 be stored centrally. Thus, this information remains both for further processing, for documentation purposes, as well as for troubleshooting.

An verschiedenen Stellen im Entwicklungsprozess lässt sich aufgrund der zentralen Datenbasis auf einfache Weise die Konsistenz der Verfahrensschritte prüfen. Dazu wird in der Umsetzung B und beim Test C der erzeugte Quelltext 44 bzw. das Verhalten der Software im Bezug zur Bestandsdokumentation 20 gesetzt und auf Abweichungen von der Erwartung untersucht. Auf dieser Basis lassen sich dann entsprechende Konsistenzberichte bzw. Konsistenzreports 70 generieren. Diese dienen dann der manuellen Überprüfung der Quellcodebasis bzw. der Vorgaben der Bestandsdokumentation 20 durch die Entwickler.At various points in the development process, the consistency of the process steps can be easily checked on the basis of the central database. For this purpose, in the implementation B and the test C, the generated source text 44 or the behavior of the software in relation to the existing documentation 20 set and examined for deviations from the expectation. On this basis, appropriate consistency reports or consistency reports can then be obtained 70 to generate. These are then used to manually check the source code base or the requirements of the existing documentation 20 by the developers.

Durch die zentrale und umfassende Datenbasis im Rahmen der Bestandsdokumentation 20 ist die Erzeugung einer entsprechenden Dokumentation 80 der Software auf einfache Weise möglich. Die erforderlichen Informationen müssen lediglich aus den Bestandsdaten extrahiert werden. Hierzu dienen entsprechende XSLT-Skripte, die aus den XML-Daten eine menschenlesbare Dokumentation 80 extrahieren. Die Dokumentation 80 kann auch nur für spezielle Teilbereiche der Software erstellt werden, die den jeweiligen Benutzer interessieren. Beispielsweise haben die Benutzer an unterschiedlichen Stellen im Entwicklungsprozess ganz unterschiedliche Anforderungen an die Inhalte und deren Aufbereitung, wie beispielsweise ein Programmierer bei der Umsetzung im Schritt B und ein Tester beim Schritt C die Software im ersten Fall von Quelltextseite und im zweiten Fall von Benutzerseite sehen. Außerdem kann die Dokumentation 80 beispielsweise entsprechend in unterschiedlichen Formaten, insbesondere auch in einer Variante 82 im PDF- und/oder HTML-Format erstellt werden. Diese Variante 82 kann beispielsweise für eine Veröffentlichung 84 vorgesehen werden.Through the central and comprehensive database within the existing documentation 20 is the generation of a corresponding documentation 80 the software in a simple way possible. The required information only needs to be extracted from the inventory data. The corresponding XSLT scripts are used for this purpose. They use the XML data for human-readable documentation 80 extract. The documentation 80 can also be created only for specific parts of the software that interest the user. For example, at various points in the development process, users have very different content and rendering requirements, such as a programmer implementing in step B and a tester at step C viewing the software in the first case from the source page and the second from the user side. In addition, the documentation 80 for example, correspondingly in different formats, in particular in a variant 82 be created in PDF and / or HTML format. This variant 82 for example, for a publication 84 be provided.

Aufgrund der vollständigen und in sich geschlossenen Abbildung des gesamten Entwicklungsprozesses einer Software in einem einzigen Verfahren lässt sich die Entwicklung sehr detailliert planen und beobachten. Insbesondere kann beispielsweise eine neue Version, ein sogenanntes ”Release” der Software bereits im Stadium der Bestandsdokumentation 20 bzw. auf Ebene des Verfahrenshandbuchs vorbereitet werden, während sich noch eine Vorgängerversion in einem der nachfolgenden Verfahrensschritte befindet. Die Abnehmer der Software lassen sich aber zu jeder Zeit in den Entwicklungsprozess einbeziehen, zumal jederzeit der aktuelle Stand der Bestandsdokumentation 20 abrufbar ist. Änderungen fließen sofort in den Datenbestand ein und werden dann automatisch bei der Umsetzung B und damit der eigentlichen Programmierung berücksichtigt.Due to the complete and self-contained mapping of the entire development process of a software in a single process, the development can be planned and observed in great detail. In particular, for example, a new version, a so-called "release" of the software already in the stage of the existing documentation 20 or at the level of the procedural manual, while a previous version is still in one of the subsequent procedural steps. However, the customers of the software can be involved at any time in the development process, especially at any time the current status of the existing documentation 20 is available. Changes are immediately incorporated into the database and are then automatically taken into account during implementation B and thus the actual programming.

Außerdem werden aufgrund der vollständigen Planungsphase im Schritt der Spezifikation A, bei der entsprechend alle Elemente des strukturierten Dokuments ausgefüllt sein müssen, Fehler durch fehlende bzw. ungenaue Definitionen vermieden. Schließlich wird eine verlässliche Basis für den gesamten Entwicklungsprozess geschaffen, die für alle Teilschritte gültig ist. Das Vorhandensein der Bestandsdokumentation 20 als einer einzigen Datenquelle im gesamten Entwicklungsprozess verringert insbesondere die Fehlerquote im Prozess indem die Konsistenzprüfung wesentlich vereinfacht wird.In addition, due to the complete planning phase in the step of Specification A, in which all elements of the structured document must accordingly be filled in, errors due to missing or inaccurate definitions are avoided. Finally, a reliable basis is created for the entire development process, which is valid for all sub-steps. The existence of the existing documentation 20 As a single source of data throughout the development process, it reduces the overall error rate in the process by significantly simplifying the consistency check.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

AA
Spezifikationspecification
BB
Umsetzungimplementation
CC
Testtest
DD
Betriebbusiness
1010
Zeitstrahltime beam
2020
BestandsdokumentationBuilt documentation
2222
AV-VerfahrenshandbuchAV Procedures Manual
2424
SystemarchitekturhandbuchSystem Architecture Guide
2626
Datenmodelldata model
2828
Rechnerlistencomputer lists
3030
PflichtenheftSpecification book
3232
Vorabdokumentationpreliminary documentation
3434
Bearbeitungprocessing
4040
DatenbankDatabase
4242
Quellcodegeneratorsource code generator
4444
Quellcodesource code
5050
TestfallgeneratorTest case generator
5252
Testfalltest case
6060
Serversystemserver system
6262
Clientsystemclient system
6464
Serverkomponenteserver component
6666
Clientkomponenteclient component
7070
Konsistenzreportconsistency Report
8080
Dokumentationdocumentation
8282
Variantevariant
8484
Veröffentlichungpublication

Claims (10)

Verfahren zum Entwickeln von Software, insbesondere eines Computerprogramms, mit wenigstens einem der folgenden Verfahrensschritte: – Generierung eines Programmquelltextes des Computerprogramms, insbesondere eines Programmquelltextgerüstes; – Steuerung wenigstens einer Instanz des Computerprogramms, vorzugsweise durch Bereitstellung von Steuerdaten zur Beeinflussung des Programmablaufs; – Erzeugung und/oder Durchführung wenigstens eines Tests des Computerprogramms insbesondere mit wenigstens einem Testfall; – Überprüfung der Konsistenz und/oder Generierung wenigstens eines Konsistenzreports für wenigstens einen der oben genannten Verfahrensschritte; – Generierung einer menschenlesbaren und/oder maschinenlesbaren Dokumentation; wobei die zur Durchführung zumindest der durchzuführenden, vorzugsweise aller Verfahrensschritte erforderlichen Daten und/oder Informationen in einem Verfahrenshandbuch zusammengefasst werden, und wobei das Verfahrenshandbuch insbesondere durch eine Datenverarbeitungsanlage ausgelesen wird zur Durchführung des wenigstens einen Verfahrensschrittes durch die Datenverarbeitungsanlage.Method for developing software, in particular a computer program, with at least one of the following method steps: Generation of a program source text of the computer program, in particular of a program source text framework; - Controlling at least one instance of the computer program, preferably by providing control data for influencing the program flow; Generating and / or carrying out at least one test of the computer program, in particular with at least one test case; Checking the consistency and / or generation of at least one consistency report for at least one of the above-mentioned method steps; - generation of a human-readable and / or machine-readable documentation; wherein the data and / or information necessary for carrying out at least the, preferably all, of the method steps required are summarized in a manual, and wherein the manual is read out in particular by a data processing system for performing the at least one method step by the data processing system. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahrenshandbuch durch wenigstens eine Person erstellt wird, insbesondere durch einen Benutzer, einen Programmierer, einen Planer oder ähnliche, und/oder dass die Daten und/oder Informationen durch wenigstens eine Person vorgegeben werden, aus denen das Verfahrenshandbuch insbesondere durch eine Datenverarbeitungsanlage erstellt wird.A method according to claim 1, characterized in that the manual is prepared by at least one person, in particular by a user, a programmer, a planner or the like, and / or that the data and / or information is given by at least one person from which the procedure manual is created in particular by a data processing system. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das Verfahrenshandbuch als solches und/oder die dem Computerprogramm bzw. einer Instanz desselben zugeordneten Daten und/oder Informationen und/oder die dem wenigstens einen durchgeführten Verfahrensschritt zugeordneten Daten und/oder Informationen in wenigstens einer Datenbank (40) gespeichert werden, wobei vorzugsweise zumindest ein Teil der, vorzugsweise alle Ein- und/oder Ausgabewerte des Programmablaufs und/oder Zustandsparameter einer Instanz des Computerprogramms in der wenigstens einen Datenbank (40) gespeichert werden.Method according to claim 1 or 2, characterized in that the procedure manual as such and / or the data assigned to the computer program or an instance thereof and / or information and / or the data and / or information associated with the at least one performed method step are in at least one Database ( 40 ), wherein preferably at least a part of, preferably all input and / or output values of the program sequence and / or state parameter of an instance of the computer program in the at least one database ( 40 ) get saved. Verfahren nach einen der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahrenshandbuch als wenigstens ein, vorzugsweise als genau ein strukturiertes Dokument vorliegt, wobei das strukturierte Dokument bevorzugt computerlesbar und/oder menschenlesbar ist, und/oder wobei das strukturierte Dokument besonders bevorzugt in einer plattformunabhängigen Dokumentensprache formuliert ist, insbesondere in Extensible Markup Language (XML).Method according to one of the preceding claims, characterized in that the procedure manual is present as at least one, preferably as a precisely structured document, wherein the structured document is preferably computer readable and / or human readable, and / or wherein the structured document particularly preferably in a platform independent document language is formulated, in particular in Extensible Markup Language (XML). Verfahren nach einen der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Analyse und/oder das Auslesen und/oder die Extraktion der Informationen aus dem Verfahrenshandbuch durch wenigstens ein Skript erfolgt, insbesondere durch wenigstens ein in der Skriptsprache ”Extensible Stylesheet Language Transformations” (XSLT) formuliertes Skript.Method according to one of the preceding claims, characterized in that the analysis and / or the reading out and / or the extraction of the information from the process manual by at least one script, in particular by at least one in the scripting language "Extensible Stylesheet Language Transformations" (XSLT) formulated script. Verfahren nach einen der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass aus den Daten des Verfahrenshandbuchs ein Quelltext, insbesondere ein Quelltextgerüst generiert wird, wobei vorzugsweise alle relevanten Informationen, insbesondere Definitionen und/oder Schnittstellen, durch das Verfahrenshandbuch festgelegt bzw. diesem entnommen werden, insbesondere zur Erzeugung der vorgesehenen Funktionsaufrufe innerhalb des Quelltextes.Method according to one of the preceding claims, characterized in that a source code, in particular a source code framework, is generated from the data of the process manual, wherein preferably all relevant information, in particular definitions and / or interfaces, are defined by the procedure manual or taken from it, in particular for generating the intended function calls within the source text. Verfahren nach einen der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zumindest eine Instanz des Computerprogramms auf einem zentralen Serversystem (60) abläuft, und/oder dass eine Benutzeroberfläche (66) als Schnittstelle zu einem Benutzer der Software auf dem Serversystem (60) und/oder einem Clientsystem (62) erzeugt wird, wobei insbesondere der Programmkode zur Erzeugung der Benutzeroberfläche (66) und das Computerprogramm auf dem Serversystem (60) miteinander kommunizieren, insbesondere über das Internet, und/oder wobei insbesondere die erforderlichen Daten für die Benutzeroberfläche (66) vom Serversystem (60) an das Clientsystem (62) übertragen werden, und/oder das Clientsystem (62) Eingaben eines Benutzers vorzugsweise an das Serversystem (60) überträgt.Method according to one of the preceding claims, characterized in that at least one instance of the computer program on a central server system ( 60 ), and / or that a user interface ( 66 ) as an interface to a user of the software on the server system ( 60 ) and / or a client system ( 62 ), wherein in particular the program code for generating the user interface ( 66 ) and the computer program on the server system ( 60 ) communicate with each other, in particular via the Internet, and / or in particular the required data for the user interface ( 66 ) from the server system ( 60 ) to the client system ( 62 ), and / or the client system ( 62 ) Inputs of a user preferably to the server system ( 60 ) transmits. Verfahren nach einen der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Auswahl der zur Laufzeit erforderlichen Informationen und/oder Daten anhand des Verfahrenshandbuchs bestimmt wird, wobei insbesondere die Benutzeroberfläche (66) dem Benutzer aus dem Verfahrenshandbuch abgeleitet lediglich diejenigen Informationen bereitstellt, die einerseits in der konkreten Situation erforderlich sind und die der Benutzer andererseits aufgrund seiner Benutzerrechte einsehen darf.Method according to one of the preceding claims, characterized in that the selection of the information and / or data required at runtime is determined by means of the procedure manual, wherein in particular the user interface ( 66 ) derives the user from the manual only those information that is required on the one hand in the specific situation and on the other hand, the user may view on the basis of his user rights. Programmprodukt, insbesondere Computerprogrammprodukt, zur Ausführung eines Verfahrens insbesondere nach einem der vorhergehenden Ansprüche, wenn es auf einer programmtechnisch eingerichteten Datenverarbeitungsanlage abläuft, insbesondere Computersystem, einem Personalcomputer (PC), einem Mobiltelefon, einem Laptop, einem Tabletcomputer, einem verteilten Rechnersystem, einem Client-Server-System und dergleichen.Program product, in particular computer program product, for executing a method, in particular according to one of the preceding claims, when it runs on a computer-equipped data processing system, in particular a computer system, a personal computer (PC), a mobile telephone, a laptop, a tablet computer, a distributed computer system, a client computer Server system and the like. Datenverarbeitungsanlage zur Ausführung des Verfahrens nach einem der Ansprüche 1 bis 9 mit einem in einem der Datenverarbeitungsanlage zugeordneten Speicher hinterlegten Programmprodukt nach Anspruch 9.Data processing system for carrying out the method according to one of claims 1 to 9 with a stored in one of the data processing system memory stored program product according to claim 9.
DE201110112451 2011-09-06 2011-09-06 Method for developing, testing and operating e.g. computer program, involves reading out procedure manual by data processing system for executing process steps by data processing system Withdrawn DE102011112451A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE201110112451 DE102011112451A1 (en) 2011-09-06 2011-09-06 Method for developing, testing and operating e.g. computer program, involves reading out procedure manual by data processing system for executing process steps by data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201110112451 DE102011112451A1 (en) 2011-09-06 2011-09-06 Method for developing, testing and operating e.g. computer program, involves reading out procedure manual by data processing system for executing process steps by data processing system

Publications (1)

Publication Number Publication Date
DE102011112451A1 true DE102011112451A1 (en) 2013-03-07

Family

ID=47710724

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201110112451 Withdrawn DE102011112451A1 (en) 2011-09-06 2011-09-06 Method for developing, testing and operating e.g. computer program, involves reading out procedure manual by data processing system for executing process steps by data processing system

Country Status (1)

Country Link
DE (1) DE102011112451A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5187788A (en) * 1989-05-01 1993-02-16 The United States Of America As Represented By The Secretary Of The Air Force Graphics system for automatic computer code generation
US6978440B1 (en) * 1998-12-28 2005-12-20 International Business Machines Corporation System and method for developing test cases using a test object library
US7058857B2 (en) * 2001-10-10 2006-06-06 International Business Machines Corporation Method and system for testing a software product
US7774435B2 (en) * 2001-07-26 2010-08-10 Oracle America, Inc. System and method for batch tuning intelligent devices
US7823122B1 (en) * 2003-12-16 2010-10-26 The Mathworks, Inc. Model and subsystem function signatures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5187788A (en) * 1989-05-01 1993-02-16 The United States Of America As Represented By The Secretary Of The Air Force Graphics system for automatic computer code generation
US6978440B1 (en) * 1998-12-28 2005-12-20 International Business Machines Corporation System and method for developing test cases using a test object library
US7774435B2 (en) * 2001-07-26 2010-08-10 Oracle America, Inc. System and method for batch tuning intelligent devices
US7058857B2 (en) * 2001-10-10 2006-06-06 International Business Machines Corporation Method and system for testing a software product
US7823122B1 (en) * 2003-12-16 2010-10-26 The Mathworks, Inc. Model and subsystem function signatures

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MAHAPATRA, S.: Automatic Report Generation in Model_based Design. In: SAE Technical Paper, 05.10.2010, DOI 10,4271/2010-01-2000 *
TEUCHERT S.: TargetLink in der Seriencode-Generierung am Beispiel des CCRT-Systems, MAN Nutzfahrzeuge AG, 10.10.2002, Firmenschrift *

Similar Documents

Publication Publication Date Title
DE10121790B4 (en) Software configuration method for use in a computer system
DE69826659T2 (en) CHEAP, EASY TO USE SOFTWARE FOR AN AUTOMATIC TEST SYSTEM
DE69937332T2 (en) Method and device for software development
EP1176482B1 (en) Method and computer program for generating a regulation or control system
DE102017102651A1 (en) Apparatus for formulating rules in a process control network
DE60017457T2 (en) PROCEDURE FOR ISOLATING AN ERROR IN ERROR MESSAGES
DE19960050A1 (en) Test code generation method for automatic testing procedure for computer system using visual representation for selection of test object and test object options
DE102017106023A1 (en) Method and system for automated user interface testing via model-driven techniques
DE102012101089A1 (en) Methods, apparatus and products for batch configuration testing
DE10127170A1 (en) Troubleshooting procedures and troubleshooting device
DE102010008889A1 (en) Platform Independent Method and System for Using Control Logic Programming
EP2439691A1 (en) Method and device for mechanical production of a process diagram
DE102004043788A1 (en) Personal computing device executes program based on individual programming code to provide predefined code and to define direct relation between input and output of data by user and attribute of classes in input model
EP1920357A1 (en) Migration and transformation of data structures
DE102010033861A1 (en) On a formal analysis based development of requirements specifications
DE102004009676A1 (en) Methods and systems for generating command support files
DE102021116315A1 (en) Method for merging architectural information
DE102009043287A1 (en) Method and device for installing and configuring a computer system
DE102013202376A1 (en) Systems and methods for generating high quality formal software executable requirements
EP2577452A2 (en) Method and system for generating an integration model
EP1947567A2 (en) Device and method for automatically testing model-based functions
DE102009032333A1 (en) Method for testing models
DE102011112451A1 (en) Method for developing, testing and operating e.g. computer program, involves reading out procedure manual by data processing system for executing process steps by data processing system
DE102010044039A1 (en) Method and device for quality analysis of system models
Wenzel Measurement-based timing analysis of superscalar processors

Legal Events

Date Code Title Description
R163 Identified publications notified
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20150401