[go: up one dir, main page]

WO2004072849A1 - Method for creating a program code - Google Patents

Method for creating a program code Download PDF

Info

Publication number
WO2004072849A1
WO2004072849A1 PCT/EP2004/001453 EP2004001453W WO2004072849A1 WO 2004072849 A1 WO2004072849 A1 WO 2004072849A1 EP 2004001453 W EP2004001453 W EP 2004001453W WO 2004072849 A1 WO2004072849 A1 WO 2004072849A1
Authority
WO
WIPO (PCT)
Prior art keywords
library
code
chip card
file
main
Prior art date
Application number
PCT/EP2004/001453
Other languages
German (de)
French (fr)
Other versions
WO2004072849B1 (en
Inventor
Bernd Müller
Gary Jones
Stefan Angermeier
Rainer Simmet
Peter Niebler
Gerhard Stix
Anton Sontheim
Heiko Oester
Martin RÖSNER
Jens Rudolph
Original Assignee
Giesecke & Devrient Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke & Devrient Gmbh filed Critical Giesecke & Devrient Gmbh
Priority to EP04711364A priority Critical patent/EP1597670A1/en
Publication of WO2004072849A1 publication Critical patent/WO2004072849A1/en
Publication of WO2004072849B1 publication Critical patent/WO2004072849B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Definitions

  • the invention relates to a method for creating program code, in particular for a chip card, for communication with a mobile terminal.
  • a mobile end device is understood to mean a cell phone, a personal digital assistant (PDA), a combined device consisting of a cell phone and a PDA or an electronic organizer or a similar device that is suitable for organization or communication or similar activities and that is also suitable to be carried by the user on the body, in clothing or in small hand luggage.
  • PDA personal digital assistant
  • a chip card is understood to mean a data carrier with an electronic circuit and a card body.
  • the card body can have any format such as, for example, credit card format or SIM card format.
  • the chip card can be a pure memory card or a microprocessor card with a CPU and one or more memories. In connection with the invention, the chip card is preferably a microprocessor card.
  • Program code in particular for a chip card, for controlling a mobile terminal can be created in a programming language used, for example by direct programming, by entering the source code character by character and then compiling it. This requires programming knowledge in the programming language used.
  • object-oriented programming it is known to integrate a preprogrammed source code module into the program sequence for a self-contained functional unit that is to be executed in a program sequence, so that the source code of the functional unit no longer needs to be programmed character by character. As a result, more complex program sequences can be created even with less programming knowledge.
  • the object of the invention is to create a method and a software tool for carrying out the method, with which program code for controlling a mobile terminal can be created in a simple and intuitive manner and without extensive programming knowledge.
  • the object is achieved by a method according to independent method claim 1, by a software tool according to independent software tool claim 26 and by a data carrier or computer or a mobile terminal with a software tool or program code implemented therein, that was created with the software tool or according to the procedure.
  • the graphic design of the program code to be created is created in the design step.
  • icons are positioned on the graphic work surface and connected with each other by lines.
  • Each icon corresponds to a functional element that one corresponding source code and, in compiled form, corresponds to a corresponding intermediate code.
  • the arrangement of the icons determines which functions are to be carried out later by the program code.
  • the program flow is determined by drawing the lines between the icons, ie the sequence in which the functions behind the icons run when the program code is subsequently executed.
  • the method has the advantage that no programming knowledge in a specific programming language is required to create program code, regardless of the programming language in which the source code or intermediate code is created. It is sufficient to be familiar with the operation of graphical user interfaces by means of input devices such as a mouse, trackball, keyboard, touch screen and the like, depending on which input device the graphical user interface is operated with.
  • input devices such as a mouse, trackball, keyboard, touch screen and the like, depending on which input device the graphical user interface is operated with.
  • the fact that the program sequence is defined by simply drawing graphical lines makes the process particularly simple and intuitive.
  • the source code which corresponds to a functional element, can be integrated directly into the runtime source code, but is preferably provided in that a function call to the source code of the functional element is incorporated into the runtime source code.
  • the function call is preferably directed to an entry of the associated function element in a library source code file.
  • Functional elements and connections can also be configured using parameters.
  • the intermediate codes of the functional elements are carried along with the intermediate sequence code, ie compiled into the intermediate sequence code file.
  • the compiled functional elements preferably form a separate library section, which, however, lies within the sequence intermediate code file.
  • the following second embodiment of the method according to the invention is preferred.
  • only function calls to the functional elements are carried in the intermediate code for the functional elements used in a program code.
  • the intermediate codes of the functional elements themselves are kept in a corresponding library intermediate code file, separate from the sequence intermediate code file, and are not used during the execution of the actual method.
  • the library intermediate code file does not need to be available, in particular during the creation of the program code. It is sufficient if the library is available for the subsequent execution of the program code.
  • the library intermediate code file only needs to be set up once on the mobile device or the chip card on which the program code is to run later.
  • the library intermediate code file used in the second embodiment preferably contains others
  • the library intermediate code file further preferably contains an inventory of intermediate codes that is independent of the implementation of the method.
  • a third embodiment of the invention it is possible to choose within the method whether the intermediate code for the functional elements according to the first embodiment is integrated directly into the intermediate flow code or, according to the second embodiment, only one in the intermediate flow code Function call is to be integrated, whereas the intermediate codes of the function elements remain in the library.
  • the method can be carried out on a personal computer or server or on a mobile terminal or on any data carrier with at least one memory and a microprocessor (computer system in the broadest sense).
  • a compiler that is only available for the method or a compiler that is also available for other programs can be used to compile source code in the compilation step.
  • the source code or the intermediate code, possibly including the parameters, can preferably be stored in a project file on the computer or other device or data carrier mentioned above. This means that the creation of program code can be interrupted and later continued again using the project file.
  • graphic design data are preferably stored in the project file, which allow a reconstruction of the graphic design created in design step a) by calling up the project file.
  • the project file can preferably be saved in XML format, since this file format is particularly suitable for data exchange.
  • a created program code in particular the source code or intermediate code contained in the project file, can be declared as a further function element and preferably a new graphic icon can be generated for the function element declared in this way.
  • the new graphic icon which belongs to the declared further functional element, can be arranged in the design step in subsequent program creation as described above in order to create further program code, in which the program code of the declared functional element is (again) used as a modular program element.
  • the project file can also be transferred to another device, i.e. Computer, chip card, mobile device or other storage device or
  • Memory processor device stored as the device on which it was created.
  • at least one of the functional elements is a proactive command, in particular for mobile radio applications.
  • Proactive commands are used to control the functions (e.g. for display issues, etc.) of mobile devices such as cell phones or personal digital assistants (PDAs).
  • the proactive command is a proactive SIM command according to the GSM specification 3GPP TS 11.14.
  • the method is carried out at least partially outside the chip card and the mobile terminal for which the program code is created.
  • the source code or the intermediate code is further loaded onto the chip card and / or onto the mobile terminal device in a loading step.
  • a library intermediate code file is additionally loaded onto the chip card or the mobile terminal.
  • the library can also be loaded in source code form, as a library source code file and then compiled on the chip card or the device.
  • the sequence code ie the program code created, can also be loaded in source code form onto the chip card or the terminal and only be compiled there.
  • the library is preferably loaded only once, independently of the program codes or together with a program code. For example, the library can be loaded when a program code is loaded onto the card or the end device for the first time. Each time a program code is loaded, it can optionally be checked whether a library already exists and, if no library exists, the library is also loaded.
  • Charging can be carried out contact-based via a reader or contactless, or partly contact-based, partly contact-free.
  • the program code is particularly preferably created on a computer, loaded from there onto a server, and made available on the server, for example via the Internet. From the Internet browser, the program code can be sent to a predetermined mobile phone via SMS. Alternatively, a cell phone can request that the program code be sent to the cell phone via SMS. In the mobile phone or other mobile terminal, the program code is loaded onto the chip card and / or the terminal and interpreted by an interpreter implemented there into an executable code. The functionalities of the end device, such as the display, loudspeaker, etc., are controlled by the interpretable code.
  • the program code loaded onto the mobile terminal (chip card and / or terminal directly) or the program code created there is preferably used to create a menu entry in the menu of the terminal, which is integrated into the originally existing menu entries and is designed in the same appearance.
  • a loading parameter can be defined during the implementation of the method, by means of which it is predetermined in which area the chip card and / or the mobile terminal is loaded with the source code or the intermediate code in the loading step.
  • the chip card preferably has the memory areas RAM, EEPROM, flash memory and ROM, and the loading parameter determines in which memory area the source code or the intermediate code is loaded in the loading step. For example, the library, if it is loaded separately, is stored in the flash memory and the program code, if it is loaded without a library, is loaded into the EEPROM.
  • FIG. 1 shows an example of a graphical user interface according to the invention for use by the method or software tool according to the invention
  • Fig. 2 shows an example of a work surface according to the invention, which is shown on a graphical user interface, and on the one
  • a plurality of icons and the connections connecting the icons to one another are shown graphically;
  • 3 shows a schematic representation of a plurality of program codes created with the software tool according to the invention, which can access a common library
  • 4 shows a schematic representation of the method according to the invention, with steps a), b) and c), using the example of Java as the programming language;
  • FIG. 5 shows a schematic detailed illustration of the sequence source code generated in build step b) from FIG. 4, according to a preferred embodiment of the invention
  • FIG. 6 shows a schematic representation of a library source code file according to the invention
  • FIG. 8 shows a schematic illustration of an intermediate sequence code according to a second embodiment of the invention, according to a first variant, with a specific library
  • Fig. 9 is a schematic representation of an intermediate flow code according to the second embodiment of the invention, according to a second
  • Fig. 10 is a schematic representation of several intermediate flow codes according to the second embodiment of the invention, according to the second variant, with a process-independent common
  • FIG. 1 shows an example of a graphical user interface according to the invention for use by the method or software tool according to the invention.
  • the graphical user interface is divided into windows in a manner customary for computers.
  • commands are displayed with which functions of the software tool can be carried out. For example, by activating "File” in the top line, a pop-up menu can be opened (not shown), in which a submenu "New” enables the opening of a new project or a new work space and a submenu "Open” allows you to open a saved project file.
  • the lower line of the header 101 (toolbar) there are circuit symbols with which functions can also be activated, for example "Open file” by activating the "Open hanging folder” symbol.
  • a tree-like menu structure can be displayed in a project window 102, which corresponds to the structure of the currently open project file and which also in this form with the respective ones
  • the project file shown in FIG. 1 with the name Mobile_Banking contains six different program codes, namely account balance_views, transfer, connections, accounts, service and contact.
  • the program code Account Balance_View is contained in a project sub-file called Account Balance, which is hierarchically subordinate to the Mobile_Banking project file.
  • Each of the six program codes was created using the method according to the invention with the software tool according to the invention.
  • the project file is saved in XML format.
  • the menu structure in the project window 102 contains a higher-level menu entry Mobile_Banking, six subordinate ones Submenu entries of the second level, namely account balance, transfer, connections, accounts, service and contact, and a submenu entry of the third level, namely account balance_display.
  • the submenu entry Account Balance_Display is activated in the project window 102 and consequently the graphic design for the program code Account Balance_Display is displayed on the work surface 103.
  • Command bar 104 arranged, which contains a plurality of icons to be used for the work surface (command symbols).
  • the icons represent proactive SIM commands according to the GSM specification 3GPP TS 11.14, e.g. DISPLAY TEXT at the top, PLAY TONE etc. at the fourth, and a START symbol and a STOP symbol at the two lowest positions, which mark the beginning or end of a respective program code.
  • the icons (command symbols) can be dragged and dropped onto the work surface, i.e. by activating a tick mark (cursor) on the icon, dragging the tick mark together with the icon into the work surface 103, and deactivating the tick mark on the work surface, whereupon the icon is placed on the work surface 103.
  • FIG. 2 shows the work surface from FIG. 1 separately.
  • a plurality of icons and the connections connecting the icons to one another are shown graphically on the work surface.
  • the icons have been arranged on the work surface by pulling them from the command bar 104 or have been dragged from the header 101 onto the work surface (see above).
  • the icons are connected by connecting lines. Each connecting line is drawn by activating a cursor (marker) over a first icon, dragging it to the second icon and deactivating it there again.
  • a connecting line drawn in this way from the first icon to the second icon means at program level that first a first command corresponding to the first icon and then a second command corresponding to the second icon are executed.
  • FIG. 1 it can be seen that the icon (command symbol) GET INPUT is currently activated on the work surface 103.
  • a plurality of parameter fields are displayed in a parameter area 105, into which parameters for the configuration of the functional element for the displayed icon, in this case the functional element GET INPUT, can be entered. For example, you can enter the PIN in the "Question" field when asked "Please enter PIN”.
  • the minimum and maximum response size (response size) can be entered in the two parameter fields below. 0 or 255 are currently entered.
  • the connections between the icons can also be configured using parameters. It is specified, for example, which response code of the mobile terminal to the first command refers to the further process affects, or in which path the process is continued. Another parameter can be the format in which the first command passes data to the second command.
  • the functional elements can also be configured using parameters. In order to configure the respective functional element or the respective connection using parameters, for example in the design step a) an input mask is shown in or next to the graphical work surface or otherwise on the graphical user interface, into which the parameters are entered. In the subsequent build step, the parameters entered are integrated into the source code.
  • a proactive command for which an icon is shown on the work surface, is the DISPLAY TEXT command in accordance with the GSM specification 3GPP TS 11.14.
  • the DISPLAY TEXT command executed on a SIM card of a mobile phone, has the effect that a specific text is shown on the display of the mobile phone.
  • the DISPLAY TEXT command is configured for this by the parameter of the specific text that is to be displayed.
  • PLAY TONE played on the SIM card of a combined PDA mobile phone, a sound is emitted through the loudspeaker of the PD A mobile phone. Suitable parameters can, for example, indicate pitch and duration. Further proactive commands can be found in the GSM specification 3GPP TS 11.14.
  • connecting lines that begin and end on the same icon, that is, form a loop can be used, for example, to incorrectly input the user on the mobile Repeat end devices and to correct incorrect statements (not shown here).
  • a created program code is declared as a new functional element and a new icon is generated for the declared functional element.
  • the program code has been generated from a graphic design with several icons for several functional elements, for example from a graphic design such as that shown in FIG.
  • the source code or the intermediate code in the project file with the name Mobile_Banking is declared as a new functional element with the same name "MobileJBanking" and an associated icon is generated.
  • the different program codes in the project are generated in an analogous manner - Subfiles account balance_view, transfer, connections, accounts, service and contact as
  • each icon 402. is the proactive commands DISPLAY TEXT, PLAY TONE and SEND SHORT MESSAGE (cf. also FIG. 6).
  • the icons 402 are connected to one another by connecting lines 401. This determines that later, when the program code is run on the end device and / or the associated SIM card, the DISPLAY TEXT command, then PLAY TONE and then SEND SHORT MESSAGE should be carried out.
  • an execution source code main.java is created from the connecting lines 401 on the work surface, as in Fig. 4 is indicated by the arrows. The more detailed structure of the main.java file is explained below (see Fig. 5).
  • the runtime source code main.java is compiled into the runtime intermediate code file main.cap by means of a compiler (cf. also FIGS. 7 to 10).
  • the file main.cap is of the CAP format, ie of the Card Application Format, and is therefore suitable for to be interpreted by a Java Card interpreter like a Java Card Virtual Machine.
  • the file main.cap is usually created more precisely by first creating a class file main.class by a compiler in the narrower sense, and then using a converter to convert the main.cap sequence file from the main.class file is created.
  • the intermediate code is thus a converted Java byte code of the CAP format, whereby Java byte code is understood to be a code of the CLASS format.
  • FIG. 5 shows a schematic detailed representation of the main.java run source code generated in build step b) from FIG. 4, according to a preferred embodiment of the invention.
  • the runtime source code main.java contains source codes 1 of connecting lines and function calls 2 on function elements that correspond to icons.
  • the function calls 2 preferably also contain parameters for configuring the function elements in the main.java execution source code.
  • the function calls 2 are directed to entries of the source codes of the function elements in a library source code file library.java, as shown in FIG. 6.
  • the library source code file library.java from FIG. 6 contains as entries the source codes of all functional elements that are available to the method or software tool.
  • Fig. 7 shows a schematic representation of a sequence intermediate code file main.cap according to a first embodiment of the invention.
  • the intermediate codes for the connections 1, 401 and also for the functional elements 2, 402 are stored in the sequence intermediate code file main.cap.
  • the sequence intermediate code file is main.cap in one Flow section 701 and a library section 702 divided.
  • the execution section 701 contains the compiled execution source codes 1 and source code function calls 2.
  • the library section 702 contains the compiled source codes 2 of the functional elements, but only for the functional elements whose icons 402 are contained in the design. For icons 402 that occur several times in the design, the associated intermediate code need only be provided once in the library section 702.
  • FIG. 8 shows a schematic representation of an intermediate sequence code according to a second embodiment of the invention, according to a first variant, with a specific library.
  • the run intermediate code file main.cap from FIG. 8 contains only one run section with compiled run source codes 1 and source code function calls 2.
  • the intermediate codes of Function elements for which an icon 402 is included in the draft are stored in a separate library intermediate code file library.cap.
  • the library intermediate code file library.cap can thus be saved, copied or loaded separately from the sequence intermediate code file main.cap.
  • program code when program code is loaded from a computer on which the program code has been created onto a chip card for which the library intermediate code file library.cap a different storage location is selected than for the sequence intermediate code file main .cap.
  • library.cap can be written in the flash memory and main.cap in the EEPROM of the chip card.
  • FIG. 9 shows a schematic illustration of a sequence intermediate code according to the second embodiment of the invention, according to a second Variant, with a process-independent library.
  • the library intermediate code file library.cap contains the intermediate codes of all functional elements available to the method or software tool, including those of the functional elements that are not currently being used.
  • the library intermediate code file library.cap can be used universally regardless of the program code created according to the invention.
  • the library intermediate code file library.cap can thus also be used as a common library for several program codes generated according to the method, as shown in FIG. 10.
  • FIG. 10 shows a schematic representation of a plurality of sequence intermediate codes mainl.cap, main2.cap, main3.cap according to the second embodiment of the invention, according to the second variant, with a process-independent shared library library.cap.
  • This variant is also illustrated in FIG. 3.
  • the library intermediate code file library.cap contains a process-independent inventory of intermediate codes of functional elements. The inventory can preferably be expanded and reduced, which is preferably done independently of the creation of the main.cap program code. Since the common, universal library intermediate code file library.cap only has to be loaded once, it can be written, for example, into a memory which is difficult to rewrite but has other advantages, for example, it is cheap or fast or permanent.
  • the method is carried out directly on the mobile terminal on which the program code is to run later.
  • the display of the terminal device is used in particular to display the graphical user interface. This is particularly possible with the high-quality displays of the newer generations of mobile phones and PDAs and combined devices.
  • the infrastructure used by the end device is used, i.e. Keyboard, touch screen, possibly with stylus, cell phone keys etc.
  • the method is carried out on a computer and the intermediate code main.cap, possibly together with the library library.cap, is loaded onto the mobile terminal, preferably onto a chip card installed there, alternatively also or partly onto the terminal itself the chip card, partly on the end device.
  • the interpreter provided on the chip card or in the terminal, for example a Java Card Virtual Machine, finally interprets the program code as an executable code by means of which the functionalities of the mobile terminal can be controlled.
  • the chip card can in particular be a mobile phone card of the SIM generation and in this case is preferably a Java card which complies with the GSM specification 3GPP TS 11.14.
  • the proactive commands do not necessarily have to be SIM commands, but can also be USIM commands or commands according to another mobile radio standard or other communication standard.
  • the program code which is provided after the compilation step c) in order to be executed or to be loaded onto the chip card and / or onto the mobile terminal and then to be executed is preferably a Java applet.
  • the applet is preferably loaded by storing the applet on a server that is accessible via the Internet.
  • An internet user can, for example against payment, arrange for the applet to be sent to his or her mobile device (e.g. cell phone) via SMS. Alternatively, he can initiate the download of the applet directly from his mobile device.
  • his or her mobile device e.g. cell phone
  • the library that may be required can be downloaded in the same way as the applet. If a common, universal library is used as the library, it only needs to be downloaded once, even if several applets are loaded one after the other. As a result, the consumer who purchases the applets can save expensive connection costs for the mobile (contactless) connection between the server and his mobile terminal device, which makes downloading the applets more attractive for consumers.
  • the applet may contain the information on which memory area of the chip card of the end device it is loaded, the information already being specified when the applet was created.

