DE10314832B3 - Verfahren und Anordnung zur kundenseitigen Anpassung von Software - Google Patents
Verfahren und Anordnung zur kundenseitigen Anpassung von Software 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
Die Erfindung besteht im Wesentlichen darin, dass eine erste Software mit Variationspunkten VP ausgestattet werden kann, welche in eine Meta-Auszeichnungssprache formuliert sind, und kundenseitig durch eine Transformation nur in Abhängigkeit von Transformationsregeln TR, die Modifizierungsregeln für die Variationspunkte enthalten, in eine zweite Software umgewandelt werden kann, welche die Variationspunkte VP entweder in modifizierter Form VP* oder in kompilierter Form VPB* enthält. Die zweite umgewandelte Software unterscheidet sich dabei von der ersten in ihrem Programmablauf bzw. Programminhalt.
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.
- 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.
- 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.
- 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.
- 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.
- Die Erfindung wird im Folgenden anhand des in Zeichnung 1 dargestellten Beispiels näher erläutert. Dabei zeigt
- Zeichnung 1 ein Gesamtblockdiagramm zur Erläuterung der Erfindung.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Anhang:
Claims (6)
- Verfahren zur kundenseitigen Anpassung von Software, – bei dem vorab herstellerseitig aus einer nur aus Quelltext (SC1, SC2, SC) bestehenden ursprünglichen Software eine Mischform der ursprünglichen Software derart gebildet wird, dass mindestens ein Teil (SC1) des Quelltexts in einen Byte- oder Binärcode (B1,..,B) compiliert und mindestens ein weiterer Teil (SC2) des Quelltexts in einen in einer Meta-Auszeichnungssprache formulierten Code (CodeML) für mindestens einen Variationspunkt (VP2,..VP) konvertiert wird, – bei dem dann kundenseitig nach Bedarf nur mindestens ein Variationspunkt (VP2) der Mischform (SW) der ursprünglichen Software durch eine Transformation (T) in Abhängigkeit von Transformationsregeln (TR) in mindestens einen in der Meta-Auszeichnungssprache formulierten anderen Code (CodeML*) umgewandelt wird und – bei dem der andere Code (CodeML*) direkt einen veränderten Variationspunkt (VP2*) einer angepassten Software (SW*) bildet oder aus dem anderen Code (CodeML*) durch einen Konverter (RCONV) ein Quellcode (SC*) und dann mittels eines Kompilers (COMP) ein Binär- oder ByteCode (B*) des veränderten Variationspunkts (VPB2) einer angepassten Software (SW*) gebildet wird, wobei sich die ursprüngliche (SW) und die angepasste Software (SW*) in ihrem Programmablauf bzw. Programminhalt unterscheiden.
- Verfahren nach Anspruch 1, bei dem die Transformationsregeln (TR) mindestens eine Modifikationsregel für einen Variationspunkt aufweisen.
- Verfahren nach Anspruch 1 oder 2, bei dem der Modifikationsregel ein Update auf eine neuere Softwareversion bzw. ein Patching anstößt.
- Verfahren nach Anspruch 1 oder 2, bei dem die Modifikation mindestens eines Variationspunktes (VP) durch die Transformation zur Laufzeit erfolgt.
- Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Programmiersprache des Quellcodes Java und die Meta-Auszeichnungssprache der Variationspunkte XML ist und bei dem die Transformation und die Regelbeschreibung mittels XSLT und XSL erfolgt.
- Anordnung zur kundenseitigen Anpassung von Software, gemäß dem Verfahren nach Anspruch 1 – bei der eine Mischform einer ursprünglichen Software derart vorhanden ist, dass mindestens ein Teil (SC1) eines Quelltexts in einen Byte- oder Binärcode (B1,..,B) compiliert und mindestens ein weiterer Teil (SC2) des Quelltexts in einen in einer Meta-Auszeichnungssprache formulierten Code (CodeML) für mindestens einen Variationspunkt (VP2,..VP) konvertiert ist, – bei der eine Einrichtung zur Transformation (T) derart vorhanden ist, dass nach Bedarf nur mindestens ein Variationspunkt (VP2) der Mischfarm (SW) der ursprünglichen Software durch die Transformation (T) in Abhängigkeit von Transformationsregeln (TR) in mindestens einen in der Meta-Auszeichnungssprache formulierten anderen Code (CodeML*) umwandelbar ist, wobei der andere Code (CodeML*) direkt einen veränderten Variationspunkt (VP2*) einer angepassten Software (SW*) bildet oder aus dem anderen Code (CodeML*) durch einen Konverter (RCONV) ein Quellcode (SC*) und dann mittels eines Compilers (COMP) ein Binär- oder ByteCode (B*) des veränderten Variationspunkts (VPB2) einer angepassten Software (SW*) bildbar ist und wobei sich die ursprüngliche (SW) und die angepasste Software (SW*) in ihrem Programmablauf bzw. Programminhalt unterscheiden.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10314832A DE10314832B3 (de) | 2003-04-01 | 2003-04-01 | Verfahren und Anordnung zur kundenseitigen Anpassung von Software |
EP04739074A EP1609061A2 (de) | 2003-04-01 | 2004-03-29 | Verfahren und anordnung zur veränderung von software oder quellcode |
PCT/EP2004/003301 WO2004088549A2 (de) | 2003-04-01 | 2004-03-29 | Verfahren und anordnung zur veränderung von software oder quellcode |
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 (de) | 2003-04-01 | 2003-04-01 | Verfahren und Anordnung zur kundenseitigen Anpassung von Software |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10314832B3 true DE10314832B3 (de) | 2004-12-09 |
Family
ID=33440586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10314832A Expired - Fee Related DE10314832B3 (de) | 2003-04-01 | 2003-04-01 | Verfahren und Anordnung zur kundenseitigen Anpassung von Software |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10314832B3 (de) |
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/de 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 (de) | Automatisches Regressionstesten von Arbeitsplatz-Software | |
EP1723513B1 (de) | Verfahren zur konfiguration eines computerprogramms | |
EP0432802A2 (de) | Verfahren für die automatische Syntaxanalyse (Parsen) des Textes von Computer-Programmen in Kompilierern | |
EP1176482A1 (de) | Verfahren und Computerprogramm zum Herstellen einer Regelung oder Steuerung | |
WO2015185328A1 (de) | Computerimplementiertes verfahren und signalfolge für ein programm zur wiederverwendung von ausführbaren softwarekonfigurationen für softwaresysteme sowie rechneranlage und ein computerprogramm mit programmcode zur durchführung des verfahrens | |
DE102005042129A1 (de) | Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes | |
DE10041072A1 (de) | Verfahren zur automatischen Erzeugung von Programmcode | |
EP1609061A2 (de) | Verfahren und anordnung zur veränderung von software oder quellcode | |
DE10314832B3 (de) | Verfahren und Anordnung zur kundenseitigen Anpassung von Software | |
WO2007068563A1 (de) | Verfahren zur verarbeitung und erzeugung von diagnosedaten in einem softwareentwicklungsprozess | |
DE10008632B4 (de) | Verfahren und System zum Erzeugen eines Computerprogramms | |
EP1622022A1 (de) | Automatische Erzeugung von Testfällen | |
DE60225464T2 (de) | Robotersystem und verfahren und software für das robotersystem | |
EP0708941B1 (de) | Verfahren zum test eines objektorientierten programms | |
EP3800480A1 (de) | Konvertierung eines mr-messprotokolls | |
DE10314835A1 (de) | Verfahren und Anordnung zur Erzeugung und Verarbeitung eines Quellcodes mit Spracherweiterungen | |
DE102004022183B4 (de) | Verfahren zum Ändern von Programmobjektcode bei Quelltextänderungen | |
DE10314831A1 (de) | Verfahren und Anordnung zur Transformation von Quellcode | |
EP0560342B1 (de) | Verfahren zum Untersuchen des Ablaufs eines in einer Hardware-Beschreibungssprache geschriebenen Programms | |
DE112016007465T5 (de) | Programmentwicklungsunterstützungsvorrichtung und Verfahren zur Verwaltung von Programmkomponenten | |
DE10300541A1 (de) | Erzeugen einer ausführbaren Datei | |
DE10314834A1 (de) | Verfahren Anordnung zur Modifikation von Quellcode unter Einbeziehung zusätzlicher Informationen | |
DE10254530A1 (de) | Verfahren und System zur wissensbasierten Transformation von textuellen Programmen, die sich auf die Softwarekonfiguration eines verteilten Leitsystems beziehen | |
DE10105729C1 (de) | Verfahren und System zur funktionsmäßigen Erweiterung einer Telekommunikationsanlage | |
EP0809183A1 (de) | Verfahren und Anordnung zur Aktualisierung eines Teils eines Programmcodes während dessen Ausführung |
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 |