FR2887348A1 - Data structure for creating e.g. unified modeling language object model, has set of clauses e.g. manipulatable logic clause, where each clause is entirely declarative and associated to component of object formalism modeling - Google Patents

Data structure for creating e.g. unified modeling language object model, has set of clauses e.g. manipulatable logic clause, where each clause is entirely declarative and associated to component of object formalism modeling Download PDF

Info

Publication number
FR2887348A1
FR2887348A1 FR0551695A FR0551695A FR2887348A1 FR 2887348 A1 FR2887348 A1 FR 2887348A1 FR 0551695 A FR0551695 A FR 0551695A FR 0551695 A FR0551695 A FR 0551695A FR 2887348 A1 FR2887348 A1 FR 2887348A1
Authority
FR
France
Prior art keywords
data structure
modeling
formalism
clauses
data
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.)
Withdrawn
Application number
FR0551695A
Other languages
French (fr)
Inventor
Philippe Larvet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel Lucent SAS
Original Assignee
Alcatel SA
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 Alcatel SA filed Critical Alcatel SA
Priority to FR0551695A priority Critical patent/FR2887348A1/en
Publication of FR2887348A1 publication Critical patent/FR2887348A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The structure has a set of clauses e.g. manipulatable or upgradeable logic clause by a program. Each clause is associated to a modeling component of an object formalism modeling, and is entirely declarative. The clause comprises a code relative to the modeling component, where the component is a package, case, class, attributes, association and inheritance. Independent claims are also included for the following: (1) a computer programming product adapted to upgrade, access, or to manipulate a data structure (2) a file readable by a computer comprising a data structure (3) a method for processing data.

Description

La présente invention concerne une structure de données compatible avec unThe present invention relates to a data structure compatible with a

formalisme de modélisation d'objets, par exemple la notation UML, ainsi qu'un procédé de traitement de données pour créer un modèle UML ou générer du code.  object modeling formalism, eg UML notation, as well as a data processing method for creating a UML model or generating code.

Dans la présente description, les termes suivants sont employés avec le sens indiqué, sauf mention contraire: - application informatique : désigne tout programme ou tout ensemble de programmes prévus pour fonctionner conjointement, dont le but est de rendre des services à leurs utilisateurs.  In this description, the following terms are used with the meaning indicated, unless otherwise indicated: - computer application: means any program or set of programs intended to function together, the purpose of which is to render services to their users.

- classe : désigne la notion de classe communément manipulée dans les formalismes de modélisation et langages de programmation orientés objet et notamment l'agrégation de données et de traitements (ou attributs et méthodes, respectivement) destinés à fonctionner ensemble dans une application informatique. Dans les langages orientés objet, chaque type d'objet est définie par sa classe. Une classe représente l'ensemble des objets partageant les mêmes attributs, opérations, méthodes, relations et sémantiques.  - class: refers to the notion of class commonly manipulated in object-oriented programming modeling and programming languages and in particular the aggregation of data and processes (or attributes and methods, respectively) intended to work together in a computer application. In object-oriented languages, each object type is defined by its class. A class represents the set of objects that share the same attributes, operations, methods, relationships, and semantics.

- ligne : une expression ou suite d'expressions d'un langage symbolique fournissant un renseignement déterminé à un programme de destination, par exemple au compilateur.  - line: an expression or sequence of expressions of a symbolic language providing specific information to a destination program, for example to the compiler.

- conteneur : en programmation orientée objet, un objet comprenant d'autres objets, tel qu'un dictionnaire, et qui fournit les opérations pour accéder à son contenu. Il peut aussi s'agir d'un composant comprenant d'autres composants.  - container: in object-oriented programming, an object comprising other objects, such as a dictionary, and which provides the operations to access its contents. It can also be a component comprising other components.

- code source : texte écrit dans un langage de programmation ou de description qui est ensuite compilé en langage machine afin d'être exécuté par une plate-forme informatique matérielle, ou interprété par un environnement logiciel ou matériel d'interprétation.  - source code: text written in a programming or description language which is then compiled in machine language in order to be executed by a hardware computing platform, or interpreted by a software environment or interpretation material.

- code : désigne indifféremment du code source ou du code compilé.  - code: indifferently designates source code or compiled code.

- compilation : action de traduction d'une description exprimée dans un langage de programmation vers le langage natif d'une plate-forme informatique matérielle, avant son exécution par cette plate-forme informatique matérielle.  compilation: action of translation of a description expressed in a programming language into the native language of a hardware computer platform, before it is executed by this hardware computer platform.

- déclaratif : se dit de données réunies sans que soit indiqué ni nécessaire l'ordre dans lequel elles doivent être utilisées. Lorsque cet ordre est indiqué, la représentation n'est plus déclarative mais procédurale. Les deux notions se recouvrent généralement, au sens ou un langage peut comprendre des parties déclaratives et d'autres parties procédurales.  - declarative: refers to data collected without the indication or necessity of the order in which they are to be used. When this order is indicated, the representation is no longer declarative but procedural. The two concepts generally overlap, in the sense that a language may include declarative parts and other procedural parts.

- DTD : (pour document type definition ou définition de type de document), désigne un modèle de structure logique d'un document, permettant de fixer les éléments devant composer le document ainsi que la nature des liens devant relier ces éléments. On utilise également le mot anglais schema .  - DTD: (for document type definition or definition of document type), designates a model of logical structure of a document, making it possible to fix the elements to compose the document as well as the nature of the links to link these elements. We also use the English word schema.

- génération de code : désigne ici la production automatique ou semiautomatique de code source pour une application informatique, au moyen d'un générateur. Elle se fait à partir d'une description abstraite d'une d'application logicielle fournie au générateur et servant à piloter cette génération. Celui-ci, après analyse de cette description, construit le code attendu en sortie. Cette description est généralement exprimée dans un langage de plus haut niveau que celui dans lequel le code sera produit. Ainsi on fait souvent le choix d'un langage le plus proche possible de l'expression naturelle humaine, soit sous forme graphique soit sous forme textuelle. Ainsi on peut exploiter le générateur sans avoir à connaître le formalisme du langage de programmation utilisé dans le code généré.  - code generation: here refers to the automatic or semiautomatic production of source code for a computer application, by means of a generator. It is based on an abstract description of a software application supplied to the generator and used to control this generation. This one, after analyzing this description, builds the code expected at the output. This description is usually expressed in a higher level language than the one in which the code will be produced. Thus one often makes the choice of a language as close as possible to the natural human expression, either in graphical form or in textual form. Thus we can operate the generator without having to know the formalism of the programming language used in the generated code.

- héritage : relation attachant deux classes dans laquelle une classe de base hérite des propriétés (attributs et méthodes) d'une classe-mère , et permettant à la première d'enrichir sa propre définition avec celle de la seconde, tout en conservant toutes ses caractéristiques d'origine. Un héritage est enrichissant (on ajoute à la classe qui hérite les propriétés de la classe héritée) et pas appauvrissant (on ne peut pas ne pas hériter de toutes les propriétés de la classe-mère).  - inheritance: a relationship that links two classes in which a base class inherits the properties (attributes and methods) of a parent class, and allows the first class to enrich its own definition with that of the second, while retaining all its original features. An inheritance is enriching (we add to the class that inherits the properties of the inherited class) and not depleting (we can not not inherit all the properties of the parent class).

- HUTN (pour Human-Usable Textual Notation), désigne un standard de I'OMG (Object Management Group) qui permet de créer et modifier des modèles au format texte avec une syntaxe lisible pour l'homme. Cette syntaxe a été conçue dans le but d'être générique, automatisable et compréhensible par l'utilisateur. HUTN est reconnu comme étant plus simple et manifestement plus lisible que XMI car orienté utilisateur , il se rapproche de langages connus tels que Java, C++.  - HUTN (for Human-Usable Textual Notation), refers to an Object Management Group (OMG) standard that allows you to create and modify text-based templates with human-readable syntax. This syntax has been designed to be generic, automatable and understandable by the user. HUTN is recognized as being simpler and obviously more readable than XMI as user oriented, it is close to known languages such as Java, C ++.

- Instance , désigne une occurrence, un exemplaire, un membre individuel 30 d'un type ou d'une classe. Un membre d'une classe est couramment désigné par les termes synonymes d'objet ou d'instance.  Instance means an occurrence, a copy, an individual member of a type or class. A member of a class is commonly referred to by the terms synonymous with object or instance.

- langage de programmation : formalisme permettant de décrire des actions destinées à être exécutées par un ordinateur. Ces descriptions sont exécutées par l'ordinateur après compilation ou interprétation. Une application informatique est décrite en utilisant un ou plusieurs langages de programmation. Par le terme langage , on entend tous les formats de représentation permettant de décrire tout ou partie des logiciels afin de contribuer directement ou indirectement à leur construction effective.  - programming language: formalism to describe actions to be executed by a computer. These descriptions are executed by the computer after compilation or interpretation. A computer application is described using one or more programming languages. By the term language, we mean all formats of representation to describe all or part of the software to contribute directly or indirectly to their effective construction.

- métalangage désigne un langage prend pour objet un autre langage et qui le formalise.  - metalanguage means a language that takes another language as its object and formalizes it.

- métamodélisation renvoi à la spécification d'un langage de modélisation grâce à un autre langage de modélisation (métalangage), un métamodèle étant un modèle représentant la syntaxe d'un langage.- modélisation désigne la représentation abstraite d'un énoncé, d'un problème ou d'un système, réalisée d'une part dans un but de compréhension et de communication de cette compréhension, et d'autre part dans un but de résolution du problème ou d'implémentation concrète du système.  - metamodeling refers to the specification of a modeling language by means of another modeling language (metalanguage), a metamodel being a model representing the syntax of a language.- modeling means the abstract representation of a statement, a problem or system, carried out on the one hand for the purpose of understanding and communicating this understanding, and on the other hand for the purpose of solving the problem or of concrete implementation of the system.

- modélisation orientée objet désigne un type particulier de modélisation dans laquelle les éléments de modélisation sont des classes, objets, attributs, méthodes, associations, etc. par opposition à "modélisation fonctionnelle" dans laquelle les éléments de modélisation sont des fonctions de traitement et des flux de données. Voir aussi UML .  - object-oriented modeling refers to a particular type of modeling in which the modeling elements are classes, objects, attributes, methods, associations, etc. as opposed to "functional modeling" in which the modeling elements are processing functions and data streams. See also UML.

- MOF (pour Meta Object Facility) est un langage de métamodélisation proposé par l'OMG et utilisé pour spécifier la syntaxe d'UML et d'autres langages de 20 modélisation.  MOF (for Meta Object Facility) is a metamodeling language proposed by the OMG and used to specify the syntax of UML and other modeling languages.

- OMG (pour Object Management Group ), désigne une organisation dont l'un des buts est de définir des standards afin de garantir la compatibilité entre des applications programmées à l'aide de langages orientés objet (cf. http://www.omg.org).  - OMG (for Object Management Group), refers to an organization whose purpose is to define standards in order to guarantee compatibility between applications programmed using object-oriented languages (see http: //www.omg .org).

- objet : désigne, en modélisation ou en programmation orientée objet, une instance de classe, constitué d'un ensemble de données (les propres données définitoires de la classe) et des procédures utiles à leur manipulation.  - object: designates, in modeling or object-oriented programming, a class instance, consisting of a set of data (the class's own defining data) and procedures useful for handling them.

- orienté objet , se dit par exemple d'un modèle, d'un langage, d'une application ou d'éléments d'applications dont les constituants sont des classes et des objets. Par exemple un langage orienté objet est un langage de programmation dans lequel les composants de base sont des classes, dont les instances les objets vivent dynamiquement dans le programme informatique qui les utilise.  - object-oriented, for example, a model, a language, an application or application elements whose constituents are classes and objects. For example an object-oriented language is a programming language in which the basic components are classes, whose instances the objects live dynamically in the computer program that uses them.

- paquetage (de l'anglais Package, ce dernier étant le plus couramment usité dans l'art) : désigne tout d'abord un ensemble d'éléments de modélisation (classes ou autres paquetages...) qui sont regroupés afin d'être réutilisés ou de mieux organiser un modèle. Une fois le modèle codé dans le langage de programmation, le paquetage désigne un répertoire (un dossier) de l'ordinateur qui contient des classes ou d'autres paquetages.  - package (of the English Package, the latter being the most commonly used in the art): firstly designates a set of modeling elements (classes or other packages ...) that are grouped together to be reused or better organize a model. Once the model is coded in the programming language, the package designates a directory (a folder) of the computer that contains classes or other packages.

- programmation orientée objet : type particulier de programmation dans lequel on utilise un langage orienté objet (par exemple Java, C++, C# ou Eiffel) manipulant des classes et des objets par opposition à "programmation classique" non objet dans laquelle on ne manipule que des structures de données simples et des "fonctions" de traitement séparées (par exemple C, COBOL, FORTRAN).  - object-oriented programming: a particular type of programming in which an object-oriented language (eg Java, C ++, C # or Eiffel) is used that manipulates classes and objects as opposed to "non-object" classical programming in which only simple data structures and separate processing "functions" (eg C, COBOL, FORTRAN).

- SGML : un langage normalisé permettant de décrire les relations entre le contenu d'un document informatique et sa structure.  - SGML: a standardized language for describing the relationships between the content of a computer document and its structure.

- stéréotype (stereotype), désigne un type d'élément de modélisation qui étend la sémantique du métamodèle. Les stéréotypes doivent être basés sur certains types ou classes existants dans le métamodèle. Les stéréotypes peuvent étendre la sémantique, mais pas la structure des types et des classes préexistants. Certains stéréotypes sont prédéfinis dans le langage UML, d'autres peuvent être définis par l'utilisateur. Les stéréotypes constituent, avec les "tagged values" et les "annotations", un des trois mécanismes d'extension du langage UML.  stereotype (stereotype) means a type of modeling element that extends the semantics of the metamodel. Stereotypes must be based on certain types or classes existing in the metamodel. Stereotypes can extend semantics, but not the structure of preexisting types and classes. Some stereotypes are predefined in the UML language, others can be defined by the user. Stereotypes constitute, with tagged values and annotations, one of the three UML extension mechanisms.

- UML (Unified Modeling Language, que l'on peut traduire par langage de modélisation unifié) : désigne une notation (plutôt qu'un langage) de modélisation par objets, permettant de déterminer et de présenter les composants d'un système objet lors de son développement, ainsi que, le cas échéant, d'en générer la documentation. UML est actuellement la norme OMG. Il résulte de la fusion des travaux de Jim Rumbaugh, Grady Booch et Ivar Jacobson et connaît de nombreuses évolutions.  - UML (Unified Modeling Language): designates an object-based notation (rather than a language) for the purpose of determining and presenting the components of an object system during its development, as well as, if necessary, to generate documentation. UML is currently the OMG standard. It results from the merger of the works of Jim Rumbaugh, Grady Booch and Ivar Jacobson and knows many evolutions.

- XMI (pour XML Model Interchange), permet de spécifier des règles de correspondances entre métamodèle et "schema". XMI est le standard de l'OMG qui fait la jonction entre le monde des modèles et le monde XML du World Wide Web Consortium (W3C). Il est utilisé pour représenter des modèles UML sous la forme de fichiers XML.  - XMI (for XML Model Interchange), allows you to specify mapping rules between metamodel and "schema". XMI is the OMG standard that forms the interface between the world of models and the XML world of the World Wide Web Consortium (W3C). It is used to represent UML models in the form of XML files.

- XML : une évolution du langage SGML, laquelle permet notamment aux concepteurs de documents HTML de définir leurs propres marqueurs, dans le but de personnaliser la structure des données.  - XML: an evolution of the SGML language, which allows designers of HTML documents to define their own markers, in order to customize the data structure.

On connaît la modélisation dite modélisation objet , qui consiste à créer une représentation d'éléments du monde réel en termes de classes et d'objets, indépendamment de tout langage de programmation. Par exemple, des classes d'objets sont déterminées, leurs données propres et les fonctions qui les utilisent sont isolées.  Modeling is known as object modeling, which consists of creating a representation of real-world elements in terms of classes and objects, independently of any programming language. For example, object classes are determined, their own data and the functions that use them are isolated.

Divers formalismes existent. UML est l'un de ces formalismes (il s'agît en fait plutôt d'un catalogue de notations).  Various formalisms exist. UML is one of these formalisms (it is actually more of a catalog of notations).

Les langages orientés objet constituent chacun une manière spécifique d'implémenter le concept de classe. En particulier, un formalisme ou une méthode objet permet de définir un problème à haut niveau d'abstraction sans rentrer dans les spécificités d'un langage donné. Il offre également, via UML, un outil permettant aisément de représenter un problème de façon graphique, le rendant plus accessible aux différents acteurs intervenant dans sa résolution.  Object-oriented languages each constitute a specific way of implementing the class concept. In particular, a formalism or an object method makes it possible to define a problem with a high level of abstraction without going into the specificities of a given language. It also offers, via UML, a tool to easily represent a problem in a graphical way, making it more accessible to the various actors involved in its resolution.

Typiquement, il est tout d'abord procédé à une conception abstraite d'un modèle objet, par exemple en vue de la résolution d'un problème donné. Ensuite, il est procédé à l'implémentation du modèle à l'aide d'un langage orienté objet (tel que le langage C# ou Java).  Typically, an abstract design of an object model is first carried out, for example in order to solve a given problem. Then, the model is implemented using an object-oriented language (such as C # or Java).

Il est donc préférable qu'un formalisme objet soit défini le plus rigoureusement possible, de préférence qu'il soit unique et ce, afin de restreindre au maximum les ambiguïtés. Parmi les différentes notations qui ont été développées, UML s'est imposé dans le courant des années 90, en tant que norme de l'OMG.  It is therefore preferable that an object formalism be defined as rigorously as possible, preferably that it be unique, in order to minimize ambiguities. Among the various ratings that have been developed, UML has emerged in the course of the 1990s, as a standard OMG.

On connaît par ailleurs des outils permettant d'effectuer une analyse grammaticale d'un texte, par exemple Grammatica, qui est un vérificateur grammatical et orthographique de textes français et anglais. Outre des suggestions, il fournit des explications. Grammatica analyse la fonction des mots (texte et liens grammaticaux, homophones et homographes, synonymes et définition en français). Le lecteur peut consulter le site www.zdnet.fr. Autre exemple, les outils de Lexiquest, qui font de l'analyse de texte et du "text mining" : www.lexiquest.com.  Tools are also known for performing a grammatical analysis of a text, for example Grammatica, which is a grammatical and orthographic verifier of French and English texts. In addition to suggestions, he provides explanations. Grammatica analyzes the function of words (text and grammatical links, homophones and homographs, synonyms and definition in French). The reader can consult the site www.zdnet.fr. Another example is Lexiquest's tools for text analysis and text mining: www.lexiquest.com.

On connaît aussi des outils permettant de générer du code, à partir d'une représentation interne propriétaire, non publiée et non accessible à l'utilisateur (par exemple Rational Rose de IBM, Objecteering de Softeam, Rhapsody de i-Logix).  There are also known tools for generating code, from a proprietary internal representation, unpublished and not accessible to the user (eg IBM Rational Rose, Objecteering Softeam, Rhapsody i-Logix).

Pour effectuer une génération de code, les générateurs de code existants se fondent sur des descriptions de plus haut niveau que le niveau du code à produire. Elles reposent souvent sur des modélisations telles qu'UML et ces générateurs permettent d'en générer le code dans un langage de programmation donné. A titre d'exemple, l'outil Rational Rose est l'un des outils permettant de réaliser une modélisation abstraite d'une application informatique en utilisant UML.  To perform code generation, existing code generators rely on higher-level descriptions than the level of code to produce. They are often based on models such as UML and these generators allow to generate the code in a given programming language. For example, the Rational Rose tool is one of the tools for performing an abstract modeling of a computer application using UML.

La notation UML, telle qu'elle est actuellement normalisée, ne dispose d'aucune notation textuelle permettant de représenter les modèles objets; seule une représentation graphique est proposée dans la norme pour les différents diagrammes d'UML (diagramme de classes, d'interactions, d'états-transitions, etc.) mais aucune contrepartie textuelle de cette représentation graphique n'est proposée dans la norme UML. XMI n'a pas été conçu pour être lisible , c'est-à-dire qu'il n'est pas compréhensible par un utilisateur. Par ailleurs, il n'est pas autosuffisant. La syntaxe HUTN a été conçue dans le but d'être compréhensible par l'utilisateur. II reste que HUTN est un langage procédural, c'est-à-dire que l'ordre des lignes est d'une importance critique pour l'interprétation de ce langage.  The UML notation, as it is currently normalized, does not have any textual notation to represent the object models; only a graphical representation is proposed in the standard for the different UML diagrams (diagram of classes, interactions, state-transitions, etc.) but no textual counterpart of this graphical representation is proposed in the UML standard. . XMI was not designed to be readable, that is, it is not understandable by a user. Moreover, he is not self-sufficient. The HUTN syntax has been designed to be understandable by the user. It remains that HUTN is a procedural language, that is to say that the order of the lines is of critical importance for the interpretation of this language.

Dans ce contexte, il serait particulièrement souhaitable de disposer d'une structure de données, exploitable informatiquement qui permette de représenter des modèles UML ainsi qu'une génération facilitée de programmes sources, dans un langage objet quelconque. Il serait également souhaitable que cette structure de données soit simple et légère à manipuler et, une fois réifiée, compréhensible par l'utilisateur.  In this context, it would be particularly desirable to have a data structure, exploitable computer that can represent UML models and a facilitated generation of source programs in any object language. It would also be desirable that this data structure be simple and light to handle and, once reified, understandable by the user.

A cette fin, l'invention propose une structure de données compatible avec un formalisme de modélisation d'objets, ce formalisme comprenant une pluralité d'éléments de modélisation, dans laquelle: la structure de données comprend une pluralité de clauses, chacune de ces clauses est associée à un ou plusieurs élément de modélisation du formalisme, et chacune de ces clauses est entièrement déclarative.  To this end, the invention proposes a data structure compatible with an object modeling formalism, this formalism comprising a plurality of modeling elements, in which: the data structure comprises a plurality of clauses, each of these clauses is associated with one or more formalism modeling elements, and each of these clauses is fully declarative.

Dans des modes de réalisation préférés, la structure de données selon l'invention comprend une ou plusieurs des caractéristiques suivantes: chacune desdites clauses se rapporte à un seul élément de modélisation; chacune desdites clauses comprend un code relatif à l'élément de 30 modélisation auquel elle se rapporte et des caractéristiques relatives à cet élément de modélisation; - certaines desdites clauses comprennent des caractéristiques relatives à un conteneur de l'élément de modélisation auquel elle se rapporte; le formalisme de modélisation d'objets est la notation UML; - l'un des élément de modélisation du formalisme est: un package, un use case ou cas d'utilisateur, une classe, un attribut, une association, ou un héritage.  In preferred embodiments, the data structure according to the invention comprises one or more of the following features: each of said clauses relates to a single modeling element; each of said clauses comprises a code relating to the modeling element to which it refers and characteristics relating to this modeling element; some of said clauses include features relating to a container of the modeling element to which it refers; the object modeling formalism is the UML notation; - one of the formalism modeling element is: a package, a use case or user case, a class, an attribute, an association, or an inheritance.

L'invention concerne également un produit de programme d'ordinateur adapté 10 à valoriser, à accéder et/ou à manipuler la structure de données selon l'invention.  The invention also relates to a computer program product adapted to enhance, access and / or manipulate the data structure of the invention.

L'invention concerne en outre un fichier lisible par ordinateur, comprenant une représentation de la structure de données selon l'invention.  The invention further relates to a computer readable file comprising a representation of the data structure according to the invention.

L'invention propose en outre un procédé de traitement de données comprenant: une étape de valorisation de la structure de données selon l'invention.  The invention further provides a data processing method comprising: a step of valuing the data structure according to the invention.

Dans des modes de réalisation préférés, le procédé selon l'invention comprend une ou plusieurs des caractéristiques suivantes: le procédé comprend, en préalable à l'étape de valorisation, une étape de décomposition de données en éléments de modélisation du formalisme; et un élément de modélisation du formalisme est représenté comme une clause de la structure de données, lors de l'étape de valorisation de la structure de données; l'étape de décomposition de données comprend une analyse grammaticale d'un texte; l'analyse grammaticale à l'étape de décomposition comprend chacune des sous étapes suivantes: découpage du texte en phrases, résolution d'énumérations, par exemple des énumérations introduites par et , ou , ainsi que ou soit... soit , résolution de subordonnées, par exemple des subordonnées introduites par qui , que , dont , où , à ou aux , élimination de certains mots selon des critères donnés, à l'issue de la sous étape de résolution de subordonnées, résolution de formes canoniques de noms, résolution de cardinalités de noms et résolution d'attributs; 25 30 le procédé comprend, après l'étape de valorisation: une étape de création d'un modèle XMI via un générateur XMI à partir de la structure de données; le procédé comprend, après l'étape de création du modèle XMI une étape de production d'un modèle UML à partir du modèle XMI créé ; et le procédé comprend, après l'étape de valorisation: une étape d'accession à la structure de données et une étape de génération d'un code.  In preferred embodiments, the method according to the invention comprises one or more of the following features: the method comprises, prior to the valuation step, a step of decomposing data into modeling elements of the formalism; and a formalism modeling element is represented as a clause of the data structure, during the data structure valuation step; the data decomposition step comprises a grammatical analysis of a text; the grammar analysis in the decomposition stage comprises each of the following sub-steps: splitting the text into sentences, solving enumerations, for example enumerations introduced by and, or, as well as or either ... or, subordinate resolution , for example subordinates introduced by whom, that, of which, where, to or to the elimination of certain words according to given criteria, at the end of the sub-resolution step of subordinates, resolution of canonical forms of names, resolution of name cardinalities and attribute resolution; The method comprises, after the recovery step: a step of creating an XMI model via an XMI generator from the data structure; the method comprises, after the step of creating the XMI model, a step of producing a UML model from the created XMI model; and the method comprises, after the recovery step: a step of accessing the data structure and a step of generating a code.

D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit des modes de réalisation de l'invention, donnés à titre d'exemple uniquement et en références à des exemples, ainsi qu'aux schémas annexés, qui montrent: Figure 1: un exemple de représentation d'un modèle UML; Figure 2: un diagramme représentant schématiquement certaines étapes d'un procédé de traitement de données selon un mode de réalisation de l'invention; et Figure 3: un exemple de représentation d'un modèle UML obtenu par la mise en oeuvre du procédé de traitement de données selon un mode de réalisation de 20 l'invention, à partir d'un texte de référence.  Other features and advantages of the invention will appear on reading the following detailed description of the embodiments of the invention, given by way of example only and with reference to examples, as well as to the appended diagrams, which show: Figure 1: an example representation of a UML model; Figure 2: a diagram schematically showing some steps of a data processing method according to one embodiment of the invention; and FIG. 3: an exemplary representation of a UML model obtained by implementing the data processing method according to one embodiment of the invention, from a reference text.

L'invention propose une structure de données. Par structure de données , on entend tout d'abord la structure effective des données telles qu'elles sont manipulées dans la représentation interne d'un programme qui les exploite. On entend cependant également par structure de données la structure des informations présentes dans un fichier, telle qu'elle apparaîtrait lors de l'édition de ce fichier ou lors de son impression. Ce fichier pourrait par exemple être un fichier de réification de la structure de données ci-dessus, telle qu'entendue dans son premier sens.  The invention proposes a data structure. By data structure, we mean first the actual structure of the data as manipulated in the internal representation of a program that exploits them. However, data structure also means the structure of the information present in a file, as it would appear when editing this file or when it is printed. This file could for example be a reification file of the above data structure, as understood in its first sense.

Cette structure de données est la représentation interne d'un formalisme de modélisation d'objets comprenant une pluralité d'éléments de modélisation. Par représentation d'une notation de modélisation d'objets , on entend que l'exploitation de la structure de données permet notamment une représentation graphique selon ce formalisme notation. Ce dernier pourrait par exemple se restreindre à la notation UML, auquel cas les éléments de modélisation sont les éléments classiquement manipulés par UML, c'est-à-dire des paquetages, classes, attributs, opérations, associations, cardinalités, héritages, etc. La structure de données selon l'invention comprend une pluralité de clauses, par exemple des clauses logiques vaforisables ou manipulables par un programme.  This data structure is the internal representation of an object modeling formalism comprising a plurality of modeling elements. By representation of an object modeling notation, it is understood that the exploitation of the data structure notably allows a graphical representation according to this notation formalism. The latter could for example be limited to the UML notation, in which case the modeling elements are the elements conventionally handled by UML, that is to say, packages, classes, attributes, operations, associations, cardinalities, inheritances, etc. The data structure according to the invention comprises a plurality of clauses, for example logical clauses vaforisable or manipulable by a program.

Chacune de ces clauses est associée à un ou plusieurs élément(s) de modélisation du formalisme et chacune de ces clauses est entièrement déclarative.  Each of these clauses is associated with one or more modeling element (s) of the formalism and each of these clauses is entirely declarative.

Cette structure de données est simple. Une fois la structure de données réifiée, par exemple dans un fichier, chaque clause devient une ligne de ce fichier, utilisant une notation formelle. Or, étant donné que chaque clause est entièrement déclarative, l'ordre de ces clauses et par conséquent l'ordre des lignes du fichier, n'affecte pas leur interprétation. La compréhension du fichier par un utilisateur s'en trouve simplifiée.  This data structure is simple. Once the data structure reified, for example in a file, each clause becomes a line of this file, using a formal notation. However, since each clause is entirely declarative, the order of these clauses and consequently the order of the lines of the file, does not affect their interpretation. The understanding of the file by a user is simplified.

De préférence, chaque clause correspond à un seul élément de modélisation, ce qui simplifie à la fois le traitement algorithmique de la structure de données ainsi que la compréhension par l'utilisateur d'un fichier construit à partir de cette structure de données.  Preferably, each clause corresponds to a single modeling element, which simplifies both the algorithmic processing of the data structure as well as the user's understanding of a file constructed from this data structure.

En outre, chaque clause est de préférence autosuffisante, de sorte à en permettre l'interprétation sans devoir accéder pour cela à une autre clause.  In addition, each clause is preferably self-sufficient, so that it can be interpreted without having to access another clause for that purpose.

La structure de données selon l'invention se représente par une notation formelle de haut niveau. Ceci permet la mise en oeuvre de procédés de traitement de données à la fois simples et intégrés. Il peut s'agir par exemple de procédés pour transcrire et représenter des modèles UML, lesquels sont habituellement décrits sous la forme de diagrammes et de schémas graphiques auxquels sont associés des textes non formels et dont la structure n'est pas normalisée. La structure de données selon l'invention permet en fait, via des traitements informatiques appropriés, de produire facilement aussi bien des modèles objets conformes à UML, que des programmes sources, dans un langage objet quelconque (Java, C++, C#, Ada, etc.). Ceci sera détaillé plus loin dans la description.  The data structure according to the invention is represented by a formal high-level notation. This allows the implementation of simple and integrated data processing methods. These may be, for example, methods for transcribing and representing UML models, which are usually described in the form of diagrams and graphical diagrams to which non-formal texts are associated and whose structure is not standardized. The data structure according to the invention makes it possible, by appropriate computer processing, to easily produce UML compliant object models, as well as source programs, in any object language (Java, C ++, C #, Ada, etc. .). This will be detailed later in the description.

Cette structure de données se substitue ainsi avantageusement aux alternatives actuellement proposées, qui, s'appuyant sur XMI/XML ou sur HUTN, n'offrent pas d'outil 30 qui soit à la fois simple, léger et apte à générer facilement du code.  This data structure thus advantageously replaces the currently proposed alternatives, which, based on XMI / XML or HUTN, do not offer a tool 30 that is both simple, lightweight and able to easily generate code.

Dans ce qui suit, la notation formelle évoquée plus haut est dénotée par l'acronyme FIL (pour format interchange language ou encore Format Internai modeling Language ). En outre, la structure de données selon l'invention est décrite en référence à un fichier de réification de cette structure de données, pour des raisons d'intelligibilité. Il n'en demeure pas moins qu'à une ligne de ce fichier peut correspondre une clause logique, interprétable par un programme informatique.  In what follows, the formal notation mentioned above is denoted by the acronym FIL (for format interchange language or Format Internai modeling Language). In addition, the data structure according to the invention is described with reference to a reification file of this data structure, for reasons of intelligibility. The fact remains that to a line of this file can correspond a logical clause, interpretable by a computer program.

Dans un mode de réalisation, chaque ligne FIL du fichier comprend un code relatif à l'élément de modélisation auquel elle se rapporte, le cas échéant un simple caractère précisant le type d'élément décrit. On pourra par exemple utiliser le caractère a pour un attribut, c pour classe, h pour héritage, r pour relation, etc. Chaque ligne comprend en outre un corps comprenant des caractéristiques relatives à cet élément. Ceci permet de disposer d'une structure apte à une exploitation de la ligne par une application informatique. Le repérage de l'élément par l'utilisateur est en outre facilité par la présence du code correspondant.  In one embodiment, each FIL line of the file comprises a code relating to the modeling element to which it relates, if necessary a simple character specifying the type of element described. For example, we could use the character a for an attribute, c for class, h for inheritance, r for relation, and so on. Each line further comprises a body including features relating to that element. This makes it possible to have a structure suitable for use of the line by a computer application. The identification of the element by the user is further facilitated by the presence of the corresponding code.

Considérons par exemple la phrase suivante: un chat mange des souris . Cette phrase établi une relation entre un chat et des souris . Cette relation peut être codée, selon la notation FIL, dans la ligne suivante: r: chat (1..1) manger (1..n) souris où le caractère r précise que l'élément de modélisation en question est une relation, (1..1) et (1..n) renvoient aux cardinalités correspondant respectivement à (un) chat et (des) souris.  Consider for example the following sentence: a cat eats mice. This sentence establishes a relationship between a cat and mice. This relation can be encoded, according to the IDF notation, in the following line: r: cat (1..1) eat (1..n) mouse where the character r specifies that the element of modeling in question is a relation, (1..1) and (1..n) refer to the cardinalities corresponding respectively to (a) cat and (of) mice.

D'autres exemples seront largement détaillés par la suite.  Other examples will be widely detailed later.

De préférence, le corps de certaines lignes FIL comprend deux parties, la première comprenant des caractéristiques intrinsèques à l'élément de modélisation (par exemple une valeur de type pour un attribut) et la deuxième partie comprenant des caractéristiques relatives à un conteneur de l'élément de modélisation. On déclare ainsi un élément, directement en liaison avec son conteneur. Cependant, la déclaration a trait principalement audit élément de modélisation, le conteneur pouvant faire l'objet d'une déclaration indépendante. Ainsi, les déclarations correspondantes (c'est-à-dire des clauses ou des lignes de fichier) restent indépendantes. De la sorte, on met en place une structure de fichier permettant ultérieurement à une application de reconstruire des hiérarchies entre les divers éléments.  Preferably, the body of certain IDF lines comprises two parts, the first part comprising intrinsic characteristics to the modeling element (for example a type value for an attribute) and the second part comprising characteristics relating to a container of the modeling element. This declares an element, directly in connection with its container. However, the declaration relates mainly to this modeling element, the container being subject to independent reporting. Thus, the corresponding declarations (ie clauses or file lines) remain independent. In this way, we set up a file structure allowing an application later to rebuild hierarchies between the various elements.

Les exemples détaillés qui suivent entrent dans le cadre d'un mode de réalisation particulier, dans lequel les lignes FIL sont triées par type, pour des raisons de lisibilité, par exemple dans l'ordre indicatif suivant: packages, classes, attributs, opérations, associations, héritages. Ceci permet d'appréhender plus facilement les éléments ainsi que leurs relations. Il convient néanmoins de garder à l'esprit que ces lignes peuvent être déclarées ou stockées en mémoire dans un ordre quelconque.  The following detailed examples come within the scope of a particular embodiment, in which the FIL lines are sorted by type, for reasons of readability, for example in the following indicative order: packages, classes, attributes, operations, associations, inheritances. This makes it easier to understand the elements and their relationships. It should be borne in mind, however, that these lines can be declared or stored in memory in any order.

De préférence, les codes précisant les éléments se réduisent à une lettre, minuscule, en première position sur la ligne. Un caractère : (deux points) figure immédiatement après, suivi d'un espace, comme illustré dans l'exemple ci-dessus. En outre, une virgule (s'il y en a une) est toujours suivie d'un espace. D'autres règles de syntaxe peuvent en outre être observées, comme il apparaîtra dans ces exemples.  Preferably, the codes specifying the elements are reduced to a letter, tiny, in first position on the line. A (two-dot) character is immediately after, followed by a space, as shown in the example above. In addition, a comma (if there is one) is always followed by a space. Other syntax rules can be observed, as will appear in these examples.

Le cas échéant, un outil informatique d'exploitation, i.e. de production et/ou de traitement d'une structure de données selon l'invention, est utilisé. Cet outil peut être adapté à valoriser la structure de données, c'est-à-dire à affecter des valeurs correspondant aux données. Il peut en outre être adapté à accéder cette structure, c'est-à-dire à pouvoir en extraire des valeurs et/ou à manipuler la structure de données (soit en remplacer les valeurs). En particulier, cet outil est adapté à interpréter les lignes FIL d'un fichier. Le cas échéant, il peut être muni de routines chargées de corriger ou d'interpréter des défauts de syntaxe ou des syntaxes incomplètes. Les lignes peuvent être stockées en mémoire dans un ordre quelconque.  Where appropriate, an operating computer tool, i.e. for producing and / or processing a data structure according to the invention, is used. This tool can be adapted to value the data structure, that is, to assign values corresponding to the data. It can also be adapted to access this structure, that is to say to be able to extract values and / or manipulate the data structure (or replace the values). In particular, this tool is adapted to interpret the FIL lines of a file. If necessary, it may be equipped with routines responsible for correcting or interpreting syntax defects or incomplete syntaxes. Lines can be stored in memory in any order.

Exemple 1Example 1

La déclaration d'un attribut se fait comme suit: a: nom attribut, nom de classe où nom attribut et nom de classe renvoient logiquement au nom de l'attribut et de la classe à laquelle appartient l'attribut, la virgule faisant office de séparateur.  The declaration of an attribute is as follows: a: attribute name, class name where attribute name and class name logically refer to the name of the attribute and the class to which the attribute belongs, comma acting as separator.

Exemple 2Example 2

a: nom attribut:type, nom de classe Dans cet exemple, un attribut est déclaré avec son type. De préférence, il n'y a pas d'espace, ni avant, ni après :type . Les types standard sont par exemple String , boolean , int ou integer , Date , comme il est usuel dans l'art. D'autres types peuvent être utilisés, y compris les noms des classes décrites dans la notation elle-même.  a: attribute name: type, class name In this example, an attribute is declared with its type. Preferably, there is no space, neither before nor after: type. Standard types are for example String, boolean, int or integer, date, as is customary in the art. Other types may be used, including the class names described in the notation itself.

On aura alors par exemple: a: nom attribut:classe un, classe deux  For example, we will have: a: attribute name: class one, class two

Exemple 3Example 3

a: attribut=valeur, nom de classe Ici, une valeur initiale est affectée à l'attribut. Il n'y a de préférence pas d'espace, ni avant ni après le signe égal. On peut noter qu'une syntaxe incomplète (à l'instar de l'exemple ci-dessus où il manque le type de l'attribut) pourra avantageusement être interprétée par outil informatique d'exploitation. Par exemple, l'outil en question peut être conçu de sorte à interpréter et trouver automatiquement le type qui convient en tenant compte de plusieurs critères. Ces critères peuvent par exemple se baser sur le nom de l'attribut lui-même, tel que "numéro", "montant", "compteur", etc., l'outil d'exploitation proposant alors par défaut le type "integer". Ils peuvent par ailleurs se baser sur la valeur associée à l'attribut. Par exemple, si la valeur est "vrai , "faux", "true" ou "false", le type proposé est "boolean"; si la valeur est numérique, le type proposé est "integer" ou "real" selon qu'elle contient ou non des décimales; si la valeur est entourée de doubles quotes " ", le type proposé est "String" (pour chaîne de caractères), etc. Ainsi, dans de nombreux cas, la mention du type peut être superflue, car le type peut être rétabli par l'outil.  a: attribute = value, class name Here, an initial value is assigned to the attribute. There is no preference for space, neither before nor after the equal sign. It can be noted that an incomplete syntax (like the example above where the type of the attribute is missing) can advantageously be interpreted by an operating computer tool. For example, the tool in question can be designed to automatically interpret and find the right type, taking into account several criteria. These criteria can for example be based on the name of the attribute itself, such as "number", "amount", "counter", etc., the operating tool then offering by default the type "integer" . They can also be based on the value associated with the attribute. For example, if the value is "true", "false", "true" or "false", the proposed type is "boolean"; if the value is numeric, the proposed type is "integer" or "real" depending on whether it contains decimals or not, if the value is surrounded by double quotes "", the proposed type is "String" (for string), etc. Thus, in many cases, the type may be superfluous because the type can be restored by the tool.

Exemple 4Example 4

a: attribut:type=valeur, nom classe Dans cet exemple, la syntaxe est complète.  a: attribute: type = value, class name In this example, the syntax is complete.

Exemple 5Example 5

c: nom de classe[, nom de package] Ici, une classe est déclarée, ainsi que [, son package d'appartenance]. Les crochets indiquent ici le caractère optionnel de la mention du nom de package. Par exemple, si le package n'est pas mentionné et s'il n'y a pas de package précédemment rencontré,la classe pourra être rangée systématiquement dans un package donné, par exemple le package "p_système", qui sera alors considéré comme le package de plus haut niveau.  c: class name [, package name] Here, a class is declared, as well as [, its membership package]. The square brackets indicate here the optional character of the name of the package. For example, if the package is not mentioned and if there is no previously encountered package, the class can be stored systematically in a given package, for example the package "p_system", which will then be considered as the highest level package.

Ce package peut par exemple exister par défaut et n'être utilisé que si une classe n'a pas de package destinataire. Le cas échéant, si le nom de package n'est pas mentionné, la classe peut être rangée dans le dernier package p: rencontré dans le fichier FIL, par l'outil informatique d'exploitation. Notons que la notion d'ordre intervient ici uniquement pour suppléer à un défaut de syntaxe de la part de l'utilisateur. De même, la déclaration explicite d'une classe avec c: peut être omise, en adaptant l'outil informatique d'exploitation de sorte à ce que les classes soient reconnues et déclarées automatiquement à partir d'attributs, d'opérations, d'associations et d'héritages. Le code c: est cependant utilisé par l'outil informatique d'exploitation pour le fichier FIL généré en sortie. En revanche, on pourra avantageusement utiliser explicitement le code c: pour déclarer une classe avec stéréotype (voir ci-dessous) ou pour forcer l'appartenance d'une classe à un package.  For example, this package may exist by default and can only be used if a class does not have a recipient package. In this case, if the package name is not mentioned, the class can be stored in the last package p: encountered in the FIL file, by the operating computer tool. Note that the notion of order intervenes here only to compensate for a syntax defect on the part of the user. Similarly, the explicit declaration of a class with c: can be omitted, by adapting the exploitation computer tool so that the classes are recognized and declared automatically from attributes, operations, associations and legacies. However, the c: code is used by the operating computer tool for the output FIL file. On the other hand, one can advantageously use the code c: to declare a class with stereotype (see below) or to force the membership of a class to a package.

Exemple 6Example 6

c: < <stereotype> > nom de classe[, nom de package] Ici, une classe est déclarée avec un stéréotype [, et son package d'appartenance]. On peut également associer, si nécessaire, un stéréotype aux packages, aux attributs, aux opérations et aux associations.  c: <<stereotype>> class name [, package name] Here, a class is declared with a stereotype [, and its membership package]. If necessary, a stereotype can also be associated with packages, attributes, operations and associations.

Exemple 7Example 7

h: nom de classe 1 est-un nom de classe 2 Dans ce nouvel exemple, un héritage est déclaré, à l'aide d'un mot-clé. Le mot-clé utilisé, nécessaire à la déclaration de l'héritage, est est-un . Il convient de noter que le code h: peut être omis. S'il n'est pas présent, le code peut être automatiquement ajouté par l'outil informatique d'exploitation, lequel interprète la ligne FIL comme se rapportant à un élément d'héritage, du fait de la présence du mot-clé correspondant. La ligne peut donc être entrée simplement comme dans l'exemple suivant: carré est-un élément graphique .  h: class name 1 is a class name 2 In this new example, an inheritance is declared, using a keyword. The keyword used, necessary for the declaration of the inheritance, is is-a. It should be noted that the code h: can be omitted. If it is not present, the code can be automatically added by the operating computer tool, which interprets the line FIL as pertaining to an inheritance element, because of the presence of the corresponding keyword. The line can be entered just as in the following example: square is a graphic element.

Exemple 8Example 8

o: nom opération, nom de classe Ici, une opération est déclarée. Une seule virgule est nécessaire, suivie d'un espace.  o: operation name, class name Here, an operation is declared. Only one comma is needed, followed by a space.

Exemple 9Example 9

p: nom de package[, package englobant] Ici, un package est déclaré, comme appartenant au package englobant nommé package englobant . La mention du package englobant est optionnelle.  p: package name [, enclosing package] Here, a package is declared, as belonging to the enclosing package named enclosing package. The mention of the enclosing package is optional.

Exemple 10Example 10

r: nom de classe 1 (1..1) nom d'association (1..n) nom de classe 2 Cet exemple illustre une manière de préciser la cardinalité. Deux nombres sont utilisés, à chaque bout de l'association et entre parenthèses. Selon le cas, l'instruction commence par (1 , (0 , (m ou (n et se termine par 1) ou n) . Un espace est prévu avant et après. En ce qui concerne le nom de l'association ou de la classe, celui-ci peut être quelconque, composé par exemple de un ou plusieurs mots. Là encore, un espace est prévu avant et après ce nom. En outre, si le nom d'association est estcomposé-de ou contient , une agrégation pourra automatiquement être générée dans un outil UML utilisé ultérieurement. De plus, de même que le code h: , le code r: n'est pas obligatoire, l'outil informatique d'exploitation étant au besoin adapté à interpréter une association comme telle, en repérant une codification de cardinalité. Par exemple, la ligne système (1..1) est-composé-de (1..n) sous-système pourrait directement être interprétée comme décrivant une association est-composé-de (agrégation).  r: class name 1 (1..1) association name (1..n) class name 2 This example illustrates a way to specify cardinality. Two numbers are used, at each end of the association and in parentheses. Depending on the case, the instruction starts with (1, (0, (m or (n and ends with 1) or n), there is a space before and after.For the name of the association or the class, this one can be any one, composed for example of one or more words.There is also a space before and after this name.In addition, if the association name is composed-of or contains, an aggregation It can automatically be generated in a UML tool that is used later, and, like the h: code, the r: code is not mandatory, as the operating computer tool is adapted to interpret an association as such. for example, the system line (1..1) is-composed of (1..n) subsystem could directly be interpreted as describing an association is-composed-of (aggregation).

Exemple 11Example 11

u: nom de cas d'utilisation, nom de package La déclaration d'un cas d'utilisation (ou use case ), permet aussi de déclarer 20 une fonction du système, pouvant correspondre à un ou plusieurs cas d'utilisation.  u: use case name, package name The use case declaration, or use case, is also used to declare a function of the system, which may correspond to one or more use cases.

La figure 1 montre un exemple de représentation d'un modèle UML. En référence à cette figure, considérons l'exemple suivant  Figure 1 shows an example representation of a UML model. With reference to this figure, consider the following example

c: chat, exemplec: cat, example

c: souris, exemplec: mouse, example

r: chat (1..1) manger (1..n) souris Selon la notation UML, les clauses cidessus se représentent comme illustré sur la figure 1. Dans cette figure, les classes chat et souris sont symbolisées par des étiquettes 10, 20. Les cardinalités 12, 22 correspondantes figurent à proximité. La relation ci-dessus (r: chat (1..1) manger (1..n) souris) est symbolisée par la flèche 30.  r: cat (1..1) eat (1..n) mouse According to the UML notation, the clauses above are represented as illustrated in figure 1. In this figure, the cat and mouse classes are symbolized by labels 10, 20. The corresponding cardinalities 12, 22 appear in proximity. The above relationship (r: cat (1..1) eat (1..n) mouse) is symbolized by the arrow 30.

La figure 2 montre un diagramme représentant schématiquement certaines étapes d'un procédé de traitement de données selon un mode de réalisation de l'invention.  Fig. 2 shows a diagram schematically showing certain steps of a data processing method according to an embodiment of the invention.

En préalable à la description détaillée de cette figure sont résumées les idées directrices ayant conduit à l'élaboration du procédé de traitement de données selon l'invention.  Prior to the detailed description of this figure are summarized the guiding ideas that led to the development of the data processing method according to the invention.

La simplicité de la notation FIL permet d'envisager de créer une structure de données ou un fichier reflétant cette notation et ce, directement à partir de l'analyse d'un texte écrit en langage naturel. Le fichier créé pourra ainsi servir de base à la création d'un objet UML ou à la génération d'un programme source, comme illustré dans la chaîne suivante: (1) texte -> (2) structure de données au format FIL -> (3) modèle objet UML ou 10 code source.  The simplicity of the FIL notation makes it possible to envisage creating a data structure or a file reflecting this notation and this, directly from the analysis of a text written in natural language. The created file can be used as a basis for creating a UML object or for generating a source program, as shown in the following string: (1) text -> (2) data structure in FIL format -> (3) UML object model or 10 source code.

Cette idée s'appuie sur la conjecture suivante: les phrases d'un texte - à condition qu'elles soient construites selon le canon sujet-verbecomplément - expriment des relations entre des objets au sens de l'approche objet. Par exemple, les substantifs représentent des objets et les verbes expriment une relation entre ces objets. On peut se référer à un exemple traité ci-dessus: un chat mange des souris .  This idea is based on the following conjecture: the sentences of a text - provided they are constructed according to the canon subject-verbecomplement - express relations between objects in the sense of the object approach. For example, nouns represent objects and verbs express a relation between these objects. We can refer to an example discussed above: a cat eats mice.

Les objets étant des instances de classes, il est possible de déduire une relation liant des classes entre elles à partir de la relation qui lie ces objets, en particulier si les articles utilisés sont indéfinis ( un ou des à la place de le ou les ). Dans l'exemple le chat bleu mange la souris verte , il est fait référence, dans les deux cas ( chat bleu et souris verte ) à une instance particulière des classes génériques chat et souris . Ainsi, dans l'exemple un chat mange des souris , il est fait référence à des classes; la relation a donc un sens dans le monde objet .  Since objects are instances of classes, it is possible to deduce a relation linking classes to each other from the relation which links these objects, in particular if the articles used are undefined (one or more in place of the one or the) . In the example the blue cat eats the green mouse, it is referred, in both cases (blue cat and green mouse) to a particular instance of the generic classes cat and mouse. Thus, in the example a cat eats mice, it is referred to classes; the relation therefore has a meaning in the object world.

Il convient de noter, en corollaire à la conjecture ci-dessus, que la sémantique d'un texte décrit à l'aide de phrases selon le type sujetverbe-complément est contenue dans la syntaxe du texte lui-même. En outre, la sémantique du modèle que l'on souhaite obtenir à partir d'un texte est contenue dans la syntaxe du langage dans lequel ce texte est écrit.  It should be noted, as a corollary to the conjecture above, that the semantics of a text described using sentences according to the subjectverb-complement type is contained in the syntax of the text itself. In addition, the semantics of the model that one wishes to obtain from a text is contained in the syntax of the language in which this text is written.

Ainsi, on conçoit qu'il est possible, à partir d'un texte, de formaliser de manière simple, en utilisant le texte des phrases elles-mêmes, les relations entre les objets du 30 modèle.  Thus, it is conceivable that it is possible, from a text, to formalize in a simple way, using the text of the sentences themselves, the relations between the objects of the model.

Autre conséquence: un traitement approprié (automatique ou semiautomatique) de chaque phrase d'un texte permet de formaliser les relations entre les objets, et de les représenter de manière formelle et simple à l'aide de la notation FIL utilisée pour une structure de données selon l'invention.  Another consequence: an appropriate treatment (automatic or semiautomatic) of each sentence of a text makes it possible to formalize the relations between the objects, and to represent them in a formal and simple way using the notation FIL used for a structure of data according to the invention.

A cet égard, l'invention propose un procédé de traitement de données, mis en oeuvre au moins partiellement par ordinateur. Ce procédé comprend une étape centrale de valorisation 110 de la structure de données 60 selon l'invention. On entend par valorisation que des valeurs correspondant à des données sont stockées (par exemple dans la mémoire vive de l'ordinateur ou sur un support de mémoire de masse). Une structure de données 60 selon l'invention peut de la sorte être exploitée informatiquement.  In this respect, the invention proposes a method of data processing implemented at least partially by computer. This method comprises a central processing step 110 of the data structure 60 according to the invention. Valuation means that values corresponding to data are stored (for example in the computer's RAM or on a mass storage medium). A data structure 60 according to the invention can in this way be exploited by computer.

En particulier, la valorisation 110 de la structure de données 60 peut s'effectuer en deux temps. Il peut tout d'abord être procédé à une étape de décomposition 100 de données en éléments de modélisation du formalisme. Ensuite, un élément de modélisation peut être représenté (c'est-à-dire transformé informatiquement) en une clause correspondante de la structure de données 60. Notons que différentes variantes algorithmiques peuvent être envisagées. Par exemple, dès qu'un élément de modélisation est isolé, il est transformé en clause correspondante. En variante, les éléments peuvent être transformés en clauses après que chacun d'eux ait été identifié.  In particular, the valuation 110 of the data structure 60 can be performed in two stages. It may first be a step of decomposing 100 data into modeling elements of the formalism. Then, a modeling element can be represented (i.e., transformed by computer) into a corresponding clause of the data structure 60. Note that different algorithmic variants can be envisaged. For example, as soon as a modeling element is isolated, it is transformed into a corresponding clause. Alternatively, the elements can be transformed into clauses after each of them has been identified.

Un mode de réalisation préféré du procédé selon l'invention est décrit dans ce qui suit. Dans ce mode de réalisation, l'étape de décomposition 100 de données comprend une analyse grammaticale d'un texte 50 de référence, par exemple le texte exposant un problème donné ou la spécification d'un système ou d'une application.  A preferred embodiment of the method according to the invention is described in the following. In this embodiment, the data decomposition step 100 comprises a grammatical analysis of a reference text, eg, the text exposing a given problem or the specification of a system or application.

L'analyse elle-même peut être décomposée en sept étapes principales, lesquelles permettent d'aboutir à un fichier 50 tel que décrit précédemment.  The analysis itself can be broken down into seven main steps, which result in a file 50 as described above.

1) Tout d'abord, l'analyse du texte comprend le découpage du texte en phrases (la fin d'une phrase étant indiquée par un point, un pointvirgule ou une marque de fin de paragraphe.  1) First of all, the analysis of the text includes the division of the text into sentences (the end of a sentence being indicated by a point, a comma or an end-of-paragraph mark).

2) Ensuite, il est procédé à une résolution, des énumérations (traitement des terminologies et , ou , ainsi que , soit... soit , etc.).  2) Then, there is a resolution, enumerations (treatment of terminologies and, or, as well as, either ... or, etc.).

3) Les subordonnées sont alors résolues (introduites par qui , que , dont 30 , ou , à , aux ,etc.).  3) Subordinates are then resolved (introduced by whom, that, of which 30, or, to, aux, etc.).

A ce stade, des phrases simples ont été isolées.  At this point, simple sentences have been isolated.

4) Ensuite, il est éventuellement procédé à l'élimination des mots à ignorer dans chaque phrase simple, comme il sera illustré ci-après.  4) Then, it is eventually proceeded to the elimination of the words to be ignored in each simple sentence, as will be illustrated below.

5) Les formes canoniques sont résolues (noms au singulier, verbes à l'infinitif, etc.) 6) Les cardinalités sont alors caractérisées, en tant que marque du singulier (1..1) ou du pluriel (1..n), ceci en vue de la transformation des phrases en lignes FIL.  5) The canonical forms are solved (singular names, verbs in the infinitive, etc.) 6) Cardinalities are then characterized, as a mark of the singular (1..1) or the plural (1..n) , this in view of the transformation of the sentences into lines FIL.

7) On procède ensuite à la résolution des valeurs d'attributs ou de types d'attributs dans les phrases élémentaires obtenues précédemment et à la finition du modèle.  7) One proceeds then to the resolution of the values of attributes or types of attributes in the elementary sentences obtained previously and the finishing of the model.

Au final, sont obtenues des phrases élémentaires comprenant deux objets (avec leurs cardinalités respectives) séparés par un groupe verbal; ces phrases sont transformables en clauses FIL pour une exploitation informatique ultérieure.  In the end, elementary sentences are obtained comprising two objects (with their respective cardinalities) separated by a verbal group; these sentences can be converted into FIL clauses for later computer operation.

Les étapes précédentes pourront être mieux comprises à travers l'exemple suivant, décrit en référence à la figure 3, qui montre un exemple de représentation d'un modèle UML obtenu par la mise en oeuvre du procédé de traitement de données, selon un mode de réalisation de l'invention, à partir d'un texte de référence.  The preceding steps can be better understood through the following example, described with reference to FIG. 3, which shows an exemplary representation of a UML model obtained by implementing the data processing method, according to a method of embodiment of the invention, from a reference text.

Cet exemple (exemple 12) se base sur le texte de référence suivant: Une application permet d'invoquer des services élémentaires, des composants de services ou une autre application que l'on peut télécharger depuis un serveur distant. Un composant de service comprend plusieurs services élémentaires.  This example (example 12) is based on the following reference text: An application is used to invoke basic services, service components or another application that can be downloaded from a remote server. A service component comprises several basic services.

1) Découpage du texte en phrases d'origine Le texte comprend deux phrases d'origine, qui sont identifiées: (i) Une application permet d'invoquer des services élémentaires, des composants de services ou une autre application qui peuvent être téléchargés depuis un serveur distant.  1) Text splitting into original sentences The text consists of two original sentences, which are identified: (i) An application is used to invoke basic services, service components or another application that can be downloaded from a remote server.

(ii) Un composant de service comprend plusieurs services élémentaires.  (ii) A service component comprises several basic services.

2) Résolution des énumérations Ce traitement est basé sur les résultats d'une analyse grammaticale de la phrase, effectuée à l'aide d'un analyseur grammatical. A l'issue de l'analyse grammaticale, une subordonnée introduite par la conjonction "qui" est détectée. Le traitement subséquent du texte, prenant en compte dans un premier temps la résolution des énumérations mais pas celle des subordonnées, permet de construire et de disposer désormais des trois phrases suivantes: (i) Une application permet d'invoquer des services élémentaires qui peuvent être téléchargés depuis un serveur distant.  2) Enumeration resolution This processing is based on the results of a grammatical parsing of the sentence, performed using a grammar parser. At the end of the grammatical analysis, a subordinate introduced by the conjunction "which" is detected. The subsequent processing of the text, taking into account the resolution of the enumerations but not that of the subordinates, makes it possible to construct and dispose now of the following three sentences: (i) An application makes it possible to invoke basic services which can be downloaded from a remote server.

(ii) Une application permet d'invoquer des composants de services qui peuvent être téléchargés depuis un serveur distant.  (ii) An application allows to invoke service components that can be downloaded from a remote server.

(iii) Une application permet d'invoquer une autre application qui peut être téléchargé(e) depuis un serveur distant.  (iii) An application allows to invoke another application that can be downloaded from a remote server.

(iv) Un composant de service comprend plusieurs services élémentaires.  (iv) A service component comprises several basic services.

3) Résolution des subordonnées Ce traitement est également basé sur les résultats d'une analyse grammaticale de chacune de ces nouvelles phrases. Lors de cette étape, chacune des phrases précédentes est à nouveau passée dans l'analyseur grammatical, afin de résoudre les subordonnées. Deux phrases simples sont identifiées en lieu et place de chaque phrase comportant une subordonnée. Le sens premier du texte n'est pas trahi (il y a conservation sémantique ), mais la structure de chaque phrase devient plus simple: on s'approche ainsi peu à peu d'un texte modélisable. Le résultat de cette étape est le suivant: (i) Une application permet d'invoquer des services élémentaires.  3) Subordinate Resolution This processing is also based on the results of a grammatical analysis of each of these new sentences. During this step, each of the preceding sentences is passed again in the grammar parser, in order to solve the subordinates. Two simple sentences are identified in place of each sentence containing a subordinate. The primary meaning of the text is not betrayed (there is semantic preservation), but the structure of each sentence becomes simpler: one thus approaches little by little a modélisable text. The result of this step is as follows: (i) An application allows you to invoke basic services.

(ii) Des services élémentaires peuvent être téléchargés depuis un serveur distant.  (ii) Basic services can be downloaded from a remote server.

(iii) Une application permet d'invoquer des composants de services.  (iii) An application allows to invoke service components.

(iv) Des composants de services peuvent être téléchargés depuis un serveur distant.  (iv) Service components can be downloaded from a remote server.

(v) Une application permet d'invoquer une autre application.  (v) An application allows to invoke another application.

(vi) Une autre application peut être téléchargé(e) depuis un serveur distant.  (vi) Another application can be downloaded from a remote server.

(vii) Un composant de service comprend plusieurs services élémentaires.  (vii) A service component comprises several basic services.

Le résultat de l'analyse grammaticale de chaque phrase peut être stocké par l'outil informatique d'exploitation évoqué plus haut.  The result of the grammatical analysis of each sentence can be stored by the operating computer tool mentioned above.

4) Elimination des mots non signifiants Chacune des phrases simples ainsi obtenues est, à présent, éventuellement passé par un filtre permettant d'éliminer des mots non signifiants, qui sont repérés par l'examen d'un dictionnaire spécifique, le cas échéant paramétrable. Ces mots sont supprimés dans un but de simplification des phrases, car ils n'apportent aucune information pertinente. Ici par exemple, le mot autre sera supprimé dans les cinquième et sixième phrases.  4) Elimination of non-significant words Each of the simple sentences thus obtained is, now, possibly passed through a filter making it possible to eliminate non-significant words, which are identified by the examination of a specific dictionary, if necessary parameterizable. These words are deleted in order to simplify sentences because they do not provide any relevant information. Here for example, the word other will be deleted in the fifth and sixth sentences.