Landscapes

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

Abstract

The invention relates to a method and a software tool for creating a program code, in particular for a chip card that controls a mobile terminal. According to said method: a) in a design step, a graphic design is created on a graphical user interface of a computer system by dragging icons (drag & drop) on a working surface and by linking the icons using lines; b) in a build step, the source code is created for the design and c) in a compiling step an intermediate code is created. The method can be carried out in the terminal. Alternatively, the method is carried out outside the terminal and the created intermediate code is uploaded to the terminal or to a chip card that is provided in said terminal.

Description

Verfahren zum Erstellen von Programmcode Procedure for creating program code
Die Erfindung betrifft ein Verfahren zum Erstellen von Programmcode, insbesondere für eine Chipkarte, zur Kommunikation mit einem mobilen Endgerät.The invention relates to a method for creating program code, in particular for a chip card, for communication with a mobile terminal.
Unter einem mobilen Endgerät wird in diesem Text ein Mobiltelefon, ein Personal Digital Assistant (PDA), ein kombiniertes Gerät aus einem Mobiltelefon und einem PDA oder ein elektronischer Organizer verstanden oder ein ähnliches Gerät, das für Organisation oder Kommunikation oder ähnliche Tätigkeiten geeignet ist und das zugleich dazu geeignet ist, vom Benutzer am Körper, in der Kleidung oder in kleinem Handgepäck mitgeführt zu werden.In this text, a mobile end device is understood to mean a cell phone, a personal digital assistant (PDA), a combined device consisting of a cell phone and a PDA or an electronic organizer or a similar device that is suitable for organization or communication or similar activities and that is also suitable to be carried by the user on the body, in clothing or in small hand luggage.
Unter einer Chipkarte wird in diesem Text ein Datenträger mit einem elektronischen Schaltkreis und einem Kartenkörper verstanden. Der Kartenkörper kann ein beliebiges Format wie beispielsweise Scheckkartenformat oder SIM-Kartenf ormat haben. Die Chipkarte kann eine reine Speicherkarte sein oder eine Mikroprozessorkarte mit einer CPU und einem oder mehreren Speichern sein. Im Zusammenhang mit der Erfindung ist die Chipkarte vorzugsweise eine Mikroprozessorkarte.In this text, a chip card is understood to mean a data carrier with an electronic circuit and a card body. The card body can have any format such as, for example, credit card format or SIM card format. The chip card can be a pure memory card or a microprocessor card with a CPU and one or more memories. In connection with the invention, the chip card is preferably a microprocessor card.
Programmcode, insbesondere für eine Chipkarte, zum Ansteuern eines mobilen Endgeräts kann in einer verwendeten Programmiersprache beispielsweise durch unmittelbare Programmierung erstellt werden, indem Zeichen für Zeichen der Quellcode eingegeben wird und anschließend compiliert wird. Dazu sind Programmierkenntnisse in der verwendeten Programmiersprache erforderlich. In der objektorientierten Programmierung ist es bekannt, für eine in sich abgeschlossene Funktionseinheit, die in einem Programmablauf ausgeführt werden soll, ein vorprogrammiertes Quellcode-Modul in den Programmablauf einzubinden, so dass der Quellcode der Funktionseinheit nicht mehr Zeichen für Zeichen programmiert zu werden braucht. Hierdurch lassen sich auch mit geringeren Programmierkenntnissen komplexere Programmabläufe erstellen.Program code, in particular for a chip card, for controlling a mobile terminal can be created in a programming language used, for example by direct programming, by entering the source code character by character and then compiling it. This requires programming knowledge in the programming language used. In object-oriented programming, it is known to integrate a preprogrammed source code module into the program sequence for a self-contained functional unit that is to be executed in a program sequence, so that the source code of the functional unit no longer needs to be programmed character by character. As a result, more complex program sequences can be created even with less programming knowledge.
Aufgabe der Erfindung ist es, ein Verfahren und ein Software-Tool zum Durchführen des Verfahrens zu erstellen, mit dem sich auf einfache und intuitive Weise und ohne weitreichende Programmierkenntnisse Programmcode zum Ansteuern eines mobilen Endgeräts erstellen lässt.The object of the invention is to create a method and a software tool for carrying out the method, with which program code for controlling a mobile terminal can be created in a simple and intuitive manner and without extensive programming knowledge.
Die Aufgabe wird gelöst durch ein Verfahren nach dem unabhängigen Verfahrensanspruch 1, durch ein Software-Tool nach dem unabhängigen Software-Tool- Anspruch 26 sowie durch einen Datenträger oder Computer oder ein mobiles Endgerät mit einem darin implementierten Software-Tool oder einem darin implementierten Programmcode, der mit dem Software- Tool oder nach dem Verfahren erstellt worden ist.The object is achieved by a method according to independent method claim 1, by a software tool according to independent software tool claim 26 and by a data carrier or computer or a mobile terminal with a software tool or program code implemented therein, that was created with the software tool or according to the procedure.
Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angeführt.Advantageous developments of the invention are set out in the dependent claims.
Bei dem Verfahren wird in dem Entwurfsschritt der graphische Entwurf des zu erstellenden Programmcodes erstellt. Dazu werden Icons auf der graphischen Arbeitsfläche positioniert und durch Linien miteinander verbunden. Jedes Icon entspricht einem Funktionselement, das einem entsprechenden Quellcode und, in compilierter Form, einem entsprechenden Zwischencode entspricht. Durch das Anordnen der Icons wird festgelegt, welche Funktionen durch den Programmcode später ausgeführt werden soll. Durch das Ziehen der Linien zwischen den Icons wird der Programmablauf festgelegt, d.h. in welcher Reihenfolge die hinter den Icons stehenden Funktionen bei einer nachfolgenden Ausführung des Programmcodes ablaufen.In the method, the graphic design of the program code to be created is created in the design step. To do this, icons are positioned on the graphic work surface and connected with each other by lines. Each icon corresponds to a functional element that one corresponding source code and, in compiled form, corresponds to a corresponding intermediate code. The arrangement of the icons determines which functions are to be carried out later by the program code. The program flow is determined by drawing the lines between the icons, ie the sequence in which the functions behind the icons run when the program code is subsequently executed.
Das Verfahren hat den Vorteil, dass zum Erstellen von Programmcode keine Programmierkenntnisse in einer spezifischen Programmiersprache erforderlich sind, unabhängig davon, in welcher Programmiersprache der Quellcode oder Zwischencode erstellt wird. Es genügt, mit der Bedienung von graphischen Benutzeroberflächen mittels Eingabegeräten wie Maus, Trackball, Tastatur, Touch-Screen und dergleichen vertraut zu sein, je nachdem über welches Eingabegerät die graphische Benutzeroberfläche bedient wird. Dadurch, dass der Programmablauf durch ein einfaches Ziehen von graphischen Linien definiert wird, ist das Verfahren besonders einfach und intuitiv.The method has the advantage that no programming knowledge in a specific programming language is required to create program code, regardless of the programming language in which the source code or intermediate code is created. It is sufficient to be familiar with the operation of graphical user interfaces by means of input devices such as a mouse, trackball, keyboard, touch screen and the like, depending on which input device the graphical user interface is operated with. The fact that the program sequence is defined by simply drawing graphical lines makes the process particularly simple and intuitive.
Der Quellcode, der einem Funktionselement entspricht, kann direkt in den Ablauf-Quellcode eingebunden werden, wird aber vorzugsweise dadurch bereitgestellt, dass ein Funktionsaufruf auf den Quellcode des Funktionselements in den Ablauf -Quellcode eingebunden wird. Der Funktionsaufruf ist vorzugsweise auf einen Eintrag des zugehörigen Funktionselements in einer Library-Quellcode-Datei gerichtet.The source code, which corresponds to a functional element, can be integrated directly into the runtime source code, but is preferably provided in that a function call to the source code of the functional element is incorporated into the runtime source code. The function call is preferably directed to an entry of the associated function element in a library source code file.
Funktionselemente und Verbindungen können zudem durch Parameter konfiguriert werden. Betreffend den compilierten Zwischencode für die Funktionselemente werden gemäß einer ersten Ausführungsform des erfindungsgemäßen Verfahrens die Zwischencodes der Funktionselemente mit dem Ablauf- Zwischencode mitgeführt, d.h. in die Ablauf-Zwischencode-Datei compiliert. Dabei ist vorzugsweise durch die compilierten Funktionselemente ein eigener Library-Abschnitt gebildet, der aber innerhalb der Ablauf- Zwischencode-Datei liegt. Diese Ausführungsform hat den Vorteil, dass nur die Zwischencodes derjenigen Funktionselemente mitgeführt werden müssen, die unbedingt erforderlich sind. Dadurch ist der Speicherbedarf des erstellten Programmcodes gering.Functional elements and connections can also be configured using parameters. Regarding the compiled intermediate code for the functional elements, according to a first embodiment of the method according to the invention, the intermediate codes of the functional elements are carried along with the intermediate sequence code, ie compiled into the intermediate sequence code file. In this case, the compiled functional elements preferably form a separate library section, which, however, lies within the sequence intermediate code file. This embodiment has the advantage that only the intermediate codes of those functional elements that are absolutely necessary have to be carried. As a result, the memory requirement of the program code created is small.
In dem Fall, dass vorgesehen ist, dass eine größere Anzahl von Programmcodes nach dem erfindungsgemäßen Verfahren erstellt und in dem selben mobilen Gerät oder in der selben Chipkarte abgespeichert wird, ist die folgende zweite Ausführungsform des erfindungsgemäßen Verfahrens bevorzugt. Gemäß der zweiten Ausführungsform werden für die in einem Programmcode verwendeten Funktionselemente im Zwischencode nur Funktionsaufrufe auf die Funktionselemente mitgeführt. Die Zwischencodes der Funktionselemente selbst werden in einer entsprechenden, von der Ablauf-Zwischencode-Datei gesonderten, Library- Zwischencode-Datei bereit gehalten und werden während der Durchführung des eigentlichen Verfahrens nicht verwendet. Die Library- Zwischencode-Datei braucht insbesondere während der Erstellung des Programmcodes nicht zur Verfügung zu stehen. Es genügt, wenn die Library bei der nachfolgenden Ausführung des Programmcodes zur Verfügung steht. Die Library-Zwischencode-Datei braucht nur ein einziges Mal auf dem mobilen Gerät oder der Chipkarte, auf der der Programmcode später laufen soll, eingerichtet zu werden. Die bei der zweiten Ausführungsform verwendete Library-Zwischencode-Datei enthält vorzugsweise weitereIn the event that it is provided that a larger number of program codes are created using the method according to the invention and stored in the same mobile device or in the same chip card, the following second embodiment of the method according to the invention is preferred. According to the second embodiment, only function calls to the functional elements are carried in the intermediate code for the functional elements used in a program code. The intermediate codes of the functional elements themselves are kept in a corresponding library intermediate code file, separate from the sequence intermediate code file, and are not used during the execution of the actual method. The library intermediate code file does not need to be available, in particular during the creation of the program code. It is sufficient if the library is available for the subsequent execution of the program code. The library intermediate code file only needs to be set up once on the mobile device or the chip card on which the program code is to run later. The library intermediate code file used in the second embodiment preferably contains others
Funktionselemente, die für die Durchführung des Verfahrens zur Verfügung stehen, die aber in dem aktuell erstellten Programmcode nicht verwendet werden. Weiter vorzugsweise enthält die Library-Zwischencode-Datei einen von der Durchführung des Verfahrens unabhängigen Bestand an Zwischencodes.Functional elements that are available for the implementation of the method, but which are not used in the currently created program code. The library intermediate code file further preferably contains an inventory of intermediate codes that is independent of the implementation of the method.
Gemäß einer dritten Ausführungsform der Erfindung ist vorgesehen, dass innerhalb des Verfahrens gewählt werden kann, ob der Zwischencode für die Funktionselemente gemäß der ersten Ausführungsform direkt in den Ablauf -Zwischencode eingebunden wird, oder ob, gemäß der zweiten Ausführungsform, im Ablauf-Zwischencode nur ein Funktionsaufruf eingebunden werden soll, wohingegen die Zwischencodes der Funktionselemente in der Library verbleiben.According to a third embodiment of the invention, it is possible to choose within the method whether the intermediate code for the functional elements according to the first embodiment is integrated directly into the intermediate flow code or, according to the second embodiment, only one in the intermediate flow code Function call is to be integrated, whereas the intermediate codes of the function elements remain in the library.
Das Verfahren kann auf einem Personal Computer oder Server oder auf einem mobilen Endgerät durchgeführt werden oder auf einem beliebigen Datenträger mit zumindest einem Speicher und einem Mikroprozessor (Computersystem im weitesten Sinn).The method can be carried out on a personal computer or server or on a mobile terminal or on any data carrier with at least one memory and a microprocessor (computer system in the broadest sense).
Zum Compilieren von Quellcode in dem Compilierungs-Schritt kann ein Compiler verwendet werden, der nur dem Verfahren zur Verfügung steht oder ein Compiler, der auch weiteren Programmen zur Verfügung steht. Der Quellcode oder der Zwischencode, gegebenenfalls einschließlich der Parameter, lässt sich vorzugsweise in einer Projekt-Datei auf dem Computer oder sonstigen oben genannten Gerät bzw. Datenträger abspeichern. Dadurch kann die Erstellung von Programmcode unterbrochen und später, unter Verwendung der Projekt-Datei, wieder fortgesetzt werden.A compiler that is only available for the method or a compiler that is also available for other programs can be used to compile source code in the compilation step. The source code or the intermediate code, possibly including the parameters, can preferably be stored in a project file on the computer or other device or data carrier mentioned above. This means that the creation of program code can be interrupted and later continued again using the project file.
Vorzugsweise sind in der Projekt-Datei zusätzlich graphische Entwurfsdaten abgespeichert werden, die eine Rekonstruktion des in dem Entwurfsschritt a) erstellten graphischen Entwurfs durch Aufruf der Projekt-Datei erlauben.In addition, graphic design data are preferably stored in the project file, which allow a reconstruction of the graphic design created in design step a) by calling up the project file.
Vorzugsweise ist die Projekt-Datei im XML-Format abspeicherbar, da sich dieses Dateiformat besonders gut für den Datenaustausch eignet.The project file can preferably be saved in XML format, since this file format is particularly suitable for data exchange.
Wahlweise lässt sich ein erstellter Programmcode, insbesondere der in der Projekt-Datei enthaltene Quellcode oder Zwischencode, als ein weiteres Funktionselement deklarieren und vorzugsweise für das so deklarierte Funktionselement ein neues graphisches Icon erzeugen. Das neue graphische Icon, das zu dem deklarierten weiteren Funktionselement gehört, kann bei nachfolgenden Programmerstellungen wie oben beschrieben in dem Entwurfsschritt angeordnet werden, um weiteren Programmcode zu erstellen, bei dem der Programmcode des deklarierten Funktionselements als modulares Programmelement (wieder)verwendet wird. Die Projekt-Datei kann auch auf ein anderes Gerät, d.h. Computer, Chipkarte, mobiles Endgerät oder sonstige Speicher-Einrichtung oderOptionally, a created program code, in particular the source code or intermediate code contained in the project file, can be declared as a further function element and preferably a new graphic icon can be generated for the function element declared in this way. The new graphic icon, which belongs to the declared further functional element, can be arranged in the design step in subsequent program creation as described above in order to create further program code, in which the program code of the declared functional element is (again) used as a modular program element. The project file can also be transferred to another device, i.e. Computer, chip card, mobile device or other storage device or
Speicher-Prozessor-Einrichtung, gespeichert werden als das Gerät, auf dem sie erstellt worden ist. Gemäß einer bevorzugten Ausführungsform ist mindestens eines der Funktionselemente ein proaktiver Befehl, insbesondere für Mobilfunkanwendungen. Durch proaktive Befehle werden die Funktionen (z.B. für Display aus gäbe etc.) von mobilen Endgeräten wie beispielsweise Mobiltelefonen oder Personal Digital Assistants (PDAs) angesteuert. Beispielsweise ist der proaktive Befehl ein proaktiver SIM-Befehl gemäß der GSM-Spezifikation 3GPP TS 11.14.Memory processor device, stored as the device on which it was created. According to a preferred embodiment, at least one of the functional elements is a proactive command, in particular for mobile radio applications. Proactive commands are used to control the functions (e.g. for display issues, etc.) of mobile devices such as cell phones or personal digital assistants (PDAs). For example, the proactive command is a proactive SIM command according to the GSM specification 3GPP TS 11.14.
Gemäß einer Ausführungsform des Verfahrens wird das Verfahren zumindest teilweise außerhalb der Chipkarte und des mobilen Endgeräts durchgeführt, für die/das der Programmcode erstellt wird. In diesem Fall wird weiter in einem Ladeschritt der Quellcode oder der Zwischencode auf die Chipkarte und/ oder auf das mobile Endgerät geladen.According to one embodiment of the method, the method is carried out at least partially outside the chip card and the mobile terminal for which the program code is created. In this case, the source code or the intermediate code is further loaded onto the chip card and / or onto the mobile terminal device in a loading step.
Falls gemäß der oben beschriebenen zweiten oder dritten Ausführungsform im Zwischencode bezüglich der Funktionselemente nur Funktionsaufrufe enthalten sind, wird zusätzlich eine Library-Zwischencode-Datei auf die Chipkarte oder das mobile Endgerät geladen. Falls die Chipkarte oder das mobile Endgerät über einen geeigneten Compiler verfügt, kann die Library auch in Quellcodeform, als Library-Quellcode-Datei geladen werden und nachfolgend auf der Chipkarte bzw. dem Endgerät compiliert werden. In diesem Fall kann auch der Ablauf-Code, d.h. der erstellte Programmcode, in Quellcodeform auf die Chipkarte bzw. das Endgerät geladen werden und erst dort compiliert werden. Die Library wird vorzugsweise nur einmalig unabhängig von den Programmcodes oder zusammen mit einem Programmcode geladen. Beispielsweise kann die Library mitgeladen werden, wenn erstmalig ein Programmcode auf die Karte bzw. das Endgerät geladen wird. Optional kann bei jedem Laden eines Programmcodes überprüft werden, ob schon eine Library vorhanden ist und, falls noch keine Library vorhanden ist, die Library mitgeladen werden.If, according to the second or third embodiment described above, only function calls are contained in the intermediate code with regard to the functional elements, a library intermediate code file is additionally loaded onto the chip card or the mobile terminal. If the chip card or the mobile device has a suitable compiler, the library can also be loaded in source code form, as a library source code file and then compiled on the chip card or the device. In this case, the sequence code, ie the program code created, can also be loaded in source code form onto the chip card or the terminal and only be compiled there. The library is preferably loaded only once, independently of the program codes or together with a program code. For example, the library can be loaded when a program code is loaded onto the card or the end device for the first time. Each time a program code is loaded, it can optionally be checked whether a library already exists and, if no library exists, the library is also loaded.
Das Laden kann kontaktbehaftet über eine Lesegerät oder kontaktlos durchgeführt werden oder teils kontaktbehaftet, teils kontaktlos. Besonders bevorzugt wird der Programmcode auf einem Computer erstellt, von dort auf einen Server geladen, und auf dem Server zur Verfügung gestellt, beispielsweise über das Internet. Vom Internet-Browser aus kann veranlasst werden, dass der Programmcode per SMS an ein vorbestimmtes Mobiltelefon gesandt wird. Alternativ kann durch ein Mobiltelefon angefordert werden, dass der Programmcode per SMS an das Mobiltelefon gesandt wird. Im Mobiltelefon bzw. sonstigen mobilen Endgerät wird der Programmcode auf die Chipkarte und/ oder das Endgerät geladen und von einem dort implementierten Interpreter zu einem ausführbaren Code interpretiert. Durch den interpretierbaren Code werden die Funktionalitäten des Endgeräts, wie Display, Lautsprecher etc., angesteuert.Charging can be carried out contact-based via a reader or contactless, or partly contact-based, partly contact-free. The program code is particularly preferably created on a computer, loaded from there onto a server, and made available on the server, for example via the Internet. From the Internet browser, the program code can be sent to a predetermined mobile phone via SMS. Alternatively, a cell phone can request that the program code be sent to the cell phone via SMS. In the mobile phone or other mobile terminal, the program code is loaded onto the chip card and / or the terminal and interpreted by an interpreter implemented there into an executable code. The functionalities of the end device, such as the display, loudspeaker, etc., are controlled by the interpretable code.
Vorzugsweise wird durch den auf das mobile Endgerät (Chipkarte und/ oder Endgerät direkt) geladenen Programmcode oder dort erstellten Programmcode ein Menüeintrag im Menü des Endgeräts erstellt, der sich in die ursprünglich vorhandenen Menüeinträge einfügt, und der im gleichen Erscheinungsbild gestaltet ist.The program code loaded onto the mobile terminal (chip card and / or terminal directly) or the program code created there is preferably used to create a menu entry in the menu of the terminal, which is integrated into the originally existing menu entries and is designed in the same appearance.
Vorzugsweise ist bei während der Durchführung des Verfahrens ein Lade- Parameter festlegbar wird, durch den vorbestimmt wird, in welchen Bereich der Chipkarte und/ oder des mobilen Endgeräts der Quellcode oder der Zwischencode in dem Ladeschritt geladen wird.Preferably, a loading parameter can be defined during the implementation of the method, by means of which it is predetermined in which area the chip card and / or the mobile terminal is loaded with the source code or the intermediate code in the loading step.
Die Chipkarte weist vorzugsweise die Speicherbereiche RAM, EEPROM, Flash-Speicher und ROM auf, und durch den Lade-Parameter wird vorbestimmt, in welchen Speicherbereich der Quellcode oder der Zwischencode in dem Ladeschritt geladen wird. So kann z.B. die Library, wenn sie separat geladen wird, in den Flash-Speicher gespeichert werden und der Programmcode, wenn er ohne Library geladen wird, in den EEPROM geladen werden.The chip card preferably has the memory areas RAM, EEPROM, flash memory and ROM, and the loading parameter determines in which memory area the source code or the intermediate code is loaded in the loading step. For example, the library, if it is loaded separately, is stored in the flash memory and the program code, if it is loaded without a library, is loaded into the EEPROM.
Im Folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigen:The invention is explained in more detail below on the basis of exemplary embodiments and with reference to the drawing, in which:
Fig. 1 ein Beispiel für eine erfindungsgemäße graphische Benutzeroberfläche für die Verwendung durch das erfindungsgemäße Verfahren bzw. Software-Tool;1 shows an example of a graphical user interface according to the invention for use by the method or software tool according to the invention;
Fig. 2 ein Beispiel für eine erfindungsgemäße Arbeitsfläche, die auf einer graphischen Benutzeroberfläche dargestellt ist, und auf der eineFig. 2 shows an example of a work surface according to the invention, which is shown on a graphical user interface, and on the one
Mehrzahl von Icons und die Icons untereinander verbindenden Verbindungen graphisch dargestellt sind;A plurality of icons and the connections connecting the icons to one another are shown graphically;
Fig. 3 eine schematische Darstellung einer Mehrzahl von mit dem erfindungsgemäßen Software-Tool erstellten Programmcodes, die auf eine gemeinsame Library zugreifen können; Fig. 4 eine schematische Darstellung des erfindungsgemäßen Verfahrens, mit den Schritten a), b) und c), am Beispiel von Java als Programmiersprache;3 shows a schematic representation of a plurality of program codes created with the software tool according to the invention, which can access a common library; 4 shows a schematic representation of the method according to the invention, with steps a), b) and c), using the example of Java as the programming language;
Fig. 5 eine schematische Detaildarstellung des in dem Build-Schritt b) aus Fig. 4 erzeugten Ablauf -Quellcodes, gemäß einer bevorzugten Ausführungsform der Erfindung;5 shows a schematic detailed illustration of the sequence source code generated in build step b) from FIG. 4, according to a preferred embodiment of the invention;
Fig. 6 eine schematische Darstellung einer erfindungsgemäßen Library- Quellcode-Datei;6 shows a schematic representation of a library source code file according to the invention;
Fig. 7 eine schematische Darstellung eines Ablauf-Zwischencodes gemäß einer ersten Ausführungsform der Erfindung;7 shows a schematic illustration of a sequence intermediate code according to a first embodiment of the invention;
Fig. 8 eine schematische Darstellung eines Ablauf-Zwischencodes gemäß einer zweiten Ausführungsform der Erfindung, gemäß einer ersten Variante, mit einer spezifischen Library;8 shows a schematic illustration of an intermediate sequence code according to a second embodiment of the invention, according to a first variant, with a specific library;
Fig. 9 eine schematische Darstellung eines Ablauf-Zwischencodes gemäß der zweiten Ausführungsform der Erfindung, gemäß einer zweitenFig. 9 is a schematic representation of an intermediate flow code according to the second embodiment of the invention, according to a second
Variante, mit einer verfahrensunabhängigen Library;Variant, with a process-independent library;
Fig. 10 eine schematische Darstellung mehrerer Ablauf -Zwischencodes gemäß der zweiten Ausführungsform der Erfindung, gemäß der zweiten Variante, mit einer verfahrensunabhängigen gemeinsamenFig. 10 is a schematic representation of several intermediate flow codes according to the second embodiment of the invention, according to the second variant, with a process-independent common
Library; Fig. 1 zeigt ein Beispiel für eine erfindungsgemäße graphische Benutzeroberfläche für die Verwendung durch das erfindungsgemäße Verfahren bzw. Software-Tool. Die graphische Benutzeroberfläche ist in einer für Computer üblichen Art in Fenster aufgeteilt. In einer zweizeiligen Kopfleiste 101 sind Befehle angezeigt, mit denen sich Funktionen des Software-Tools ausführen lassen. Beispielsweise lässt sich durch ein Aktivieren von "File" in der oberen Zeile ein Pop-up-Menü öffnen (nicht gezeigt), in dem ein Untermenü "New" das Eröffnen eines neuen Projektes bzw. einer neuen Arbeitsfläche ermöglicht und ein Untermenü "Open" das Öffnen einer abgespeicherten Projekt-Datei ermöglicht. In der unteren Zeile der Kopfleiste 101 (Toolleiste) sind Schaltsymbole enthalten, mit denen sich ebenfalls Funktionen aktivieren lassen, z.B. "Datei öffnen" durch Aktivieren des Symbols "geöffneter Hängeordner". In einem Projektfenster 102 ist eine baumartige Menüstruktur anzeigbar, die dem Aufbau der gerade geöffneten Projekt-Datei entspricht und die auch in dieser Form mit den jeweiligenLibrary; 1 shows an example of a graphical user interface according to the invention for use by the method or software tool according to the invention. The graphical user interface is divided into windows in a manner customary for computers. In a two-line header 101, commands are displayed with which functions of the software tool can be carried out. For example, by activating "File" in the top line, a pop-up menu can be opened (not shown), in which a submenu "New" enables the opening of a new project or a new work space and a submenu "Open" allows you to open a saved project file. In the lower line of the header 101 (toolbar) there are circuit symbols with which functions can also be activated, for example "Open file" by activating the "Open hanging folder" symbol. A tree-like menu structure can be displayed in a project window 102, which corresponds to the structure of the currently open project file and which also in this form with the respective ones
Texten auf dem mobilen Endgerät angezeigt wird. Die in Fig. 1 dargestellte Projekt-Datei mit dem Namen Mobile_Banking enthält sechs unterschiedliche Programmcodes, nämlich Kontostand_anzeigen, Überweisung, Verbindungen, Konten, Service und Kontakt. Der Programmcode Kontostand_anzeigen ist hierbei in einer Projekt-Unterdatei mit dem Namen Kontostand enthalten, die der Projekt-Datei Mobile_Banking hierarchisch untergeordnet ist. Jeder der sechs Programmcodes ist nach dem erfindungsgemäßen Verfahren, mit dem erfindungsgemäßen Software-Tool erstellt worden. Die Projekt-Datei wird im XML-Format gespeichert. Entsprechend der hierarchischen Struktur der Programmcodes enthält die Menüstruktur im Projektfenster 102 einen übergeordneten Menüeintrag Mobile_Banking, sechs untergeordnete Untermenüeinträge der zweiten Ebene, nämlich Kontostand, Überweisung, Verbindungen, Konten, Service und Kontakt, und einen Untermenüeintrag der dritten Ebene, nämlich Kontostand_anzeigen. Durch Aktivieren eines der Untermenüeinträge wird im Arbeitsfenster 103 die zugehörige Arbeitsfläche mit den zugehörigen Icons und Verbindungen dargestellt. In Fig. 1 ist im Projektfenster 102 der Untermenüeintrag Kontostand_anzeigen aktiviert und folglich auf der Arbeitsfläche 103 der graphische Entwurf zum Programmcode Kontostand_anzeigen angezeigt.Text is displayed on the mobile device. The project file shown in FIG. 1 with the name Mobile_Banking contains six different program codes, namely account balance_views, transfer, connections, accounts, service and contact. The program code Account Balance_View is contained in a project sub-file called Account Balance, which is hierarchically subordinate to the Mobile_Banking project file. Each of the six program codes was created using the method according to the invention with the software tool according to the invention. The project file is saved in XML format. According to the hierarchical structure of the program codes, the menu structure in the project window 102 contains a higher-level menu entry Mobile_Banking, six subordinate ones Submenu entries of the second level, namely account balance, transfer, connections, accounts, service and contact, and a submenu entry of the third level, namely account balance_display. By activating one of the submenu entries, the associated work area with the associated icons and connections is shown in the work window 103. In Fig. 1, the submenu entry Account Balance_Display is activated in the project window 102 and consequently the graphic design for the program code Account Balance_Display is displayed on the work surface 103.
Zwischen dem Projektfenster 102 und dem Arbeitsfenster 103 ist eineThere is a between the project window 102 and the work window 103
Befehlsleiste 104 angeordnet, die eine Mehrzahl von zu verwendenden Icons für die Arbeitsfläche (Befehlssymbole) enthält. Durch die Icons sind proaktive SIM-Befehle gemäß der GSM-Spezifikation 3GPP TS 11.14 dargestellt, z.B. an oberster Stelle DISPLAY TEXT, an vierter Stelle PLAY TONE etc., und an den beiden untersten Positionen ein START Symbol und ein STOP Symbol, durch die Anfang bzw. Ende eines jeweiligen Programmcodes markiert werden. Die Icons (Befehlssymbole) können per "Drag and Drop" auf die Arbeitsfläche gezogen werden können, d.h. indem eine Laufmarke (Cursor) auf dem Icon aktiviert wird, die Laufmarke mitsamt dem Icon in die Arbeitsfläche 103 gezogen wird, und die Lauf marke auf der Arbeitsfläche wieder deaktiviert wird, woraufhin das Icon auf der Arbeitsfläche 103 abgelegt wird.Command bar 104 arranged, which contains a plurality of icons to be used for the work surface (command symbols). The icons represent proactive SIM commands according to the GSM specification 3GPP TS 11.14, e.g. DISPLAY TEXT at the top, PLAY TONE etc. at the fourth, and a START symbol and a STOP symbol at the two lowest positions, which mark the beginning or end of a respective program code. The icons (command symbols) can be dragged and dropped onto the work surface, i.e. by activating a tick mark (cursor) on the icon, dragging the tick mark together with the icon into the work surface 103, and deactivating the tick mark on the work surface, whereupon the icon is placed on the work surface 103.
Fig. 2 zeigt die Arbeitsfläche aus Fig. 1 gesondert dargestellt. Auf der Arbeitsfläche sind eine Mehrzahl von Icons und die Icons untereinander verbindenden Verbindungen graphisch dargestellt. Die Icons sind auf der Arbeitsfläche angeordnet worden, indem sie aus der Befehlsleiste 104 oder aus der Kopfleiste 101 auf die Arbeitsfläche gezogen worden sind (vgl. oben). Die Icons sind durch Verbindungslinien miteinander verbunden. Jede Verbindungslinie wird dadurch gezogen, dass ein Cursor (Laufmarke) über einem ersten Icon aktiviert wird, zum zweiten Icon gezogen wird und dort wieder deaktiviert wird. Eine auf diese Weise vom ersten Icon zum zweiten Icon gezogene Verbindungslinie bedeutet auf Programmebene, dass zuerst ein dem ersten Icon entsprechender erster Befehl und anschließend ein dem zweiten Icon entsprechender zweiter Befehl ausgeführt wird. Bei dem Programmcode aus Fig. 2 wird somit nach dem Start (START) zuerst ein Text auf dem Display angezeigt (DISPLAY TEXT), danach eine Eingabe entgegengenommen (GET INPUT), anschließend eine Short Message (SMS) versandt (SEND SMS), und schließlich wieder ein Text angezeigt (DISPLAY TEXT), wonach der Programmcode zu Ende ist (STOP).FIG. 2 shows the work surface from FIG. 1 separately. A plurality of icons and the connections connecting the icons to one another are shown graphically on the work surface. The icons have been arranged on the work surface by pulling them from the command bar 104 or have been dragged from the header 101 onto the work surface (see above). The icons are connected by connecting lines. Each connecting line is drawn by activating a cursor (marker) over a first icon, dragging it to the second icon and deactivating it there again. A connecting line drawn in this way from the first icon to the second icon means at program level that first a first command corresponding to the first icon and then a second command corresponding to the second icon are executed. With the program code from Fig. 2, after the start (START), text is first shown on the display (DISPLAY TEXT), then an input is accepted (GET INPUT), then a short message (SMS) is sent (SEND SMS), and finally a text is displayed again (DISPLAY TEXT), after which the program code has ended (STOP).
In Fig. 1 ist zu sehen, dass auf der Arbeitsfläche 103 gerade das Icon (Befehlssymbol) GET INPUT aktiviert ist. Entsprechend wird in einer Parameterfläche 105 eine Mehrzahl von Parameterfeldern angezeigt, in die Parameter zur Konfiguration des Funktionselements zu dem angezeigten Icon, hier also des Funktionselements GET INPUT, eingebbar sind. Beispielsweise lässt sich in dem Feld zu "Question" auf die Aufforderung "Bitte PIN eingeben" die PIN eingeben. In den beiden Parameterfeldern darunter lassen sich die minimale und maximale Antwortgröße (Responsegröße) eingeben. Aktuell sind 0 bzw. 255 eingegeben.In FIG. 1 it can be seen that the icon (command symbol) GET INPUT is currently activated on the work surface 103. Correspondingly, a plurality of parameter fields are displayed in a parameter area 105, into which parameters for the configuration of the functional element for the displayed icon, in this case the functional element GET INPUT, can be entered. For example, you can enter the PIN in the "Question" field when asked "Please enter PIN". The minimum and maximum response size (response size) can be entered in the two parameter fields below. 0 or 255 are currently entered.
Die Verbindungen zwischen den Icons können ebenfalls durch Parameter konfiguriert werden. Dabei wird beispielsweise angegeben, welcher Antwortcode des mobilen Endgerätes auf den ersten Befehl sich auf den weiteren Ablauf auswirkt, bzw. in welchem Pfad der Ablauf fortgesetzt wird. Ein weiterer Parameter kann das Format sein, in dem der erste Befehl an den zweiten Befehl Daten weitergibt. Die Funktionselemente können ebenfalls durch Parameter konfiguriert werden. Um das jeweilige Funktionselement bzw. die jeweiligen Verbindung durch Parameter zu konfigurieren, wird beispielsweise in dem Entwurfsschritt a) in oder neben der graphischen Arbeitsfläche oder anderweitig auf der graphischen Benutzeroberfläche eine Eingabemaske dargestellt, in die die Parameter eingegeben werden. Im anschließenden Build-Schritt werden die eingegebenen Parameter in den Quellcode eingebunden.The connections between the icons can also be configured using parameters. It is specified, for example, which response code of the mobile terminal to the first command refers to the further process affects, or in which path the process is continued. Another parameter can be the format in which the first command passes data to the second command. The functional elements can also be configured using parameters. In order to configure the respective functional element or the respective connection using parameters, for example in the design step a) an input mask is shown in or next to the graphical work surface or otherwise on the graphical user interface, into which the parameters are entered. In the subsequent build step, the parameters entered are integrated into the source code.
Ein proaktiver Befehl, für den auf der Arbeitsfläche ein Icon dargestellt ist, ist der Befehl DISPLAY TEXT gemäß der GSM-Spezifikation 3GPP TS 11.14. Der Befehl DISPLAY TEXT hat, ausgeführt auf einer SIM-Karte eines Mobiltelefons, die Wirkung, dass auf dem Display des Mobiltelefons ein spezifischer Text angezeigt wird. Dazu ist der Befehl DISPLAY TEXT durch den Parameter des spezifischen Texts, der angezeigt werden soll, konfiguriert. Durch PLAY TONE, abgespielt auf der SIM-Karte eines kombinierten PDA-Mobiltelefons, wird durch den Lautsprecher des PD A- Mobiltelefons ein Ton ausgegeben. Durch geeignete Parameter können beispielsweise Tonhöhe und Tondauer angegeben sein. Weitere proaktive Befehle lassen sich der GSM-Spezifikation 3GPP TS 11.14 entnehmen.A proactive command, for which an icon is shown on the work surface, is the DISPLAY TEXT command in accordance with the GSM specification 3GPP TS 11.14. The DISPLAY TEXT command, executed on a SIM card of a mobile phone, has the effect that a specific text is shown on the display of the mobile phone. The DISPLAY TEXT command is configured for this by the parameter of the specific text that is to be displayed. With PLAY TONE, played on the SIM card of a combined PDA mobile phone, a sound is emitted through the loudspeaker of the PD A mobile phone. Suitable parameters can, for example, indicate pitch and duration. Further proactive commands can be found in the GSM specification 3GPP TS 11.14.
Gemäß einer Variante können Verbindungslinien, die an ein und demselben Icon beginnen und enden, die also eine Schleife bilden, dafür benutzt werden, um beispielsweise eine falsche Eingabe des Benutzers am mobilen Endgeräts zu wiederholen und um falsche Ausführungen zu korrigieren (hier nicht dargestellt).According to a variant, connecting lines that begin and end on the same icon, that is, form a loop, can be used, for example, to incorrectly input the user on the mobile Repeat end devices and to correct incorrect statements (not shown here).
Gemäß einer weitergebildeten Variante der Erfindung wird ein erstellter Programmcode als neues Funktionselement deklariert und für das deklarierte Funktionselement ein neues Icon erzeugt. Der Programmcode ist dabei erfindungsgemäß aus einem graphischen Entwurf mit mehreren Icons für mehrere Funktionselemente erzeugt worden, beispielsweise aus einem graphischen Entwurf wie dem in Fig.l dargestellten. Gemäß dem Beispiel aus Fig. 1 wird beispielsweise der Quellcode oder der Zwischencode in der Projekt-Datei mit dem Namen Mobile_Banking als neues Funktionselement mit dem gleichlautenden Namen „MobileJBanking" deklariert und ein zugehöriges Icon erzeugt. In analoger Weise werden die unterschiedlichen Programmcodes in den Projekt-Unterdateien Kontostand_anzeigen, Überweisung, Verbindungen, Konten, Service und Kontakt alsAccording to a further developed variant of the invention, a created program code is declared as a new functional element and a new icon is generated for the declared functional element. According to the invention, the program code has been generated from a graphic design with several icons for several functional elements, for example from a graphic design such as that shown in FIG. According to the example from Fig. 1, for example, the source code or the intermediate code in the project file with the name Mobile_Banking is declared as a new functional element with the same name "MobileJBanking" and an associated icon is generated. The different program codes in the project are generated in an analogous manner - Subfiles account balance_view, transfer, connections, accounts, service and contact as
Funktionselemente mit den Namen Kontostand_anzeigen, Überweisung, Verbindungen, Konten, Service bzw. Kontakt deklariert und zu jedem der deklarierten Funktionselemente ein zugehöriges Icon erzeugt. Soll nachfolgend ein Programmcode erstellt werden, der die Funktion der Projekt-Unter datei z.B. Überweisung ausführt, so brauchen nicht die Icons, aus denen sich „Überweisung" zusammensetzt einzeln graphisch angeordnet und miteinander verbunden werden, sondern es kann das vorgefertigte neu deklarierte Funktionselement „Überweisung" verwendet werden und das zugehörige „Überweisung"-Icon graphisch angeordnet werden. Analoges gilt für die restlichen Projekt-Unterdateien und die übergeordnete Projekt-Datei „Mobile_Banking". Fig. 4 zeigt eine schematische Darstellung des erfindungsgemäßen Verfahrens, mit den Schritten a), b) und c). Als Programmiersprache wird exemplarisch Java verwendet. Jedoch kann das Verfahren auch mit einer anderen, vorzugsweise objektorientierten, Programmiersprache durchgeführt werden. Das Verfahren wird vorzugsweise mit dem in Fig. 1 und Fig. 2¥dargestellten Software-Tool durchgeführt.Functional elements with the names Kontostand_ anzeigen, transfer, connections, accounts, service or contact are declared and an associated icon is created for each of the declared functional elements. If subsequently a program code is to be created which carries out the function of the project sub-file, for example transfer, then the icons from which "transfer" is composed do not need to be individually arranged graphically and connected to one another, but rather the prefabricated, newly declared functional element "transfer""are used and the associated" transfer "icon is arranged graphically. The same applies to the remaining project sub-files and the higher-level project file" Mobile_Banking ". 4 shows a schematic illustration of the method according to the invention, with steps a), b) and c). Java is used as an example as the programming language. However, the method can also be carried out with another, preferably object-oriented, programming language. The process is preferably carried out with the in Fig. 1 and Fig. 2 illustrated software tool ¥.
In dem Entwurfsschritt a) werden nacheinander drei Icons 402 auf die Arbeitsfläche gezogen. Durch jedes Icon 402 ist ein proaktiver Befehl dargestellt. Im Fall aus Fig. 4 sind dies die proaktiven Befehle DISPLAY TEXT, PLAY TONE und SEND SHORT MESSAGE (vgl. auch Fig. 6). Die Icons 402 werden durch Verbindungslinien 401 miteinander verbunden. Dadurch wird festgelegt, dass später, beim ablaufen Lassen des Programmcodes auf dem Endgerät und/ oder der zugehörigen SIM-Karte zuerst der Befehl DISPLAY TEXT, dann PLAY TONE und anschließend SEND SHORT MESSAGE durchgeführt werden soll.In the design step a), three icons 402 are successively dragged onto the work surface. A proactive command is represented by each icon 402. In the case of FIG. 4, these are the proactive commands DISPLAY TEXT, PLAY TONE and SEND SHORT MESSAGE (cf. also FIG. 6). The icons 402 are connected to one another by connecting lines 401. This determines that later, when the program code is run on the end device and / or the associated SIM card, the DISPLAY TEXT command, then PLAY TONE and then SEND SHORT MESSAGE should be carried out.
In dem Build-Schritt b), der beispielsweise dadurch gestartet wird, dass in der Kopfzeile 101 aus Fig. 1 der Befehl "Build" aktiviert wird, wird aus den Verbindungslinien 401 auf der Arbeitsfläche ein Ablauf-Quellcode main.java erstellt, wie in Fig. 4 durch die Pfeile angedeutet ist. Der genauere Aufbau der Datei main.java wird weiter unten erklärt (vgl. Fig. 5).In build step b), which is started, for example, by activating the "Build" command in the header 101 from FIG. 1, an execution source code main.java is created from the connecting lines 401 on the work surface, as in Fig. 4 is indicated by the arrows. The more detailed structure of the main.java file is explained below (see Fig. 5).
Im Compilierungs-Schritt c) wird mittels eines Compilers (im weiteren Sinn) der Ablauf-Quellcode main.java zur Ablauf-Zwischencode-Datei main.cap compiliert (vgl. auch Fig. 7 bis Fig. 10). Die Datei main.cap ist vom CAP- Format, d.h. vom Card Application Format, und ist somit dazu geeignet, von einem Java Card Interpreter wie einer Java Card Virtual Machine interpretiert zu werden. Die Datei main.cap wird üblicherweise genauer dadurch erstellt, dass zunächst durch einen Compiler im engeren Sinn eine Klassen-Datei main.class erstellt wird und anschließend aus der Klassen- Datei main.class mittels eines Converters die Ablauf-Zwischencode-Datei main.cap erstellt wird. Der Zwischencode ist somit bei dem Beispiel aus Fig. 4 ein konvertierter Java Bytecode vom CAP-Format, wobei unter Java Bytecode ein Code vom CLASS-Format verstanden wird.In compilation step c), the runtime source code main.java is compiled into the runtime intermediate code file main.cap by means of a compiler (cf. also FIGS. 7 to 10). The file main.cap is of the CAP format, ie of the Card Application Format, and is therefore suitable for to be interpreted by a Java Card interpreter like a Java Card Virtual Machine. The file main.cap is usually created more precisely by first creating a class file main.class by a compiler in the narrower sense, and then using a converter to convert the main.cap sequence file from the main.class file is created. In the example from FIG. 4, the intermediate code is thus a converted Java byte code of the CAP format, whereby Java byte code is understood to be a code of the CLASS format.
Fig. 5 zeigt eine schematische Detaildarstellung des in dem Build-Schritt b) aus Fig. 4 erzeugten Ablauf-Quellcodes main.java, gemäß einer bevorzugten Ausführungsform der Erfindung. Der Ablauf-Quellcode main.java enthält Quellcodes 1 von Verbindungslinien und Funktionsaufrufe 2 auf Funktionselemente, die Icons entsprechen. Mit den Funktionsaufrufen 2 sind vorzugsweise auch Parameter zur Konfiguration der Funktionselemente im Ablauf-Quellcode main.java enthalten. Die Funktionsaufrufe 2 sind auf Einträge der Quellcodes der Funktionselemente in einer Library-Quellcode- Datei library.java gerichtet, wie sie in Fig. 6 dargestellt ist. Die Library- Quellcode-Datei library.java aus Fig. 6 enthält als Einträge die Quellcodes aller Funktionselemente, die dem Verfahren bzw. Software-Tool zur Verfügung stehen.FIG. 5 shows a schematic detailed representation of the main.java run source code generated in build step b) from FIG. 4, according to a preferred embodiment of the invention. The runtime source code main.java contains source codes 1 of connecting lines and function calls 2 on function elements that correspond to icons. The function calls 2 preferably also contain parameters for configuring the function elements in the main.java execution source code. The function calls 2 are directed to entries of the source codes of the function elements in a library source code file library.java, as shown in FIG. 6. The library source code file library.java from FIG. 6 contains as entries the source codes of all functional elements that are available to the method or software tool.
Fig. 7 zeigt eine schematische Darstellung einer Ablauf -Zwischencode-Datei main.cap gemäß einer ersten Ausführungsform der Erfindung. In der Ablauf-Zwischencode-Datei main.cap sind die Zwischencodes sowohl zu den Verbindungen 1, 401 als auch zu den Funktionselementen 2, 402 abgelegt. Intern ist die Ablauf-Zwischencode-Datei main.cap in einen Ablauf- Abschnitt 701 und einen Library- Abschnitt 702 aufgeteilt. Der Ablauf- Abschnitt 701 enthält die compilierten Ablauf-Quellcodes 1 und Quellcode-Funktionsaufrufe 2. Der Library- Abschnitt 702 enthält die compilierten Quellcodes 2 der Funktionselemente, allerdings nur zu den Funktionselementen, deren Icons 402 in dem Entwurf enthalten sind. Für Icons 402, die in dem Entwurf mehrmals auftreten, braucht der zugehörige Zwischencode in dem Library- Abschnitt 702 nur ein mal vorgesehen zu sein. Fig. 8 zeigt eine schematische Darstellung eines Ablauf-Zwischencodes gemäß einer zweiten Ausführungsform der Erfindung, gemäß einer ersten Variante, mit einer spezifischen Library. Im Vergleich zu der Ablauf- Zwischencode-Datei main.cap aus Fig. 7 enthält die Ablauf-Zwischencode- Datei main.cap aus Fig. 8 nur einen Ablauf- Abschnitt mit compilierten Ablauf-Quellcodes 1 und Quellcode-Funktionsaufrufen 2. Die Zwischencodes der Funktionselemente, für die im Entwurf ein Icon 402 enthalten ist, sind in einer gesonderten Library-Zwischencode-Datei library.cap abgelegt. Die Library-Zwischencode-Datei library.cap lässt sich somit gesondert von der Ablauf -Zwischencode-Datei main.cap speichern, kopieren oder laden. Insbesondere kann beispielsweise, .wenn Programmcode von einem Computer, auf dem der Programmcode erstellt worden ist, auf eine Chipkarte geladen wird, für die die Library- Zwischencode-Datei library.cap ein anderer Speicherort gewählt werden als für die Ablauf-Zwischencode-Datei main.cap. Beispielsweise kann library.cap in den Flash-Speicher und main.cap in den EEPROM der Chipkarte geschrieben werden.Fig. 7 shows a schematic representation of a sequence intermediate code file main.cap according to a first embodiment of the invention. The intermediate codes for the connections 1, 401 and also for the functional elements 2, 402 are stored in the sequence intermediate code file main.cap. Internally, the sequence intermediate code file is main.cap in one Flow section 701 and a library section 702 divided. The execution section 701 contains the compiled execution source codes 1 and source code function calls 2. The library section 702 contains the compiled source codes 2 of the functional elements, but only for the functional elements whose icons 402 are contained in the design. For icons 402 that occur several times in the design, the associated intermediate code need only be provided once in the library section 702. 8 shows a schematic representation of an intermediate sequence code according to a second embodiment of the invention, according to a first variant, with a specific library. In comparison to the run intermediate code file main.cap from FIG. 7, the run intermediate code file main.cap from FIG. 8 contains only one run section with compiled run source codes 1 and source code function calls 2. The intermediate codes of Function elements for which an icon 402 is included in the draft are stored in a separate library intermediate code file library.cap. The library intermediate code file library.cap can thus be saved, copied or loaded separately from the sequence intermediate code file main.cap. In particular, for example, when program code is loaded from a computer on which the program code has been created onto a chip card for which the library intermediate code file library.cap a different storage location is selected than for the sequence intermediate code file main .cap. For example, library.cap can be written in the flash memory and main.cap in the EEPROM of the chip card.
Fig. 9 zeigt eine schematische Darstellung eines Ablauf-Zwischencodes gemäß der zweiten Ausführungsform der Erfindung, gemäß einer zweiten Variante, mit einer verfahrensunabhängigen Library. Im Vergleich zu der in Fig. 8 gezeigten Variante sind in der Library-Zwischencode-Datei library.cap die Zwischencodes aller dem Verfahren bzw. Software-Tool zur Verfügung stehenden Funktionselemente enthalten, auch die derjenigen Funktionselemente, die gerade nicht verwendet werden. Dadurch ist die Library-Zwischencode-Datei library.cap unabhängig vom erfindungsgemäß erstellten Programmcode universell einsetzbar. Die Library-Zwischencode- Datei library.cap kann somit auch als gemeinsame Library für mehrere nach dem Verfahren erzeugte Programmcodes verwendet werden, wie in Fig. 10 dargestellt ist.FIG. 9 shows a schematic illustration of a sequence intermediate code according to the second embodiment of the invention, according to a second Variant, with a process-independent library. In comparison to the variant shown in FIG. 8, the library intermediate code file library.cap contains the intermediate codes of all functional elements available to the method or software tool, including those of the functional elements that are not currently being used. As a result, the library intermediate code file library.cap can be used universally regardless of the program code created according to the invention. The library intermediate code file library.cap can thus also be used as a common library for several program codes generated according to the method, as shown in FIG. 10.
Fig. 10 zeigt eine schematische Darstellung mehrerer Ablauf-Zwischencodes mainl.cap, main2.cap, main3.cap gemäß der zweiten Ausführungsform der Erfindung, gemäß der zweiten Variante, mit einer verfahrensunabhängigen gemeinsamen Library library.cap. Diese Variante ist auch in Fig. 3 verdeutlicht. Mehrere Ablauf -Zwischencodes greifen auf ein und die selbe gesonderte Library-Zwischencode-Datei library.cap zu. Dazu enthält die Library-Zwischencode-Datei library.cap einen verfahrensunabhängigen Bestand an Zwischencodes von Funktionselementen. Vorzugsweise kann der Bestand erweitert und verringert werden, was vorzugsweise unabhängig vom Erstellen der Programmcodes main.cap geschieht. Da die gemeinsame, universale Library-Zwischencode-Datei library.cap nur einmal geladen werden muss, kann sie beispielsweise in einen Speicher geschrieben werden, der zwar schwierig wiederzubeschreiben ist, dafür aber andere Vorteile hat, indem er z.B. billig oder schnell oder dauerhaft ist. Die Programmcodes main.cap bzw. maini.cap, i=l,2,3,... werden vorzugsweise in einen vergleichsweise einfach wiederbeschreibbaren Speicher geschrieben, z.B. in den EEPROM oder in den Flash-Speicher.10 shows a schematic representation of a plurality of sequence intermediate codes mainl.cap, main2.cap, main3.cap according to the second embodiment of the invention, according to the second variant, with a process-independent shared library library.cap. This variant is also illustrated in FIG. 3. Several expiry intermediate codes access one and the same separate library intermediate code file library.cap. For this purpose, the library intermediate code file library.cap contains a process-independent inventory of intermediate codes of functional elements. The inventory can preferably be expanded and reduced, which is preferably done independently of the creation of the main.cap program code. Since the common, universal library intermediate code file library.cap only has to be loaded once, it can be written, for example, into a memory which is difficult to rewrite but has other advantages, for example, it is cheap or fast or permanent. The program codes main.cap or maini.cap, i = 1, 2,3, ... are preferably divided into one comparatively easily rewritable memory written, for example in the EEPROM or in the flash memory.
Das Verfahren wird gemäß einer Ausführungsform direkt auf dem mobilen Endgerät ausgeführt, auf dem der Programmcode später laufen soll. Dazu wird beispielsweise insbesondere das Display des Endgeräts zur Darstellung der graphischen Benutzeroberfläche verwendet. Mit den qualitativ hochwertigen Displays der neueren Generationen von Mobiltelefonen und PDAs und kombinierten Endgeräten ist dies besonders gut möglich. Zur Bedienung des Displays wird dabei die Infrastruktur benutzt, die das Endgerät zur Verfügung stellt, d.h. Tastatur, Touch-Screen, ggf. mit Eingabestift, Mobiltelefontasten etc..According to one embodiment, the method is carried out directly on the mobile terminal on which the program code is to run later. For this purpose, for example, the display of the terminal device is used in particular to display the graphical user interface. This is particularly possible with the high-quality displays of the newer generations of mobile phones and PDAs and combined devices. To operate the display, the infrastructure used by the end device is used, i.e. Keyboard, touch screen, possibly with stylus, cell phone keys etc.
Gemäß einer weiteren Ausführungsform wird das Verfahren auf einem Computer durchgeführt und der Zwischencode main.cap, ggf. zusammen mit der Library library.cap, auf das mobile Endgerät geladen, vorzugsweise auf eine dort eingebaute Chipkarte, alternativ auch auf das Endgerät selbst oder teils auf die Chipkarte, teils auf das Endgerät. Der auf der Chipkarte oder in dem Endgerät vorgesehene Interpreter, z.B. eine Java Card Virtual Machine, interpretiert den Programmcode schließlich zu einem ausführbaren Code, durch den die Funktionalitäten des mobilen Endgeräts ansteuerbar sind. Die Chipkarte kann dabei insbesondere eine Mobiltelefonkarte der SIM-Generation sein und ist in diesem Fall vorzugsweise eine Java Card, die der GSM-Spezifikation 3GPP TS 11.14 genügt. Die proaktiven Befehle müssen nicht unbedingt SIM-Befehle sein, sondern können auch USIM-Befehle oder Befehle gemäß einem anderen Mobilfunkstandard oder sonstigen Kommunikationsstandard sein.According to a further embodiment, the method is carried out on a computer and the intermediate code main.cap, possibly together with the library library.cap, is loaded onto the mobile terminal, preferably onto a chip card installed there, alternatively also or partly onto the terminal itself the chip card, partly on the end device. The interpreter provided on the chip card or in the terminal, for example a Java Card Virtual Machine, finally interprets the program code as an executable code by means of which the functionalities of the mobile terminal can be controlled. The chip card can in particular be a mobile phone card of the SIM generation and in this case is preferably a Java card which complies with the GSM specification 3GPP TS 11.14. The proactive commands do not necessarily have to be SIM commands, but can also be USIM commands or commands according to another mobile radio standard or other communication standard.
Der Programmcode, der nach dem Compilierungs-Schritt c) bereitgestellt wird, um ausgeführt zu werden oder um auf die Chipkarte oder/ und auf das mobile Endgerät geladen zu werden und anschließend ausgeführt zu werden, ist vorzugsweise ein Java Applet. .The program code which is provided after the compilation step c) in order to be executed or to be loaded onto the chip card and / or onto the mobile terminal and then to be executed is preferably a Java applet. ,
Das Laden des Applet wird vorzugsweise dadurch durchgeführt, dass das Applet auf einem Server abgelegt wird, der über das Internet zugänglich ist. Ein Internet-Nutzer kann, beispielsweise gegen Bezahlung, aus dem Internet heraus veranlassen, dass ihm das Applet per SMS auf sein mobiles Endgerät (z.B. Handy) gesandt wird. Alternativ kann er das Herunterladen des Applets auch direkt von seinem mobilen Endgerät aus initiieren.The applet is preferably loaded by storing the applet on a server that is accessible via the Internet. An internet user can, for example against payment, arrange for the applet to be sent to his or her mobile device (e.g. cell phone) via SMS. Alternatively, he can initiate the download of the applet directly from his mobile device.
Die ggf. erforderliche Library kann auf dem gleichen Weg wie das Applet heruntergeladen werden. Falls als Library eine gemeinsame, universale Library verwendet wird, braucht diese nur ein einziges mal heruntergeladen werden, auch wenn nacheinander mehrere Applets geladen werden. Dadurch kann der Konsument, der die Applets bezieht, teure Verbindungskosten für die mobile (kontaktlose) Verbindung zwischen dem Server und seinem mobilen Endgerät sparen, was das Herunterladen der Applets für Konsumenten attraktiver macht. Das Applet enthält ggf. die Information, auf welchen Speicherbereich der Chipkarte des Endgeräts es geladen wird, wobei die Information bereits bei der Erstellung des Applet vorgegeben wurde. The library that may be required can be downloaded in the same way as the applet. If a common, universal library is used as the library, it only needs to be downloaded once, even if several applets are loaded one after the other. As a result, the consumer who purchases the applets can save expensive connection costs for the mobile (contactless) connection between the server and his mobile terminal device, which makes downloading the applets more attractive for consumers. The applet may contain the information on which memory area of the chip card of the end device it is loaded, the information already being specified when the applet was created.

Claims

P a t e n t a n s p r ü c h e Patent claims
1. Verfahren zum Erstellen von Programmcode, insbesondere für eine Chipkarte, zum Ansteuern eines mobilen Endgeräts, wobei a) in einem Entwurfsschritt auf einer graphischen Benutzeroberfläche eines Computersystems ein graphischer Entwurf erstellt wird, indem ein oder mehrere graphische Icons auf einer auf der graphischen Benutzeroberfläche dargestellten graphischen Arbeitsfläche angeordnet werden und, falls mehr als ein Icon angeordnet worden ist, die Icons durch graphische Linien miteinander verbunden werden, so dass eine1. A method for creating program code, in particular for a chip card, for controlling a mobile terminal, wherein a) a graphic design is created in a design step on a graphical user interface of a computer system by one or more graphical icons being displayed on a graphical user interface graphic work surface and, if more than one icon has been arranged, the icons are connected by graphic lines, so that a
Struktur von durch Linien miteinander verbundenen Icons gebildet wird, wobei durch jedes Icon ein zugehöriges Funktionselement schematisch graphisch dargestellt ist und durch jede graphische Linie eine Verbindung auf Programmebene zwischen den durch die Linie verbundenen Funktionselementen graphisch dargestellt ist, b) in einem Build-Schritt aus dem graphischen Entwurf ein Quellcode (main.java, library.java) des Programmcodes erstellt wird, indem zu jedem in der Struktur enthaltenen graphischen Icon der Quellcode des zugehörigen Funktionselements bereitgestellt wird und zu jeder in der Struktur enthaltenen graphischen Linie auf der Arbeitsfläche derStructure of icons interconnected by lines is formed, with each icon schematically representing an associated functional element and each graphical line graphically representing a connection at program level between the functional elements connected by the line, b) in a build step from the graphic design, a source code (main.java, library.java) of the program code is created by providing the source code of the associated functional element for each graphic icon contained in the structure and for each graphic line contained in the structure on the work surface of the
Quellcode (1) der Verbindung bereitgestellt wird, wobei mit den bereitgestellten Quellcodes (1) der Verbindungen ein Ablauf-Quellcode (main.java) gebildet wird, durch den der Ablauf des Programmcodes festgelegt ist, c) in einem Compilierungs-Schritt ein Zwischencode (main.class, library.class, main.cap, library.cap) erstellt wird, der durch einen auf der Chipkarte und/ oder dem mobilen Endgerät implementierten Interpreter in für die Chipkarte und/ oder das mobilen Endgerät lesbaren ausführbaren Code interpretierbar ist, wobei der Ablauf-Quellcode in eine Ablauf -Zwischencode-Datei (main.class, main.cap) compiliert wird.Source code (1) of the connection is provided, with the provided source codes (1) of the connections forming an execution source code (main.java) by which the execution of the program code is determined, c) an intermediate code in a compilation step ( main.class, library.class, main.cap, library.cap) is created, which can be read by the interpreter implemented on the chip card and / or the mobile device into the chip card and / or the mobile device executable code is interpretable, whereby the runtime source code is compiled into a runtime intermediate code file (main.class, main.cap).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass mindestens ein Funktionselement und/ oder mindestens eine Verbindung durch Parameter konfiguriert wird.2. The method according to claim 1, characterized in that at least one functional element and / or at least one connection is configured by parameters.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass beim Bereitstellen des Quellcodes des jeweiligen Funktionselements ein Funktionsaufruf (2) auf den Quellcode des Funktionselements in den Ablauf- Quellcode (main.java) eingebunden wird, wobei der Funktionsaufruf (2) vorzugsweise auf einen Eintrag des Funktionselements in einer Library- Quellcode-Datei (library.java) gerichtet ist.3. The method according to claim 1 or 2, characterized in that when the source code of the respective functional element is provided, a function call (2) is integrated into the source code of the functional element in the sequence source code (main.java), the function call (2) preferably is directed to an entry of the functional element in a library source code file (library.java).
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass in dem Compilierungs-Schritt c), beim Erstellen des Zwischencodes, die Zwischencodes der Funktionselemente, für die in dem Entwurfsschritt a) ein Icon in die Struktur eingefügt worden ist, mit in die Ablauf-Zwischencode- Datei (main.class, main.cap) eingebunden werden, insbesondere durch Compilierung der zugehörigen Quellcodes.4. The method according to any one of claims 1 to 3, characterized in that in the compilation step c), when creating the intermediate code, the intermediate codes of the functional elements for which an icon has been inserted into the structure in the design step a) can be integrated into the sequence intermediate code file (main.class, main.cap), in particular by compiling the associated source codes.
5. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass in dem Compilierungs-Schritt c), beim Erstellen des Zwischencodes, für die Funktionselemente, für die in dem Entwurfsschritt a) ein Icon in die Struktur eingefügt worden ist, jeweils ein Funktionsaufruf auf den5. The method according to any one of claims 1 to 3, characterized in that in the compilation step c), when creating the intermediate code, for the functional elements for which an icon has been inserted into the structure in the design step a) Function call on the
Zwischencode des Funktionselements in die Ablauf-Zwischencode-Datei eingebunden wird. Intermediate code of the functional element is integrated into the sequence intermediate code file.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Zwischencodes der Funktionselemente in einer von der Ablauf- Zwischencode-Datei gesonderten Library-Zwischencode-Datei (library.class, library.cap) bereitgestellt werden.6. The method according to claim 5, characterized in that the intermediate codes of the functional elements are provided in a library intermediate code file (library.class, library.cap) separate from the sequence intermediate code file.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die Library- Zwischencode-Datei (library.class, library.cap) einen Bestand an Zwischencodes von Funktionselementen enthält, der von der Durchführung des Verfahrens unabhängig ist.7. The method according to claim 6, characterized in that the library intermediate code file (library.class, library.cap) contains an inventory of intermediate codes of functional elements, which is independent of the implementation of the method.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass während der Durchführung des Verfahrens ausgewählt wird, auf welche Weise für die Funktionselemente, für die in dem Entwurfsschritt a) ein Icon in die Struktur eingefügt worden ist, der zugehörige Zwischencode erstellt wird, insbesondere ob gemäß Anspruch 4 die Zwischencodes der Funktionselemente mit in die Ablauf-Zwischencode-Datei (main.class, main.cap) eingebunden werden oder - gemäß einem der Ansprüche 5 bis 7 jeweils ein Funktionsaufruf auf den Zwischencode des Funktionselements in die Ablauf- Zwischencode-Datei eingebunden wird.8. The method according to any one of claims 1 to 7, characterized in that during the implementation of the method is selected in which way for the functional elements, for which an icon has been inserted in the structure in the design step a), creates the associated intermediate code is, in particular whether, according to claim 4, the intermediate codes of the functional elements are also integrated into the intermediate flow code file (main.class, main.cap) or - according to one of claims 5 to 7, a function call to the intermediate code of the functional element is included in the sequence - Intermediate code file is integrated.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass alle Informationen über das jeweilige Projekt einschließlich verwendeter Menüs, Arbeitsflächen mit Icons und Parameter sowie Projektoptionen in einer Projekt-Datei abgespeichert werden, insbesondere im XML-Format. 9. The method according to any one of claims 1 to 8, characterized in that all information about the respective project including menus used, work surfaces with icons and parameters and project options are stored in a project file, in particular in XML format.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass in der Projekt- Datei zusätzlich graphische Entwurfsdaten abgespeichert werden, die eine Rekonstruktion des in dem Entwurfsschritt a) erstellten graphischen Entwurfs durch Aufruf der Projekt-Datei erlauben.10. The method according to claim 9, characterized in that additional graphic design data are stored in the project file, which allow a reconstruction of the graphic design created in the design step a) by calling the project file.
11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass weiter d) in einem Interpretations-Schritt durch den in der Chipkarte und/ oder in dem mobilen Endgerät implementierten Interpreter der Zwischencode in für die Chipkarte und/ oder das mobile Endgerät lesbaren ausführbaren Code übersetzt wird.11. The method according to any one of claims 1 to 10, characterized in that further d) in an interpretation step by the interpreter implemented in the chip card and / or in the mobile terminal of the intermediate code in readable for the chip card and / or the mobile terminal executable code is translated.
12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass mindestens eines der Funktionselemente ein proaktiver Befehl, insbesondere für Mobilfunkanwendungen, ist.12. The method according to any one of claims 1 to 11, characterized in that at least one of the functional elements is a proactive command, in particular for mobile radio applications.
13. Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, dass die Schritte a) bis c) teilweise oder vollständig auf der Chipkarte und/ oder auf dem mobilen Endgerät zur mobilen Kommunikation ausgeführt werden.13. The method according to any one of claims 1 to 12, characterized in that steps a) to c) are carried out partially or completely on the chip card and / or on the mobile terminal for mobile communication.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass die graphische Benutzeroberfläche auf einem Display des mobilen Endgerätes angezeigt wird und/ oder dass der Build-Schritt b) und/ oder der14. The method according to claim 13, characterized in that the graphical user interface is shown on a display of the mobile terminal and / or that the build step b) and / or
Compilierungs-Schritt c) in einem integrierten Schaltkreis durchgeführt wird, der in der Chipkarte oder in dem mobilen Endgerät oder teils in der Chipkarte und teils in dem mobilen Endgerät ausgebildet ist.Compilation step c) carried out in an integrated circuit is formed in the chip card or in the mobile terminal or partly in the chip card and partly in the mobile terminal.
15. Verfahren nach einem der Ansprüche 1 bis 14, dadurch gekennzeichnet, dass das Verfahren zumindest teilweise außerhalb der Chipkarte und des mobilen Endgeräts durchgeführt wird und dass weiter in einem Ladeschritt der Quellcode oder der Zwischencode auf die Chipkarte und/ oder auf das mobile Endgerät geladen wird.15. The method according to any one of claims 1 to 14, characterized in that the method is carried out at least partially outside of the chip card and the mobile device and that the source code or the intermediate code is further loaded onto the chip card and / or onto the mobile device in a loading step becomes.
16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass insbesondere die Library-Quellcode-Datei (library.java) gemäß Anspruch 3 oder die Library-Zwischencode-Datei (library.class, library.cap) gemäß einem der Ansprüche 6 bis 8 auf die Chipkarte oder auf das mobile Endgerät oder teils auf die Chipkarte und teils auf das mobile Endgerät geladen wird.16. The method according to claim 15, characterized in that in particular the library source code file (library.java) according to claim 3 or the library intermediate code file (library.class, library.cap) according to one of claims 6 to 8 the chip card or is loaded onto the mobile terminal or partly onto the chip card and partly onto the mobile terminal.
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass die Library- Quellcode-Datei (library.java) oder die Library-Zwischencode-Datei (library.class, library.cap) nur dann geladen wird, falls am Zielort der Ladens auf der Chipkarte bzw. dem mobilen Endgerät noch keine entsprechende Datei vorhanden ist.17. The method according to claim 16, characterized in that the library source code file (library.java) or the library intermediate code file (library.class, library.cap) is only loaded if at the destination of the store on the Chip card or the mobile device does not yet have a corresponding file.
18. Verfahren nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet, dass das Laden in dem Ladeschritt über ein kontaktbehaftet arbeitendes Lesegerät durchgeführt wird. 18. The method according to any one of claims 15 to 17, characterized in that the charging in the loading step is carried out via a contact-based reader.
19. Verfahren nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet, dass das Laden in dem Ladeschritt zumindest teilweise kontaktlos durchgeführt wird.19. The method according to any one of claims 15 to 17, characterized in that the charging in the charging step is carried out at least partially without contact.
20. Verfahren nach einem der Ansprüche 15 bis 19, dadurch gekennzeichnet, dass das Laden in dem Ladeschritt zumindest teilweise über einen Server durchgeführt wird.20. The method according to any one of claims 15 to 19, characterized in that the loading in the loading step is carried out at least partially via a server.
21. Verfahren nach Anspruch 20, dadurch gekennzeichnet, dass das Laden dadurch durchgeführt wird, dass der Quellcode oder der Zwischencode auf ι dem Server bereitgestellt wird und anschließend kontaktlos an die Chipkarte oder das mobile Endgerät übermittelt wird.21. The method according to claim 20, characterized in that the loading is carried out by the source code or the intermediate code being provided on the server and subsequently being transmitted contactlessly to the chip card or the mobile terminal.
22. Verfahren nach Anspruch 21, dadurch gekennzeichnet, dass das kontaktlose Übermitteln an die Chipkarte oder an das mobile Endgerät entweder durch die Chipkarte oder das mobile Endgerät oder durch den Server veranlasst wird.22. The method according to claim 21, characterized in that the contactless transmission to the chip card or to the mobile terminal is initiated either by the chip card or the mobile terminal or by the server.
23. Verfahren nach einem der Ansprüche 15 bis 22, dadurch gekennzeichnet, dass während der Durchführung des Verfahrens ein Lade-Parameter festgelegt wird, durch den vorbestimmt wird, in welchen Bereich der Chipkarte und/ oder des mobilen Endgeräts der Quellcode oder der Zwischencode in dem Ladeschritt geladen wird.23. The method according to any one of claims 15 to 22, characterized in that during the implementation of the method, a loading parameter is determined by which it is predetermined in which area of the chip card and / or the mobile terminal the source code or the intermediate code in the Loading step is loaded.
24. Verfahren nach Anspruch 23, dadurch gekennzeichnet, dass die24. The method according to claim 23, characterized in that the
Chipkarte eine Mehrzahl von unterschiedlichen Speicherbereichen aufweist, die vorzugsweise einen oder mehrere der Speicherbereiche RAM, EEPROM, Flash-Speicher und ROM aufweisen, und dass durch den Lade-Parameter vorbestimmt wird, in welchen Speicherbereich der Quellcode oder der Zwischencode in dem Ladeschritt geladen wird.Chip card has a plurality of different memory areas, which preferably have one or more of the memory areas RAM, EEPROM, Flash memory and ROM, and that the loading parameter determines in which memory area the source code or the intermediate code is loaded in the loading step.
25. Verfahren nach Anspruch 24, dadurch gekennzeichnet, dass die25. The method according to claim 24, characterized in that the
Chipkarte einen EEPROM und/ oder einen Flash-Speicher aufweist und beim Laden in dem Ladeschritt zumindest der Ablauf -Zwischencode in den EEPROM oder Flash-Speicher geladen wird.Chip card has an EEPROM and / or a flash memory and at least the sequence intermediate code is loaded into the EEPROM or flash memory during loading in the loading step.
26. Verfahren nach einem der Ansprüche 1 bis 25, dadurch gekennzeichnet, dass der erstellte Programmcode als neues Funktionselement deklariert wird, das gemäß dem Verfahren nach einem der Ansprüche 1 bis 25 verwendbar ist.26. The method according to any one of claims 1 to 25, characterized in that the program code created is declared as a new functional element that can be used according to the method according to one of claims 1 to 25.
27. Verfahren nach Anspruch 26, wobei für das deklarierte neue27. The method of claim 26, wherein for the declared new
Funktionselement ein Icon erstellt wird, das gemäß dem Verfahren nach einem der Ansprüche 1 bis 26 verwendbar ist. .Functional element is created an icon that can be used according to the method according to any one of claims 1 to 26. ,
28. Software-Tool zum Durchführen eines Verfahrens zum Erstellen von Programmcode nach einem der Ansprüche 1 bis 27, mit: a) einer Graphik-Steuereinrichtung zum Ansteuern der graphischen Benutzeroberfläche, so dass ein graphischer Entwurf des Programmcodes erstellbar ist, indem ein oder mehrere graphische Icons auf einer auf der graphischen Benutzeroberfläche dargestellten graphischen Arbeitsfläche angeordnet werden und, falls mehr als ein28. Software tool for performing a method for creating program code according to one of claims 1 to 27, comprising: a) a graphic control device for controlling the graphic user interface, so that a graphic design of the program code can be created by one or more graphic Icons are arranged on a graphical work surface shown on the graphical user interface and, if more than one
Icon angeordnet worden ist, die Icons durch graphische Linien miteinander verbunden werden, so dass eine Struktur von durch Linien miteinander verbundenen Icons gebildet wird, wobei durch jedes Icon ein zugehöriges Funktionselement schematisch graphisch dargestellt ist und durch jede graphische Linie eine Verbindung auf Programmebene zwischen den durch die Linie verbundenen Funktionselementen graphisch dargestellt ist, b) einer Build-Steuereinrichtung, mit der in einem Build-Schritt aus dem graphischen Entwurf ein Quellcode (main.java, library.java) des Programmcodes erstellbar ist, indem zu jedem in der Struktur enthaltenen graphischen Icon der Quellcode des zugehörigen Funktionselements bereitgestellt wird und zu jeder in der Struktur enthaltenen graphischen Linie auf der Arbeitsfläche der Quellcode der Verbindung bereitgestellt wird, wobei mit den bereitgestellten Quellcodes der Verbindungen ein Ablauf-Quellcode (main.java) gebildet wird, durch den der Ablauf des Programmcodes festgelegt ist, c) einem Compiler, mit dem in einem Compilierungs-Schritt einIcon has been arranged, the icons are connected by graphic lines, so that a structure of by lines interconnected icons are formed, with each icon schematically representing an associated functional element and graphically representing a connection at program level between the functional elements connected by the line, b) a build control device with which in a build Step from the graphic design a source code (main.java, library.java) of the program code can be created by providing the source code of the associated functional element for each graphic icon contained in the structure and for each graphic line contained in the structure on the work surface of the Source code of the connection is provided, whereby with the provided source codes of the connections an execution source code (main.java) is formed, by which the execution of the program code is determined, c) a compiler with which in a compilation step
Zwischencode (main.class, library.class, main.cap, library.cap) erstellbar ist, der durch einen auf der Chipkarte und/ oder dem mobilen Endgerät implementierten Interpreter in für die Chipkarte und/ oder das mobilen Endgerät lesbaren ausführbaren Code interpretierbar ist, wobei der Ablauf-Quellcode in eine Ablauf-Zwischencode-Datei (main.class, main.cap) compiliert wird.Intermediate code (main.class, library.class, main.cap, library.cap) can be generated, which can be interpreted by an interpreter implemented on the chip card and / or the mobile terminal in executable code that can be read by the chip card and / or the mobile terminal , whereby the run source code is compiled into a run intermediate code file (main.class, main.cap).
29. Software-Tool nach Anspruch 28, dadurch gekennzeichnet, dass es weiter eine Library-Schnittstelle aufweist, die dazu eingerichtet ist, für das Verfahren Quellcodes oder Zwischencodes von Funktionselementen bereitzustellen, die in einer gesonderten Library-Quellcode-Datei (library.java) bzw. Library-Zwischencode-Datei (library.class, library.cap) abgespeichert sind.29. Software tool according to claim 28, characterized in that it further comprises a library interface which is set up to provide source codes or intermediate codes of functional elements for the method, which are in a separate library source code file (library.java) or library intermediate code file (library.class, library.cap) are saved.
30. Software-Tool nach Anspruch 29, dadurch gekennzeichnet, dass es weiter eine Library- Auswahleinrichtung aufweist, mit der gemäß Anspruch 8 auswählbar ist, auf welche Weise für die Quellcodes der Funktionselemente der zugehörige Zwischencode erstellt wird.30. Software tool according to claim 29, characterized in that it further comprises a library selection device with which according to claim 8 can be selected in which way the associated intermediate code is created for the source codes of the functional elements.
31. Software-Tool nach einem der Ansprüche 28 bis 30, dadurch gekennzeichnet, dass es weiter eine Lade-Auswahleinrichtung aufweist, mit der gemäß einem der Ansprüche 23 bis 25 auswählbar ist, in welchen Bereich der Chipkarte und/ oder des mobilen Endgeräts der Quellcode oder der Zwischencode in dem Ladeschritt gemäß einem der Ansprüche 15 bis 22 geladen wird.31. Software tool according to one of claims 28 to 30, characterized in that it further has a loading selection device with which, according to one of claims 23 to 25, it can be selected in which area of the chip card and / or the mobile terminal the source code or the intermediate code is loaded in the loading step according to any one of claims 15 to 22.
32. Software-Tool nach einem der Ansprüche 28 bis 31, dadurch gekennzeichnet, dass alle Informationen über das jeweilige Projekt einschließlich verwendeter Menüs, Arbeitsflächen mit Icons und Parameter sowie Projektoptionen in einer Projekt-Datei abspeicherbar sind, insbesondere im XML-Format.32. Software tool according to one of claims 28 to 31, characterized in that all information about the respective project including menus used, work surfaces with icons and parameters and project options can be stored in a project file, in particular in XML format.
33. Software-Tool nach Anspruch 32, dadurch gekennzeichnet, dass in der Projekt-Datei zusätzlich graphische Entwurfsdaten abspeicherbar sind, die eine Rekonstruktion des in dem Entwurfsschritt a) erstellten graphischen Entwurfs durch Aufruf der Projekt-Datei erlauben. 33. Software tool according to claim 32, characterized in that additional graphic design data can be stored in the project file, which allow a reconstruction of the graphic design created in the design step a) by calling the project file.
34. Datenträger mit einem integrierten Schaltkreis und einem zumindest teilweise in dem integrierten Schaltkreis implementierten Software-Tool nach einem der Ansprüche 28 bis 33.34. Data carrier with an integrated circuit and an at least partially implemented in the integrated circuit software tool according to one of claims 28 to 33.
35. Computer mit einem integrierten Schaltkreis und einem zumindest teilweise in dem integrierten Schaltkreis implementierten Software-Tool nach einem der Ansprüche 28 bis 33.35. Computer with an integrated circuit and an at least partially implemented in the integrated circuit software tool according to one of claims 28 to 33.
36. Mobiles Endgerät mit einem integrierten Schaltkreis und einem zumindest teilweise in dem integrierten Schaltkreis implementierten36. Mobile terminal with an integrated circuit and an at least partially implemented in the integrated circuit
Software-Tool nach einem der Ansprüche 28 bis 33.Software tool according to one of claims 28 to 33.
37. Datenträger mit einem zumindest teilweise darin implementierten Programmcode, insbesondere Quellcode (main.java, library.java) oder Zwischencode (main.class, library.class, main.cap, library.cap), der nach einem Verfahren gemäß einem der Ansprüche 1 bis 27 erstellt worden ist.37. Data carrier with an at least partially implemented program code, in particular source code (main.java, library.java) or intermediate code (main.class, library.class, main.cap, library.cap), according to a method according to one of the claims 1 to 27 has been created.
38. Datenträger nach Anspruch 37, der als Chipkarte, vorzugsweise mit einem Mikroprozessor, ausgestaltet ist, insbesondere mit einer Mehrzahl von unterschiedlichen Speicherbereichen, die vorzugsweise mindestens einen der Speicherbereiche RAM, EEPROM, Flash-Speicher und ROM aufweisen.38. A data carrier according to claim 37, which is configured as a chip card, preferably with a microprocessor, in particular with a plurality of different memory areas, which preferably have at least one of the memory areas RAM, EEPROM, flash memory and ROM.
39. Datenträger nach Anspruch 37 oder 38, der als eine Java Card für ein mobiles Endgerät wie eine Mobiltelefon oder ein Personal Digital Assistant (PDA) oder ein kombiniertes Gerät aus Mobiltelefon und Personal Digital Assistant (PDA) ausgestaltet ist. 39. A data carrier according to claim 37 or 38, which is designed as a Java Card for a mobile terminal such as a mobile phone or a Personal Digital Assistant (PDA) or a combined device comprising a mobile phone and Personal Digital Assistant (PDA).
PCT/EP2004/001453 2003-02-17 2004-02-16 Method for creating a program code WO2004072849A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP04711364A EP1597670A1 (en) 2003-02-17 2004-02-16 Method for creating a program code

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE2003106717 DE10306717A1 (en) 2003-02-17 2003-02-17 Procedure for creating program code
DE10306717.5 2003-02-17

Publications (2)

Publication Number Publication Date
WO2004072849A1 true WO2004072849A1 (en) 2004-08-26
WO2004072849B1 WO2004072849B1 (en) 2004-09-30

Family

ID=32863828

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2004/001453 WO2004072849A1 (en) 2003-02-17 2004-02-16 Method for creating a program code

Country Status (3)

Country Link
EP (1) EP1597670A1 (en)
DE (1) DE10306717A1 (en)
WO (1) WO2004072849A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874093B2 (en) 2007-12-13 2014-10-28 Motorola Mobility Llc Scenarios creation system for a mobile device
US20160054982A1 (en) * 2014-08-20 2016-02-25 Verizon Patent And Licensing Inc. Application programming interface (api) engine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860204A (en) * 1987-02-05 1989-08-22 Softron, Inc. Computer based workstation for development of graphic representation of computer programs
WO2001037085A1 (en) * 1999-11-17 2001-05-25 Bull Cp8 Method for loading applications in a multiapplication onplatform system equipped with data processing resources, corresponding executing system and method
DE10008632A1 (en) * 2000-02-24 2001-09-06 Gunter Gemmel Computer program generation involves producing flowchart from programmable symbols on display device, and producing logical data sets of source codes according to flowchart

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860204A (en) * 1987-02-05 1989-08-22 Softron, Inc. Computer based workstation for development of graphic representation of computer programs
WO2001037085A1 (en) * 1999-11-17 2001-05-25 Bull Cp8 Method for loading applications in a multiapplication onplatform system equipped with data processing resources, corresponding executing system and method
DE10008632A1 (en) * 2000-02-24 2001-09-06 Gunter Gemmel Computer program generation involves producing flowchart from programmable symbols on display device, and producing logical data sets of source codes according to flowchart

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BAENTSCH M ET AL: "JAVACARD- FROM HYPE TO REALITY", IEEE CONCURRENCY, IEEE SERVICE CENTER, PISCATAWAY, NY, US, vol. 7, no. 4, October 1999 (1999-10-01), pages 36 - 43, XP000873322, ISSN: 1092-3063 *
COCKCROFT A: "Which is better, static or dynamic linking?", SUNWORLD ONLINE, February 1996 (1996-02-01), XP002282116, Retrieved from the Internet <URL:http://sunsite.uakom.sk/sunworldonline/swol-02-1996/swol-02-perf.html> [retrieved on 20040519] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874093B2 (en) 2007-12-13 2014-10-28 Motorola Mobility Llc Scenarios creation system for a mobile device
US20160054982A1 (en) * 2014-08-20 2016-02-25 Verizon Patent And Licensing Inc. Application programming interface (api) engine
US9678723B2 (en) * 2014-08-20 2017-06-13 Verizon Patent And Licensing Inc. Application programming interface (API) engine

