WO2012149977A1 - Method and corresponding system for generating a software application manipulating structured data - Google Patents

Method and corresponding system for generating a software application manipulating structured data Download PDF

Info

Publication number
WO2012149977A1
WO2012149977A1 PCT/EP2011/057187 EP2011057187W WO2012149977A1 WO 2012149977 A1 WO2012149977 A1 WO 2012149977A1 EP 2011057187 W EP2011057187 W EP 2011057187W WO 2012149977 A1 WO2012149977 A1 WO 2012149977A1
Authority
WO
WIPO (PCT)
Prior art keywords
software application
scenarios
structured data
scenario
action
Prior art date
Application number
PCT/EP2011/057187
Other languages
French (fr)
Inventor
Jean-Baptiste Briaud
Original Assignee
Novlog
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 Novlog filed Critical Novlog
Priority to PCT/EP2011/057187 priority Critical patent/WO2012149977A1/en
Publication of WO2012149977A1 publication Critical patent/WO2012149977A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Definitions

  • the present invention provides a method and system for generating a software application manipulating structured data.
  • a piece of data is elementary when it is directly represented by a key word of the programming language.
  • a structured data is composed of one or more elementary or structured data of the programming language.
  • a datum is elementary, when its type is defined in the generation system, and a structured datum is composed of one or more of these elementary or structured data.
  • An object of the present invention is to overcome these problems.
  • a method of generating a software application manipulating structured data based on a set of scenarios each corresponding to an action on a structured data manipulated by the software application.
  • the method comprises:
  • the present invention makes it possible to generate a software application directly from scenarios associated with manipulations of the structured data of the software application, which makes it possible to reduce the cost and the development time of the software application.
  • the software application is operational after the compilation step.
  • the action of a scenario may comprise steps each comprising an action performed on an element of the structured data handled by a scenario.
  • Each scenario acting on a given data does not necessarily describe steps comprising actions on all elements of the structured data.
  • a first scenario may correspond to a user adding a person to a database
  • this scenario includes a user adding a first name and a name in two stages. of the scenario.
  • a second scenario also corresponds to an addition of a person, but with two steps, an addition of a name and an addition of an address, then an automatic progression of the first scenario then of the second scenario makes it possible to determine that the data structured person refers to a name, a first name, and an address.
  • the obtaining of the structured data implements steps of deduction of said structured data during the course of the scenarios.
  • the structured data includes elementary data of type string for the first and last name but structured type for the address.
  • the generation of the software application comprises a generation of at least one user interface, at least one relational database schema capable of containing said structured data manipulated by the software application and at least one processing layer adapted to manipulate said data.
  • the user interface allows you to manipulate the scenario data.
  • the development of the complete specification includes a development of data relating to the screens of the at least one user interface to be generated, each scenario corresponding to a screen of said at least one user interface, and development of data relating to the processing layer able to manipulate said data.
  • Pre-compile source files can be formed from the full specification and a set of source file templates previously produced.
  • Source file templates are source files that contain elements to complete and have a predefined structure. Reading the complete specification developed automatically from the scenarios, through completion and deduction steps, will provide the information needed to complete the source file templates.
  • source file templates in Java language, for example by means of a source file template engine well known to those skilled in the art under the name of a template engine, such as, for example, Velocity. .
  • the actions on a structured data of the scenarios can be chosen in the group formed by the action to create, the action to read, the action to search, the action to update and the action to delete structured data.
  • Each scenario may further comprise a plurality of steps each corresponding to a manipulation of an element of the structured data handled by the scenario.
  • Each element can be an elementary datum or a structured datum by designating another scenario.
  • said structured data manipulated by the software application is obtained by means of a set of scenarios in which if an element of a structured data item appears in a scenario, it is added to the structured data item handled by the application. . If an element of a structured data has already been added to a structured data handled by the software application during the course of a first scenario and if said element appears during a course of a second scenario with a definition different then the definition of said element in the structured data manipulated by the application is chosen according to the two different definitions. Note that the definition of said element in the structured data handled by the application corresponds to the definition used for example in the generated database schema.
  • the name element is limited to fifty characters
  • the name element is limited. at forty characters, then we could for example, define the name element in the structured data handled by the software application, that is to say in the database schema, as being limited to fifty characters.
  • the two screens of the user interface corresponding to the two scenarios will respectively have fields name of 40 and 50 characters.
  • the whole of the intention expressed in the two scenarios is respected and the application generated, by means of the schema of the base, is able to handle a structured data Person with a Name compatible with the two screens produced.
  • the development of the complete specification of the application comprises at least one automatic verification step.
  • Each scenario of the set of scenarios can be associated with a category of users authorized to perform the action on a structured data of the scenario.
  • a user interface can be generated for each user category.
  • an external system may correspond to a category of user, for example to automate data manipulations by means of external systems.
  • the software application can be generated remotely, via a communication network.
  • the generated software application can be made available remotely by means of a communication network.
  • a user can, from a first terminal, send a set of scenarios to a remote generation platform, and once the application is generated, a second user can use the application from a second terminal.
  • a system for generating a software application manipulating structured data according to a set of scenarios each corresponding to an action on a structured data item manipulated by the software application.
  • the system includes:
  • means for automatically generating a complete specification of the software application according to said scenarios comprising means for traversing the set of scenarios and for completing said scenarios,
  • the generation system can be remotely disposed and accessible via a communication network.
  • the software application can be accessed remotely by means of a communication network.
  • FIG. 1 schematically illustrates a set of scenarios according to one aspect of the invention
  • FIG. 2 diagrammatically illustrates steps of a method according to an implementation mode according to the invention
  • FIG. 3 schematically illustrates a system according to one embodiment of the invention.
  • Figure 1 there is shown schematically a set of scenarios 1.
  • the set of scenarios 1 can be developed by a user, and includes the different cases of use of a software application to generate.
  • the set of scenarios 1 comprises a plurality of scenarios 2a, 2b and 2c, represented here in number of three.
  • Each scenario 2a, 2b or 2c has a title 3a, 3b or 3c.
  • Each title 3a, 3b or 3c must be unique. There can not be two scenarios with the same title. This title can for example be chosen by the user developing the scenarios.
  • Each scenario 2a, 2b or 2c has a type of action on a structured data item 4a, 4b or 4c, advantageously chosen from the set formed by the group formed by the action of creating, the action of reading, the action to search, the action of updating and the action of deleting a structured data.
  • These actions include those used to manipulate databases well known to those skilled in the art under the name of SQL.
  • the action indicates in particular the type of interface to be produced.
  • an interface for searching a structured data differs, for example, from an updating interface.
  • other types of actions may be used, for example actions defined within programming interfaces ("API: Application Programming Interface" in English).
  • the data handled 5a, 5b or 5c respectively by the scenarios 2a, 2b or 2c is also present in each scenario.
  • This manipulated data 5a, 5b or 5c corresponds to the name of a structured data item.
  • all the scenarios handling the structured data "person" will use the same name to describe this datum.
  • the scenario runs make it possible to obtain all the use cases relating to the same structured data.
  • a user category 6a, 6b or 6c is respectively registered.
  • the categories of users 6a, 6b or 6c may especially be categories of users authorized or not to implement the action of the scenario. Thus, some parts of the software application may be denied access to certain users. Thus, certain structured data elements can not, for example, be modified by certain categories of users, and certain screens of a user interface may be prohibited for certain categories of users.
  • Each scenario 2a, 2b or 2c here respectively comprises a plurality of steps 7a, 7b or 7c, these steps are interactions on the elements of the structured data handled by the scenario.
  • steps 7a, 7b or 7c are interactions on the elements of the structured data handled by the scenario.
  • two steps can be implemented, a step of adding a name and a step of adding a first name.
  • the path of such a scenario and more precisely of its stages allows to deduce that the structured data corresponding to a person contains a name and a first name.
  • Steps 7a, 7b or 7c may also have other parameters.
  • a cardinality that is to say the number of times that the step can be implemented during the course of the scenario. It is also possible to specify which constraints relate to a step.
  • the type of the element to which the step relates may be indicated, it is possible for example to use character strings, integers, booleans, and possibly types being structured data or else scenario titles.
  • a completion step may complete the step using the scenario on which the step is carried out. Courses of all the scenarios allowing to obtain all the information necessary for the completion.
  • each step 7a, 7b or 7c it is also possible, for each step 7a, 7b or 7c, to define a number of constraints on the element, for example the requirement to have a non-zero element (for example when adding an element). .
  • each step 7a, 7b or 7c may specify a user category, for example a user category 6a, 6b or 6c.
  • constraints are especially taken into consideration when generating user interfaces. Moreover, during the generation of the software application, it will be possible to verify that the constraints can be implemented. Thus, a scenario that can be implemented for two user categories may include steps that can be implemented for a single user category.
  • the scenarios s 2a, 2b and 2c as well as the pluralities of steps 7a, 7b and 7c may comprise other elements. It is possible to implement jumps from one scenario or step to another scenario. One can thus trigger a scenario from another scenario or step. The use of a single title per scenario is thus particularly advantageous.
  • jumps can be implemented with constraints. During the generation of the software application, it will be possible, for example, to check that the jumps are valid and that they relate to an existing scenario.
  • steps may correspond to fields on the screens of a user interface. These fields are characterized conventionally by constraints on the type of data used by the field.
  • the set of scenarios 1 may also include a set of data set by the user developing the scenarios.
  • a stage of a scenario may use such a set of fixed data, for example during a scenario of addition of person, in which the end user may have to make a choice on the civility of the person in question. choosing an item in the set set including for example the "Mrs., M. , Ms. " .
  • a user develops a set of scenarios, for example the set of scenarios 1 described above.
  • the user connects remotely, for example by means of a communication network, to a platform for generating a software application according to the invention.
  • the user can send his scenarios.
  • the scenarios are scanned automatically.
  • the scenarios are analyzed, the structured data appearing in these scenarios are analyzed, as well as the various elements forming the scenarios such as the steps, the structured data manipulated, the categories users.
  • Incomplete scenarios for example those related to other scenarios, are found in step E03.
  • the courses also allow to find the elements allowing to complete incomplete scenarios.
  • the paths make it possible to check if the possible jumps are realizable, to check if the types of elements of the structured data manipulated in the steps are known types (for example types known by a programming language) or if they are defined in another scenario, or to check if the constraints are feasible.
  • a step of completing the scenarios is then implemented (step E04).
  • This step can include completions of the scenarios in which a step relates to a scenario (said scenario is then copied into the step), structured data processing steps manipulated by the software application, steps of relationship building. hierarchical relationships between, for example, structured data, or other completion steps.
  • This completion step consists of using the results of step E03.
  • Step E03 makes it possible to determine which are the incomplete scenarios, and also which elements make it possible to complete these scenarios, for example by deduction. Copy steps are then implemented to complete the scenarios during step E04.
  • the definition of said element in the structured data manipulated by the application is chosen according to the two different definitions.
  • the structured data element manipulated by the application may have a definition, for example, the least restrictive Within a database schema generated, the definition of the element during the implementation of the scenario, that is to say on the screen corresponding to the scenario, will be that of the scenario.
  • Steps E03 and E04 can be implemented a plurality of times (BCL loop) so as to obtain in step E05 a complete specification of the software application to be generated.
  • This complete specification includes the set of scenarios 1 after completion steps, the structured data manipulated by the application, and screen data of at least one user interface of the software application and also data relating to the application. processing layer adapted to manipulate the structured data of the software application.
  • the data relating to the processing layer can notably describe the operation of a server, for example calls from the user interface to the server.
  • steps E03 and E04 can be stored in computer files.
  • source files are formed from this complete specification.
  • These source files can be Java files (for example a class for each structured data), j Javascript, XML and Bash files or other types of source files. It will be possible to use models of source files and for example the Velocity tool.
  • the source file templates are supplemented by the information obtained in steps E03 and E04.
  • the source files are compiled during the step E07 so as to obtain in particular a plurality of user interfaces 8, a database diagram 9, or a processing layer 10.
  • a system for generating a software application handling structured data comprises a generation platform 1 1 connected to the Internet communication network 12, and comprises a module input 13 of a set of scenarios 1, accessible from a terminal 14 via the Internet network 12.
  • the generation platform 1 1 comprises a system for generating the software application 15 as a function of the set of scenarios 1, and an instantaneous provisioning module 16 of the software application generated for the terminal 14 or another terminal 17, provided with a screen 1 8 and connected to said Internet network 12.
  • the module of input 13 comprises a graphical interface 19 displayable on a terminal, for example the terminal 14, via the internet network 12 and the screen 20 of the terminal 14.
  • the platform 1 1 comprises a storage module or memory 21 for storing the scenarios entered by a user by means of the terminal 14.
  • the generation platform 1 1 includes an authentication module 22 to authenticate the user, for example an identifier and a password, or by biometric data, and to allow the generation, use or modification of the software application. Thus, only authorized persons can have access to the generation, use or modification of the software application.
  • an authentication module 22 to authenticate the user, for example an identifier and a password, or by biometric data, and to allow the generation, use or modification of the software application. Thus, only authorized persons can have access to the generation, use or modification of the software application.
  • the generation system 15 comprises an automatic generation module 23 of a complete application specification and a compilation module 24 of said complete specification.
  • the automatic generation module can for example implement steps E03, E04 and E05, and the compilation module can for example implement steps E06 and E07.
  • the development modules 23 and compilation 24 can for example be made using a Java software application.
  • the means 23 for elaboration include, in particular, means for scripting and completion of the scenarios of to obtain a complete specification, for example contained in computer files. For example, it will be possible to use a set of scenarios formed according to the structure described above. Source files formed in a known programming language may also be formed by the means of production 23.
  • the compilation means 24 can, from a complete specification and in particular from a source file, generate a software application.
  • the platform 11 comprises a database 25 able to contain the structured data manipulated by the application, as well as a storage module of the generated software application 26.
  • the storage module 26 can be organized , for example in the form of a database, so as to be able to store a multitude of different software applications generated independently of each other.
  • the storage module 26 can store the different generated successive versions of a software application, as well as references making it possible to identify the scenarios of the storage module 21.
  • the storage module 26 can store the generated processing layer of the software application. It should be noted that it is possible to memorize the scenarios to generate the application only when it is used.
  • the generation platform 1 1 further comprises a transfer module 27 for transferring the software application generated to the terminal 14, via the internet communication network 12 or to the terminal 5 after authentication of the rights of the user. 'user.
  • the transfer module, or download may be replaced by the registration of the software application on a digital data medium, such as a CD or DVD.
  • the platform 11 may also comprise a parameterization module 28 making it possible to parameterize the generation of the software application of the execution platform on which the software application is executed.

Abstract

Method and corresponding system for generating a software application manipulating structured data. Method and corresponding system for generating a software application manipulating structured data, as a function of a set of scenarios each corresponding to an action on a structured data item manipulated by the software application, characterized in that it comprises: - automatic formulation of a complete specification of the software application as a function of said scenarios by means of at least one traversal (E03) of the set of scenarios and of at least one step of completion (E04) of said scenarios, - a compilation (E07) of said complete specification in such a way as to obtain a software application.

Description

Procédé et système correspondant de génération d'une application logicielle manipulant des données structurées  Method and system for generating a software application manipulating structured data
La présente invention porte sur un procédé et un système de génération d 'une application logicielle manipulant des données structurées. The present invention provides a method and system for generating a software application manipulating structured data.
Dans un langage de programmation, une donnée est élémentaire quand elle est directement représentée par un mot clé du langage de programmation. Par opposition, une donnée structurée est composée de une ou plusieurs données élémentaires ou structurées du langage de programmation.  In a programming language, a piece of data is elementary when it is directly represented by a key word of the programming language. In contrast, a structured data is composed of one or more elementary or structured data of the programming language.
Aussi, dans la présente invention, une donnée est élémentaire, quand son type est défini dans le système de génération, et une donnée structurée est composée de une ou plusieurs de ces données élémentaires ou structurées.  Also, in the present invention, a datum is elementary, when its type is defined in the generation system, and a structured datum is composed of one or more of these elementary or structured data.
Il existe de nombreux cycles de développement d 'une application logicielle, tels que les cycles de développement en cascade, de développement en V, ou encore des cycles de développement itératifs. Ces concepts de programmation ont permis une formalisation de niveau de plus en plus élevée des structures et des fonctions à implémenter. Il existe des langages de modélisation permettant de décrire ces structures et ces fonctions, ainsi que des générateurs de code, ou série d' instructions, permettant de produire automatiquement, dans un langage donné, une fonction ou structure modélisée. UML (« Unified Modeling Language ») est un exemple connu et de plus en plus répandu de langage de modélisation.  There are many software application development cycles, such as cascading development cycles, V development cycles, or iterative development cycles. These programming concepts have allowed a higher level formalization of the structures and functions to be implemented. There are modeling languages for describing these structures and functions, as well as code generators, or series of instructions, for automatically producing, in a given language, a function or modeled structure. UML ("Unified Modeling Language") is a known and increasingly common example of a modeling language.
A partir d'une telle modélisation, il est possible d' automatiser la production d' au moins une partie d'une application. Une fois l ' application mo délisée, les outils de génération de code permettent de générer les morceaux d' application concernés . Toutefois, aucun de ces procédés ou de ces systèmes de développement d'une application logicielle ne permet de s ' affranchir des causes principales d' échec de la réalisation d'une application logicielle, à savoir des besoins manquant de clarté, ou mal traduits lors de la modélisation de l ' application. En outre, le code applicatif produit doit être modifié manuellement et l ' application logicielle n' est donc pas opérationnelle après les étapes de génération automatique. From such modeling, it is possible to automate the production of at least a part of an application. Once the application is offline, the code generation tools are used to generate the relevant application pieces. However, none of these methods or systems for developing an application software does not allow to overcome the main causes of failure of the realization of a software application, ie needs unclear, or poorly translated during the modeling of the application. In addition, the product application code must be modified manually and the software application is not operational after the automatic generation steps.
Un but de la présente invention est de pallier ces problèmes . An object of the present invention is to overcome these problems.
Selon un aspect, il est proposé un procédé de génération d 'une application logicielle manipulant des données structurées, en fonction d'un ensemble de scénarii correspondant chacun à une action sur une donnée structurée manipulée par l ' app lication lo gicielle . In one aspect, there is provided a method of generating a software application manipulating structured data, based on a set of scenarios each corresponding to an action on a structured data manipulated by the software application.
Selon une caractéristique générale, le procédé comprend :  According to a general characteristic, the method comprises:
- une élaboration automatique d'une spécification complète de l ' application logicielle en fonction desdits scénarii au moyen d' au moins un parcours de l ' ensemble de scénarii et d' au moins une étape de complétion desdits scénarii,  an automatic elaboration of a complete specification of the software application according to said scenarios by means of at least one route of the set of scenarios and at least one stage of completion of said scenarios,
- une compilation de ladite spécification complète de manière à obtenir l ' application logicielle.  a compilation of said complete specification so as to obtain the software application.
Ainsi, la présente invention permet de générer une application logicielle directement à partir de scénarii associés à des manipulations des données structurées de l ' application logicielle, ce qui permet de réduire le coût et le temps de développement de l ' application logicielle. En outre, l' application logicielle est opérationnelle après l ' étape de compilation.  Thus, the present invention makes it possible to generate a software application directly from scenarios associated with manipulations of the structured data of the software application, which makes it possible to reduce the cost and the development time of the software application. In addition, the software application is operational after the compilation step.
L ' action d'un scénario peut comprendre des étapes comprenant chacune une action effectuée sur un élément de la donnée structurée manipulée par un scénario . Chaque scénario agissant sur une donnée ne décrit pas nécessairement des étapes comprenant des actions sur tous les éléments de la donnée structurée.  The action of a scenario may comprise steps each comprising an action performed on an element of the structured data handled by a scenario. Each scenario acting on a given data does not necessarily describe steps comprising actions on all elements of the structured data.
Ainsi, en parcourant l ' ensemble des scénarii, on peut par exemple obtenir par l ' ensemble des étapes, l ' ensemble des éléments qui forment une donnée structurée. Un parcours permet ainsi de compléter les scénarii. Les scénarii complétés, éventuellement après une pluralité d' étapes de parcours et de complétion, sont suffisant pour obtenir une spécification complète de l ' application logicielle ainsi que l ' application logicielle . Cette application logicielle est apte à mettre en œuvre tous les cas d'utilisation décrits par les scénarii. Thus, by traversing the set of scenarios, one can for example obtain by the set of stages, the set of elements that form a structured data. A course thus makes it possible to complete the scenarios. The scenarios completed, possibly after a plurality of stages of journey and completion, are sufficient to obtain a complete specification of the software application as well as the software application. This software application is able to implement all the use cases described by the scenarios.
A titre d' exemple non limitatif, un premier scénario peut correspondre à un ajout par un utilisateur d'une personne dans une base de données, ce scénario comprend un ajout par un utilisateur d 'un prénom et d'un nom lors de deux étapes du scénario . Si un deuxième scénario correspond également à un ajout d'une personne, mais avec deux étapes, un ajout d'un nom et un ajout d'une adresse, alors un parcours automatique du premier scénario puis du deuxième scénario permet de déterminer que la donnée structurée relative à une personne comprend un nom, un prénom, et une adresse.  As a nonlimiting example, a first scenario may correspond to a user adding a person to a database, this scenario includes a user adding a first name and a name in two stages. of the scenario. If a second scenario also corresponds to an addition of a person, but with two steps, an addition of a name and an addition of an address, then an automatic progression of the first scenario then of the second scenario makes it possible to determine that the data structured person refers to a name, a first name, and an address.
On notera que l 'obtention des données structurées met en œuvre des étapes de déduction desdites données structurées lors des parcours des scénarii.  It will be noted that the obtaining of the structured data implements steps of deduction of said structured data during the course of the scenarios.
Dans l ' exemple présenté ci-avant, les données structurées comprennent des données élémentaires de type chaîne de caractère pour le nom et le prénom mais de type structurée pour l ' adresse.  In the example presented above, the structured data includes elementary data of type string for the first and last name but structured type for the address.
La possibilité de générer l ' application logicielle à partir de scénarii dont les actions ne portent par exemple pas sur tous les éléments d'une donnée structurée permet de simplifier l ' élaboration des scénarii et d' obtenir un gain de temps. Par ailleurs, la réalisation de l ' application est simplifiée, car on s ' intéresse directement à ce que doit faire l ' application et non à comment elle doit le faire.  The possibility of generating the software application from scenarios whose actions do not relate for example to all the elements of a structured data makes it possible to simplify the development of the scenarios and to save time. On the other hand, the realization of the application is simplified because one is interested directly in what the application must do and not how it should do it.
Avantageusement, la génération de l ' application lo gicielle comprend une génération d' au moins une interface utilisateur, d' au moins un schéma de base de données relationnelle apte à contenir lesdites données structurées manipulées par l' application logicielle et d' au moins une couche de traitement apte à manipuler lesdites données.  Advantageously, the generation of the software application comprises a generation of at least one user interface, at least one relational database schema capable of containing said structured data manipulated by the software application and at least one processing layer adapted to manipulate said data.
L 'interface utilisateur permet de manipuler les données des scénarii.  The user interface allows you to manipulate the scenario data.
L ' élaboration de la spécification complète comprend une élaboration de données relatives aux écrans de ladite au moins une interface utilisateur à générer, chaque scénario correspondant à un écran de ladite au moins une interface utilisateur, et une élaboration de données relatives à la couche de traitement apte à manipuler lesdites données. The development of the complete specification includes a development of data relating to the screens of the at least one user interface to be generated, each scenario corresponding to a screen of said at least one user interface, and development of data relating to the processing layer able to manipulate said data.
On peut former préalablement à la compilation des fichiers sources à partir de la spécification complète et d'un ensemble de modèles de fichier source réalisés préalablement.  Pre-compile source files can be formed from the full specification and a set of source file templates previously produced.
Les modèles de fichier source sont des fichiers sources comprenant des éléments à compléter et possédant une structure prédéfinie . La lecture de la spécification complète élaborée automatiquement à partir des scénarii, par des étapes de complétion et de déduction, permettra d'obtenir les informations nécessaires pour compléter les modèles de fichier source.  Source file templates are source files that contain elements to complete and have a predefined structure. Reading the complete specification developed automatically from the scenarios, through completion and deduction steps, will provide the information needed to complete the source file templates.
On pourra par exemple utiliser des modèles de fichiers sources en langage Java, par exemple au moyen d'un moteur de modèles de fichiers sources bien connu de l 'homme du métier sous le nom de moteur de template, tel que, par exemple, Velocity.  For example, it is possible to use source file templates in Java language, for example by means of a source file template engine well known to those skilled in the art under the name of a template engine, such as, for example, Velocity. .
En outre, les actions sur une donnée structurée des scénarii peuvent être choisies dans le groupe formé par l ' action de créer, l ' action de lire, l ' action de rechercher, l ' action de mettre à jour et l ' action de supprimer une donnée structurée.  In addition, the actions on a structured data of the scenarios can be chosen in the group formed by the action to create, the action to read, the action to search, the action to update and the action to delete structured data.
Ces actions sont connues de l' homme du métier sous l ' acronyme anglais « CRUD : Create, Read (or Retrieve), Update, Delete » .  These actions are known to those skilled in the art under the acronym CRUD: Create, Read (or Retrieve), Update, Delete.
Chaque scénario peut comprendre en outre une pluralité d' étapes correspondant chacune à une manipulation d'un élément de la donnée structurée manipulée par le scénario . Chaque élément peut être une donnée élémentaire ou bien une donnée structurée en désignant un autre scénario .  Each scenario may further comprise a plurality of steps each corresponding to a manipulation of an element of the structured data handled by the scenario. Each element can be an elementary datum or a structured datum by designating another scenario.
Avantageusement, on obtient lesdites données structurées manipulées par l ' app lication logicielle au moyen de parcours de l ' ensemble des scénarii dans lesquels si un élément d'une donnée structurée apparaît dans un scénario il est rajouté à ladite donnée structurée manipulée par l ' application. Si un élément d'une donnée structurée a déj à été rajouté à une donnée structurée manipulée par l ' application logicielle lors du parcours d 'un premier scénario et si ledit élément apparaît au cours d'un parcours d 'un deuxième scénario avec une définition différente alors la définition dudit élément dans la donnée structurée manipulée par l ' application est choisie en fonction des deux définitions différentes. On notera que la définition dudit élément dans la donnée structurée manipulée par l ' application correspond à la définition utilisée par exemple dans le schéma de base de données généré. Advantageously, said structured data manipulated by the software application is obtained by means of a set of scenarios in which if an element of a structured data item appears in a scenario, it is added to the structured data item handled by the application. . If an element of a structured data has already been added to a structured data handled by the software application during the course of a first scenario and if said element appears during a course of a second scenario with a definition different then the definition of said element in the structured data manipulated by the application is chosen according to the two different definitions. Note that the definition of said element in the structured data handled by the application corresponds to the definition used for example in the generated database schema.
Bien entendu, lors de la mise en œuvre d'un des scénarii à travers un écran d 'une interface utilisateur, par l ' application logicielle, la définition de l ' élément sera celle du scénario .  Of course, when implementing one of the scenarios through a screen of a user interface, by the software application, the definition of the element will be that of the scenario.
Il est également possible d' avoir une pluralité de définitions différentes .  It is also possible to have a plurality of different definitions.
A titre d' exemple non limitatif, si dans un premier scénario manipulant une donnée structurée correspondant à une personne, l ' élément nom est limité à cinquante caractères, et si dans un deuxième scénario manipulant la même donnée structurée, l ' élément nom est limité à quarante caractères, alors on pourra par exemple, définir l ' élément nom dans la donnée structurée manipulée par l ' application logicielle, c'est-à-dire dans le schéma de base de données, comme étant limité à cinquante caractères. En revanche, les deux écrans de l' interface utilisateur correspondant aux deux scénarii auront respectivement des champs nom de 40 et 50 caractères.  As a nonlimiting example, if in a first scenario manipulating a structured data item corresponding to a person, the name element is limited to fifty characters, and if in a second scenario manipulating the same structured data, the name element is limited. at forty characters, then we could for example, define the name element in the structured data handled by the software application, that is to say in the database schema, as being limited to fifty characters. On the other hand, the two screens of the user interface corresponding to the two scenarios will respectively have fields name of 40 and 50 characters.
Ainsi, l ' ensemble de l' intention exprimée dans les deux scénarii est respectée et l ' application générée, par le truchement du schéma de la base, est capable de manipuler une donnée structurée Personne avec un Nom compatible avec les deux écrans produits.  Thus, the whole of the intention expressed in the two scenarios is respected and the application generated, by means of the schema of the base, is able to handle a structured data Person with a Name compatible with the two screens produced.
Avantageusement, l ' élaboration de la spécification complète de l ' application comprend au moins une étape de vérification automatique.  Advantageously, the development of the complete specification of the application comprises at least one automatic verification step.
Ainsi, il est par exemple possible de vérifier les types des données élémentaires ou encore la faisabilité d' éventuelles contraintes . Par exemple si deux scénarii manipulant une donnée correspondant à une personne comportent respectivement une définition du nom comme étant une chaîne de caractères et une définition du nom comme étant un chiffre, une alerte ou message d' erreur précis sera élaboré et l ' application ne sera pas générée ou bien sera générée en excluant cet élément. Thus, it is for example possible to check the types of elementary data or the feasibility of possible constraints. For example if two scenarios manipulating a given corresponding to a person respectively have a definition of the name as being a character string and a definition of the name as a number, a specific alert or error message will be developed and the application will not be generated or will be generated excluding this element.
Chaque scénario de l ' ensemble des scénarii peut être associé à une catégorie d'utilisateurs autorisés à effectuer l ' action sur une donnée structurée du scénario . Une interface utilisateur peut ainsi être générée pour chaque catégorie d'utilisateur.  Each scenario of the set of scenarios can be associated with a category of users authorized to perform the action on a structured data of the scenario. A user interface can be generated for each user category.
On notera qu'un système extérieur peut correspondre à une catégorie d'utilisateur, de manière par exemple à automatiser des manipulations de données au moyen de systèmes extérieurs .  Note that an external system may correspond to a category of user, for example to automate data manipulations by means of external systems.
L ' application logicielle peut être générée à distance, par l' intermédiaire d'un réseau de communication.  The software application can be generated remotely, via a communication network.
En outre, l' application logicielle générée peut être mise à disposition à distance au moyen d 'un réseau de communication.  In addition, the generated software application can be made available remotely by means of a communication network.
Ainsi, un utilisateur peut par exemp le, depuis un premier terminal, envoyer un ensemble de scénarii à une plate forme de génération disposée à distance, et une fois l ' application générée, un deuxième utilisateur peut utiliser ladite application depuis un deuxième terminal.  Thus, for example, a user can, from a first terminal, send a set of scenarios to a remote generation platform, and once the application is generated, a second user can use the application from a second terminal.
Selon un autre aspect, il est proposé un système de génération d'une application logicielle manipulant des données structurées, en fonction d 'un ensemble de scénarii correspondant chacun à une action sur une donnée structurée manipulée par l' application logicielle.  In another aspect, there is provided a system for generating a software application manipulating structured data, according to a set of scenarios each corresponding to an action on a structured data item manipulated by the software application.
Le système comprend :  The system includes:
- des moyens d' élaboration automatique d'une spécification complète de l ' application lo gicielle en fonction desdits scénarii comprenant des moyens de parcours de l ' ensemble des scénarii et de complétion desdits scénarii,  means for automatically generating a complete specification of the software application according to said scenarios comprising means for traversing the set of scenarios and for completing said scenarios,
- des moyens de compilation de ladite spécification complète aptes à générer l ' application logicielle.  means for compiling said complete specification capable of generating the software application.
Le système de génération peut être disposé à distance et être accessible par l 'intermédiaire d 'un réseau de communication. En outre, l ' application logicielle peut être accessible à distance au moyen d'un réseau de communication. The generation system can be remotely disposed and accessible via a communication network. In addition, the software application can be accessed remotely by means of a communication network.
D'autres avantages et caractéristiques de l'invention apparaîtront à l'étude de la description détaillée de modes de mise en œuvre et de réalisation, pris à titre d'exemples non limitatifs et illustrés par les dessins annexés sur lesquels :  Other advantages and features of the invention will become apparent upon studying the detailed description of embodiments and embodiments, taken by way of nonlimiting examples and illustrated by the appended drawings in which:
- la figure 1 illustre schématiquement un ensemble de scénarii selon un aspect de l ' invention,  - Figure 1 schematically illustrates a set of scenarios according to one aspect of the invention,
- la figure 2 illustre schématiquement des étapes d'un procédé selon un mode de mise en œuvre selon l' invention, et  FIG. 2 diagrammatically illustrates steps of a method according to an implementation mode according to the invention, and
- la figure 3 illustre schématiquement un système selon un mode de réalisation de l' invention.  - Figure 3 schematically illustrates a system according to one embodiment of the invention.
Sur la figure 1 , on a représenté schématiquement un ensemble de scénarii 1 . L ' ensemble de scénarii 1 peut être élaboré par un utilisateur, et comprend les différents cas d'utilisation d'une application logicielle à générer.  In Figure 1, there is shown schematically a set of scenarios 1. The set of scenarios 1 can be developed by a user, and includes the different cases of use of a software application to generate.
L ' ensemble de scénarii 1 comprend une pluralité de scénarii 2a, 2b et 2c, représentés ici au nombre de trois.  The set of scenarios 1 comprises a plurality of scenarios 2a, 2b and 2c, represented here in number of three.
Chaque scénario 2a, 2b ou 2c possède un titre 3 a, 3b ou 3 c. Chaque titre 3 a, 3b ou 3 c doit être unique. Il ne peut exister deux scénarii avec le même titre. Ce titre peut par exemple être choisi par l 'utilisateur élaborant les scénarii.  Each scenario 2a, 2b or 2c has a title 3a, 3b or 3c. Each title 3a, 3b or 3c must be unique. There can not be two scenarios with the same title. This title can for example be chosen by the user developing the scenarios.
Chaque scénario 2a, 2b ou 2c possède un type d' action sur une donnée structurée 4a, 4b ou 4c, avantageusement choisi dans l ' ensemble formé par le groupe formé par l' action de créer, l ' action de lire, l' action de rechercher, l ' action de mettre à jour et l ' action de supprimer une donnée structurée . Ces actions sont notamment celles utilisées pour manipuler les bases de données bien connues de l' homme du métier sous le nom de SQL. Lors de la génération de l ' application logicielle et notamment des interfaces utilisateur, l ' action indique notamment le type d'interface à produire. De manière classique, une interface de recherche d'une donnée structurée diffère par exemple d'une interface de mise à jour. On notera que d' autres types d' actions peuvent être utilisées, par exemple des actions définies au sein d' interfaces de programmation (« API : Application Programming Interface » en langue anglaise) . Each scenario 2a, 2b or 2c has a type of action on a structured data item 4a, 4b or 4c, advantageously chosen from the set formed by the group formed by the action of creating, the action of reading, the action to search, the action of updating and the action of deleting a structured data. These actions include those used to manipulate databases well known to those skilled in the art under the name of SQL. During the generation of the software application and in particular the user interfaces, the action indicates in particular the type of interface to be produced. In a conventional manner, an interface for searching a structured data differs, for example, from an updating interface. It will be noted that other types of actions may be used, for example actions defined within programming interfaces ("API: Application Programming Interface" in English).
La donnée manipulée 5 a, 5b ou 5 c respectivement par les scénarii 2a, 2b ou 2c est également présente dans chaque scénario . Cette donnée manipulée 5 a, 5b ou 5 c correspond au nom d'une donnée structurée. A titre d' exemple, tous les scénarii manipulant la donnée structurée « personne » utiliseront un même nom pour décrire cette donnée. Ainsi, lors de la génération de l ' application logicielle, les parcours de scénarii permettent d' obtenir toutes les cas d'utilisation portant sur une même donnée structurée.  The data handled 5a, 5b or 5c respectively by the scenarios 2a, 2b or 2c is also present in each scenario. This manipulated data 5a, 5b or 5c corresponds to the name of a structured data item. By way of example, all the scenarios handling the structured data "person" will use the same name to describe this datum. Thus, during the generation of the software application, the scenario runs make it possible to obtain all the use cases relating to the same structured data.
Dans chaque scénario 2a, 2b ou 2c, une catégorie d 'utilisateur 6a, 6b ou 6c est respectivement inscrite. Les catégories d'utilisateurs 6a, 6b ou 6c peuvent notamment être des catégories d'utilisateurs autorisés ou non à mettre en œuvre l ' action du scénario . Ainsi, certaines parties de l ' application lo gicielle peuvent être interdites d' accès à certains utilisateurs . Ainsi, certains éléments de données structurées ne peuvent par exemple pas être modifiés par certaines catégories d'utilisateurs, et certains écrans d 'une interface utilisateur peuvent être interdits à certaines catégories d'utilisateurs .  In each scenario 2a, 2b or 2c, a user category 6a, 6b or 6c is respectively registered. The categories of users 6a, 6b or 6c may especially be categories of users authorized or not to implement the action of the scenario. Thus, some parts of the software application may be denied access to certain users. Thus, certain structured data elements can not, for example, be modified by certain categories of users, and certain screens of a user interface may be prohibited for certain categories of users.
Chaque scénario 2a, 2b ou 2c comporte ici respectivement une pluralité d' étapes 7a, 7b ou 7c, ces étapes sont des interactions sur les éléments de la donnée structurée manipulée par le scénario . On notera qu' il est possible d' avoir un scénario sans étapes . Par exemple, lors d'un scénario d' ajout d 'une personne, deux étapes peuvent être mises en œuvre, une étape d' ajout d'un nom et une étape d' ajout d' un prénom. On notera que dans cet exemple, le parcours d'un tel scénario et plus précisément de ses étapes permet de déduire que la donnée structurée correspondant à une personne contient un nom et un prénom.  Each scenario 2a, 2b or 2c here respectively comprises a plurality of steps 7a, 7b or 7c, these steps are interactions on the elements of the structured data handled by the scenario. Note that it is possible to have a scenario without steps. For example, in a person adding scenario, two steps can be implemented, a step of adding a name and a step of adding a first name. Note that in this example, the path of such a scenario and more precisely of its stages allows to deduce that the structured data corresponding to a person contains a name and a first name.
Les étapes d'un scénario peuvent être ordonnées, par exemple successives . Les étapes 7a, 7b ou 7c peuvent également avoir d' autres paramètres. A titre d ' exemple, on peut associer à chaque étape une cardinalité, c'est-à-dire le nombre de fois que l ' étape peut être mise en œuvre lors du déroulement du scénario . On peut également préciser quelles sont les contraintes portant sur une étape. Le type de l ' élément sur lequel porte l ' étape peut être indiqué, on pourra par exemple utiliser les chaînes de caractère, les entiers, les booléens, et éventuellement des types étant des données structurées ou encore des titres de scénarios . The steps of a scenario can be ordered, for example successive. Steps 7a, 7b or 7c may also have other parameters. As an example, we can associate at each step a cardinality, that is to say the number of times that the step can be implemented during the course of the scenario. It is also possible to specify which constraints relate to a step. The type of the element to which the step relates may be indicated, it is possible for example to use character strings, integers, booleans, and possibly types being structured data or else scenario titles.
Si par exemple une étape porte sur un autre scénario , alors le scénario comportant cette étape peut être considéré comme incomplet. Lors de la génération de l' application logicielle, une étape de complétion peut permettre de compléter l ' étape en utilisant le scénario sur lequel l ' étape porte. Des parcours de l ' ensemble des scénarii permettant d 'obtenir l ' ensemble des informations nécessaires à la complétion.  If, for example, one step relates to another scenario, then the scenario comprising this step can be considered incomplete. During the generation of the software application, a completion step may complete the step using the scenario on which the step is carried out. Courses of all the scenarios allowing to obtain all the information necessary for the completion.
On peut également, pour chaque étape 7a, 7b ou 7c, définir un certain nombre de contraintes portant sur l ' élément, par exemple l'obligation d' avoir un élément non nul (par exemple lors d'un ajout d'un élément) .  It is also possible, for each step 7a, 7b or 7c, to define a number of constraints on the element, for example the requirement to have a non-zero element (for example when adding an element). .
En outre, on peut également, pour chaque étape 7a, 7b ou 7c préciser une catégorie d'utilisateur, par exemple une catégorie d'utilisateur 6a, 6b ou 6c.  In addition, it is also possible for each step 7a, 7b or 7c to specify a user category, for example a user category 6a, 6b or 6c.
Ces contraintes sont notamment prises en considération lors de la génération d' interfaces utilisateurs . Par ailleurs, lors de la génération de l ' application logicielle, on pourra vérifier que les contraintes peuvent être mises en œuvre . Ainsi, un scénario pouvant être mis en œuvre pour deux catégories d'utilisateur peut comprendre des étapes pouvant être mises en œuvre pour une seule catégorie d'utilisateur.  These constraints are especially taken into consideration when generating user interfaces. Moreover, during the generation of the software application, it will be possible to verify that the constraints can be implemented. Thus, a scenario that can be implemented for two user categories may include steps that can be implemented for a single user category.
Par ailleurs, une même étape peut apparaître dans différents scénarii.  In addition, the same step can appear in different scenarios.
Les scénario s 2a, 2b et 2c ainsi que les pluralités d' étapes 7a, 7b et 7c peuvent comprendre d' autres éléments. Il est possible de mettre en œuvre des sauts depuis un scénario ou une étape vers un autre scénario . On peut ainsi déclencher un scénario depuis un autre scénario ou une étape. L 'utilisation d'un titre unique par scénario est ainsi particulièrement avantageuse. The scenarios s 2a, 2b and 2c as well as the pluralities of steps 7a, 7b and 7c may comprise other elements. It is possible to implement jumps from one scenario or step to another scenario. One can thus trigger a scenario from another scenario or step. The use of a single title per scenario is thus particularly advantageous.
Bien entendu, ces sauts peuvent être mis en œuvre avec des contraintes . Lors de la génération de l ' application logicielle, on pourra par exemple vérifier que les sauts sont valides et qu' ils portent sur un scénario existant.  Of course, these jumps can be implemented with constraints. During the generation of the software application, it will be possible, for example, to check that the jumps are valid and that they relate to an existing scenario.
On notera que les étapes peuvent correspondre à des champs sur les écrans d'une interface utilisateur. Ces champs sont caractérisés de manière classique par des contraintes sur le type de données utilisées par le champ .  It should be noted that the steps may correspond to fields on the screens of a user interface. These fields are characterized conventionally by constraints on the type of data used by the field.
Enfin, l ' ensemble de scénarii 1 peut également comprendre un ensemble de données fixé par l 'utilisateur élaborant les scénarii. Une étape d'un scénario peut par exemple utiliser un tel ensemble de données fixe, par exemple lors d'un scénario d' ajout de personne, dans lequel l 'utilisateur final pourrait être amené à faire un choix sur la civilité de la personne en choisissant un élément dans l ' ensemble fixé comprenant par exemp le « Mme. , M . , Mlle. » .  Finally, the set of scenarios 1 may also include a set of data set by the user developing the scenarios. For example, a stage of a scenario may use such a set of fixed data, for example during a scenario of addition of person, in which the end user may have to make a choice on the civility of the person in question. choosing an item in the set set including for example the "Mrs., M. , Ms. " .
La structure des scénarii et des étapes décrite ci-avant permet avantageusement d' obtenir une application logicielle au moyen des différentes étapes du procédé selon l' invention.  The structure of the scenarios and steps described above advantageously makes it possible to obtain a software application by means of the various steps of the method according to the invention.
Sur la figure 2, on a représenté les étapes d'un procédé selon un mode de mise en œuvre selon l' invention.  In Figure 2, there is shown the steps of a method according to an embodiment of the invention.
Lors d 'une première étape E01 , un utilisateur élabore un ensemble de scénarii, par exemple l ' ensemble de scénarii 1 décrit ci- avant.  In a first step E01, a user develops a set of scenarios, for example the set of scenarios 1 described above.
Lors d'une deuxième étape E02, l 'utilisateur se connecte à distance, par exemple au moyen d 'un réseau de communication, à une plateforme de génération d'une application logicielle selon l' invention. L 'utilisateur peut ainsi envoyer ses scénarii.  During a second step E02, the user connects remotely, for example by means of a communication network, to a platform for generating a software application according to the invention. The user can send his scenarios.
Lors d'une étape E03 , les scénarii sont parcourus de manière automatique. Au cours de cette étape de parcours, les scénarii sont analysés, les données structurées apparaissant dans ces scénarii sont analysées, ainsi que les différents éléments formant les scénarii tels que les étapes, les données structurées manipulées, les catégories d'utilisateurs. Les scénarii semblants incomplets, par exemple ceux rattachés à d' autres scénarii, sont trouvés lors de l ' étape E03. Les parcours permettent également de trouver les éléments permettant de compléter des scénarii incomplets. Les parcours permettent de vérifier si les éventuels sauts sont réalisables, de vérifier si les types des éléments des données structurées manipulés dans les étapes sont des types connus (par exemple des types connus par un langage de programmation) ou alors s ' ils sont définis dans un autre scénario , ou encore de vérifier si les contraintes sont réalisables . During a step E03, the scenarios are scanned automatically. During this step of the journey, the scenarios are analyzed, the structured data appearing in these scenarios are analyzed, as well as the various elements forming the scenarios such as the steps, the structured data manipulated, the categories users. Incomplete scenarios, for example those related to other scenarios, are found in step E03. The courses also allow to find the elements allowing to complete incomplete scenarios. The paths make it possible to check if the possible jumps are realizable, to check if the types of elements of the structured data manipulated in the steps are known types (for example types known by a programming language) or if they are defined in another scenario, or to check if the constraints are feasible.
Une étape de complétion des scénarii est ensuite mise en œuvre (étape E04) . Cette étape peut comprendre des complétions des scénarii dans lesquels une étape porte sur un scénario (ledit scénario est alors copié dans l ' étape), des étapes d' élaboration des données structurées manipulée par l ' application logicielle, des étapes d' élaboration de relations hiérarchiques entre par exemple les données structurées, ou encore d' autres étapes de complétion.  A step of completing the scenarios is then implemented (step E04). This step can include completions of the scenarios in which a step relates to a scenario (said scenario is then copied into the step), structured data processing steps manipulated by the software application, steps of relationship building. hierarchical relationships between, for example, structured data, or other completion steps.
Cette étape de complétion consiste à utiliser les résultats de l ' étape E03. L ' étape E03 permet de déterminer quels sont les scénarii incomplets, et également quels sont les éléments permettant de compléter ces scénarii, par exemple par déduction. Des étapes de copie sont alors mise en œuvre pour compléter les scénarii au cours de l ' étape E04.  This completion step consists of using the results of step E03. Step E03 makes it possible to determine which are the incomplete scenarios, and also which elements make it possible to complete these scenarios, for example by deduction. Copy steps are then implemented to complete the scenarios during step E04.
Lors de l ' élaboration des données structurées manipulées par l ' application logicielle à générer, si un élément d'une donnée structurée apparaît dans un scénario il est rajouté à ladite donnée structurée manipulée par l ' application.  During the elaboration of the structured data manipulated by the software application to be generated, if an element of a structured data item appears in a scenario, it is added to the said structured data item handled by the application.
Si un élément d'une donnée structurée a déj à été rajouté à une donnée structurée manipulée par l ' application logicielle lors du parcours d 'un premier scénario et si ledit élément apparaît au cours d'un parcours d 'un deuxième scénario avec une définition différente alors la définition dudit élément dans la donnée structurée manipulée par l ' application est choisie en fonction des deux définitions différentes. Ainsi, l ' élément de la donnée structurée manipulée par l ' application peut avoir une définition par exemp le peu restrictive au sein d'un schéma de base de données généré, mais la définition de l ' élément lors de la mise en œuvre du scénario, c'est-à-dire sur l ' écran correspondant au scénario, sera celle du scénario . If an element of a structured data has already been added to a structured data handled by the software application during the course of a first scenario and if said element appears during a course of a second scenario with a definition different then the definition of said element in the structured data manipulated by the application is chosen according to the two different definitions. Thus, the structured data element manipulated by the application may have a definition, for example, the least restrictive Within a database schema generated, the definition of the element during the implementation of the scenario, that is to say on the screen corresponding to the scenario, will be that of the scenario.
Les étapes E03 et E04 peuvent être mises en œuvre une pluralité de fois (boucle BCL) de manière à obtenir lors de l ' étape E05 une spécification complète de l ' application logicielle à générer. Cette spécification complète comprend l ' ensemble de scénarii 1 après des étapes de complétion, les données structurées manipulées par l ' application, et des données relatives aux écrans d' au moins une interface utilisateur de l ' application logicielle et également des données relatives à la couche de traitement apte à manipuler les données structurées de l ' application logicielle.  Steps E03 and E04 can be implemented a plurality of times (BCL loop) so as to obtain in step E05 a complete specification of the software application to be generated. This complete specification includes the set of scenarios 1 after completion steps, the structured data manipulated by the application, and screen data of at least one user interface of the software application and also data relating to the application. processing layer adapted to manipulate the structured data of the software application.
Les données relatives à la couche de traitement peuvent notamment décrire le fonctionnement d'un serveur, par exemple les appels de l ' interface utilisateur vers le serveur.  The data relating to the processing layer can notably describe the operation of a server, for example calls from the user interface to the server.
On notera que les résultats des étapes E03 et E04 peuvent être stockés dans des fichiers informatiques .  Note that the results of steps E03 and E04 can be stored in computer files.
Enfin, lors de l ' étape E06, on forme des fichiers source à partir de cette spécification complète. L 'homme du métier saura choisir des moyens de formation de ces fichiers sources à partir de la spécification complète formée au cours de l ' étape E05. Ces fichiers sources peuvent être des fichiers Java (par exemple une classe pour chaque donnée structurée), des fichiers j avascript, XML et Bash ou encore d' autres types de fichiers sources. On pourra notamment utiliser des mo dèles de fichiers sources et par exemple l ' outil Velocity. Les modèles de fichier source sont complétés grâce aux informations obtenues lors des étapes E03 et E04.  Finally, in step E06, source files are formed from this complete specification. Those skilled in the art will be able to choose means for forming these source files from the complete specification formed during the step E05. These source files can be Java files (for example a class for each structured data), j Javascript, XML and Bash files or other types of source files. It will be possible to use models of source files and for example the Velocity tool. The source file templates are supplemented by the information obtained in steps E03 and E04.
Les fichiers sources sont compilés au cours de l ' étape E07 de manière à obtenir notamment une pluralité d' interfaces utilisateurs 8 , un schéma de base de données 9, ou encore une couche de traitement 10.  The source files are compiled during the step E07 so as to obtain in particular a plurality of user interfaces 8, a database diagram 9, or a processing layer 10.
D ' autres éléments peuvent être générés par l ' application, notamment des éléments permettant de tester l ' application. Tel qu' illustré sur la figure 3 , un système de génération d'une application logicielle manipulant des données structurées selon un aspect de l ' invention comprend une plate-forme de génération 1 1 reliée au réseau de communication Internet 12, et comprend un module d' entrée 13 d 'un ensemble de scénarii 1 , accessible depuis un terminal 14 par l 'intermédiaire du réseau Internet 12. La plate-forme de génération 1 1 comprend un système de génération de l ' application logicielle 15 en fonction de l ' ensemble de scénarii 1 , ainsi qu'un module de mise à disposition instantanée 16 de l' application logicielle générée pour le terminal 14 ou un autre terminal 17, muni d'un écran 1 8 et relié audit réseau Internet 12. Le module d' entrée 13 comprend une interface graphique 19 affichable sur un terminal, par exemple le terminal 14, par l ' intermédiaire du réseau internet 12 et de l ' écran 20 du terminal 14. Other elements can be generated by the application, including elements to test the application. As illustrated in FIG. 3, a system for generating a software application handling structured data according to one aspect of the invention comprises a generation platform 1 1 connected to the Internet communication network 12, and comprises a module input 13 of a set of scenarios 1, accessible from a terminal 14 via the Internet network 12. The generation platform 1 1 comprises a system for generating the software application 15 as a function of the set of scenarios 1, and an instantaneous provisioning module 16 of the software application generated for the terminal 14 or another terminal 17, provided with a screen 1 8 and connected to said Internet network 12. The module of input 13 comprises a graphical interface 19 displayable on a terminal, for example the terminal 14, via the internet network 12 and the screen 20 of the terminal 14.
La plate-forme 1 1 comprend un module de mémorisation ou mémoire 21 pour mémoriser les scénarii 1 entrés par un utilisateur au moyen du terminal 14.  The platform 1 1 comprises a storage module or memory 21 for storing the scenarios entered by a user by means of the terminal 14.
En outre, la plate-forme de génération 1 1 comprend un module d' authentification 22 pour authentifier l 'utilisateur, par exemp le un identifiant et un mot de passe, ou par données biométriques, et permettre la génération, l 'utilisation ou la modification de l ' application logicielle . Ainsi, seules les personnes autorisées peuvent avoir accès à la génération, l'utilisation ou la modification de l ' application logicielle.  In addition, the generation platform 1 1 includes an authentication module 22 to authenticate the user, for example an identifier and a password, or by biometric data, and to allow the generation, use or modification of the software application. Thus, only authorized persons can have access to the generation, use or modification of the software application.
Le système de génération 15 comprend un module d ' élaboration automatique 23 d'une spécification complète de l ' application et un module de compilation 24 de ladite spécification complète.  The generation system 15 comprises an automatic generation module 23 of a complete application specification and a compilation module 24 of said complete specification.
Le module d' élaboration automatique peut par exemp le mettre en œuvre les étapes E03 , E04 et E05 , et le module de compilation peut par exemple mettre en œuvre les étapes E06 et E07.  The automatic generation module can for example implement steps E03, E04 and E05, and the compilation module can for example implement steps E06 and E07.
Les modules d' élaboration 23 et de compilation 24 peuvent par exemple être réalisés au moyen d'une application logicielle Java.  The development modules 23 and compilation 24 can for example be made using a Java software application.
Les moyens d' élaboration 23 comprennent notamment des moyens de parcours de scénarii et de complétion des scénarii de manière à obtenir une spécification complète, par exemple contenue dans des fichiers informatiques. On pourra par exemple utiliser un ensemble de scénarii formés selon la structure décrite ci-avant. Des fichiers sources formés dans un langage de programmation connu peuvent également être formés par les moyens d' élaboration 23. The means 23 for elaboration include, in particular, means for scripting and completion of the scenarios of to obtain a complete specification, for example contained in computer files. For example, it will be possible to use a set of scenarios formed according to the structure described above. Source files formed in a known programming language may also be formed by the means of production 23.
Les moyens de compilation 24 peuvent, à partir d 'une spécification complète et notamment à partir de fichier sources, générer une application logicielle.  The compilation means 24 can, from a complete specification and in particular from a source file, generate a software application.
En outre, la plate-forme 1 1 comprend une base de données 25 apte à contenir les données structurées manipulées par l ' application, ainsi qu'un module de mémorisation de l ' application logicielle générée 26. Le module de mémorisation 26 peut être organisé, par exemple sous forme de base de données, de manière à pouvoir mémoriser une multitude d' applications logicielles diverses générées indépendamment les unes des autres. Le module de mémorisation 26 peut mémoriser les différentes versions successives générées d'une application lo gicielle, ainsi que des références permettant d' identifier les scénarii du module de mémorisation 21 . En outre, le module de mémorisation 26 peut mémoriser la couche de traitement générée de l ' application logicielle. On notera qu' il est possible de mémoriser les scénarii pour générer l ' application uniquement lors de son utilisation.  In addition, the platform 11 comprises a database 25 able to contain the structured data manipulated by the application, as well as a storage module of the generated software application 26. The storage module 26 can be organized , for example in the form of a database, so as to be able to store a multitude of different software applications generated independently of each other. The storage module 26 can store the different generated successive versions of a software application, as well as references making it possible to identify the scenarios of the storage module 21. In addition, the storage module 26 can store the generated processing layer of the software application. It should be noted that it is possible to memorize the scenarios to generate the application only when it is used.
La p late-forme de génération 1 1 comprend, en outre, un module de transfert 27 pour transférer l ' application logicielle générée au terminal 14, par l 'intermédiaire du réseau de communication internet 12 ou au terminal 5 après authentification des droits de l'utilisateur. En variante, le module de transfert, ou de téléchargement, peut être remplacé par l ' inscription de l ' application logicielle sur un support de données numériques, tel qu'un CD ou un DVD .  The generation platform 1 1 further comprises a transfer module 27 for transferring the software application generated to the terminal 14, via the internet communication network 12 or to the terminal 5 after authentication of the rights of the user. 'user. Alternatively, the transfer module, or download, may be replaced by the registration of the software application on a digital data medium, such as a CD or DVD.
La plate forme 1 1 peut également comprendre un module de paramétrage 28 permettant de paramétrer la génération de l ' application logicielle de la plate-forme d' exécution sur laquelle est exécutée l ' application logicielle.  The platform 11 may also comprise a parameterization module 28 making it possible to parameterize the generation of the software application of the execution platform on which the software application is executed.
Grâce à l ' invention, on peut générer une application logicielle manipulant des données structurées et ce au moyen de scénarii, c'est-à- dire une description semblant être incomplète de l ' application logicielle à générer. Thanks to the invention, it is possible to generate a software application manipulating structured data by means of scenarios, that is to say say a description appearing to be incomplete of the software application to be generated.
Selon un aspect de l 'invention, on pourra obtenir des applications logicielles de gestion commerciale, de gestion de la relation client, de gestion des ventes, des devis, des bons de commande.  According to one aspect of the invention, it will be possible to obtain software applications for commercial management, customer relationship management, sales management, quotes, purchase orders.
On peut également former des applications de gestion des ressources humaines ou encore un lo giciel comprenant l ' ensemble des modules mentionnés ci-avant.  It is also possible to form human resource management applications or a software package comprising all the modules mentioned above.

Claims

REVENDICATIONS
1 . Procédé de génération d'une application logicielle manipulant des données structurées, en fonction d'un ensemble de scénarii ( 1 ) correspondant chacun à une action sur une donnée structurée manipulée par l ' application logicielle, caractérisé en ce qu'il comprend : 1. A method of generating a software application manipulating structured data, according to a set of scenarios (1) each corresponding to an action on a structured data item manipulated by the software application, characterized in that it comprises:
- une élaboration automatique d'une spécification complète de l ' application lo gicielle en fonction desdits scénarii ( 1 ) au moyen d ' au moins un parcours (E03) de l ' ensemble de scénarii et d' au moins une étape de complétion (E04) desdits scénarii,  an automatic elaboration of a complete specification of the software application according to said scenarios (1) by means of at least one path (E03) of the set of scenarios and at least one completion step (E04). ) said scenarios,
- une compilation (E07) de ladite spécification complète de manière à obtenir l ' application logicielle.  - a compilation (E07) of said complete specification so as to obtain the software application.
2. Procédé selon la revendication 1 , dans lequel la génération de l ' application logicielle comprend une génération d' au moins une interface utilisateur (8), d' au moins un schéma de base de données relationnelle (9) apte à contenir lesdites données structurées manipulées par l ' application logicielle et d ' au moins une couche de traitement ( 10) apte à manipuler lesdites données .  2. Method according to claim 1, wherein the generation of the software application comprises a generation of at least one user interface (8), at least one relational database schema (9) adapted to contain said data. structured structures manipulated by the software application and at least one processing layer (10) adapted to manipulate said data.
3. Procédé selon la revendication 2, dans lequel l ' élaboration de la spécification complète comprend une élaboration de données relatives aux écrans de ladite au moins une interface utilisateur à générer, chaque scénario correspondant à un écran de ladite au mo ins une interface utilisateur, et une élaboration de données relatives à la couche de traitement apte à manipuler lesdites données .  3. Method according to claim 2, in which the elaboration of the complete specification comprises an elaboration of data relating to the screens of said at least one user interface to be generated, each scenario corresponding to a screen of said at least one user interface, and developing data relating to the processing layer adapted to manipulate said data.
4. Procédé selon l 'une quelconque des revendications précédentes, comprenant préalablement à la compilation une formation (E06) de fichiers sources à partir de la spécification complète et d'un ensemble de modèles de fichier source réalisés préalablement.  4. A method according to any one of the preceding claims, comprising, prior to the compilation, a training (E06) of source files from the complete specification and a set of source file templates previously produced.
5. Procédé selon l 'une quelconque des revendications 1 à 4 , dans lequel les actions sur une donnée structurée (4a, 4b, 4c) des scénarii sont choisis dans le groupe formé par l ' action de créer, l'action de lire, l'action de rechercher, l'action de mettre à jour et l'action de supprimer une donnée structurée. 5. Method according to any one of claims 1 to 4, wherein the actions on a structured data (4a, 4b, 4c) scenarios are selected from the group formed by the action of creating, the action of reading, the action of searching, the action of updating and the action of deleting structured data.
6. Procédé selon la revendication 5, dans lequel chaque scénario comprend en outre une pluralité d'étapes correspondant chacune à une manipulation d'un élément de la donnée structurée manipulée par le scénario.  6. The method of claim 5, wherein each scenario further comprises a plurality of steps each corresponding to a manipulation of an element of the structured data handled by the scenario.
7. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel on obtient lesdites données structurées manipulées par l'application logicielle au moyen de parcours de l'ensemble des scénarii dans lesquels si un élément d'une donnée structurée apparaît dans un scénario il est rajouté à ladite donnée structurée manipulée par l'application logicielle.  7. Method according to any one of claims 1 to 6, wherein one obtains said structured data manipulated by the software application by means of a set of scenarios in which if an element of a structured data appears in a scenario it is added to said structured data handled by the software application.
8. Procédé selon la revendication 7, dans lequel si un élément d'une donnée structurée a déjà été rajouté à une donnée structurée manipulée par l'application logicielle lors du parcours d'un premier scénario et si ledit élément apparaît au cours du parcours d'un deuxième scénario avec une définition différente alors la définition dudit élément dans la donnée structurée manipulée par l'application est choisie en fonction des deux définitions différentes.  8. The method of claim 7, wherein if an element of a structured data has already been added to a structured data handled by the software application during the course of a first scenario and if said element appears during the course of a second scenario with a different definition then the definition of said element in the structured data handled by the application is chosen according to the two different definitions.
9. Procédé selon l'une quelconque des revendications 1 à 8, dans lequel l'élaboration de la spécification complète de l'application comprend au moins une étape de vérification automatique.  The method of any one of claims 1 to 8, wherein the development of the full application specification comprises at least one automatic verification step.
10. Procédé selon l'une quelconque des revendications 1 à 9, dans lequel chaque scénario de l'ensemble des scénarii est associé à une catégorie d'utilisateurs (6a, 6b, 6c) autorisés à effectuer l'action sur une donnée structurée du scénario.  10. Method according to any one of claims 1 to 9, wherein each scenario of the set of scenarios is associated with a category of users (6a, 6b, 6c) authorized to perform the action on a structured data of scenario.
11. Procédé selon l'une quelconque des revendications 1 à 10, dans lequel l'application logicielle est générée à distance, par l'intermédiaire d'un réseau de communication (12).  11. The method according to any one of claims 1 to 10, wherein the software application is generated remotely, via a communication network (12).
12. Procédé selon la revendication 11, dans lequel l'application logicielle générée est mise à disposition à distance au moyen d'un réseau de communication (12).  The method of claim 11, wherein the generated software application is remotely provided by means of a communication network (12).
13. Système de génération d'une application logicielle manipulant des données structurées, en fonction d'un ensemble de scénarii (1) correspondant chacun à une action sur une donnée structurée manipulée par l'application logicielle, caractérisé en ce qu'il comprend : 13. System for generating a software application manipulating structured data, according to a set of Scenarios (1) each corresponding to an action on a structured data item manipulated by the software application, characterized in that it comprises:
des moyens d'élaboration (23) automatique d'une spécification complète de l'application logicielle en fonction desdits scénarii comprenant des moyens de parcours de l'ensemble des scénarii et de complétion desdits scénarii,  means for automatically developing (23) a complete specification of the software application according to said scenarios comprising means for traversing the set of scenarios and for completing said scenarios,
- des moyens de compilation (24) de ladite spécification complète aptes à générer l'application logicielle.  - Compilation means (24) of said complete specification capable of generating the software application.
14. Système selon la revendication 13, dans lequel le système de génération est disposé à distance et est accessible par l'intermédiaire d'un réseau de communication (12).  The system of claim 13, wherein the generation system is remotely located and is accessible through a communication network (12).
15. Système selon la revendication 14, dans lequel l'application logicielle est accessible à distance au moyen d'un réseau de communication (12).  The system of claim 14, wherein the software application is remotely accessible by means of a communication network (12).
PCT/EP2011/057187 2011-05-05 2011-05-05 Method and corresponding system for generating a software application manipulating structured data WO2012149977A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2011/057187 WO2012149977A1 (en) 2011-05-05 2011-05-05 Method and corresponding system for generating a software application manipulating structured data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2011/057187 WO2012149977A1 (en) 2011-05-05 2011-05-05 Method and corresponding system for generating a software application manipulating structured data

Publications (1)

Publication Number Publication Date
WO2012149977A1 true WO2012149977A1 (en) 2012-11-08

Family

ID=44118987

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2011/057187 WO2012149977A1 (en) 2011-05-05 2011-05-05 Method and corresponding system for generating a software application manipulating structured data

Country Status (1)

Country Link
WO (1) WO2012149977A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000976A1 (en) * 2007-06-22 2008-12-31 Jean-Baptiste Briaud System and method for automatically generating a software application

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000976A1 (en) * 2007-06-22 2008-12-31 Jean-Baptiste Briaud System and method for automatically generating a software application

Similar Documents

Publication Publication Date Title
FR2888018A1 (en) METHOD AND SYSTEM FOR REALIZING A VIRTUAL DATABASE FROM DATA SOURCES HAVING HETEROGENEOUS SCHEMES
EP1096394A1 (en) System and procedure utilizing an LDAP directory service for administrating the persistence of EJB components
JP2006190261A (en) Prescribed navigation using topology metadata and navigation path
WO2010009996A1 (en) Method for compiling a computer program
EP1387261A1 (en) Application software generation and language for software description
FR2909198A1 (en) Electronic document's element i.e. node, filtering method for e.g. microcomputer, involves evaluating expression on document data base according to evaluation mode identification information of expression
EP0804771A1 (en) Administrative interface for a database in a distributed computer environment
Gilmore Beginning PHP and MySQL 5: From novice to professional
FR2931274A1 (en) METHOD OF MANAGING DATA FOR WORKSHOP ORIENTED COLLABORATIVE SERVICE
WO2006040473A2 (en) Device for processing formally defined data
FR2931272A1 (en) Export import method for e.g. software and system engineering formal data, involves transferring data exchange file towards computer to export data, and suppressing data in database and links and removing data in database to import data
EP2281271A1 (en) Method for process management in a collaborative service-oriented workshop
WO2008043392A1 (en) Information processing method
WO2012149977A1 (en) Method and corresponding system for generating a software application manipulating structured data
EP1262867A1 (en) Method of implementing a plurality of object interfaces
EP3171284A1 (en) Method for updating a record in a database by a data processing device
Schroer et al. A context metadata collection and management tool for computational photography projects
EP2171577A1 (en) System and method for automatically generating a software application
FR3102594A1 (en) Application generation set, associated method and program
FR3087916A1 (en) CORRESPONDING SOURCE CODE PROCESSING METHOD, DEVICE, SYSTEM AND PROGRAM
WO2010103247A1 (en) Methods and devices for updating a client/server application without a client-side application restart
WO2005013145A2 (en) Method enabling a user to develop computer-based applications applied to qualified data in a data management system
FR3115624A1 (en) TRAINING DATA ANNOTATION METHOD
FR3108747A1 (en) A method of managing a digital file describing a data model, a method of using such a file by client equipment, devices, server equipment, client equipment, system and corresponding computer programs.
Strack Meteor Cookbook

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11722353

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: CONSTATATION DE LA PERTE D UN DROIT CONFORMEMENT A LA REGLE 112(1) CBE (OEB FORM 1205A EN DATE DU 07/02/2014)

122 Ep: pct application non-entry in european phase

Ref document number: 11722353

Country of ref document: EP

Kind code of ref document: A1