DE10314832B3 - Computer software modification method with initial conversion of selected software components at modification points and delivery in mixed form for final conversion of software components on user side - Google Patents
Computer software modification method with initial conversion of selected software components at modification points and delivery in mixed form for final conversion of software components on user side Download PDFInfo
- Publication number
- DE10314832B3 DE10314832B3 DE10314832A DE10314832A DE10314832B3 DE 10314832 B3 DE10314832 B3 DE 10314832B3 DE 10314832 A DE10314832 A DE 10314832A DE 10314832 A DE10314832 A DE 10314832A DE 10314832 B3 DE10314832 B3 DE 10314832B3
- Authority
- DE
- Germany
- Prior art keywords
- code
- software
- codeml
- transformation
- variation
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Abstract
Description
Die Erfindung betrifft ein Verfahren und eine Anordnung zur Transformation von Software, bei dem/der eine Software, in eine Darstellung in einer Meta-Auszeichnungssprache, beispielsweise XML, übergeführt, dort, beispielsweise mit XSLT, transformiert und dann diese in der Meta-Auszeichnungssprache formulierte transformierte Darstellung in eine modifizierte Software, beispielsweise derselben Ausgangssprache, zurückverwandelt wird.The The invention relates to a method and an arrangement for transformation of software in which a software, in a representation in converted to a meta markup language, e.g. XML, there, transformed with XSLT, for example, and then in the meta markup language formulated transformed representation in a modified software, for example the same source language, is converted back.
Aus dem Internet ist unter http://beautyj.berlios.de/ ein Java Source Code Transformation Too1 BeautyJ bekannt, bei dem ein Java Quellcode in eine XML-Darstellung umgewandelt wird, mittels Sourclet API, beispielsweise durch Einfügen von Leerzeichen oder geänderten Kommentaren an bestimmten Stellen, „verschönert" und anschließend der modifizierte Quellcode in Java Quellcode zurück konvertiert werden kann. Eine Transformation mittels XSLT wird hier, für diesen Zweck, nur vorgeschlagen, aber nicht umgesetzt.Out the Internet at http://beautyj.berlios.de/ is a Java Source Code Transformation Too1 BeautyJ known to have a Java source code is converted into an XML representation using the Sourclet API, for example by inserting of spaces or changed Comments in certain places, "embellished" and then the modified source code back in Java source code can be converted. A transformation using XSLT is here For this Purpose, only suggested, but not implemented.
Die der Erfindung zugrunde liegende Aufgabe liegt nun darin, ein Verfahren und eine Anordnung zur Modifikation von Quellcode anzugeben, bei dem/der eine weitergehende noch flexiblere und effizientere Modifikation der Quellcodes erreicht wird.The The object underlying the invention is now a method and to provide an arrangement for modifying source code at a further, more flexible and efficient modification the source code is reached.
Diese Aufgabe wird hinsichtlich des Verfahrens durch die Merkmale des Patentanspruchs 1 und hinsichtlich der Anordnung durch die Merkmale des Anspruchs 6 erfindungsgemäß gelöst. Die weiteren Ansprüche betreffen bevorzugte Ausgestaltungen der Erfindung.This Task is with regard to the process by the features of Claim 1 and with regard to the arrangement by the features of claim 6 according to the invention. The further claims relate to preferred embodiments of the invention.
Die Erfindung besteht im Wesentlichen darin, dass ausgewählte Bestandteile einer Software, Klassen und/oder einzelne Fragmente, als Variationspunkte VP dienen können, indem diese in einen in einer Meta-Auszeichnungssprache formulierten ersten Code (CodeML) umgewandelt werden, die Software nun in Mischform, d.h. kompiliertem Code und CodeML, ausgelierfert wird, und der erste Code CodeML kundenseitig durch eine oder mehrere Transformationen T, bspw. XSLT, nur in Abhängigkeit von Transformationsregeln TR, die Modifizierungsregeln für die Variationspunkte VP enthalten, in einen in der Meta-Auszeichnungssprache formulierten zweiten Code CodeML* umgewandelt werden kann und dieser zweite Code wiederum gleich als Variationspunkt oder in kompilierter Form die Abarbeitungsreihenfolge und/oder das Verhalten der Software verändert, woraus folgt, das sich die erste und die zweite Software an den Variationspunkten unterscheiden.The Invention essentially consists of selected components software, classes and / or individual fragments, as points of variation VP can serve by formulating it in a meta markup language first code (CodeML) are converted, the software is now in mixed form, i.e. compiled code and CodeML, is deployed, and the first Code CodeML provided by the customer through one or more transformations T, e.g. XSLT, only depending of transformation rules TR, the modification rules for the variation points VP included, in a second formulated in the meta markup language Code CodeML * can be converted and this second code in turn the processing sequence, either as a variation point or in a compiled form and / or the behavior of the software changes, from which it follows that distinguish the first and second software at the variation points.
Die Erfindung wird im Folgenden anhand des in Zeichnung 1 dargestellten Beispiels näher erläutert. Dabei zeigtThe The invention is illustrated below with reference to that in drawing 1 For example closer explained. there shows
Zeichnung 1 ein Gesamtblockdiagramm zur Erläuterung der Erfindung.drawing 1 is an overall block diagram for explaining the invention.
In Zeichnung 1 ist ein Gesamtblockdiagramm zur Erläuterung der Erfindung dargestellt, bei dem zunächst eine Software SW bestehend aus Quelltext SC1, SC2 und SC in eine auslieferungsfähige Software SW* umgewandelt wird, wobei einige Teile der Software wie bspw. SC1 nun als Binärcode/Byte Code B1 zur Verfügung stehen, und andere Teile wie bspw. SC2 durch einen Konverter CONV in einen in einer Meta-Auszeichnungssprache formulierten ersten Code CodeML umgewandelt werden, so daß sie in der lauffähigen Software SW* fortan Variationspunkte VP bspw. VP1 bilden. Diese Software SW* kann vor/oder zur Laufzeit auf eine Weise modifiziert werden, dass der in der Meta-Auszeichnungssprache dargestellte Code VP, bspw. VP2, mit einer Transformation T und Transformationsregeln TR in einen zweiten in der Meta- Auszeichnungssprache formulierten Code CodeML* umgewandelt wird, welcher nun entweder als geänderter Variationspunkt bspw. VP2* in SW* vorhanden ist oder durch einen Konverter RCONV nach der Transformation T in einen Quellcode SC* und danach mittels COMP in einen ByteCode/Binärcode VP2B* überführt wird. In beiden Fällen unterscheiden sich SW und SW* an den Stellen der Variationspunkte und können auf diese Weise an spezifische Anforderungen (bspw. Tookit-Austausch, Updates, usw.) angepasst werden.In Drawing 1 is an overall block diagram to illustrate the invention, at first a software SW consisting of source text SC1, SC2 and SC into one extraditable Software SW * is converted, with some parts of the software like e.g. SC1 now as binary code / byte Code B1 available stand, and other parts such as SC2 by a CONV converter in a first formulated in a meta markup language Code CodeML are converted so that they are in the executable software SW * now form variation points VP, e.g. VP1. This software SW * can be modified before / or at runtime in a way that the code VP shown in the meta markup language, for example VP2, with a transformation T and transformation rules TR into a second in the meta markup language formulated code CodeML * is converted, which is now either as changed Variation point e.g. VP2 * is present in SW * or by a RCONV converter after the transformation T into a source code SC * and then converted into a byte code / binary code VP2B * using COMP. Differentiate in both cases SW and SW * at the points of variation and can on in this way to specific requirements (e.g. Tookit exchange, Updates, etc.).
Die Codes CodeML und CodeML* bzw. VP und VP* sind beispielsweise in der Meta-Auszeichnungssprache XML formuliert, wobei „XML" für Extended Markup Language steht.The Codes CodeML and CodeML * or VP and VP * are for example in formulated the meta markup language XML, whereby "XML" for Extended Markup Language is there.
Von besonderem Vorteil ist hierbei, dass dies nicht vom Programmentwickler durchgeführt werden muss, sondern vom entsprechend ausgestatteten und informierten Kunden selbst erledigt werden kann. Hierzu braucht ein Operator oder Administrator auf der Kundenseite nur eine entsprechende Transformation T mit den benötigten Ersetzungs-, Modifikations- und Entfernungsregeln TR anzuwenden, um die Software auf seine speziellen Bedürfnisse anzupassen bzw. ein Update oder Patching durchzuführen. Beim Update oder Patching von kundenspezifisch angepasster treten bislang häufig Probleme wegen Inkonsistenzen auf, die durch diese Erfindung und die Möglichkeit der Pipelineanwendung bzw. geordnete Hintereinanderausführung von Anfang an vermieden werden können.It is particularly advantageous that this does not have to be done by the program developer, but can be done by the suitably equipped and informed customer himself. For this an operator or administrator on the customer side only needs to apply a corresponding transformation T with the required replacement, modification and removal rules TR in order to adapt the software to his special needs or to carry out an update or patching. Up to now, problems due to inconsistencies have frequently arisen when updating or patching customer-specific ones, which can be avoided right from the start by this invention and the possibility of pipeline application or ordered sequential execution.
Die im Anhang befindlichen Programmauflistungen Listing 1 bis Listing 5 zeigen dies an einem konkreten Beispiel: Typischerweise kann eine Software-Auslieferung an zwei unterschiedliche Kunden unterschiedliche Toolkits verwenden, die sich hinsichtlich Performance, Preis usw. unterscheiden.The Program listings in the Appendix Listing 1 to Listing 5 show this with a concrete example: Typically, one Software delivery to two different customers different Use toolkits that differ in terms of performance, price, etc. differ.
So soll hier ein Code der ursprünglich eine Registrierungsklasse import electric.registry.Registry aus einem Glue-Toolkit verwendet, beim zweiten Kunden nun zwei neue "Registrierungsklassen" import org.apache.axis.client.Call und import org.apache.axis.client.Service aus einem Axis-Tookit verwenden.So here is a code of the original a registry class import electric.registry.Registry from one Glue Toolkit used two new "registration classes" import org.apache.axis.client.Call for the second customer and import org.apache.axis.client.Service from an Axis-Tookit use.
In XSL kann dies z.B. mittels geschehen. Schablonen bzw. Templates werden in XSL auf das in match definierte Muster angewendet, das import-Template im Listing-Beispiel also auf alle ursprünglichen import-Anweisungen. Im konkreten Beispiel ignoriert es einfach alle ursprünglichen GlUE-Registry-Imports, und fügt stattdessen die zwei Axis-spezifischen imports ein.In XSL this can be done using, for example happen. Stencils or templates are applied in XSL to the pattern defined in match, the import template in the listing example thus to all original import statements. In the specific example, it simply ignores all of the original GlUE registry imports and instead inserts the two Axis-specific imports.
Durch das erfindungsgemäße Verfahren ergeben sich noch eine Reihe von zusätzlichen Vorteilen, wie beispielsweise:
- 1. Es ist nur ein System für Problemstellungen wie Patching, Customizing, Updating, etc. erforderlich und nicht eine Reihe verschiedener teilweise proprietärer Werkzeuge.
- 2. Das Verfahren basiert auf Standards wie XML und XSLT und ist hinsichtlich der Konvertierbarkeit in andere Programmiersprachen geringeren Beschränkungen unterworfen als andere Verfahren zur Modifikation von Quellcode.
- 3. Selbst für spezielle und komplizierte Quellcode-Modifikationen sind keine proprietären Speziallösungen erforderlich, sondern es können hierfür existierende Standards wie XSLT, XPath und XQuery genutzt werden.
- 4. Diese Art der Modifikation erlaubt die Erstellung von Hierarchien u.a. durch die Möglichkeit zur geordneten, automatisierten Hintereinanderausführung (Pipelines) mehrerer Transformationen, bspw. von Patches.
- 5. Die Transformationen können für eine allgemeine Wiederverwendung in XSLT-Dateien gespeichert werden, so daß Bibliotheken z.B. für bestimmte Abläufe entstehen können.
- 6. Es kann eine XML-Repräsentation des Quellcodes in einer XML-Datenbasis gespeichert und bei Bedarf mit Hilfe einer XSLT in einfacher Weise an die jeweiligen Kundenbedürfnisse angepasst werden (Customization).
- 7. Durch die Verwendung der Standards XMLSchema oder DTD oder entsprechende XSLTs kann der Code vorab (ohne Kompilierung), auf bestimmte Korrektheitsaspekte hin, überprüft (validiert) werden.
- 8. Übliche XML-Tools können zur einfachen Bearbeitung bzw. Visualisierung und Bestimmung von Beziehungen im Code verwendet werden.
- 9. Dauerhafte XML-basierte Programmbibliotheken, die XPath-Anfragen unterstützen, können die Wiederverwendung von Code durch besseres Auffinden eines Codes bzw. von Code-Fragmenten oder Templates verbessert werden.
- 1. Only one system for problems such as patching, customizing, updating, etc. is required and not a number of different, partly proprietary tools.
- 2. The method is based on standards such as XML and XSLT and is subject to fewer restrictions with regard to convertibility into other programming languages than other methods for modifying source code.
- 3. Even for special and complicated source code modifications, no proprietary special solutions are required, but existing standards such as XSLT, XPath and XQuery can be used for this.
- 4. This type of modification allows hierarchies to be created, inter alia, by the possibility of orderly, automated execution (pipelines) of several transformations, for example patches.
- 5. The transformations can be saved for general reuse in XSLT files, so that libraries can be created for certain processes, for example.
- 6. An XML representation of the source code can be stored in an XML database and, if necessary, can be easily adapted to the respective customer needs using an XSLT (customization).
- 7. By using the XMLSchema or DTD standards or corresponding XSLTs, the code can be checked (validated) in advance (without compilation) for certain correctness aspects.
- 8. Common XML tools can be used for simple editing or visualization and determination of relationships in the code.
- 9. Permanent XML-based program libraries that support XPath requests can be re-created use of code can be improved by better finding a code or code fragments or templates.
Anhang:Attachment:
Listing 1: TestRegistry.java Listing 1: TestRegistry.java
Listing 2: TestRegistry.xjava Listing 2: TestRegistry.xjava
Listing 3: VariationPointT1.xsl Listing 3: VariationPointT1.xsl
Listing 4: TestRegistry.xjava (*) Listing 4: TestRegistry.xjava (*)
Listing 5: TestRegistry.java (*) Listing 5: TestRegistry.java (*)
Claims (6)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10314832A DE10314832B3 (en) | 2003-04-01 | 2003-04-01 | Computer software modification method with initial conversion of selected software components at modification points and delivery in mixed form for final conversion of software components on user side |
PCT/EP2004/003301 WO2004088549A2 (en) | 2003-04-01 | 2004-03-29 | Method and array for changing software or source code |
EP04739074A EP1609061A2 (en) | 2003-04-01 | 2004-03-29 | Method and array for changing software or source code |
US10/551,454 US8473937B2 (en) | 2003-04-01 | 2004-03-29 | Method and array for changing software or source code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10314832A DE10314832B3 (en) | 2003-04-01 | 2003-04-01 | Computer software modification method with initial conversion of selected software components at modification points and delivery in mixed form for final conversion of software components on user side |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10314832B3 true DE10314832B3 (en) | 2004-12-09 |
Family
ID=33440586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10314832A Expired - Fee Related DE10314832B3 (en) | 2003-04-01 | 2003-04-01 | Computer software modification method with initial conversion of selected software components at modification points and delivery in mixed form for final conversion of software components on user side |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10314832B3 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052531A (en) * | 1998-03-25 | 2000-04-18 | Symantec Corporation | Multi-tiered incremental software updating |
-
2003
- 2003-04-01 DE DE10314832A patent/DE10314832B3/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052531A (en) * | 1998-03-25 | 2000-04-18 | Symantec Corporation | Multi-tiered incremental software updating |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60010420T2 (en) | Automatic regression testing of workstation software | |
EP1723513B1 (en) | Method for configuring a computer program | |
EP0432802A2 (en) | Method for the automatic parsing of the computer program text in compilers | |
WO2015185328A1 (en) | Computer-implemented method and signal sequence for a program for reusing software configurations that can be executed for software systems, and computer system, and a computer program with program code for carrying out the method | |
DE102005042129A1 (en) | Method and apparatus for automatically evaluating the quality of a software source code | |
DE10041072A1 (en) | Automatic generation of program code involves forming symbol for component with interfaces in graphical editor, offering selection, generating code combining components | |
EP1609061A2 (en) | Method and array for changing software or source code | |
DE10314832B3 (en) | Computer software modification method with initial conversion of selected software components at modification points and delivery in mixed form for final conversion of software components on user side | |
WO2007068563A1 (en) | Method for processing and creating diagnostic data in a software development process | |
DE10008632B4 (en) | Method and system for generating a computer program | |
EP3800480A1 (en) | Mr measurement protocol conversion | |
EP0708941B1 (en) | Process for testing an object-oriented programme | |
EP0662226B1 (en) | Method of processing an application program on a parallel-computer system | |
DE102008044808B4 (en) | Method for generating program code in an operating system memory and an application memory of a data carrier | |
DE10314835A1 (en) | Computer software modification method with initial conversion of selected software components at modification points and delivery in mixed form for final conversion of software components on user side | |
DE102004022183B4 (en) | Correction of program object code due to source text changes is made without generating all new modules | |
DE10314831A1 (en) | Computer software modification method with initial conversion of selected software components at modification points and delivery in mixed form for final conversion of software components on user side | |
EP0560342B1 (en) | Method for debugging HDL-programs | |
DE112016007465T5 (en) | Program development support apparatus and method for managing program components | |
DE10300541A1 (en) | Workable data file generation method, involves dividing target name into parts at given points | |
DE10314834A1 (en) | Computer software modification method with initial conversion of selected software components at modification points and delivery in mixed form for final conversion of software components on user side | |
DE10254530A1 (en) | Control system upgrading method in which an information set description relating to a first software configuration is first converted into a neutral meta-description, which is then converted into a second software information set | |
DE10105729C1 (en) | Functional expansion of telecommunications system involves converting between program codes and languages and converting program code to machine code for storage in program memory | |
EP0809183A1 (en) | Method and apparatus for updating part of a program whilst it is running | |
DE10065114A1 (en) | Word order generation method for activating functional units of processor, involves recognizing complex words in complex word sequence and using stored program word for generating word order |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8100 | Publication of patent without earlier publication of application | ||
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |