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 PDF

Info

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
Application number
PCT/FR2010/050222
Other languages
French (fr)
Inventor
Louardi Messai
Original Assignee
Telys
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telys filed Critical Telys
Priority to PCT/FR2010/050222 priority Critical patent/WO2011098677A1/en
Publication of WO2011098677A1 publication Critical patent/WO2011098677A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Abstract

The invention relates to a system for managing and compiling software applications including: an input (11) for data defining functional requirements in natural language; a lexicographic analyzer (13) transforming the captured data into defined entities within a dictionary and into relations therebetween; a disambiguator (15) comprising a knowledge base for determining ambiguous entities and generating an error if such an entity is encountered; a compiler (17) transforming the set of entities and the relationships thereof into a tree of rules comprising at least one predicate and one associated action, and such that the set of daughter rules of a parent rule covers the full scope of the parent rule; a logical consistency checker (19) verifying the consistency of the rules; and a code generator (20) transforming the rule tree into a formatted data stream for generating a software code.

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

REVENDICATIONS
1. Système de gestion et de compilation d'un cadre d'applications de développement logiciel comprenant: A system for managing and compiling a software development application framework comprising:
• des moyens (1 1 ) de capture de données, lesdites données définissant en langage naturel des exigences fonctionnelles dudit cadre d'application ; Means (1 1) for capturing data, said data defining in natural language functional requirements of said application framework;
• 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 ; A lexicographic analyzer (13) adapted to transform the captured data into lexicographic terms called entities defined in a dictionary and relations between said entities;
• 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 ; A disambiguator (15) 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 (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 ;A compiler (17) adapted to transform the set of 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 (19) de cohérence logique adapté pour vérifier la cohérence de l'ensemble des règles ; • a logical consistency checker (19) adapted to check the consistency of the set of rules;
· 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.  A code generator (20) adapted to transform the rule tree into a formatted data stream for generating software code.
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. 2. System according to claim 1, characterized in that 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.
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. 3. System according to claim 1, characterized in that the dictionary comprises a list of terms qualified 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. .
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. System according to claim 1, characterized in that the knowledge base includes association rules defining term association contexts such that, depending on the context, a term is declared as fuzzy and triggers an error or error. is declared as non-fuzzy.
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. 5. System according to claim 1, characterized in that 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 creation functions. , read, edit, delete, search and print.
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. 6. System according to claim 1, characterized in that it further comprises a generator (21) of scenarios and test cases adapted to provide execution commands to a test software.
7. Procédé de gestion et de compilation d'un cadre d'applications de développement logiciel comprenant: A method for managing and compiling a software development application framework comprising:
• une saisie (22) de données, lesdites données définissant en langage naturel des exigences fonctionnelles dudit cadre d'application ;  Data entry (22), said data defining in natural language functional requirements of said application frame;
• 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 ;  A lexicographic analysis (23) for transforming the captured data into lexicographic terms called entities defined in a dictionary and relations between said entities;
• 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 ;  An ambiguity analysis (25) using a knowledge base for, in association with the lexicographic analysis, determining the multi-record entities and generating an error if such an entity is encountered;
• 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 ;  A compilation (27) for transforming the set of 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 the entire perimeter of the parent rule;
• 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. • a logical consistency check (29) checking the consistency of the set of rules; A code generation (31) transforming the rules tree into a formatted data stream for the generation of software code.
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. A computer program product comprising program code instructions for performing the method of claim 7 when said program is run on a computer.
PCT/FR2010/050222 2010-02-10 2010-02-10 System and a method for managing and compiling a software development application framework WO2011098677A1 (en)

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 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 (2)

* Cited by examiner, † Cited by third party
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

Citations (5)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 (3)

* Cited by examiner, † Cited by third party
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

Similar Documents

Publication Publication Date Title
Nadi et al. Mining configuration constraints: Static analyses and empirical results
US7890309B2 (en) System and method for analyzing a business process integration and management (BPIM) solution
US8156473B2 (en) Model oriented debugging
FR2907933A1 (en) METHOD FOR CREATING A DESCRIPTION OF REQUIREMENTS FOR AN INCORPORATED SYSTEM.
Pérez-Castillo et al. Business process archeology using MARBLE
Kahani et al. The problems with eclipse modeling tools: a topic analysis of eclipse forums
Rossant IPython Interactive Computing and Visualization Cookbook: Over 100 hands-on recipes to sharpen your skills in high-performance numerical computing and data science in the Jupyter Notebook
US20100325491A1 (en) Mining a use case model by analyzing its description in plain language and analyzing textural use case models to identify modeling errors
WO2006136565A1 (en) Data processing method compatible with an object modelling formalism
US8407235B2 (en) Exposing and using metadata and meta-metadata
Zolotas et al. From requirements to source code: a Model-Driven Engineering approach for RESTful web services
Bécan et al. Automating the formalization of product comparison matrices
Sobernig et al. Extracting reusable design decisions for UML-based domain-specific languages: A multi-method study
FR2934388A1 (en) METHOD FOR CREATING COMPUTER PROGRAM
EP1588351A1 (en) Automatic production of vocal recognition interfaces for an applied field
Zaytsev Grammar Zoo: A corpus of experimental grammarware
Clavreul Model and metamodel composition: separation of mapping and interpretation for unifying existing model composition techniques
Degueule Composition and interoperability for external domain-specific language engineering
Pol’la et al. Analysis of variability models: a systematic literature review
Hue et al. USLTG: Test case automatic generation by transforming use cases
WO2011098677A1 (en) System and a method for managing and compiling a software development application framework
Montrieux et al. Challenges in model-based evolution and merging of access control policies
Moore User interface reengineering
Bruneliere Generic model-based approaches for software reverse engineering and comprehension
Bellan et al. A Qualitative Analysis of the State of the Art in Process Extraction from Text.

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