(i) Une application permet d'invoquer des services élémentaires.  (i) An application allows to invoke basic services.

(ii) Des services élémentaires peuvent être téléchargés depuis un serveur distant.  (ii) Basic services can be downloaded from a remote server.

(iii) Une application permet d'invoquer des composants de services.  (iii) An application allows to invoke service components.

(iv) Des composants de services peuvent être téléchargés depuis un serveur distant.  (iv) Service components can be downloaded from a remote server.

(v) Une application permet d'invoquer une application.  (v) An application allows to invoke an application.

(vi) Une application peut être téléchargé(e) depuis un serveur distant. (vii) Un composant de service comprend plusieurs services élémentaires.  (vi) An application can be downloaded from a remote server. (vii) A service component comprises several basic services.

5) Résolution des formes canoniques Le résultat de l'analyse grammaticale de chaque phrase simple est conservé en mémoire. L'examen de ces résultats permet de déterminer les formes canoniques des substantifs et des verbes (noms au singulier, verbes à l'infinitif). Lors de cette étape intermédiaire, on conserve également, pour chaque substantif, une marque associée au nombre correspondant dans la phrase. Par exemple, (sing) pour dénoter le singulier, peut être placé après le substantif, et (plusieurs) pour dénoter le pluriel, placé avant. Ce choix de disposition répond à un double objectif: d'abord, permettre de faciliter l'étape suivante, lors de laquelle les cardinalités seront identifiées, ensuite, aider à l'identification des associations; en effet, une association sera constituée à partir du membre de phrase (souvent un verbe) qui sera situé entre les deux marques de cardinalité. Les phrases obtenues sont les suivantes.  5) Resolution of canonical forms The result of the grammatical analysis of each simple sentence is kept in memory. The examination of these results makes it possible to determine the canonical forms of substantives and verbs (nouns in the singular, verbs in the infinitive). During this intermediate step, a mark associated with the corresponding number in the sentence is also preserved for each substantive. For example, (sing) to denote the singular, can be placed after the substantive, and (several) to denote the plural, placed before. This choice of disposition has a twofold objective: first, to facilitate the next step, during which cardinalities will be identified, then to help identify associations; Indeed, an association will be formed from the phrase (often a verb) that will be located between the two marks of cardinality. The sentences obtained are as follows.

