Method and device for automatically generating computer instructions
Patent Information
- Application Number
- EP2023748220
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-03-17
- Filing Date
- 2023-07-11
- Publication Date
- 2025-05-21
AI Technical Summary
Current low-code approaches for software development require specialized skills for optimized deployment and operation, leading to potential malfunctions, high resource consumption, and lack of modularity, limiting their ability to generate standardized software.
A method and device for automatically generating computer instructions that optimize software for execution contexts, allowing users to define entities, data structures, and processing, and automatically generate instructions tailored to specific or standardized software, enabling technical adaptation and modular deployment across various environments.
Enables users to create and deploy software without extensive programming skills, optimizing resource usage and allowing for modular, context-specific software generation, reducing the risk of malfunctions and enhancing scalability.
Smart Images

Figure 1.1
Abstract
Description
[0001] DESCRIPTION
[0002] TITLE OF THE INVENTION: METHOD AND DEVICE FOR AUTOMATICALLY GENERATING COMPUTER INSTRUCTIONS
[0003] Technical field of the invention
[0004] The present invention relates to a method for automatically generating computer instructions and a device for automatically generating computer instructions. It applies, in particular, to the field of automatic generation of computer software.
[0005] State of the art
[0006] In the field of computer programming, there are two types of software: so-called "specific" software, i.e. software designed to be deployed only once, and so-called "standardized" software, i.e. software designed to be deployed repeatedly and which may include customization elements.
[0007] Today, computer programming requires specialized skills that restrict individuals' ability to create software for their needs.
[0008] There are so-called "no-code" approaches, which require no programming skills and allow the creation of specific software. In these approaches, a user defines objects and interactions between these objects through a graphical interface allowing the conversion of these defined interactions into computer instructions through a converter.
[0009] Beyond the generation of such software, the optimized deployment and operation of such software is beyond the reach of operators lacking the appropriate technical skills. However, an inappropriate deployment can lead to technical malfunctions of the software, or even its shutdown.
[0010] However, these approaches have several significant technical disadvantages: their execution may be unsuitable for their deployment and execution hardware environment, leading to malfunctions of this hardware, their consumption of logical resources (memory) for deployment and execution may be high due to this unsuitability, their consumption of physical resources (electricity) for deployment and execution may be high due to this unsuitability and their lack of modularity does not allow the generation of standardized software.
[0011] In particular, the system as described in document US 2021 / 149648 is known. Such a system offers a user the option of selecting a programming language and a use case for a software program. This choice results in the selection of a pre-established template and the generation of the corresponding code. The user then enters computer code to be injected, corresponding to a desired business logic, this computer code being inserted directly into the generated model. Such a system is called "low-code" (which can be translated as "software with low programming intensity"), that is to say software in which the main structure of the code is pre-generated and with which a user interacts only marginally by adapting the structure to a use case (corresponding to a business logic). Such systems make it possible to generate standardized software from choices initially made by a user.
[0012] Subject of the invention
[0013] The present invention aims to remedy all or part of these drawbacks.
[0014] To this end, according to a first aspect, the present invention relates to a computer-implemented method for automatically generating instructions configured to be stored in a computer-readable storage medium and to be executed by at least one computer processor, which comprises: a step of entering, on a computer interface, at least: a computer entity definition, a data structure associated with the computer entities and a software processing of at least one computer entity, a step of selecting, on a computer interface, an execution context for the instructions, a step of automatically generating, by a computing device, instructions as a function of the result of the entry step and the selected execution context and a step of storing the instructions, by a computing device, of the generated instructions.Thanks to these provisions, the generated instructions, forming a standardized or specific software, are technically optimized for their execution context. This advantage allows the technical adaptation of the software and the same entry can thus give rise to several distinct sets of instructions, each corresponding to an execution context of these instructions. This substantially modifies the operation of the ordinary development-deployment-execution system, in which the instructions to be executed are directly developed and either not optimized or entered manually.
[0015] The implementation of the method which is the subject of the present invention makes it possible to define, generate, deploy and operate one or more software programs.
[0016] In optional embodiments, the method which is the subject of the present invention comprises: a step of entering, on a computer interface, a value representative of a deployment environment of the generated instructions and a step of automatically providing, by a calculation device, instructions for deploying the generated instructions as a function of the value representative of a deployment environment entered.
[0017] These embodiments allow for the optimization of automatically generated instructions for the execution context as well as the execution computing environment.
[0018] In optional embodiments, the method which is the subject of the present invention comprises a step of automatic deployment, by a computing device, of the instructions generated according to the deployment instructions provided.
[0019] These embodiments allow for the optimization of automatically generated instructions for the execution context as well as the execution computing environment.
[0020] In optional embodiments, the generation step comprises a model enrichment step, by a calculation device, carried out according to the result of the input step. Such an enrichment step makes it possible to facilitate the generation of instructions by automatically constituting variable or table names for example.
[0021] In optional embodiments, the generation step comprises: a first step of generation, by a computing device, of execution instructions on a computer as a function of the result of the input step and the selected execution context and a second step of generation, by a computing device, of execution instructions on a mobile device as a function of the result of the input step and the selected execution context.
[0022] These embodiments make it possible to optimize the execution of the computer program generated for desktop computers, fixed or mobile, and for mobile devices, such as smartphones or tablets, for example.
[0023] In optional embodiments, the method which is the subject of the present invention comprises: a step of modification, on a computer interface, of at least: a definition of a computer entity, a data structure associated with the computer entities and / or a software processing of at least one computer entity and a step of automatic generation, by a calculation device, of the modified instructions according to the result of the modification step and the selected execution context and a step of storage of the instructions, by a calculation device, of the modified instructions.
[0024] These embodiments make it possible to optimize the instructions generated during an update of these instructions by a user.
[0025] In optional embodiments, the method which is the subject of the present invention comprises a step of automatically constituting, by a calculation device, upgrade instructions based on the modified instructions generated.
[0026] These embodiments allow the automation of the upgrade of software already deployed in execution environments.
[0027] In optional embodiments, the method which is the subject of the present invention comprises a step of upgrading, by a computing device, instructions deployed in a selected deployment environment, as a function of the upgrade instructions constituted.
[0028] These embodiments allow the automation of the upgrade of software already deployed in execution environments.
[0029] In optional embodiments, the method which is the subject of the present invention comprises a step of automatic detection of a change in version of a library of functions implemented during a step of generation of instructions, the automatic generation step being carried out as a function of the detected change.
[0030] These embodiments allow all generated software to be updated automatically without the need for operator action.
[0031] According to a second aspect, the present invention relates to a computer-implemented method for automatically generating an application environment comprising at least two software programs, each software program being formed of instructions configured to be stored in a storage medium readable by a computer and to be executed by at least one computer processor which comprises: a step of entering, on a computer interface, at least: a common computer entity definition, a common data structure associated with the computer entities and a common software processing of at least one computer entity, a step of selecting, on a computer interface, at least two distinct contexts for executing the instructions, a step of automatic generation, by a computing device, for at least two said software programs,of instructions based on the result of the input step and at least two selected execution contexts and a step of storing the instructions, by a computing device, for each software, of the generated instructions.,
[0032] Thanks to these provisions, an application ecosystem can be automatically generated. This ecosystem can thus implement common entities, common data structures and software processing adapted to distinct application contexts. As a result of these provisions, the software thus generated implements the same data definition.
[0033] Furthermore, thanks to these provisions, the present invention makes it possible to obtain isolation between the functional part of the software definition and the technological implementation of the generation of instructions. It is thus possible to change the technology of generation of instructions, or even the language or library of functions ("framework", in English), hereinafter called "framework", without compromising the operation of the generated software or the means carrying out the input step.
[0034] In optional embodiments, the method which is the subject of the present invention comprises: a step of modification, on a computer interface, of at least: a common computer entity definition, a common data structure associated with the computer entities and / or a software processing of at least one computer entity and a step of automatic generation, by a calculation device, for at least two said software programs, of the modified instructions according to the result of the modification step and the selected execution context and a step of storage of the instructions, by a calculation device, for each software program, of the generated instructions.
[0035] According to a third aspect, the present invention relates to a device for automatically generating instructions configured to be stored in a storage medium readable by a computer and to be executed by at least one computer processor, which comprises: a means for entering, on a computer interface, at least: a definition of a computer entity, a data structure associated with the computer entities and a software processing of at least one computer entity, a means for selecting, on a computer interface, a context for executing the instructions, a means for automatically generating, by a calculation device, instructions as a function of information entered by the entry means and the selected execution context, which comprises, for each said software, a step of filtering the entered entities as a function of the selected execution context associated with the software and a means for storing the instructions, by a calculation device,generated instructions.,
[0036] This second aspect has the same advantages as the method which is the subject of the first aspect of the present invention.
[0037] Brief description of the figures
[0038] Other advantages, aims and particular characteristics of the invention will emerge from the following non-limiting description of at least one particular embodiment of the method and device which are the subject of the present invention, with reference to the appended drawings, in which:
[0039] Figure 1 represents, schematically and in the form of a flowchart, a first particular succession of steps of the method which is the subject of the present invention.
[0040] Fig. 2 schematically represents a particular embodiment of the device which is the subject of the present invention,
[0041] Figure 3 represents, schematically and in the form of a flowchart, a second particular succession of steps of the method which is the subject of the present invention,
[0042] Figure 4 schematically represents an example of computer architecture making it possible to implement the method which is the subject of the present invention,
[0043] Fig. 5 represents, schematically, an example of software architecture making it possible to implement the method which is the subject of the present invention and
[0044] Figure 6 represents, schematically and in the form of a flowchart, a third particular succession of steps of the method which is the subject of the present invention.
[0045] Description of the embodiments
[0046] This description is given without limitation, each characteristic of an embodiment being able to be combined with any other characteristic of any other embodiment in an advantageous manner.
[0047] As understood from the present description, various inventive concepts may be implemented by one or more methods or devices described below, several examples of which are provided herein. The actions or steps performed in carrying out the method or device may be ordered in any suitable manner. Accordingly, it is possible to construct embodiments in which the actions or steps are performed in a different order than that illustrated, which may include performing certain acts simultaneously, even if they are presented as sequential acts in the illustrated embodiments.
[0048] The indefinite articles "a" and "an", as used in the description and claims, are to be understood as meaning "at least one", unless otherwise clearly indicated.
[0049] The expression "and / or", as used herein and in the claims, is to be understood to mean "either or both" of the elements so conjoined, i.e., elements which are present conjunctively in some cases and disjunctively in other cases. Multiple elements listed with "and / or" are to be interpreted in the same way, i.e., "one or more" of the elements so conjoined. Other elements may optionally be present, other than the elements specifically identified by the "and / or" clause, whether or not they are related to these specifically identified elements.Thus, by way of non-limiting example, a reference to "A and / or B", when used in conjunction with open language such as "comprising" may refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc.
[0050] As used herein in the description and in the claims, "or" is to be understood as having the same meaning as "and / or" as defined above. For example, when separating elements in a list, "or" or "and / or" is to be interpreted as inclusive, i.e., the inclusion of at least one, but also more than one, number or list of elements, and, optionally, additional elements not listed. Only terms clearly indicating the contrary, such as "only one of" or "exactly one of", or, when used in the claims, "consisting of", refer to the inclusion of only one element of a number or list of elements. In general, the term "or" as used herein should only be construed as indicating exclusive alternatives (i.e., "either" but not "both") when preceded by terms of exclusivity, such as "either," "one of," "only one of," or "exactly one of."
[0051] As used in this specification and in the claims, the expression "at least one", with reference to a list of one or more elements, is to be understood to mean at least one element selected from one or more elements in the list of elements, but not necessarily including at least one of each element specifically listed in the list of elements and not excluding every combination of elements in the list of elements. This definition also allows for the optional presence of elements other than the specifically identified elements in the list of elements to which the expression "at least one" refers, whether or not related to those specifically identified elements.Thus, by way of non-limiting example, "at least one of A and B" (or, equivalently, "at least one of A or B", or, equivalently, "at least one of A and / or B") may refer, in one embodiment, to at least one, optionally including more than one, A, without B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, without A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.
[0052] In the claims, as well as in the description below, all transitional expressions such as "comprising", "including", "carrying", "having", "containing", "involving", "holding", "consisting of", and the like, are to be understood as open, i.e., as meaning including but not limited to. Only the transitional expressions "consisting of" and "consisting essentially of" are to be understood as closed or semi-closed transitional expressions, respectively.
[0053] In this description, an "input means" or "computer interface" refers to any device that allows the transmission of information to a computer system. Such an input means is, for example, a keyboard, a mouse, and / or a touchscreen adapted to interact with a computer system so as to collect user input. In variants, the input means is logical in nature, such as a network port of a computer system configured to receive an electronically transmitted input command. Such an input means may be associated with a graphical user interface (GUI) presented to a user or an application programming interface (API). In other variants, the input means may be a sensor configured to measure a specified physical parameter relevant to the intended use case.
[0054] A "computing device" is any electronic computing device, whether unitary or distributed, capable of receiving digital inputs and providing digital outputs through and to any kind of digital interface. Typically, a computing device refers to either a computer running software that has access to data storage, or a client-server architecture in which the data and / or at least some of the computation is performed on the server side while the client side serves as the interface.
[0055] A "digital identifier" is any information that uniquely represents a physical or logical object. Such a digital identifier is, for example, an identifier in a database.
[0056] 1 shows a first particular succession of steps for carrying out the method 100 which is the subject of the present invention. This computer-implemented method 100 for automatically generating instructions configured to be stored in a computer-readable storage medium and to be executed by at least one computer processor, comprises: a step 105 for entering, on a computer interface, at least: a computer entity definition, a data structure associated with the computer entities and a software processing of at least one computer entity, a step 110 for selecting, on a computer interface, a context for executing the instructions, a step 115 for automatically generating, by a computing device, instructions as a function of the result of the entry step and the selected execution context and a step 120 for storing the instructions, by a computing device, of the generated instructions.
[0057] The input step 105 is carried out, for example, by implementing computer software executed by a computing device. This computer software presents, for example, a graphical interface allowing a user to define: a definition of a computer entity, a data structure associated with the computer entities and a software processing of at least one computer entity.
[0058] An IT entity, or "business entity," is associated with a name, or numeric identifier, and has a master fieldset. This master fieldset has 0 to N sets of child fields. Each of the sets of child fields can itself have 0 to N sets of child fields. And so on recursively and without limit. The only constraint is that the structure is thus hierarchical. Each table can only have a maximum of one set of child fields. If this is not the case to cover the need, this implies that the entity must be divided into two separate business entities.
[0059] For illustration purposes, software thus created by a user may include: an entity named "customer" includes a single set of fields including a "name" field and a "first name" field, an entity named "product" includes a single set of fields including a "reference" field and an entity named "order" includes three sets of fields: a first set of fields, named "header", including an "order number" field, a second set of fields, named "lines", including a "line number" field, a "unit price" field, a "quantity" field and a "line amount" field and a third set of fields, named "payment" including a "payment number" field and an "amount paid" field.
[0060] A software process can be defined by a user, on the graphical interface of the creation software, by defining for example the behavior of a button of an interface of the software being created. Such behavior can correspond, for example, to the execution of a calculation based on a value entered in an input field by a user of the software.
[0061] A software process may consist, for example, of counting the number of rows in a data table or performing a mathematical operation between two numerical values. Such an example of a software process is, for example, defining a deadline for sending a package, by adding a specified number of days to an order receipt date. These two values may be associated with different entities. In another example, a value corresponding to an order pre-tax amount is calculated based on the values of individual pre-tax amounts of products associated with a user's order.
[0062] The selection step 110 is carried out, for example, by implementing computer software executed by a computing device. This computer software presents, for example, a graphical interface allowing a user to choose, from a list of contexts for using the instructions, at least one such context. A context of use may be, for example and without limitation: online sales software ("e-commerce", in English), enterprise resource planning software (for "enterprise resource planning", or ERP, in English), warehouse management software (for "warehouse management system", or WMS, in English), economic intelligence software (for "business intelligence", or BL, in English), software for a mobile device and / or software for a store.
[0063] The generation step 115 is carried out, for example, by implementing computer software executed by a computing device. During this generation step 115, at least one computer technology, such as a computer language or a computer architecture, adapted to the execution context selected during the selection step 110, is chosen. Preferably, a plurality of technologies is selected to correspond to a set of fundamental software building blocks, such as, for example and in a non-limiting manner: a backend architecture, a backend language, a frontend technology and a persistence layer technology.
[0064] For guidance, Table 1 below shows six examples of such selections based on possible execution context.
[0065] Table 1
[0066] During this generation step 115, depending on a programming language or framework implemented, the instructions are generated. This generation step 115 is performed by a converter, configured to convert the entities, data structures and software processes entered into instructions in a specific language or framework.
[0067] During this generation step 115, for example, depending on the selected execution context, the values entered during the input step 105 are associated with models (“templates” in English) to produce instructions. The number and type of these models depend for example on the selected execution context.
[0068] For example, in the case of an execution context on a mobile device: all or part of the values entered are associated with a screen section management model (“Screen section”, in English), to produce a class per screen section, thus constituting a user interface layer (“User interface layer”, in English), all or part of the values entered are associated with a user interface controller management model (“Ul Controller”, in English), to produce a class per screen (“Screen”, in English), thus constituting a user interface controller, all or part of the values entered are associated with an entity service model (“Entity service”, in English) to produce a class per entity, all or part of the values entered are associated with a rules service model (“Rules service”, in English) to produce a class per rule,all or part of the values entered are associated with a process service model (“Process service” in English) to produce one class per process, the entity, rule and process classes thus constituting a service layer (“Service layer” in English) and all or part of the values entered are associated with a fieldset repository model (“Fieldset repository” in English), to produce one class per fieldset, thus constituting a repository layer (“Repository layer” in English).,
[0069] For example, in the case of an execution context of a web software context: all or part of the values entered are associated with a screen section management model (“Screen section”, in English), to produce a class per screen section, thus constituting a user interface layer (“User interface layer”, in English), all or part of the values entered are associated with a user interface controller management model (“Ul Controller”, in English), to produce a class per screen (“Screen”, in English), thus constituting a user interface controller, all or part of the values entered are associated with an entity service model (“Entity service”, in English) to produce a class per entity, all or part of the values entered are associated with a data interface controller model (“Data interface controller”, in English) to produce a class per data interface,all or part of the values entered are associated with a rules service model (“Rules service” in English) to produce one class per rule, all or part of the values entered are associated with a process service model (“Process service” in English) to produce one class per process, the entity, data interface, rule and process classes thus constituting a service layer (“Service layer” in English) and all or part of the values entered are associated with a fieldset repository model (“Fieldset repository” in English), to produce one class per fieldset, thus constituting a repository layer (“Repository layer” in English).,
[0070] Step 120 of storing the instructions is carried out, for example, by the implementation of a computer memory, local or remote, that is to say directly associated with the terminal carrying out step 105 of input or associated with this terminal through a data network, such as the Internet for example.
[0071] This storage step 120 implements, for example, a hard disk, a solid state disk (for “Solid State Drive”, or SSD, in English) or a computer server.
[0072] 2 shows schematically an embodiment of the device 200 which is the subject of the present invention. This device 200 for automatically generating instructions configured to be stored in a storage medium readable by a computer and to be executed by at least one computer processor, comprises: a means 205 for entering, on a computer interface 210, at least: a definition of a computer entity, a data structure associated with the computer entities and a software processing of at least one computer entity, a means 215 for selecting, on a computer interface, a context for executing the instructions, a means 220 for automatically generating, by a calculation device 230, instructions as a function of information entered by the entry means and the selected execution context and a means 225 for storing the instructions, by a calculation device, of the generated instructions.
[0073] The input means 205 is, for example, a computer peripheral allowing a user to interact with a graphical interface allowing the definition of entities, data structures and software processing.
[0074] The selection means 215 is, for example, a computer peripheral allowing a user to interact with a graphical interface allowing the selection of an execution context.
[0075] The automatic generation means 220 is, for example, software implemented by a computing device configured to translate the input made by the user into technological choices corresponding to the selected execution context and into generation of instructions corresponding to these technological choices.
[0076] The storage means 225 is, for example, a local or remote computer memory.
[0077] Figure 3 shows a second particular succession of steps for carrying out the method 300 which is the subject of the present invention. This computer-implemented method 300 for automatically generating instructions configured to be stored in a computer-readable storage medium and to be executed by at least one computer processor, comprises: a step 105 for entering, on a computer interface, at least: a computer entity definition, a data structure associated with the computer entities and a software processing of at least one computer entity, a step 110 for selecting, on a computer interface, an execution context for the instructions, a step 115 for automatically generating, by a computing device, instructions as a function of the result of the entry step and the selected execution context and a step 120 for storing the instructions, by a computing device, of the generated instructions.
[0078] This method 300 presents a plurality of independent embodiments and variants of the method 100 as described with reference to FIG. 1.
[0079] In particular embodiments of the method 300 which is the subject of the present invention, the method 300 comprises: a step 305 of entering, on a computer interface, a value representative of a deployment environment of the generated instructions and a step 310 of automatically providing, by a calculation device, instructions for deploying the generated instructions as a function of the value representative of a deployment environment entered.
[0080] The input step 305 is performed, for example, by implementing computer software executed by a computing device. Such software has, for example, a graphical interface allowing a user to input, from a predetermined list of deployment environments, at least one deployment environment for the generated software.
[0081] An example of such a deployment environment could be, for example, a virtual machine or a dedicated server. Each deployment environment is associated with technical characteristics, such as an operating system for example, which today require adapted deployment.
[0082] The provisioning step 310 is carried out, for example, by implementing computer software executed by a computing device. During this provisioning step 310, instructions specific to a deployment environment are generated. These instructions include, for example, the transfer of the generated software to a hosting resource, then the deployment of this software on a computing resource for example.
[0083] In particular embodiments of the method 300 which is the subject of the present invention, the method 300 comprises a step 315 of automatic deployment, by a calculation device, of the instructions generated as a function of the deployment instructions provided.
[0084] The deployment step 315 is carried out, for example, by implementing deployment computer software executed by a computing device. During this deployment step 315, the deployment instructions (or deployment “script”) are executed and make it possible, for example, to initialize a deployment environment, to create a database in this environment and to deploy the generated software.
[0085] In particular embodiments of the method 300 which is the subject of the present invention, the generation step 115 comprises a model enrichment step 320, by a calculation device, carried out as a function of the result of the input step 105.
[0086] During this enrichment step 320, for example, variable names are initialized so as to facilitate the generation of instructions in a given framework. This enrichment step 320 is carried out according to the operational needs of the instruction generation framework chosen for the software.
[0087] During this enrichment step 320, for example, an object model corresponding to the input made by the user is created and links are established between class instances in accordance with the links described in the model.
[0088] An additional model is then preferably generated by target language, such an additional model comprising for example a manager ("handler", in English), possibly linked, for each constituent of the model (entity, data field, field, software, for example) and information (class, field, table names, for example) defining the way in which the instructions must be generated.
[0089] In particular embodiments of the method 300 which is the subject of the present invention, the generation step 115 comprises: a first step 325 of generation, by a calculation device, of execution instructions on a computer as a function of the result of the input step 105 and the selected execution context and a second step 330 of generation, by a calculation device, of execution instructions on a mobile device as a function of the result of the input step 105 and the selected execution context. Structurally, the first and second generation steps, 325 and 330, are carried out in a manner similar to the generation step 115. The instructions thus generated are adapted to their environment of implementation by the users.
[0090] In particular embodiments of the method 300 which is the subject of the present invention, the method 300 comprises: a step 335 of modification, on a computer interface, of at least: a definition of a computer entity, a data structure associated with the computer entities and / or a software processing of at least one computer entity and a step 340 of automatic generation, by a calculation device, of the modified instructions according to the result of the modification step and the selected execution context and a step 345 of storage of the instructions, by a calculation device, of the modified instructions.
[0091] The modification step 335 is carried out in a similar manner to the entry step 105. For example, during this modification step 335, a user modifies an entity to add a field representing an amount inclusive of all taxes for an order and modifies a software process to add the calculation of an amount inclusive of all taxes, implementing a field already existing in a previous version of the software representing the amount excluding taxes for the order and applying a determined multiplier factor corresponding to the taxes on this order. All this can be carried out in a graphical interface, by a user, by modifying an already created entity and adding a software process allowing the calculation of the new value of this entity.
[0092] The automatic generation step 340 is performed in a similar manner to the generation step 115. For example, during this generation step 340, a field corresponding to an order value including all taxes is added to an entity representing the order. Then, two functions, collection (“get” in English) or definition (“set” in English), are automatically generated for this field. Then, a class for implementing the field calculation process is generated.
[0093] Storage step 345 is performed similarly to storage step 120.
[0094] A modification is understood here to mean updating the generated instructions, by adding, modifying or deleting instructions. This update can be carried out by a user via a graphical interface. Such an update can consist of the modification, addition or deletion of an entity or a software process applied to an entity for example.
[0095] In particular embodiments of the method 300 which is the subject of the present invention, the method 300 comprises a step 350 of automatic creation, by a calculation device, of upgrade instructions as a function of the modified instructions generated.
[0096] Upgrade instructions are used to define how to migrate software data from one version to another.
[0097] For example, if a field is added to a table that already existed in a previous version of the software, the value of this field in the already existing records must be initialized. Such initialization can be defined by a calculation rule. In particular embodiments of the method 300 which is the subject of the present invention, the method 300 comprises a step 355 of upgrading, by a calculation device, instructions deployed in a selected deployment environment, according to the upgrade instructions constituted.
[0098] The upgrade step 355 is carried out, for example, by implementing a computer software upgrade executed by a computing device. During this upgrade step 355, the upgrade instructions (or upgrade “script”) are executed and make it possible, for example, to update a deployment environment, to modify a database in this environment and to deploy a new version of a software already deployed in this environment.
[0099] In particular embodiments of the method 300 which is the subject of the present invention, the method 300 comprises a step 360 of automatic detection of a change in version of a library of functions implemented during a step 115 of generation of instructions, the step 340 of automatic generation being carried out as a function of the detected change.
[0100] The automatic detection step 360 is performed, for example, by implementing software executed by a computing device. During this detection step 360, for example, a framework or framework version identifier is associated with an instruction set generated during a generation step 115 or a constitution step 350. When a reference framework or framework version identifier, manually set by an administrator of the system allowing the entry of entities, data structures or software processing or set automatically, differs from the framework or framework version identifier associated with an instruction set, the automatic generation step 340 is implemented. During this generation step 340, an instruction set updated according to the framework or framework version reference identifier is generated.
[0101] 4 shows schematically an architecture 400 implementing the method 200 which is the subject of the present invention. This architecture 400 comprises: a computer 405 configured to display a user interface 430 allowing a user to enter entities, data structures and software processes to be carried out, this entry being able to be facilitated by the implementation of models 460 corresponding to typical cases of software, a computer server 410 for executing the entry software 435 associated with the user interface 430, a computer server 415 for converting the entry into instructions and for deploying the instructions thus generated, configured to execute: a software for generating 440 instructions, from predetermined models 465, to generate standard software, 470 and 475, and a deployment engine 445 for the software, 470 and 475, thus generated.
[0102] This 400 architecture thus makes it possible to automatically generate and deploy, on several computers, 420 and 425, several software programs, 450 and 455, which may be identical or distinct.
[0103] 5 shows schematically a software architecture 500 enabling the implementation of the method 200 which is the subject of the present invention. This architecture 500 comprises: at least one software model 505 defining entities 510 to be entered, at least one entity 510 entered by a user, at least one screen 515 generated by the instruction generation software 520 as a function of at least one entered entity 510, at least one data interface 525 generated by the instruction generation software 520 as a function of at least one entered entity 510, at least one process 530 generated by the instruction generation software 520 as a function of at least one entered entity 510 and at least one entered calculation rule 535 and at least one entered calculation rule 535, such a calculation rule corresponding to a software processing.
[0104] Figure 6 shows a particular succession of steps of the method 600 which is the subject of the present invention. This computer-implemented method 600 for automatically generating an application environment comprising at least two software programs, each software program being formed of instructions configured to be stored in a storage medium readable by a computer and to be executed by at least one computer processor, comprises: a step 105 of entering, on a computer interface, at least: a common computer entity definition, a common data structure associated with the computer entities and a common software processing of at least one computer entity, a step 110 of selecting, on a computer interface, at least two distinct contexts for executing the instructions, a step 115 of automatic generation, by a computing device, for at least two said software programs,of instructions according to the result of the input step and at least two selected execution contexts, which comprises, for each said software, a step 605 of filtering the entered entities according to the selected execution context associated with the software and a step 120 of storing the instructions, by a calculation device, for each software, of the generated instructions.,
[0105] An "application environment" is a set of software programs that cooperate to produce a set of technical effects. Such an application environment is, for example, made up of warehouse management software and online sales software. The cooperative nature of these software programs and their significant interconnectedness results in a need for common definitions of data to be exchanged between software programs. Thus, the input step 105 allows a user to define software entities, data structures and processing, part of which can be shared between different sets of instructions corresponding to distinct software programs.
[0106] The method 600 comprises, for example, a generation step 115 per software to be generated. Each generation step 115 can implement distinct technologies and thus present, for the same software processing, very different instructions corresponding to the technology used.
[0107] At least one generation step 115 includes a step 605 of filtering the entities. This filtration step 605 is carried out, for example, by implementing software executed by a computing device. During this filtration step 605, only the entities implemented in a software processing associated with the instructions to be generated are retained. This makes it possible to reduce resource consumption during the generation, deployment and execution of the instructions.In particular embodiments, the method 600 which is the subject of the present invention comprises: a step 335 of modification, on a computer interface, of at least: a common computer entity definition, a common data structure associated with the computer entities and / or a software processing of at least one computer entity and a step 340 of automatic generation, by a calculation device, for at least two said software programs, of the modified instructions according to the result of the modification step and the selected execution context and a step 345 of storage of the instructions, by a calculation device, for each software program, of the generated instructions.
[0108] Thus, as understood from reading this description, the implementation of the present invention grants a user: the ability to describe all the functionalities of business software without writing a single line of computer code - the modeling being centered on the definition of the business entities from which, the present invention is capable of automatically deducing from the definition of the basic behaviors of the software such as screens, validation rules and data interfaces, the ability to define standard business components allowing to create customized software very quickly while benefiting from best practices of standard software and the ability to simulate several software of different technical nature from a single model and a single software.
Claims
CLAIMS 1. Computer-implemented method (100, 300) for automatically generating instructions configured to be stored in a computer-readable storage medium and to be executed by at least one computer processor, characterized in that it comprises: - a step (105) of entering, on a computer interface, at least: - a definition of IT entity, - a data structure associated with IT entities and - software processing of at least one IT entity, - a step (110) of selecting, on a computer interface, a context for executing the instructions, - a step (115) of automatic generation, by a calculation device, of instructions according to the result of the input step and the selected execution context and - a step (120) of storing the instructions, by a calculation device, of the generated instructions.
2. Method (300) according to claim 1, which comprises: - a step (305) of entering, on a computer interface, a value representative of a deployment environment of the generated instructions and - a step (310) of automatically providing, by a calculation device, deployment instructions of the instructions generated as a function of the representative value of a deployment environment entered.
3. Method (300) according to claim 2, which comprises a step (315) of automatic deployment, by a computing device, of the instructions generated as a function of the deployment instructions provided.
4. Method (300) according to one of claims 1 to 3, in which the generation step (115) comprises a model enrichment step (320), by a calculation device, carried out as a function of the result of the input step (105).
5. Method (300) according to one of claims 1 to 4, in which the generation step (115) comprises: - a first step (325) of generation, by a calculation device, of execution instructions on a computer as a function of the result of the input step (105) and the selected execution context and - a second step (330) of generation, by a calculation device, of execution instructions on a mobile device as a function of the result of the input step (105) and the selected execution context.
6. Method (300) according to one of claims 1 to 5, which comprises: - a step (335) of modification, on a computer interface, of at least: - a definition of IT entity, - a data structure associated with the IT entities and / or - software processing of at least one computer entity and - a step (340) of automatic generation, by a calculation device, of modified instructions according to the result of the modification step and the selected execution context and - a step (345) of storing the instructions, by a calculation device, of the modified instructions.
7. Method (300) according to claim 6, which comprises a step (350) of automatic creation, by a calculation device, of upgrade instructions based on the modified instructions generated.
8. Method (300) according to claim 7, which comprises a step (355) of upgrading, by a computing device, instructions deployed in a selected deployment environment, as a function of the upgrade instructions constituted.
9. Method (300) according to one of claims 6 to 8, which comprises a step (360) of automatic detection of a change in version of a library of functions implemented during a step (115) of generation of instructions, the step (340) of automatic generation being carried out as a function of the detected change.
10. Computer-implemented method (600) for automatically generating an application environment comprising at least two software programs, each software program being formed of instructions configured to be stored in a storage medium readable by a computer and to be executed by at least one computer processor, characterized in that it comprises: - a step (105) of entering, on a computer interface, at least: - a definition of a common IT entity, - a common data structure associated with IT entities and - common software processing of at least one IT entity, - a step (110) of selecting, on a computer interface, at least two distinct contexts for executing the instructions, - a step (115) of automatic generation, by a calculation device, for at least two said software programs, of instructions as a function of the result of the input step and of at least two selected execution contexts, which comprises, for each said software program, a step (605) of filtering the entered entities as a function of the selected execution context associated with the software program and - a step (120) of storing the instructions, by a calculation device, for each software, of the generated instructions.
11. Method (600) according to claim 10, which comprises: - a step (335) of modification, on a computer interface, of at least: - a definition of a common IT entity, - a common data structure associated with IT entities and / or - software processing of at least one computer entity and - a step (340) of automatic generation, by a calculation device, for at least two said software programs, of modified instructions according to the result of the modification step and the selected execution context and - a step (345) of storing the instructions, by a calculation device, for each software, of the generated instructions.
12. Device (200) for automatically generating instructions configured to be stored in a storage medium readable by a computer and to be executed by at least one computer processor, characterized in that it comprises: - a means (205) for entering, on a computer interface (210), at least: - a definition of IT entity, - a data structure associated with IT entities and - software processing of at least one IT entity, - a means (215) for selecting, on a computer interface, a context for executing the instructions, - a means (220) for automatically generating, by a calculation device (230), instructions based on information entered by the input means and the selected execution context and - a means (225) for storing instructions, by a computing device, of the generated instructions.