WO2011098677A1 - Systeme et un procede de gestion et de compilation d'un cadre d'applications de developpement logiciel. - Google Patents
Systeme et un procede de gestion et de compilation d'un cadre d'applications de developpement logiciel. Download PDFInfo
- Publication number
- WO2011098677A1 WO2011098677A1 PCT/FR2010/050222 FR2010050222W WO2011098677A1 WO 2011098677 A1 WO2011098677 A1 WO 2011098677A1 FR 2010050222 W FR2010050222 W FR 2010050222W WO 2011098677 A1 WO2011098677 A1 WO 2011098677A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- entities
- rules
- lexicographic
- data
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Definitions
- the present invention relates to a system and method for managing and compiling a software development application framework as well as a computer program product for implementing the method.
- UML Unified Modeling Language
- Object Management Group is a methodology, a language and tools for modeling all the data to be processed by the computer application as well as the processing to apply on these data.
- a system for managing and compiling a software development application framework includes:
- Data capture means the data defining in natural language the functional requirements of the application framework
- a lexicographic analyzer adapted to transform the captured data in lexicographic terms called entities defined in a dictionary and in relations between said entities;
- a disambiguator having a knowledge base adapted for, in association with the lexicographic analyzer, determining the multi-record entities and generating an error if such an entity is encountered;
- a compiler adapted to transform all the entities and their relationships into a tree of rules, each rule comprising at least one predicate and an associated action, and such that the set of daughter rules of a parent rule covers the entire perimeter of the parent rule;
- a code generator adapted to transform the rule tree into a formatted data stream for generating software code.
- the complex entities are defined in the form of a set of simple entities and relations between said simple entities;
- the dictionary includes a list of terms defined as "fuzzy” so that the lexicographic analyzer is adapted to generate an error when one of the terms of said list is part of the captured data; • the knowledge base has association rules defining term association contexts such that, depending on the context, a term is declared as fuzzy and triggers an error or is declared as non-fuzzy;
- the compiler is adapted to further generate a data model in which each entity is defined by its associations and cardinality and each entity has at least one action corresponding to each of the functions of creation, reading, modification, deletion, search and printing; and or
- a method for managing and piling a framework of software development applications includes:
- a computer program product includes program code instructions for executing the preceding method when the program is run on a computer.
- FIG. 1 is a schematic view of a system according to one embodiment of the invention.
- FIG. 2 is a schematic functional view of the system of FIG. 1;
- FIG. 3 is a flow chart of the operation of the system of Figure 1.
- a software engineering system includes a workstation 1 with interface means 3 with a user.
- the interface means 3 comprise a display screen as well as keyboard type input means allowing the user to enter at least textual information.
- the workstation 3 also comprises storage means 5 such as, for example, RAM and hard disk, and processing means 7, such as, for example, a microprocessor programmed by a computer program to achieve a set of functions as described below. It should be noted that these functions can also be executed in hardware using specifically designed logic circuits, although this embodiment is relatively impractical in that corrections and improvements are difficult and costly to achieve.
- the workstation 3 therefore comprises, Figure 2, the following features:
- a lexicographic analyzer 13 adapted to transform the captured data in lexicographic terms defined in a dictionary 14 and in relations between said terms;
- a disambiguator 15 comprising a knowledge base 16 adapted for, in association with the lexicographic analyzer 13, determining the multi-record data and generating an error if such data is encountered;
- a compiler 17 adapted to transform all the lexicographic terms and their relations into a tree of rules, each rule comprising at least one predicate and an associated action, and such that the set of daughter rules of a parent rule covers the the entire perimeter of the parent rule; "A logical consistency checker 19 adapted to check the coherence of the set of rules;
- a code generator adapted to transform the rule tree into a formatted data stream for the generation of software code
- the dictionary 14 and the knowledge base 16 are stored in the storage means 5. It should be noted that they can be predefined and / or developed in parallel with the development of a specific application framework, the developer introducing according to the needs the terms and relationships specific to the field or business for which the framework is being developed.
- the system begins with a dictionary and a generic knowledge base, and then as it is used in a particular field or business, the dictionary and the knowledge base will be enriched by the terms and relationships of that particular domain. .
- the operation of the described system is comparable to the operation of a computer language compiler or interpreter that transforms a sequence of instructions written in a high level language into executable code by a computer.
- the system described transforms a text containing functional requirements described in natural language in a high-level language, which can be classically compiled or interpreted to generate an executable program with the specified features.
- a user will use the interface means 3 to enter, step 22, a text representing functionalities, constraints, data manipulations, etc., which will be called “requirements” in the remainder of this document, which must be carried out by the user. framework of application.
- This information is, for example, the result of interviews between the writer and potential users of the future application framework.
- maintenance, information capture and subsequent processing can be performed in real time to correct and / or clarify the information during the course of the interview.
- the data entered is processed, step 23, by the lexicographic analyzer 13.
- This parser acts as a spellchecker for word processing but with particular functionalities.
- the lexicographic analyzer 13 will verify that the names belong to the dictionary 14 and that they have a precise definition.
- the term "few" will be defined in the dictionary as a fuzzy term because it does not specify the quantity.
- the lexicographic analyzer will therefore indicate that this term must be replaced by another term or a more precise expression. If a term is not defined, it will also be indicated as undefined and must be replaced by a defined term or dictionary. will need to be modified to include a definition.
- An undefined term is often a term that is not part of the everyday language and is specific to a company or a sector of activity, a term of the current language but having a meaning proper for the company or the sector of activity or a term compound specific to the business or industry.
- a term can be defined as an atomic unit, for example, a date, or as a complex entity containing other entities according to a certain structure, for example, the term “order” refers to "customer", “date”, “ product “,” quantity of product “,” price “, etc.
- order refers to "customer", "date”, “ product ",” quantity of product “,” price “, etc.
- order refers to "customer", "date”, “ product ",” quantity of product “,” price ", etc.
- the relations between these different terms must then be found in the "requirements” entered for subsequent processing, in particular to define the data model. It is therefore understandable that there is mutual construction between the dictionary and the knowledge base on the one hand and the requirements described on the other hand.
- the dictionary and the knowledge base are driven by the requirements that define entities and the relationships between them and in return these checks the completeness, for example that all entities are defined, and a consistency of requirements.
- a complex entity which can be considered as a node of a graph, it is verified that its
- the lexicographic analyzer thus transforms, in step 23, a string of characters into a set of terms, usually names, linked by relations which are expressed, in general, by the use of a verb such as that "contain”, “add up”, etc. and verifies that these nouns and verbs are defined and not blurred as such.
- step 25 the result of the lexicographic analysis is provided, step 25, to the disambiguator 15 which, with the aid of its knowledge base 16, will detect the multi-record data and generate an error if such data is encountered.
- Ambiguity can come from two origins: a term is vague or has multiple meanings in one context but is not in another context. Thus “good” is vague as an objective, but as a common noun designating a "voucher” object is not fuzzy. This guy ambiguity is raised by association rules defined in the knowledge base in conjunction with the dictionary of the lexicographic parser.
- the ambiguity can also arise from an inconsistency between two parts of the document that is detected either by the dictionary which is brought to contain two different definitions, or by the knowledge base which makes appear rules or relations incompatible. It should be noted that certain ambiguities will also be detected by subsequent steps of the method, in particular the consistency check step of the rules associated with the data model and the processing model.
- the lexicographic analyzer can also be parameterized to guarantee a certain level of compatible language with a document forming part of the documentation of a software.
- the set of terms and relations generated by the lexicographic analyzer is provided to the compiler 17 to transform, step 27, the latter into a tree of rules, each rule comprising at least one predicate and an associated action, and such that the set of daughter rules of a parent rule covers the entire perimeter of the parent rule.
- each entity is defined with its associations and cardinality and each entity must have defined the functions related to the CRUD model namely creation, reading, modification, deletion, search and printing.
- a rule thus comprises a predicate composed of an entity and an event, for example a "purchase order” entity and a "print request” event to which it corresponds an action "printing a purchase order”" who may be broken down into sub-rules and sub-basic actions.
- the coherence of the set of rules generated is carried out, step 29, by the logical consistency checker 19. It uses the rules of the logic of the predicates to check that the set does not contain any logical ambiguity, that is, that is to say, undecidable rule, or incoherence, that is to say two contradictory rules.
- the code generator 20 From this set of rules, the code generator 20 generates, step 31, a formatted data stream for the generation of software code.
- this can be a UML structure or a code written in a high-level computer language.
- the generator 21 of scenarios and test cases generates in parallel, step 33, parameters making it possible to test the functionalities of the software.
- These parameters will be provided to a test software in the form of execution commands reproducing either standard situations allowing to verify the nominal execution of the software or borderline situations making it possible to verify that the software is capable of handling the abnormalities such as, for example, missing or aberrant data.
- executions can be performed automatically or manually depending on the context.
- all of the functionalities described are realized in the form of software modules which are grafted onto a word processing software of Microsoft Word or OpenOffice type thus advantageously allowing the user to work in a known environment. and relatively standardized.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Un système de gestion et de compilation d'applications logicielles comprend : • une saisie (11 ) de données définissant en langage naturel des exigences fonctionnelles; • un analyseur lexicographique (13) transformant les données capturées en entités définies dans un dictionnaire et en relations entre celles-ci; • un désambiguïseur (15) comportant une base de connaissances pour déterminer les entités multivoques et générer une erreur si une telle entité est rencontrée; • un compilateur (17) transformant l'ensemble des entités et leurs relations en une arborescence de règles comportant au moins un prédicat et une action associée, et telle que l'ensemble des règles filles d'une règle parente couvre la totalité du périmètre de la règle parente; • un vérificateur (19) de cohérence logique vérifiant la cohérence des règles; et • un générateur (20) de code transformant l'arborescence de règles en un flux de données formaté pour la génération d'un code logiciel.
Description
SYSTEME ET UN PROCEDE DE GESTION ET DE COMPILATION D'UN CADRE D'APPLICATIONS DE DEVELOPPEMENT LOGICIEL
La présente invention concerne un système et un procédé de gestion et de compilation d'un cadre d'applications de développement logiciel ainsi qu'un produit programme d'ordinateur pour mettre en œuvre le procédé.
Dans le domaine du génie logiciel, de nombreux travaux ont été réalisés pour définir des méthodologies et des outils permettant de transformer un cahier des charges de développement d'un logiciel en un programme informatique remplissant les fonctions souhaitées. A titre d'exemple, UML (Unified Modeling Language), marque déposée de « Object Management Group », est une méthodologie, un langage et des outils permettant de modéliser l'ensemble des données à traiter par l'application informatique ainsi que les traitements à appliquer sur ces données.
Une des difficultés rencontrées dans la mise en œuvre de ces méthodes réside dans la relation avec les utilisateurs/prescripteurs. Il est en effet nécessaire de passer de la liste de besoins exprimés de façon informelle et dans un langage métier en un document cohérent, exprimé dans un langage de spécification fonctionnelle, permettant aux développeurs de travailler. Or, l'expérience montre que cette transcription est la source de nombreuses erreurs sous forme de mauvaises compréhensions des besoins des utilisateurs, de demandes contradictoires, etc. Et ces erreurs sont souvent détectées tard dans le processus de développement car l'utilisateur est souvent incapable de lire et de comprendre le document de spécification formelle sensé représenter son besoin.
Pour limiter ces difficultés, il a été proposé de faire du prototypage rapide afin de permettre à l'utilisateur de tester le plus vite possible les fonctionnalités du logiciel et vérifier ainsi son adéquation aux besoins. Cependant, quand un projet est complexe, le prototypage peut devenir lui- même une opération complexe et longue.
Il serait donc souhaitable de mettre au point des outils permettant de garantir que le recueil des informations de spécification permet d'obtenir un cahier des charges complet, cohérent et correspondant réellement aux besoins des utilisateurs.
Pour résoudre un ou plusieurs des inconvénients cités précédemment, un système de gestion et de compilation d'un cadre d'applications de développement logiciel comprend :
• des moyens de capture de données, les données définissant en langage naturel des exigences fonctionnelles du cadre d'application ;
• un analyseur lexicographique adapté pour transformer les données capturées en termes lexicographiques appelés entités définis dans un dictionnaire et en relations entre lesdites entités ;
• un désambiguïseur comportant une base de connaissances adapté pour, en association avec l'analyseur lexicographique, déterminer les entités multivoques et générer une erreur si une telle entité est rencontrée ;
• un compilateur adapté pour transformer l'ensemble des entités et leurs relations en une arborescence de règles, chaque règle comportant au moins un prédicat et une action associée, et telle que l'ensemble des règles filles d'une règle parente couvre la totalité du périmètre de la règle parente ;
• un vérificateur de cohérence logique adapté pour vérifier la cohérence de l'ensemble des règles ; et
• un générateur de code adapté pour transformer l'arborescence de règles en un flux de données formaté pour la génération d'un code logiciel.
Des caractéristiques ou des modes de réalisation particuliers, utilisables seuls ou en combinaison, sont :
• les entités étant de type simple ou de type complexe, les entités complexes sont définies sous forme d'un ensemble d'entités simples et de relations entre lesdites entités simples ;
• le dictionnaire comporte une liste de termes qualifiés de « flous » de telle sorte que l'analyseur lexicographique est adapté pour générer une erreur quand un des termes de ladite liste fait partie des données capturées ;
• la base de connaissances comporte des règles d'association définissant des contextes d'association de termes de telle sorte que, suivant le contexte, un terme est déclaré comme flou et déclenche une erreur ou est déclaré comme non-flou ;
• le compilateur est adapté pour générer en outre un modèle de données dans lequel chaque entité est définie par ses associations et cardinalité et chaque entité possède au moins une action correspond à chacune des fonctions de création, lecture, modification, suppression, recherche et impression ; et/ou
• il comprend en outre un générateur de scénarios et cas de test adapté pour fournir des commandes d'exécution à un logiciel de test.
Dans un deuxième aspect de l'invention, un procédé de gestion et de pilation d'un cadre d'applications de développement logiciel comprend :
• une saisie de données, lesdites données définissant en langage naturel des exigences fonctionnelles du cadre d'application ;
• une analyse lexicographique pour transformer les données capturées en termes lexicographiques appelés entités définis dans un dictionnaire et en relations entre les entités ;
• une analyse d'ambiguïté utilisant une base de connaissances pour, en association avec l'analyse lexicographique, déterminer les entités multivoques et générer une erreur si une telle entité est rencontrée ;
• une compilation pour transformer l'ensemble des entités et leurs relations en une arborescence de règles, chaque règle comportant au moins un prédicat et une action associée, et telle que l'ensemble des règles filles d'une règle parente couvre la totalité du périmètre de la règle parente ;
• une vérification de cohérence logique vérifiant la cohérence de l'ensemble des règles ;
• une génération de code transformant l'arborescence de règles en un flux de données formaté pour la génération d'un code logiciel.
Dans un troisième aspect de l'invention, un produit programme d'ordinateur comprend des instructions de code de programme pour l'exécution du procédé précédent lorsque le programme est exécuté sur un ordinateur.
L'invention sera mieux comprise à la lecture de la description qui suit, faite uniquement à titre d'exemple, et en référence aux figures en annexe dans lesquelles :
- la figure 1 est une vue schématique d'un système selon un mode de réalisation de l'invention ;
- la figure 2 est une vue schématique fonctionnelle du système de la figure 1 ; et
- la figure 3 est un ordinogramme du fonctionnement du système de la figure 1 .
En référence à la figure 1 , un système de génie logiciel comprend une station de travail 1 avec des moyens d'interface 3 avec un utilisateur. Typiquement, les moyens d'interface 3 comprennent un écran de visualisation ainsi que des moyens de saisie de type clavier permettant à l'utilisateur d'entrer au moins des informations textuelles.
La station de travail 3 comporte également des moyens de stockage 5 tel que, par exemple, mémoire vive et disque dur, et des moyens de traitement 7, tels que, par exemple, un microprocesseur programmé par un programme d'ordinateur pour réaliser un ensemble de fonctions tel que décrit ci-après. Il est à noter que ces fonctions peuvent également s'exécuter sous forme matérielle en utilisant des circuits logiques spécifiquement conçus, bien que ce mode de réalisation soit relativement peu pratique dans la mesure où les corrections et améliorations sont difficiles et coûteuses à réaliser.
La station de travail 3 comporte donc, Figure 2, les fonctionnalités suivantes :
• des moyens 1 1 de capture de données utilisant les moyens d'interface 3 ;
• un analyseur lexicographique 13 adapté pour transformer les données capturées en termes lexicographiques définis dans un dictionnaire 14 et en relations entre lesdits termes ;
• un désambiguïseur 15 comportant une base de connaissances 16 adapté pour, en association avec l'analyseur lexicographique13, déterminer les données multivoques et générer une erreur si une telle donnée est rencontrée ;
« un compilateur 17 adapté pour transformer l'ensemble des termes lexicographiques et leurs relations en une arborescence de règles, chaque règle comportant au moins un prédicat et une action associée, et telle que l'ensemble des règles filles d'une règle parente couvre la totalité du périmètre de la règle parente ; « un vérificateur de cohérence logique 19 adapté pour vérifier la cohérence de l'ensemble des règles ;
• un générateur de code 20 adapté pour transformer l'arborescence de règles en un flux de données formaté pour la génération d'un code logiciel ; et
« un générateur 21 de scénarios et cas de test adapté pour fournir des commandes d'exécution à un logiciel de test.
Le dictionnaire 14 et la base de connaissances 16 sont stockés dans les moyens de stockage 5. Il est à noter qu'ils peuvent être prédéfinis et/ou développés en parallèle au développement d'un cadre d'application spécifique, le développeur introduisant selon les besoins les termes et relations spécifiques au domaine ou métier pour lequel le cadre d'application est développé.
Ainsi, le système débute avec un dictionnaire et une base de connaissances générique, puis au fur et à mesure de son utilisation dans un domaine ou métier particulier, le dictionnaire et la base de connaissances vont s'enrichir des termes et relations particulières de ce domaine.
Le fonctionnement du système va maintenant être décrit en relation avec la Figure 3.
A titre illustratif, le fonctionnement du système décrit est comparable au fonctionnement d'un compilateur ou d'un interpréteur de langage informatique qui transforme une suite d'instructions écrites dans un langage de haut niveau en un code exécutable par un ordinateur. De même le système décrit transforme un texte contenant des exigences fonctionnelles
décrites en langage naturel en un langage de haut niveau, celui-ci pouvant être classiquement compilé ou interprété pour générer un programme exécutable comportant les fonctionnalités spécifiées.
Un utilisateur va utiliser les moyens d'interface 3 pour saisir, étape 22, un texte représentant des fonctionnalités, des contraintes, des manipulations de données, etc., qui seront dénommés « exigences » dans la suite de ce document, que doit réaliser le cadre d'application.
Classiquement cette opération est réalisable en utilisant un logiciel de traitement de texte. Mais elle peut également être réalisée par un logiciel de traitement vocal capable de transformer une parole en un texte dactylographié.
Ces informations sont, par exemple, le résultat d'entretiens entre le rédacteur et des utilisateurs potentiels du futur cadre d'applications.
Il est à noter d'ailleurs que, lors de l'exécution du procédé automatique décrit ci-après, celui-ci peut et doit détecter des erreurs ou incohérences. Celles-ci sont alors corrigés par le rédacteur qui modifie les données saisies en conséquence et pour cela, il peut être amené à se retourner auprès des utilisateurs pour effectuer une correction qui a un sens par rapport au domaine applicatif en général et au cadre d'application à développer en particulier.
Ainsi, dans un mode particulier de réalisation, l'entretien, la saisie des informations et les traitements subséquents peuvent être réalisés en temps réel en permettant de corriger et/ou préciser les informations au fil de l'entretien.
Les données saisies sont traitées, étape 23, par l'analyseur lexicographique 13. Celui-ci se comporte comme un correcteur orthographique de traitement de texte mais avec des fonctionnalités particulières. Ainsi l'analyseur lexicographique 13 va vérifier que les noms appartiennent au dictionnaire 14 et qu'ils ont une définition précise. Par exemple, le terme « quelques » va être défini dans le dictionnaire comme un terme flou car ne précisant pas la quantité. L'analyseur lexicographique va donc indiquer que ce terme doit être remplacé par un autre terme ou une expression plus précise. Si un terme n'est pas défini, il sera aussi indiqué comme indéfini et devant être remplacé par un terme défini ou le dictionnaire
devra être modifié pour inclure une définition. Un terme non défini est souvent un terme ne faisant pas partie du langage courant et propre à une entreprise ou un secteur d'activité, un terme du langage courant mais ayant un sens propre pour l'entreprise ou le secteur d'activité ou un terme composé propre à l'entreprise ou au secteur d'activité.
Un terme peut être défini comme une unité atomique, par exemple, une date, ou comme une entité complexe contenant d'autres entités selon une certaine structure comme par exemple, le terme « commande » renvoie à « client », « date », « produit », « quantité de produit », « prix », etc. Les relations entre ces différents termes doivent alors se retrouver dans les « exigences » saisies pour faire l'objet des traitements ultérieurs permettant en particulier de définir le modèle de données. On comprend donc qu'il y a construction mutuelle entre le dictionnaire et la base de connaissances d'une part et les exigences décrites d'autre part. Le dictionnaire et la base de connaissances sont alimentés par les exigences qui définissent des entités et des relations entre elles et en retour ceux-ci vérifie la complétude, par exemple que toutes les entités sont définies, et une cohérence des exigences. En particulier, pour une entité complexe, qui peut être considérée comme un nœud d'un graphe, il est vérifié que sa décomposition est décrite et totalement décrite. En quelque sorte, il est vérifié que l'inventaire est complet.
L'analyseur lexicographique transforme ainsi, lors de l'étape 23, une chaîne de caractères en un ensemble de termes, en général des noms, reliés par des relations qui s'expriment, en général, par l'utilisation d'un verbe tel que « contenir », « additionner », etc. et vérifie que ces noms et verbes sont définis et non flous en tant que tels.
Cependant, le flou peut venir également d'une expression particulière. Pour détecter cela, le résultat de l'analyse lexicographique est fourni, étape 25, au désambiguïseur 15 qui, avec l'aide de sa base de connaissances 16, va détecter les données multivoques et générer une erreur si une telle donnée est rencontrée.
L'ambiguïté peut venir de deux origines : un terme est flou ou a plusieurs sens dans un certain contexte mais ne l'est pas dans un autre contexte. Ainsi « bon » est flou en tant qu'adjectif, mais en tant que nom commun désignant un objet « bon d'échange » n'est pas flou. Ce type
d'ambiguïté est levé par des règles d'association définies dans la base de connaissances en liaison avec le dictionnaire de l'analyseur lexicographique.
L'ambiguïté peut également provenir d'une incohérence entre deux parties du document qui se détecte soit par le dictionnaire qui est amené à contenir deux définitions différentes, soit par la base de connaissance qui fait apparaître des règles ou relations incompatibles. Il est à noter que certaines ambiguïtés seront également détectées par des étapes ultérieures du procédé, en particulier l'étape de vérification de cohérence des règles associées au modèle de données et au modèle de traitement.
II est à noter, qu'optionnellement, l'analyseur lexicographique peut également être paramétré pour garantir un certain niveau de langage compatible avec un document faisant partie de la documentation d'un logiciel.
Il peut alors être également accompagné de modules de mise en forme permettant par exemple de garantir une uniformité dans la structuration en chapitre et sous-chapitre, d'établir une table des matières et un index, etc. permettant de fournir une documentation des spécifications fonctionnelles du cadre d'application de bonne qualité, ce qui est une exigence classique de tout projet de développement de logiciel.
L'ensemble des termes et relations généré par l'analyseur lexicographique est fourni au compilateur 17 pour transformer, étape 27, celui- ci en une arborescence de règles, chaque règle comportant au moins un prédicat et une action associée, et telle que l'ensemble des règles filles d'une règle parente couvre la totalité du périmètre de la règle parente.
Cela permet de vérifier la complétude des « exigences » d'une part et d'autre part de préparer le modèle de données et le modèle des traitements en indiquant pour chaque événement ou pour chaque donnée la ou les règles à appliquer. Ainsi, pour le modèle de données, chaque entité est définie avec ses associations et cardinalité et chaque entité doit avoir défini les fonctions liées au modèle CRUD à savoir la création, la lecture, la modification, la suppression, la recherche et l'impression. Une règle comporte ainsi un prédicat composé d'une entité et d'un événement, par exemple une entité « bon de commande » et un événement « demande d'impression » à laquelle elle fait correspondre une action « impression d'un bon de commande » qui
pourra se décomposer éventuellement en sous-règles et sous-actions élémentaires.
La cohérence de l'ensemble des règles générées est réalisée, étape 29, par le vérificateur de cohérence logique 19. Il utilise les règles de la logique des prédicats pour vérifier que l'ensemble ne comporte pas d'ambiguïté logique, c'est-à-dire de règle indécidable, ou d'incohérence, c'est- à-dire deux règles contradictoires.
A partir de cet ensemble de règles, le générateur de code 20 génère, étape 31 , un flux de données formaté pour la génération d'un code logiciel. A titre d'exemple, cela peut être une structure UML ou bien un code écrit dans un langage informatique de haut niveau.
Le générateur 21 de scénarios et cas de test génère en parallèle, étape 33, des paramètres permettant de tester les fonctionnalités du logiciel. Ces paramètres seront fournis à un logiciel de test sous forme de commandes d'exécution reproduisant soit des situations types permettant de vérifier l'exécution nominale du logiciel soit des situations aux limites permettant de vérifier que le logiciel est capable de gérer les anormalités telles que, par exemple, une donnée manquante ou aberrante. Ces exécutions pourront être réalisées automatiquement ou manuellement en fonction du contexte.
Dans un mode particulier de réalisation, l'ensemble des fonctionnalités décrites est réalisé sous forme de modules logiciels qui viennent se greffer sur un logiciel de traitement de texte de type Microsoft Word ou OpenOffice permettant ainsi avantageusement à l'utilisateur de travailler dans un environnement connu et relativement standardisé.
L'invention a été illustrée et décrite en détail dans les dessins et la description précédente. Celle-ci doit être considérée comme illustrative et donnée à titre d'exemple et non comme limitant l'invention a cette seule description. De nombreuses variantes de réalisation sont possibles.
Dans les revendications, le mot « comprenant » n'exclue pas d'autres éléments et l'article indéfini « un/une » n'exclue pas une pluralité.
Claims
1. Système de gestion et de compilation d'un cadre d'applications de développement logiciel comprenant:
• des moyens (1 1 ) de capture de données, lesdites données définissant en langage naturel des exigences fonctionnelles dudit cadre d'application ;
• un analyseur lexicographique (13) adapté pour transformer les données capturées en termes lexicographiques appelés entités définis dans un dictionnaire et en relations entre lesdites entités ;
• un désambiguïseur (15) comportant une base de connaissances adapté pour, en association avec l'analyseur lexicographique, déterminer les entités multivoques et générer une erreur si une telle entité est rencontrée ;
• un compilateur (17) adapté pour transformer l'ensemble des entités et leurs relations en une arborescence de règles, chaque règle comportant au moins un prédicat et une action associée, et telle que l'ensemble des règles filles d'une règle parente couvre la totalité du périmètre de la règle parente ;
• un vérificateur (19) de cohérence logique adapté pour vérifier la cohérence de l'ensemble des règles ;
· un générateur (20) de code adapté pour transformer l'arborescence de règles en un flux de données formaté pour la génération d'un code logiciel.
2. Système selon la revendication 1 , caractérisé en ce que les entités étant de type simple ou de type complexe, les entités complexes sont définies sous forme d'un ensemble d'entités simples et de relations entre lesdites entités simples.
3. Système selon la revendication 1 , caractérisé en ce que le dictionnaire comporte une liste de termes qualifiés de « flous » de telle sorte que l'analyseur lexicographique est adapté pour générer une erreur quand un des termes de ladite liste fait partie des données capturées.
4. Système selon la revendication 1 , caractérisé en ce que la base de connaissances comporte des règles d'association définissant des contextes d'association de termes de telle sorte que, suivant le contexte, un terme est déclaré comme flou et déclenche une erreur ou est déclaré comme non-flou.
5. Système selon la revendication 1 , caractérisé en ce que le compilateur est adapté pour générer en outre un modèle de données dans lequel chaque entité est définie par ses associations et cardinalité et chaque entité possède au moins une action correspond à chacune des fonctions de création, lecture, modification, suppression, recherche et impression.
6. Système selon la revendication 1 , caractérisé en ce qu'il comprend en outre un générateur (21 ) de scénarios et cas de test adapté pour fournir des commandes d'exécution à un logiciel de test.
7. Procédé de gestion et de compilation d'un cadre d'applications de développement logiciel comprenant:
• une saisie (22) de données, lesdites données définissant en langage naturel des exigences fonctionnelles dudit cadre d'application ;
• une analyse lexicographique (23) pour transformer les données capturées en termes lexicographiques appelés entités définis dans un dictionnaire et en relations entre lesdites entités ;
• une analyse d'ambiguïté (25) utilisant une base de connaissances pour, en association avec l'analyse lexicographique, déterminer les entités multivoques et générer une erreur si une telle entité est rencontrée ;
• une compilation (27) pour transformer l'ensemble des entités et leurs relations en une arborescence de règles, chaque règle comportant au moins un prédicat et une action associée, et telle que l'ensemble des règles filles d'une règle parente couvre la totalité du périmètre de la règle parente ;
• une vérification (29) de cohérence logique vérifiant la cohérence de l'ensemble des règles ; • une génération de code (31 ) transformant l'arborescence de règles en un flux de données formaté pour la génération d'un code logiciel.
8. Produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution du procédé de la revendication 7 lorsque ledit programme est exécuté sur un ordinateur.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/FR2010/050222 WO2011098677A1 (fr) | 2010-02-10 | 2010-02-10 | Systeme et un procede de gestion et de compilation d'un cadre d'applications de developpement logiciel. |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/FR2010/050222 WO2011098677A1 (fr) | 2010-02-10 | 2010-02-10 | Systeme et un procede de gestion et de compilation d'un cadre d'applications de developpement logiciel. |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2011098677A1 true WO2011098677A1 (fr) | 2011-08-18 |
Family
ID=42938517
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/FR2010/050222 Ceased WO2011098677A1 (fr) | 2010-02-10 | 2010-02-10 | Systeme et un procede de gestion et de compilation d'un cadre d'applications de developpement logiciel. |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2011098677A1 (fr) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014115189A1 (fr) * | 2013-01-28 | 2014-07-31 | Nec Corporation | Procédé et système de transformation de scripts de spécification en code de programme |
| EP3451271A1 (fr) * | 2017-09-01 | 2019-03-06 | Capital One Services, LLC | Systèmes et procédés pour accélérer un traitement de données à base de règles |
| CN112333231A (zh) * | 2020-09-18 | 2021-02-05 | 许继集团有限公司 | 一种基于mqtt物联网配置型通配规约的实现方法及系统 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040117765A1 (en) * | 2002-12-16 | 2004-06-17 | Ming Chan | System and method for evaluating and executing hierarchies of rules |
| US20060025987A1 (en) * | 2004-07-30 | 2006-02-02 | Baisley Donald E | Generating software components from business rules expressed in a natural language |
| EP1672547A1 (fr) * | 2004-12-15 | 2006-06-21 | C.R.F. Societa' Consortile per Azioni | Generation d'un modèle événementiel à partir d'une interface de langage naturel ordonné |
| EP1832975A1 (fr) * | 2006-03-09 | 2007-09-12 | Alcatel Lucent | Génération automatique de programme source |
| WO2008054331A1 (fr) * | 2006-11-02 | 2008-05-08 | Crimsonlogic Pte Ltd | Système et procédé pour traiter des déclarations en langage naturel indépendantes de la langue |
-
2010
- 2010-02-10 WO PCT/FR2010/050222 patent/WO2011098677A1/fr not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040117765A1 (en) * | 2002-12-16 | 2004-06-17 | Ming Chan | System and method for evaluating and executing hierarchies of rules |
| US20060025987A1 (en) * | 2004-07-30 | 2006-02-02 | Baisley Donald E | Generating software components from business rules expressed in a natural language |
| EP1672547A1 (fr) * | 2004-12-15 | 2006-06-21 | C.R.F. Societa' Consortile per Azioni | Generation d'un modèle événementiel à partir d'une interface de langage naturel ordonné |
| EP1832975A1 (fr) * | 2006-03-09 | 2007-09-12 | Alcatel Lucent | Génération automatique de programme source |
| WO2008054331A1 (fr) * | 2006-11-02 | 2008-05-08 | Crimsonlogic Pte Ltd | Système et procédé pour traiter des déclarations en langage naturel indépendantes de la langue |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014115189A1 (fr) * | 2013-01-28 | 2014-07-31 | Nec Corporation | Procédé et système de transformation de scripts de spécification en code de programme |
| EP3451271A1 (fr) * | 2017-09-01 | 2019-03-06 | Capital One Services, LLC | Systèmes et procédés pour accélérer un traitement de données à base de règles |
| US10599985B2 (en) | 2017-09-01 | 2020-03-24 | Capital One Services, Llc | Systems and methods for expediting rule-based data processing |
| CN112333231A (zh) * | 2020-09-18 | 2021-02-05 | 许继集团有限公司 | 一种基于mqtt物联网配置型通配规约的实现方法及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7890309B2 (en) | System and method for analyzing a business process integration and management (BPIM) solution | |
| FR2907933A1 (fr) | Procede pour la creation d'une description des exigences pour un systeme incorpore. | |
| Kahani et al. | The problems with eclipse modeling tools: a topic analysis of eclipse forums | |
| US20100325491A1 (en) | Mining a use case model by analyzing its description in plain language and analyzing textural use case models to identify modeling errors | |
| US8407235B2 (en) | Exposing and using metadata and meta-metadata | |
| Bécan et al. | Automating the formalization of product comparison matrices | |
| Blinn et al. | Statically contextualizing large language models with typed holes | |
| Sens et al. | A large-scale study of model integration in ml-enabled software systems | |
| Chatlatanagulchai et al. | Agent READMEs: An Empirical Study of Context Files for Agentic Coding | |
| Bettini et al. | Supporting safe metamodel evolution with edelta | |
| Herwanto et al. | From user stories to data flow diagrams for privacy awareness: A research preview | |
| Hue et al. | USLTG: test case automatic generation by transforming use cases | |
| FR2887349A1 (fr) | Procede de traitement de donnees compatible avec un formalisme de modelisation d'objets | |
| Bruneliere | Generic model-based approaches for software reverse engineering and comprehension | |
| WO2011098677A1 (fr) | Systeme et un procede de gestion et de compilation d'un cadre d'applications de developpement logiciel. | |
| US20250292304A1 (en) | Context Extraction of Event-Based Data | |
| FR3018368A1 (fr) | Procede et dispositif pour gerer les ambiguites dans l'analyse d'un code source | |
| Bhatia et al. | Towards a change taxonomy for machine learning systems | |
| Gómez | Supporting integration activities in object-oriented applications | |
| CN118796203A (zh) | 代码生成方法、装置、电子设备、产品及存储介质 | |
| Moore | User interface reengineering | |
| EP3195113A1 (fr) | Procédé de vérification de traçabilité de premières instructions en un langage de programmation procédurale générées à partir de secondes instructions en un langage de modélisation | |
| Hamdani et al. | A Novel Framework to Automatically Generate IFML Models From Plain Text Requirements | |
| Xu et al. | DocPrism: Local Categorization and External Filtering to Identify Relevant Code-Documentation Inconsistencies | |
| FR2849515A1 (fr) | Procede generique de production automatique d'interfaces de reconnaissance vocale pour un domaine d'application et dispositif de mise en oeuvre |
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: 10715916 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 10715916 Country of ref document: EP Kind code of ref document: A1 |