Also Published As

Publication number Publication date
DE10306717A1 (en) 2004-09-16
EP1597670A1 (en) 2005-11-23
WO2004072849B1 (en) 2004-09-30

Similar Documents

Publication Publication Date Title
DE60201024T2 (en) MULTIFUNCTIONAL APPLICATION LAUNCHER WITH INTEGRATED STATUS
DE68919503T2 (en) Method and system for displaying a user interface on a computer screen.
DE60003457T2 (en) METHOD AND SYSTEM FOR CONFIGURING COMPONENTS, OUTPUTABLE IN A NETWORK
DE69503052T2 (en) IMPROVED OBJECT-ORIENTED OPERATING SYSTEM FOR FILTERING DATA OBJECTS IN A WINDOW
DE69804107T2 (en) BUILT-IN GRAPHIC PROGRAMMING SYSTEM
DE69732547T2 (en) A method and apparatus for collapsing and extending selected areas of workspaces on a computer-controlled display system
DE69326865T2 (en) Object-oriented computer system and method
DE69721424T2 (en) Apparatus and method for editing a graphical user interface
JPH06266667A (en) Object-action user interface control system
DE10104043A1 (en) Method and system for improving the use of in-built macro-languages makes it possible for existing applications to use languages other than their in-built macro-languages without changing an existing application.
DE10348784B4 (en) Apparatus and method for managing information data in a mobile telephone
DE10140874A1 (en) Touch screen type graphical user interface in which the sizing of screen areas is automatically adjusted to simplify user input and make control of devices, especially communications devices more user friendly
EP1005215B1 (en) Method and system for editing configuration data in telecommunications systems
WO2004072849A1 (en) Method for creating a program code
EP0852366B1 (en) Method for charging the use of programmed or program-technically available services
DE102007041913A1 (en) Method for operating a terminal by means of an infotainment system of a motor vehicle and infotainment system
DE4310615C2 (en) Designing electrical devices with multiple design tools that are at least partially incompatible with each other
DE102015221383A1 (en) Method for operating a computer system
DE102005007581A1 (en) Method of personalizing a portable data carrier
EP1691275B1 (en) Method and apparatus for computer-assisted creation of a graphical user interface
EP1044409B1 (en) Program flow method and method for expanding a program component system
DE10306810B4 (en) Method and arrangement for displaying software assistants on mobile terminals
DE102005018864A1 (en) Source code generation method for a program that describes or simulates a complex process involving a multiplicity of communicating subjects, wherein a source code file is generated for each subject from a common process file
WO2001080533A2 (en) Device and method for the presentation of a multi-layered menu system
EP1691274B1 (en) Method and apparatus for computer-assisted creation of a graphical user interface on a display device

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 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 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 PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

B Later publication of amended claims

Effective date: 20040817

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004711364

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2004711364

Country of ref document: EP

DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
WWR Wipo information: refused in national office

Ref document number: 2004711364

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2004711364

Country of ref document: EP