WO2005006187A1 - Procede de modification dynamique d'une conception de logiciel - Google Patents

Procede de modification dynamique d'une conception de logiciel Download PDF

Info

Publication number
WO2005006187A1
WO2005006187A1 PCT/IB2004/051094 IB2004051094W WO2005006187A1 WO 2005006187 A1 WO2005006187 A1 WO 2005006187A1 IB 2004051094 W IB2004051094 W IB 2004051094W WO 2005006187 A1 WO2005006187 A1 WO 2005006187A1
Authority
WO
WIPO (PCT)
Prior art keywords
design
software system
description
component
components
Prior art date
Application number
PCT/IB2004/051094
Other languages
English (en)
Inventor
Marc Stroucken
Original Assignee
Koninklijke Philips Electronics N.V.
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 Koninklijke Philips Electronics N.V. filed Critical Koninklijke Philips Electronics N.V.
Publication of WO2005006187A1 publication Critical patent/WO2005006187A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Definitions

  • the present invention relates to a method of dynamically changing the design of a software system to a second design.
  • the invention further relates to a system adapted for dynamically changing the design of a software system to a second design.
  • the invention further relates to an apparatus adapted to be used for dynamically changing the design of a software system to a second design.
  • the invention also relates to a data signal including information to be used for dynamically changing the design of a software system to a second design.
  • the invention relates to a computer-readable medium comprising a data record indicative of information to be used for dynamically changing the design of a software system to a second design.
  • Today software is used for a wide area of applications and for providing functionality to a number of hardware products.
  • software i.e. computer programs
  • Services make up the largest expenditure of total personal computer (PC) software costs, while the cost of the software itself accounts for only a small portion of these total costs.
  • PC personal computer
  • This is obtained by a method of dynamically changing the design of a software system to a second design, where said software system comprises a number of components being interconnected via corresponding component specific interfaces, where each component implements at least a part of the functionality of the software system, and where the component specific interfaces at least define the input needed by the specific component.
  • the method comprises the steps of: obtaining a description of said second design, said description comprising at least a description of the differences between the description of the design of the software system and the second design, said description comprising a description of components and how these components are interconnected via interfaces, - updating the software system according to the differences between the second design and the design of the software system.
  • new applications can be added to the existing ones, which may include diagnostic applications for remote service, or simply feature additions. Since only the overall design is described, they are small and therefore easy to store and transmit via e.g. the Internet using compression and encryption.
  • the invention could be used on a system that is already deployed in the field, which has already the basic ability to create an infinite number of different applications. Then a new application could be added to the system by first generating the application's design description and provide the new description to the system, either locally or remote. After having received the new design, the system according to the invention knows how to build the components for the application. Even small changes can be made to the application and the system will implement these without the need to shut down the system, which makes remote service possible and allows for new feature downloads without updating the whole system.
  • the description of said second design is a description of the design of the complete second design, and wherein the differences between the second design and the design of the software system are obtained by comparing the design of the software system with the second design. Thereby the system can determine, which changes have been made to the design ensuring that the determined differences between the new design and the design of the software system are based on the actual design of the active software. Only the changes are effectuated; the rest of the design remains the same.
  • the description of said second design is in XML. Thereby the design description can be made easily in relatively few lines of code.
  • the step of updating the software system according to the differences between the second design and the design of the running software system comprises at least one of the following steps: adding components to the design of the software system, - removing components from the design of the software system, - changing how at least some of the existing components are interconnected. This has proven to be a very fast and efficient way of updating the design.
  • the step of removing components from the design of the software system comprises the steps of: - bringing all related components in the design to a stable state, - removing connections to said component, - removing said component from the design of the software system.
  • the step of adding objects to the design of the software system comprises the steps of: creating the component with default values, - connecting said component to other components via corresponding component specific interfaces, - bringing said component to the initial state.
  • the invention further comprises a system adapted for dynamically changing the design of a software system to a second design, where said software system comprises a number of components being interconnected via corresponding component specific interfaces, where each component implements at least a part of the functionality of the software system, and where the component specific interfaces at least define the input needed by the specific component.
  • the apparatus comprises: - means for obtaining a description of said second design, said description at least comprising a description of the differences between the description of the design of the software system and the second design, said description comprising a description of components and how these components are interconnected via interfaces, means for updating the software system according to the differences between the second design and the design of the software system.
  • the invention also comprises an apparatus adapted to be used for dynamically changing the design of a software system to a second design, where said software system comprises a number of components being interconnected via corresponding component specific interfaces, where each component implements at least a part of the functionality of the software system, and where the component specific interfaces at least define the input needed by the specific component.
  • the apparatus comprises: means enabling the apparatus to receive a description of the design of the complete second design, said second design being defined by a user.
  • the invention also relates to a data signal including information to be used for dynamically changing the design of a software system to a second design, where said software system comprises a number of components being interconnected via corresponding component specific interfaces, where each component implements at least a part of the functionality of the software system, and where the component specific interfaces at least define the input needed by the specific component, the data signal comprising a description of the second design at least comprising the differences between the description of the design of the software system and the second design, said description adapted for updating the software system according to the differences between the second design and the design of the software system.
  • the invention also relates to a computer-readable medium comprising a data record indicative of information to be used for dynamically changing the design of a software system to a second design, where said software system comprises a number of components being interconnected via corresponding component specific interfaces, where each component implements at least a part of the functionality of the software system, and where the component specific interfaces at least define the input needed by the specific component, the data signal comprising a description of the second design at least comprising the differences between the description of the design of the software system and the second design, said description adapted for updating the software system according to the differences between the second design and the design of the software system.
  • figure 1 illustrates elements in a system according to the present invention
  • figure 2 illustrates a method of dynamically changing the design of a software system according to the present invention
  • figure 3 illustrates the steps of implementing a new software design
  • figure 4 illustrates the steps of changing a design by replacing a component with a new component
  • figure 5 illustrates the steps of removing a component from a software design
  • figure 6 illustrates a system for performing a method according to the present invention
  • figure 7 illustrates an apparatus for editing a design.
  • the elements in a system according to the present invention are illustrated.
  • the embodiment illustrated is an embodiment, where the system is used for updating software systems based on object oriented design class diagrams.
  • the system contains a design engine 101, which has access to a library 103 of all classes (A, B, C, D.7) that are known to the system.
  • the library contains information about each class, such as what are its interfaces, how to initialize the objects and through which of the interfaces other objects can be connected.
  • the library 103 can further be extended via the design engine 101 with new class descriptions and their corresponding binary implementations. These new classes are obtained via a class database 105 via a network connection 107.
  • the design engine 101 has access to an active configuration component 108, which contains the internal data representation of the current design of the active software system.
  • the design engine also has access to new designs 111, which e.g.
  • a loader functionality 115 which can receive/interpret the design descriptions from some external connection or local storage medium, and convert the input to some internal data representation. Together with these design descriptions additional class/component codes may be received by the loader.
  • a class updater functionality 116 which will add any new class code, received by the loader 115, to the class library 103.
  • a class checker functionality 117 which takes a design description and checks if the class code for each used object in the design is present in the class library 103.
  • a design matcher functionality 119 which can compare the received internal data representation from the loader 115 with that of the active configuration functionality. The resulting difference of these two designs is referred to as the design delta.
  • the resulting second design description is first stored in the active configuration 108 by effectuating the delta design. The required changes to the actual design 123 are reported to the design updater 121.
  • FIG. 2 a method for updating a software design according to the present invention is illustrated.
  • the design editor 200 could e.g. be a graphical editor, where the new design 203 is made based on a graphical description of the original design.
  • the new design could be made by graphically adding or removing components from the original design or by interconnecting the existing components differently.
  • the design editor 200 After having finished the design, the design editor 200 generates a description, which comprises at least a description of the differences between the description of the original design and the new design.
  • the description could further comprise the code of any new classes obtained from the class code library needed by objects included in the new design, which are not already in the class library 103.
  • the description of the design is then transferred to a design engine 205, and in 207 the loader of the design engine receives the description of the new design together with any new necessary classes.
  • the description of the new design could be made locally on the same system as the system comprising the software system to be updated.
  • the new design description is then transferred to the loader locally.
  • the new design is made on a separate system, and the description could then be transferred to the loader in the design engine via an Internet or broadcast connection.
  • the new description could be stored on a removable disk and loaded from the disk by the loader in the design engine.
  • the loader also validates the correctness of the description of the new design and transforms it into the internal data representation of the received design. In case the description is not valid, the updating process is stopped 209, and the design of the existing software system will remain unchanged, and an appropriate error will be logged.
  • any new class code received by the loader will be added to the class library 103 by the class updater.
  • the class checker will check if the used class references in the received description of the new design are available in the class library 103. If a reference does not exist, the updating process is stopped 209, and the design of the existing software system will remain unchanged.
  • the design matcher compares the received design description to the internal data representation in the active configuration functionality 107.
  • the result is a delta design, which contains information on which components are added, which are removed and which are changed.
  • the active configuration is updated with the delta design information, which in 217 triggers the design updater to change the in-memory design 123.
  • the design updater does this in a smart way i.e., only stops/restarts those objects/components that have been afflicted by the change. In the following examples are given on how the design updater performs the updating of the in-memory design.
  • the design engine can receive one or more design descriptions 301, e.g. as an XML file, through one of its interfaces.
  • the design description contains information about the needed objects, their classes, how they are connected to each other via interfaces, their initial state and values, etc. Which designs are valid is determined by the class description of the objects. For example in the received design it can be seen that object A requires a mandatory interface IBi. In a valid design containing object A, this object must be connected to another object that provides interface IB ⁇ ; otherwise the design is considered invalid. If the design is invalid, no change will occur.
  • Classes have both explicitly provided and required interfaces. Each of these interfaces are either mandatory or optional. For optional interfaces special rules apply in order to make correct designs. If a provided interface is optional, the class must provide, through one of its other mandatory interfaces, a mean to find if the optional interface is present (implemented) or not. If a required interface is optional, the class must implement default functionality for the case that the optional interface is not connected to a provided interface of other object.
  • the design engine In 303 it is illustrated that the no in- memory design is initially present. Then in 305, the objects A, B, C, and D with default values are created. Next, in 307, the objects are interconnected and e.g.
  • object A and D are connected by connecting interface ID of object D to object A, by calling a connect-method in interface IA.
  • the other objects are connected in a similar way, and thereby objects B and C are connected to object A, and object B is connected to object C.
  • objects A, B, C, and D are brought to their initial state.
  • any thread that needs starting is started.
  • FIG 4 it is illustrated how a new software design is implemented by updating the present memory design. Updating can also be done by sending delta designs. Such a delta design only describes the changes to the current configuration. For example, if it is of interest to replace objects D with interface ID by an object D2 that also has interface ID.
  • the delta description could simply describe a partial design, where object D is removed, and object D2 is added and connected to object A.
  • the change can be made, while the system keeps on running, or the system must be brought to an exit-state and restarted after the change has been applied.
  • An example of the former case is when there is no active thread call from object A to object D (or from D to any other object in the system), so that the object can be removed "safely”.
  • the delta design is updated first in the active configuration functionality, which will signal the design engine that updates are required to the in-memory design. The following actions will be performed by the design engine to bring the in-memory design to the new state defined by the received design 401.
  • object D is brought to a stable exit state. Then in 405 the connection to interface ID of D is removed from object A by calling a disconnect-method in interface IA. Next, object D is destroyed or deleted. In 407 the object D2 is created with its default values and finally in 409 interface ID of object D2 is connected to object A by calling a connect-method in interface IA. Similar to the example in figure 3, the new object D2 is brought to its initial state, and any thread that needs restarting is restarted (not illustrated). In figure 5 another example is illustrated, where a design 501 is received, which requires that an object C is removed.
  • IC is an optional required interface of object A, and no thread calls are active in object C or object B via object C. If thread calls are active, one must either wait until they are finished or stop them.
  • object C is brought to a stable state.
  • connection to interface IB 2 of B is removed from object C by calling a disconnect-method in interface IC.
  • connection to interface IC of C is removed from object A by calling a disconnect-method in interface IA.
  • object C is destroyed or deleted. Similar to the example in figure 3, the new object D2 is brought to its initial state, and any thread that needs restarting is restarted (not illustrated).
  • FIG. 6 illustrates an embodiment of a system 600 for changing the design of a software system according the above described.
  • the system comprises a microprocessor 601 connected to a memory module 603 via a communication bus 604.
  • the microprocessor then performs the updating of the design of the software system according to an updating algorithm stored in the memory module 603.
  • the system could further comprise a receiver 605 for receiving a description 607 of the new software design from a design system.
  • Figure 7 illustrates an embodiment of an apparatus 700 for changing the design of a software system according the above described.
  • the system comprises a microprocessor 701 connected to a memory module 703 via a communication bus 705.
  • the microprocessor then generates a new software design according to the design algorithm stored in the memory module 703.
  • the system could further comprise a transmitter 707 for transmitting the new software design 709 to a system on which the software should be updated according to the new design.
  • the design description in the active configuration + the code for the class libraries are typically stored in non-volatile/flash memory, while the actual design is created in volatile memory.
  • the system/box can be switched off maintaining its current state. When the system is switched on again, it does not need external resources to be able to start. If there is no non-volatile memory in the apparatus, then the system will need to download the design description and the class code via the receiver each time it is switched on.
  • DSP Digital Signal Processors
  • ASIC Application Specific Integrated Circuits
  • PDA Programmable Logic Arrays
  • FPGA Field Programmable Gate Arrays
  • any reference signs placed between parentheses shall not be construed as limiting the claim.
  • the word 'comprising' does not exclude the presence of other elements or steps than those listed in a claim.
  • the invention can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a device claim enumerating several means, several of these means can be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Landscapes

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