(i) application (sing) permettre d'invoquer (plusieurs) service élémentaire (ii) service élémentaire (plusieurs) pouvoir être téléchargé depuis (sing) serveur distant (iii) application (sing) permettre d'invoquer (plusieurs) composant de services (iv) composant de services (plusieurs) pouvoir être téléchargé depuis (sing) serveur distant (v) application (sing) permettre d'invoquer (sing) application (vi) application (sing) pouvoir être téléchargé depuis (sing) serveur distant (vii) composant de service (sing) comprend (plusieurs) service élémentaire 6) Pose des cardinalités Un traitement simple permet à présent de remplacer les marques (sing) et (plusieurs) par les cardinalités correspondantes: (1..1) et (1..n). Chacune des 5 phrases précédentes devient ainsi une clause FIL: (i) application (1..1) permettre d'invoquer (1..n) service élémentaire (ii) service élémentaire (1.. n) pouvoir être téléchargé depuis (7..1) serveur distant (iii) application (1..1) permettre d'invoquer (1..n) composant de services 10 (iv) composant de services (1..n) pouvoir être téléchargé depuis (1.. 7) serveur distant (v) application (7..1) permettre d'invoquer (1..1) application (vi) application (1.. 1) pouvoir être téléchargé depuis (1..1) serveur distant (vii) composant de service (7.. 7) comprend (1..n) service élémentaire Bien entendu, les deux étapes (5) et (6) peuvent être vues comme une seule étape.  (i) application (sing) allow to invoke (multiple) elementary service (ii) elementary service (multiple) can be downloaded from (sing) remote server (iii) application (sing) allow to invoke (multiple) component of services (iv) service component (several) can be downloaded from (sing) remote server (v) application (sing) allow to invoke (sing) application (vi) application (sing) can be downloaded from (sing) remote server ( vii) service component (sing) includes (several) elementary service 6) Cardinality installation A simple process now allows the (sing) and (several) marks to be replaced by the corresponding cardinalities: (1..1) and (1) ..not). Each of the 5 preceding sentences thus becomes a FIL clause: (i) application (1..1) allow to invoke (1..n) elementary service (ii) elementary service (1 .. n) to be downloaded from (7) ..1) remote server (iii) application (1..1) enable to invoke (1..n) service component 10 (iv) service component (1..n) can be downloaded from (1 .. 7) remote server (v) application (7..1) allow to invoke (1..1) application (vi) application (1 .. 1) can be downloaded from (1..1) remote server (vii) service component (7 .. 7) comprises (1..n) elementary service Of course, the two steps (5) and (6) can be seen as a single step.

7) Valeurs des attributs et finition du modèle Cette étape peut regrouper trois traitements distincts.  7) Values of Attributes and Finishing of the Model This step can group three distinct treatments.

Tout d'abord, des adjectifs associés aux substantifs sont recherchés et positionnés en tant qu'attributs de classe (c'est-à-dire en tant que caractéristiques spécifiques de cette classe). Ceci donne lieu à l'attribution des codes a pour attribut . En outre, l'attribut pourra être associé à la classe correspondante.  First, adjectives associated with substantives are searched for and positioned as class attributes (that is, as specific features of that class). This gives rise to the assignment of the codes a for attribute. In addition, the attribute may be associated with the corresponding class.

Ensuite, des déclarations de classe sont créées automatiquement pour chaque substantif, d'où l'apparition de code FIL c pour classe . Enfin, un package pourra être associé à chaque classe.  Then, class declarations are created automatically for each noun, hence the appearance of FIL c for class. Finally, a package can be associated with each class.

Le code FIL r (pour relation ) est alors associé à chacune des clauses FIL décrivant une relation.  The FIL code r (for relation) is then associated with each of the FIL clauses describing a relation.

Les clauses FIL peuvent ensuite être triées par type, pour des raisons de lisibilité 30 et de présentation, bien que cela n'ait rien d'obligatoire. On obtient ainsi le modèle FIL final:  FIL clauses can then be sorted by type, for readability and presentation purposes, although this is not required. We thus obtain the final FIL model:

p: exemplep: example

c: application, exemplec: application, example

c: service, exemplec: service, example

c: composant de services, exemplec: service component, example

c: serveur, exemplec: server, example

a: élémentaire=VRAI, service a: distant=VRAI, serveur r: application (1.. 1) permettre d'invoquer (1..n) service r: service (Ln) pouvoir être téléchargé depuis (1..1) serveur r: application (1..1) permettre d'invoquer (1..n) composant de services r: composant de services (1..n) pouvoir être téléchargé depuis (1..1) serveur r: application (1..1) permettre d'invoquer (1..1) application r: application (1..1) pouvoir être téléchargé depuis (1..1) serveur r: composant de services (1..1) estcomposé-de (1..n) service Sur la figure 3, les éléments ci-dessus sont représentés sous la forme d'un 15 modèle UML.  a: elementary = TRUE, service a: remote = TRUE, server r: application (1 .. 1) allow to invoke (1..n) service r: service (Ln) can be downloaded from (1..1) server r: application (1..1) allow to invoke (1..n) service component r: service component (1..n) can be downloaded from (1..1) server r: application (1 ..1) allow to invoke (1..1) application r: application (1..1) can be downloaded from (1..1) server r: service component (1..1) is composed of (1..1) 1..n) Service In Figure 3, the above elements are represented in the form of a UML model.

Dans ce modèle, la classe application fait l'objet de la référence 200. La classe application est impliquée dans les relations 210, 220, 230 et 240, selon les éléments r évoqués ci-dessus.  In this model, the application class is the reference 200. The application class is involved in the relations 210, 220, 230 and 240, according to the elements r mentioned above.

Ces relations relient la classe application à la classe application elle- même, ainsi qu'aux classes composant de service 300, service 400 et serveur 500, qui sont à leur tour impliquées dans les relations 305, 310 et 410. En ce qui concerne les classes composant de service 300 et service , on peut noter la relation particulière: est-composé-de 305, soit une "agrégation" en UML et qui se distingue graphiquement des autres relations par la présence d'un losange à la base de la flèche correspondante, comme il est usuel dans l'art.  These relationships link the application class to the application class itself, as well as to service component classes 300, service 400, and server 500, which are in turn involved in relations 305, 310, and 410. service component classes 300 and service, we can note the special relationship: is-composed-of 305, an "aggregation" in UML and which is distinguished graphically from other relations by the presence of a rhombus at the base of the arrow corresponding, as is usual in the art.

En ce qui concerne les classes service 400 et serveur , il convient également de noter les attributs, types et valeurs de types représentés dans les étiquettes respectives 402 et 502, reflétant la décomposition décrite ci-dessus.  For the service 400 and server classes, the attributes, types, and type values represented in the respective labels 402 and 502 should also be noted, reflecting the decomposition described above.

En se référant à présent de nouveau à la figure 2, le procédé de traitement de données selon l'invention peut comprendre, après l'étape de valorisation 110, une étape de création 120 d'un modèle XMI 70, à partir de la structure de données 60, via un générateur XMI. Ce générateur XMI pourrait par exemple fonctionner selon le même principe que le générateur de code évoqué ci-après: après avoir accédé au contenu de la structure de données, le générateur stocke cette structure dans sa propre mémoire interne puis transforme son contenu selon des règles de transformation qui lui sont propres, qui sont paramétrables et qui ne dépendent que des seules correspondances que l'on veut établir entre deux métamodèles: d'une part le métamodèle de la structure de données FIL elle-même (structure d'entrée), et d'autre part le métamodèle de la structure de données XMI, Java, C# ou C++ par exemple (structure attendue en sortie). Ainsi, l'outil de génération applique, sur une structure de données stockée en interne, des règles de transformation mettant en correspondance un élément de modélisation d'un métamodèle donné avec un élément de modélisation d'un autre métamodèle. A cet égard, il existe des outils, tels que Model-In-Action de Sodifrance (voir le site www. miasoftware.com), qui permettent de construire de tels générateurs: on décrit les deux métamodèles à l'aide d'UML, puis les règles de transformation en utilisant un langage de haut niveau, et on obtient ainsi très rapidement des transformateurs-générateurs de langage. Grâce à de tels outils, la création d'un modèle XMI via un générateur XMI est possible. Dans le cas présent, le modèle 70 est généré à partir de la structure de données 60 précédemment valorisée. Ensuite, un modèle UML 75 graphique peut être produit à partir du modèle XMI 70 précédent, lors d'une étape de production 130 de modèle. La production d'un modèle UML graphique à partir d'un modèle XMI est, en tant que telle, connue de l'art (on pourra par exemple utiliser des outils tels qu'Objecteering ou Rhapsody, mentionnés plus haut).  Referring now again to FIG. 2, the data processing method according to the invention may comprise, after the recovery step 110, a creation step 120 of an XMI model 70, from the structure 60, via an XMI generator. This XMI generator could for example operate according to the same principle as the code generator mentioned below: after having accessed the contents of the data structure, the generator stores this structure in its own internal memory and then transforms its content according to rules of their own transformation, which are parameterizable and which depend only on the correspondences that we want to establish between two metamodels: on the one hand the metamodel of the data structure FIL itself (input structure), and on the other hand the metamodel of the data structure XMI, Java, C # or C ++ for example (expected structure output). Thus, the generation tool applies, on an internally stored data structure, transformation rules mapping a modeling element of a given metamodel with a modeling element of another metamodel. In this respect, there are tools, such as Sodifrance's Model-In-Action (see the website www.miasoftware.com), which make it possible to build such generators: the two metamodels are described using UML, then the transformation rules using a high-level language, and we get very quickly transformers-generators of language. With such tools, the creation of an XMI model via an XMI generator is possible. In this case, the model 70 is generated from the previously valued data structure 60. Then, a graphical UML model 75 can be produced from the previous XMI model 70, during a model production step 130. The production of a graphical UML model from an XMI model is, as such, known to the art (it is possible, for example, to use tools such as Objecteering or Rhapsody, mentioned above).

Par ailleurs, le procédé de traitement de données selon l'invention peut comprendre, après l'étape de valorisation 110, une étape d'accession à la structure de données suivie d'une étape de génération 140 d'un code 80. Lors de cette étape, la structure de données est stockée puis son contenu est transformé selon des règles de transformation paramétrables, qui dépendent des correspondances souhaitées entre deux métamodèles, à l'instar de ce qui a été décrit en référence au générateur XMI. Des principes de transformation sont par exemple décrits dans le livre Design Patterns , Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley Professional, première édition, 1995.  Moreover, the data processing method according to the invention can comprise, after the recovery step 110, a data structure accession step followed by a generation step 140 of a code 80. this step, the data structure is stored and its content is transformed according to parametrizable transformation rules, which depend on the desired matches between two metamodels, like what has been described with reference to the XMI generator. Transformation principles are described, for example, in the book Design Patterns, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley Professional, first edition, 1995.

A l'issue de cette étape, des Classes Java ou C# sont générées. Celles-ci peuvent avantageusement être exploitée dans un environnement de services 85 intégré. Un environnement de services est un environnement de développement d'applications objet, qui sait lire directement des classes sources Java ou C# par exemple. L'étape 150 est, à cet égard, une simple étape d'import de ces classes 80, correctement générées dans un format lisible directement par l'environnement 85.  At the end of this step, Java or C # Classes are generated. These can advantageously be exploited in an integrated service environment. A service environment is an object application development environment that can read Java or C # source classes directly, for example. Step 150 is, in this regard, a simple step of importing these classes 80, correctly generated in a format readable directly by the environment 85.

L'invention n'est cependant pas limitée aux variantes décrites ci avant mais est susceptible de nombreuses autres variations aisément accessibles à l'homme du métier.  The invention is however not limited to the variants described above but is capable of many other variations easily accessible to those skilled in the art.

A titre d'exemple, il est possible d'omettre certaines étapes de l'analyse grammaticale ou de les combiner différemment.  For example, it is possible to omit certain steps of the grammatical analysis or to combine them differently.

Claims (15)

REVENDICATIONS 1. Structure de données (60) compatible avec un formalisme de modélisation d'objets, ce formalisme comprenant une pluralité d'éléments de modélisation, dans laquelle: - la structure de données (60) comprend une pluralité de clauses; chacune de ces clauses est associée à un ou plusieurs élément de modélisation du formalisme; et - chacune de ces clauses est entièrement déclarative.  A data structure (60) compatible with an object modeling formalism, the formalism comprising a plurality of modeling elements, wherein: the data structure (60) comprises a plurality of clauses; each of these clauses is associated with one or more modeling elements of the formalism; and - each of these clauses is entirely declarative. 2. La structure de données (60) selon la revendication 1, dans laquelle chacune desdites clauses se rapporte à un seul élément de modélisation.  The data structure (60) of claim 1, wherein each of said clauses relates to a single modeling element. 3. La structure de données (60) selon la revendication 1 ou 2, dans laquelle chacune desdites clauses comprend un code relatif à l'élément de modélisation auquel elle se rapporte et des caractéristiques relatives à cet élément de modélisation.  The data structure (60) of claim 1 or 2, wherein each of said clauses includes code relating to the modeling element to which it refers and features relating to that modeling element. 4. La structure de données (60) selon la revendication 1, 2 ou 3, dans laquelle certaines desdites clauses comprennent des caractéristiques relatives à un conteneur de l'élément de modélisation auquel elle se rapporte.  The data structure (60) according to claim 1, 2 or 3, wherein some of said clauses include features relating to a container of the modeling element to which it refers. 5. La structure de données (60) selon l'une quelconque des revendications 1 à 5, dans laquelle le formalisme de modélisation d'objets est la notation UML.  The data structure (60) of any one of claims 1 to 5, wherein the object modeling formalism is UML notation. 6. La structure de données (60) selon l'une quelconque des revendications 1 à 5, dans lequel l'un des élément de modélisation du formalisme est: un package; - un use case ou cas d'utilisateur; une classe; - un attribut; une association; ou un héritage.  The data structure (60) according to any one of claims 1 to 5, wherein one of the formalism modeling element is: a package; - a use case or user case; a class; - an attribute; an association; or an inheritance. 7. Produit de programme d'ordinateur, adapté à valoriser, à accéder et/ou à manipuler la structure de données (60) selon l'une quelconque des revendications 1 à 6.  A computer program product, adapted to enhance, access and / or manipulate the data structure (60) according to any one of claims 1 to 6. 8. Fichier lisible par ordinateur, comprenant une représentation de la structure de données (60) selon l'une quelconque des revendications 1 à 6.  A computer readable file comprising a representation of the data structure (60) according to any one of claims 1 to 6. 9. Procédé de traitement de données comprenant: - une étape de valorisation (110) de la structure de données (60) selon l'une quelconque des revendications 1 à 6.  A method of data processing comprising: - a step of upgrading (110) the data structure (60) according to any of claims 1 to 6. 10. Le procédé de traitement de données selon la revendication 9, comprenant, en préalable à l'étape de valorisation (110): - une étape de décomposition (100) de données en éléments de modélisation du formalisme; et dans lequel un élément de modélisation du formalisme est représenté comme une clause de la structure de données (60), lors de l'étape de valorisation (110) de la structure de données (60).  The data processing method according to claim 9, comprising, prior to the valuation step (110): a step of decomposing (100) data into modeling elements of the formalism; and wherein a formalism modeling element is represented as a clause of the data structure (60), during the valuation step (110) of the data structure (60). 11. Le procédé de traitement de données selon la revendication 10, dans lequel l'étape de décomposition (100) de données comprend une analyse grammaticale d'un texte (50).  The data processing method of claim 10, wherein the step of decomposing (100) data comprises grammatically analyzing a text (50). 12. Le procédé de traitement de données selon la revendication 11, dans lequel l'analyse grammaticale à l'étape de décomposition (100) comprend chacune des sous étapes suivantes: - découpage du texte (50) en phrases; résolution d'énumérations, par exemple des énumérations introduites par et , ou , ainsi que ou soit... soit ; -résolution de subordonnées, par exemple des subordonnées introduites par qui , que , dont , où , à ou aux ; - élimination de certains mots selon des critères donnés, à l'issue de la sous étape de résolution de subordonnées; - résolution de formes canoniques de noms; - résolution de cardinalités de noms; et - résolution d'attributs.  The data processing method according to claim 11, wherein the grammatical analysis at the decomposing step (100) comprises each of the following sub-steps: - splitting the text (50) into sentences; enumeration, for example enumerations introduced by and, or, as well as or ... -resolution of subordinates, for example subordinates introduced by whom, whom, of whom, where, to or to; elimination of certain words according to given criteria, at the end of the sub-resolution step of subordinates; - resolution of canonical forms of names; - resolution of cardinalities of names; and - attribute resolution. 13. Le procédé de traitement de données selon l'une quelconque des revendications 9 à 12, comprenant, après l'étape de valorisation (110) : une étape de création (120) d'un modèle XMI (70) via un générateur XMI à partir de la structure de données (60).  The data processing method according to any one of claims 9 to 12, comprising, after the recovery step (110): a step of creating (120) an XMI model (70) via an XMI generator from the data structure (60). 14. Le procédé de traitement de données selon la revendication 13, comprenant, après l'étape de création (120) du modèle XMI: - une étape de production (130) d'un modèle UML (75) à partir du modèle XMI (70) créé.  The data processing method according to claim 13, comprising, after the step of creating (120) the XMI model: a step of producing (130) a UML model (75) from the XMI model ( 70) created. 15. Le procédé de traitement de données selon l'une quelconque des revendications 9 à 12, comprenant, après l'étape de valorisation (110) : une étape d'accession à la structure de données (60) ; et - une étape de génération (140) d'un code (80).  The data processing method according to any one of claims 9 to 12, comprising, after the recovery step (110): a step of accessing the data structure (60); and a step of generating (140) a code (80).
FR0551695A 2005-06-21 2005-06-21 Data structure for creating e.g. unified modeling language object model, has set of clauses e.g. manipulatable logic clause, where each clause is entirely declarative and associated to component of object formalism modeling Withdrawn FR2887348A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0551695A FR2887348A1 (en) 2005-06-21 2005-06-21 Data structure for creating e.g. unified modeling language object model, has set of clauses e.g. manipulatable logic clause, where each clause is entirely declarative and associated to component of object formalism modeling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0551695A FR2887348A1 (en) 2005-06-21 2005-06-21 Data structure for creating e.g. unified modeling language object model, has set of clauses e.g. manipulatable logic clause, where each clause is entirely declarative and associated to component of object formalism modeling

Publications (1)

Publication Number Publication Date
FR2887348A1 true FR2887348A1 (en) 2006-12-22

Family

ID=37497996

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0551695A Withdrawn FR2887348A1 (en) 2005-06-21 2005-06-21 Data structure for creating e.g. unified modeling language object model, has set of clauses e.g. manipulatable logic clause, where each clause is entirely declarative and associated to component of object formalism modeling

Country Status (1)

Country Link
FR (1) FR2887348A1 (en)

Similar Documents

Publication Publication Date Title
Cunningham GATE, a general architecture for text engineering
FR2887349A1 (en) New web service producing method for generating simple and re-usable application, involves decomposing text description into modeling elements of new web service and creating internal object model from modeling elements
Fowler Domain-specific languages
Harel et al. Modeling languages: Syntax, semantics and all that stu
Beazley et al. Python cookbook: Recipes for mastering Python 3
Brownell Sax2
Collard et al. An XML-based lightweight C++ fact extractor
CN100576201C (en) Be used for from the method and the electronic data processing system of natural language text exploitation body
Ko et al. Barista: An implementation framework for enabling new tools, interaction techniques and views in code editors
Crouch et al. Semantics via f-structure rewriting
US7460996B2 (en) Using strong data types to express speech recognition grammars in software programs
Cunningham et al. Developing language processing components with GATE
EP1788497A1 (en) Design pattern and procedure for processing an object model
Boshernitsan Harmonia: A flexible framework for constructing interactive language-based programming tools
Alchin Pro python
Kimber DITA for Practitioners Volume 1: Architecture and Technology
EP3117307A1 (en) Method and device for managing ambiguities in the analysis of a source code
Ramackers et al. From prose to prototype: synthesising executable UML models from natural language
FR2887348A1 (en) Data structure for creating e.g. unified modeling language object model, has set of clauses e.g. manipulatable logic clause, where each clause is entirely declarative and associated to component of object formalism modeling
Simic et al. Prospects of encoding Java source code in XML
Hammond Programming for linguists: Java technology for language researchers
Bernard et al. Hibernate search in action
Cook Anatomy of Programming Languages
Bevacqua Practical Modern JavaScript: Dive into ES6 and the Future of JavaScript
EP1713243A1 (en) Method and system of automatic generation of software components for the design of voice services

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20070228