WO2011098677A1 - System and a method for managing and compiling a software development application framework - Google Patents
System and a method for managing and compiling a software development application framework 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
Description
SYSTEME ET UN PROCEDE DE GESTION ET DE COMPILATION D'UN CADRE D'APPLICATIONS DE DEVELOPPEMENT LOGICIEL SYSTEM AND METHOD FOR MANAGING AND COMPILING A SOFTWARE DEVELOPMENT APPLICATION FRAMEWORK
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é. 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.
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. In the field of software engineering, a lot of work has been done to define methodologies and tools for transforming software development specifications into a computer program that fulfills the desired functions. For example, UML (Unified Modeling Language), the trademark of 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.
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. One of the difficulties encountered in the implementation of these methods lies in the relationship with the users / prescribers. It is indeed necessary to move from the list of needs expressed informally and in a business language into a coherent document, expressed in a functional specification language, allowing developers to work. However, experience shows that this transcription is the source of many errors in the form of misunderstandings of users' needs, contradictory demands, etc. And these errors are often detected late in the development process because the user is often unable to read and understand the formal specification document that is meant to represent their need.
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. To limit these difficulties, it was proposed to make rapid prototyping to allow the user to test as soon as possible the functionality of the software and thus verify its adequacy to the needs. However, when a project is complex, prototyping can itself become a complex and time-consuming operation.
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 : It would therefore be desirable to develop tools to ensure that the collection of specification information provides a complete, consistent and truly corresponding specification of user requirements. To solve one or more of the aforementioned drawbacks, a system for managing and compiling a software development application framework includes:
• des moyens de capture de données, les données définissant en langage naturel des exigences fonctionnelles du cadre d'application ; Data capture means, the data defining in natural language the functional requirements of the application framework;
• 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 ; A lexicographic analyzer adapted to transform the captured data in lexicographic terms called entities defined in a dictionary and in relations between said entities;
• 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 ; 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;
• 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 ; 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;
• un vérificateur de cohérence logique adapté pour vérifier la cohérence de l'ensemble des règles ; et • a logical consistency checker adapted to check the consistency of the set of rules; and
• 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. A code generator adapted to transform the rule tree into a formatted data stream for generating software code.
Des caractéristiques ou des modes de réalisation particuliers, utilisables seuls ou en combinaison, sont : Particular characteristics or embodiments that can be used alone or in combination are:
• 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 ; • the entities being of simple type or of complex type, the complex entities are defined in the form of a set of simple entities and relations between said simple entities;
• 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 ; 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;
• 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 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
• 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. • It further includes a scenario generator and test case adapted to provide execution commands to a test software.
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 : In a second aspect of the invention, a method for managing and piling a framework of software development applications includes:
• une saisie de données, lesdites données définissant en langage naturel des exigences fonctionnelles du cadre d'application ; • a data entry, said data defining in natural language functional requirements of the application framework;
• 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 ; • a lexicographic analysis to transform the captured data into lexicographic terms called entities defined in a dictionary and relations between entities;
• 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 ; • an ambiguity analysis using a knowledge base to, in combination with lexicographic analysis, determine the multi-record entities and generate an error if such an entity is encountered;
• 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 ; • a compilation to transform the set of entities and their relations into a tree of rules, each rule containing at least one predicate and an associated action, and such that the set of daughter rules of a parent rule covers the entire perimeter the parent rule;
• une vérification de cohérence logique vérifiant la cohérence de l'ensemble des règles ; • a logical consistency check that checks the consistency of the set of rules;
• 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. • code generation transforming the rules tree into a formatted data stream for generating software code. In a third aspect of the invention, a computer program product includes program code instructions for executing the preceding method when the program is run on a computer.
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 : The invention will be better understood on reading the description which follows, given solely by way of example, and with reference to the appended figures in which:
- la figure 1 est une vue schématique d'un système selon un mode de réalisation de l'invention ; FIG. 1 is a schematic view of a system according to one embodiment of the invention;
- la figure 2 est une vue schématique fonctionnelle du système de la figure 1 ; et FIG. 2 is a schematic functional view of the system of FIG. 1; and
- la figure 3 est un ordinogramme du fonctionnement du système de la figure 1 . - Figure 3 is a flow chart of the operation of the system of 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. Referring to Figure 1, a software engineering system includes a workstation 1 with interface means 3 with a user. Typically, the interface means 3 comprise a display screen as well as keyboard type input means allowing the user to enter at least textual information.
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. 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.
La station de travail 3 comporte donc, Figure 2, les fonctionnalités suivantes : The workstation 3 therefore comprises, Figure 2, the following features:
• des moyens 1 1 de capture de données utilisant les moyens d'interface 3 ; Data capture means 1 1 using the interface means 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 ; 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;
« 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 ; 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;
• 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 A code generator adapted to transform the rule tree into a formatted data stream for the generation of software code; and
« un générateur 21 de scénarios et cas de test adapté pour fournir des commandes d'exécution à un logiciel de test. A scenario generator 21 and test case adapted to provide execution commands to a test software.
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é. 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.
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. Thus, 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. .
Le fonctionnement du système va maintenant être décrit en relation avec la Figure 3. The operation of the system will now be described in connection with 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. As an illustration, 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. Similarly, 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.
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. 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.
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é. Classically this operation is achievable using a word processor. But it can also be realized by a speech processing software capable of transforming a speech into a typed text.
Ces informations sont, par exemple, le résultat d'entretiens entre le rédacteur et des utilisateurs potentiels du futur cadre d'applications. This information is, for example, the result of interviews between the writer and potential users of the future application framework.
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. It should also be noted that, when performing the automatic method described below, it can and must detect errors or inconsistencies. These are then corrected by the editor who modifies the data entered accordingly and for this, he may have to turn to the users to make a correction that has a meaning in relation to the application domain in general and the framework of application to develop in particular.
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. Thus, in a particular embodiment, 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.
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é. 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. Thus the lexicographic analyzer 13 will verify that the names belong to the dictionary 14 and that they have a precise definition. For example, 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.
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. 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. 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. In particular, for a complex entity, which can be considered as a node of a graph, it is verified that its decomposition is described and fully described. In a way, it is verified that the inventory is complete.
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. 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.
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. However, the blur can also come from a particular expression. To detect this, 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.
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. 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.
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. 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.
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. It should be noted that, optionally, 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.
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. It can then also be accompanied by formatting modules allowing for example to ensure uniformity in structuring in chapter and sub-chapter, to establish a table of contents and an index, etc. to provide a documentation of the functional specifications of the application framework of good quality, which is a classic requirement of any software development project.
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. 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.
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. This makes it possible to check the completeness of the "requirements" on the one hand and on the other hand to prepare the data model and the treatment model by indicating for each event or for each data the rule or rules to be applied. Thus, for the data model, 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.
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. 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.
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. From this set of rules, the code generator 20 generates, step 31, a formatted data stream for the generation of software code. For example, this can be a UML structure or a code written in a high-level computer language.
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. 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. These executions can be performed automatically or manually depending on the context.
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é. In a particular embodiment, 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.
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. The invention has been illustrated and described in detail in the drawings and the foregoing description. This must be considered as illustrative and given by way of example and not as limiting the invention to this description alone. Many alternative embodiments are possible.
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é. In the claims, the word "comprising" does not exclude other elements and the indefinite article "one" does not exclude a plurality.
Claims
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/FR2010/050222 WO2011098677A1 (en) | 2010-02-10 | 2010-02-10 | System and a method for managing and compiling a software development application framework |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/FR2010/050222 WO2011098677A1 (en) | 2010-02-10 | 2010-02-10 | System and a method for managing and compiling a software development application framework |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2011098677A1 true WO2011098677A1 (en) | 2011-08-18 |
Family
ID=42938517
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/FR2010/050222 Ceased WO2011098677A1 (en) | 2010-02-10 | 2010-02-10 | System and a method for managing and compiling a software development application framework |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2011098677A1 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014115189A1 (en) * | 2013-01-28 | 2014-07-31 | Nec Corporation | Method and system for transforming specification scripts to program code |
| EP3451271A1 (en) * | 2017-09-01 | 2019-03-06 | Capital One Services, LLC | Systems and methods for expediting rule-based data processing |
| CN112333231A (en) * | 2020-09-18 | 2021-02-05 | 许继集团有限公司 | Method and system for realizing configured universal protocol based on mqtt Internet of things |
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 (en) * | 2004-12-15 | 2006-06-21 | C.R.F. Societa' Consortile per Azioni | Event-driven model generated from an ordered natural language interface |
| EP1832975A1 (en) * | 2006-03-09 | 2007-09-12 | Alcatel Lucent | Automatic generation of source program |
| WO2008054331A1 (en) * | 2006-11-02 | 2008-05-08 | Crimsonlogic Pte Ltd | System and method for processing language independent natural language statements |
-
2010
- 2010-02-10 WO PCT/FR2010/050222 patent/WO2011098677A1/en 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 (en) * | 2004-12-15 | 2006-06-21 | C.R.F. Societa' Consortile per Azioni | Event-driven model generated from an ordered natural language interface |
| EP1832975A1 (en) * | 2006-03-09 | 2007-09-12 | Alcatel Lucent | Automatic generation of source program |
| WO2008054331A1 (en) * | 2006-11-02 | 2008-05-08 | Crimsonlogic Pte Ltd | System and method for processing language independent natural language statements |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014115189A1 (en) * | 2013-01-28 | 2014-07-31 | Nec Corporation | Method and system for transforming specification scripts to program code |
| EP3451271A1 (en) * | 2017-09-01 | 2019-03-06 | Capital One Services, LLC | Systems and methods for expediting rule-based data processing |
| US10599985B2 (en) | 2017-09-01 | 2020-03-24 | Capital One Services, Llc | Systems and methods for expediting rule-based data processing |
| CN112333231A (en) * | 2020-09-18 | 2021-02-05 | 许继集团有限公司 | Method and system for realizing configured universal protocol based on mqtt Internet of things |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7890309B2 (en) | System and method for analyzing a business process integration and management (BPIM) solution | |
| FR2907933A1 (en) | METHOD FOR CREATING A DESCRIPTION OF REQUIREMENTS FOR AN INCORPORATED SYSTEM. | |
| Kahani et al. | The problems with Eclipse modeling tools: A topic analysis of Eclipse forums | |
| Milicev | Model-driven development with executable UML | |
| 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 | |
| Pérez-Castillo et al. | Business process archeology using MARBLE | |
| FR2934388A1 (en) | METHOD FOR CREATING COMPUTER PROGRAM | |
| Bécan et al. | Automating the formalization of product comparison matrices | |
| Sens et al. | A large-scale study of model integration in ml-enabled software systems | |
| WO2006136565A1 (en) | Data processing method compatible with an object modelling formalism | |
| 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 | |
| Bruneliere | Generic model-based approaches for software reverse engineering and comprehension | |
| WO2011098677A1 (en) | System and a method for managing and compiling a software development application framework | |
| Georgiades et al. | Formalizing and automating use case model development | |
| FR3018368A1 (en) | METHOD AND DEVICE FOR MANAGING AMBIGUITS IN SOURCE CODE ANALYSIS | |
| Moore | User interface reengineering | |
| Bhatia et al. | Towards a change taxonomy for machine learning systems | |
| WO2016016473A1 (en) | Method for verifying traceability of first instructions in a procedural programming language generated from second instructions in a modelling language | |
| Nierstrasz et al. | Moldable Development Patterns | |
| FR2849515A1 (en) | GENERIC METHOD FOR THE AUTOMATIC PRODUCTION OF VOICE RECOGNITION INTERFACES FOR A FIELD OF APPLICATION AND DEVICE FOR IMPLEMENTING THE SAME | |
| Manrique-Losada et al. | NLP in Requirements Processing: A Content Analysis Based Systematic Literature Mapping | |
| US20250292304A1 (en) | Context Extraction of Event-Based Data |
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 |