Abstract

La présente invention se rapporte à un procédé de modification dynamique de la conception d'un système logiciel de manière à la transformer en une seconde conception, ledit système logiciel comportant un certain nombre d'éléments reliés entre eux par l'intermédiaire d'interfaces spécifiques d'éléments, chaque élément mettant en oeuvre au moins une partie de la fonctionnalité du système logiciel, et les interfaces spécifiques d'éléments définissant au moins le signal d'entrée que nécessite l'élément spécifique. Le procédé consiste à obtenir une description de ladite seconde conception et à mettre à jour le système logiciel en fonction des différences entre la seconde conception et la conception du système logiciel. L'invention se rapporte également à un système adapté pour modifier de façon dynamique la conception d'un système logiciel de manière à la transformer en une seconde conception. L'invention concerne en outre un appareil adapté pour être utilisé dans la modification dynamique de la conception d'un système logiciel de manière à la transformer en une seconde conception. Par ailleurs, l'invention concerne un signal de données comprenant des informations destinées à être utilisées dans la modification dynamique de la conception d'un système logiciel de manière à la transformer en une seconde conception. Enfin, l'invention se rapporte à un support lisible par ordinateur et comportant un fichier de données et représentatif des informations destinées à être utilisées dans la modification dynamique de la conception d'un système logiciel de manière à la transformer en une seconde conception. On peut ainsi élaborer beaucoup plus rapidement des logiciels et des mises à jour de logiciel car il est plus facile d'écrire des descriptions de conception que d'écrire le code de liaison proprement dit qui relie tous les éléments du système.
PCT/IB2004/051094 2003-07-10 2004-07-01 Procede de modification dynamique d'une conception de logiciel WO2005006187A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03102088.6 2003-07-10
EP03102088 2003-07-10

Publications (1)

Publication Number Publication Date
WO2005006187A1 true WO2005006187A1 (fr) 2005-01-20

Family

ID=34042929

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2004/051094 WO2005006187A1 (fr) 2003-07-10 2004-07-01 Procede de modification dynamique d'une conception de logiciel

Country Status (1)

Country Link
WO (1) WO2005006187A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2885242A1 (fr) * 2005-05-02 2006-11-03 Ecensity Corp Creation d'applications personnalisables
WO2013160734A2 (fr) 2012-04-27 2013-10-31 Aselsan Elektronik Sanayi Ve Ticaret Anonim Sirketi Procédé et appareil de gestion de configuration dynamique

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CECILIA MASCOLO, LUCA ZANOLIN, WOLFGANG EMMERICH: "XMILE: An XML Based Approach for Incremental Code Mobility and Update", AUTOMATED SOFTWARE ENGINEERING, vol. 9, no. 2, April 2002 (2002-04-01), pages 151 - 165, XP002301792 *
D. OHST, M. WELLE, U. KELTER: "Differences between versions of UML diagrams", PROCEEDINGS OF THE 9TH EUROPEAN SOFTWARE ENGINEERING CONFERENCE HELD JOINTLY WITH 10TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 1 September 2003 (2003-09-01) - 5 September 2003 (2003-09-05), HELSINKI, FINLAND, pages 227 - 236, XP002301791 *
I. NUNN, D. DEUGO: "Automated assembly of software components based on XML-coded instructions", PROCEEDINGS OF THE 2002 ACM SYMPOSIUM ON APPLIED COMPUTING, 2002, MADRID, SPAIN, pages 937 - 942, XP002301790 *
KEIENBURG F ET AL: "Using XML/XMI for tool supported evolution of UML models", PROCEEDINGS OF THE 34TH HAWAII INTERNATIONAL CONFERENCE ON SYSTEM SCIENCES 2001, 3 January 2001 (2001-01-03), HAWAII, USA, pages 3945 - 3954, XP010550061 *
SUZUKI J YAMAMOTO Y ED - ASSOCIATION FOR COMPUTING MACHINERY: "Managing the software design documents with XML", THE 16TH ANNUAL INTERNATIONAL CONFERENCE OF COMPUTER DOCUMENTATION. CONFERENCE PROCEEDINGS. SIGDOC '98 SCALING THE HEIGHTS: THE FUTURE OF INFORMATION TECHNOLOGY. QUEBEC CITY, SEPT. 23 - 26, 1998, ANNUAL INTERNATIONAL CONFERENCE OF COMPUTER DOCUMENTAT, 23 September 1998 (1998-09-23), pages 127 - 136, XP002959949, ISBN: 1-58113-004-X *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2885242A1 (fr) * 2005-05-02 2006-11-03 Ecensity Corp Creation d'applications personnalisables
WO2006117467A1 (fr) * 2005-05-02 2006-11-09 Ecensity Corporation Creation d'applications personnalisables
WO2013160734A2 (fr) 2012-04-27 2013-10-31 Aselsan Elektronik Sanayi Ve Ticaret Anonim Sirketi Procédé et appareil de gestion de configuration dynamique
US20140189645A1 (en) * 2012-04-27 2014-07-03 Aselsan Elektronik Sanayi Ve Ticaret Anonim Sirketi Method for dynamic configuration management and an apparatus thereof

Similar Documents

Publication Publication Date Title
US6415435B1 (en) Method and apparatus for determining compatibility of parent classes in an object oriented environment using versioning
US7684964B2 (en) Model and system state synchronization
CN100426235C (zh) 在软件包管理系统将用户进程表示为软件包的系统和方法
US8578371B2 (en) Software distribution method and system with automatic prerequisite installation
KR101143112B1 (ko) 페일세이프 방식으로 맞춤 소프트웨어 영상 갱신을불휘발성 저장 장치에 적용하는 시스템 및 방법
US8196130B2 (en) Tri-phase boot process in electronic devices
US7549148B2 (en) Self-describing software image update components
US20050262501A1 (en) Software distribution method and system supporting configuration management
US20020169591A1 (en) Module for developing wireless device applications using an integrated emulator
US20040111702A1 (en) Method and apparatus for visual programming
US8181166B2 (en) System and method for determining when an EJB compiler needs to be executed
US20030236657A1 (en) Method of developing wireless device applications using an integrated emulator and an IDE
JPH0934723A (ja) ネットワークでのアプリケーション・プログラムの導入のための導入計画オブジェクトのコミット
US10761816B2 (en) Method and system for determining interface compatibility based on component model
US20080276221A1 (en) Method and apparatus for relations planning and validation
US9575735B2 (en) Application template creation and management
WO2002033636A1 (fr) Appareil, procedes et articles de fabrication destines a la construction et a l'execution de procedes et programmes de transactions electroniques
US8949821B2 (en) Cap file for the personalization of a java application
US20040172637A1 (en) Code morphing manager
US8185873B2 (en) System and method for using a preprocessor to determine dependencies between J2EE components
CN111782519A (zh) 测试方法、装置和电子设备
CN115185550A (zh) 服务部署方法、装置、计算机设备及存储介质
US20080196009A1 (en) Apparatus and method for componentizing legacy system
Schippers et al. Leveraging UML profiles to generate plugins from visual model transformations
US20050262486A1 (en) System and method for version control for software development

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase