IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Discussion :

Créer des objets à partir d'un modèle décrit en XMI


Sujet :

Outils

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Créer des objets à partir d'un modèle décrit en XMI
    Bonjour à tous,

    J'aurais besoin d'un composant qui me permette depuis un XMI décrivant un modèle UML d'instancier les classes du modèle:
    - nom de l'objet
    - fixer les valeurs des attributs
    - définir les relations entre objets.

    => ces fonctionnalités devraient être accessibles à travers une API et ce serait bien agréable d'avoir une IHM par défaut.

    Ensuite, j'aimerais sauver ces données sous un format XML. Existe-t-il des choses dans ce domaine là ?

    A priori, pour le langage je ne suis pas trop contraint mais je privilégie Java ou Python (C++ à la rigueur).

    Merci !

    -- Olivier

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    Bonjour,

    pourquoi ne pas simplement utiliser un modeleur UML avec un import/export XMI gérant correctement les instances et ayant une API en Java et/ou Python et/ou C++ ?

    Bouml fait très exactement ce qui est demandé

    Bruno

    P.S. es-tu l'Olivier Bernard que j'ai connu ?
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    (réponse au PS en fin de message !)

    Je souhaite distinguer deux aspects:
    - l'aspect modélisation qui permet de décrire des principes de fonctionnement en utilisant UML,
    - la création des objets, instances des classes du modèle.

    Pour la première partie, la modélisation doit s'intégrer avec des phases amonts où on décrit le Système avec des Use Cases, où on fait le lien avec des exigences amonts (requirements, etc ...). Tout ça doit se passer dans un environnement homogène et un outil UML offre ce niveau d'intégration.

    Quand tout à la fin on arrive à un modèle qui est constitué de classes "métier", il est nécessaire, pour une configuration donnée d'instancier ces classes. Les objets sont associés au monde réel et peuvent être représentés purement comme des instances UML (i.e. indépendemment d'un langage).

    Pour autant, les informations permettant de créer l'objet (attributs, relations) seront saisies par des non-informaticiens (si, si, ça existe !). Il faut donc une IHM simple, dépouillée au maximum du verbiage UML & Co et proche de l'utilisateur.

    Idéalement, pour créer ce type d'IHM, je voudrais reposer sur une librairie avec une API du style.

    int loadXMI(xmiFile)
    int instantiateClass(className, objectName) // returns object id
    int setAttributeValue(objectId, attributeName, attributeValue)
    int setRelation(objectId, relationName, peerObjectId)
    int saveDataInXML(outputFile)
    int loadDataFromXML(inputFile)


    .. et aussi des méthodes pour interroger la base
    int getObjectId(objectName)
    any getAttributeValue(objectId, attributeName)
    list<int> getObjectList(className)

    Evidemment, pour éviter de faire n'importe quoi, la création des objets demande une vérification de la cohérence par rapport au modèle décrit dans le fichier XMI.

    Bon, ce sont les idées que j'ai en tête mais quelqu'un a peut être d'autres idées ?

    -- fin de la partie technique

    A part ça, je suis bien l'Olivier Bernard que tu as connu ! Merci pour ta réponse, Bruno, je suis vraiment content de voir que BOUML rencontre un grand succès (je vois même passer des CV qui citent ton outil !).

  4. #4
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    Citation Envoyé par obernard Voir le message
    Pour autant, les informations permettant de créer l'objet (attributs, relations) seront saisies par des non-informaticiens (si, si, ça existe !). Il faut donc une IHM simple, dépouillée au maximum du verbiage UML & Co et proche de l'utilisateur.
    c'est bien évidemment à toi de faire cette IHM

    un plug-out pour Bouml te permet d'interroger/mettre à jour le modèle en montrant à l'utilisateur une IHM

    note que tu peux lancer Bouml via un shell en lui demandant d'appliquer ton plug-out, et même de sortir à la fin de l'exécution du plug-out

    int loadXMI(xmiFile)
    int instantiateClass(className, objectName) // returns object id
    int setAttributeValue(objectId, attributeName, attributeValue)
    int setRelation(objectId, relationName, peerObjectId)
    int getObjectId(objectName)
    any getAttributeValue(objectId, attributeName)
    list<int> getObjectList(className)
    les opérations équivalentes existent dans l'API des plug-outs ou peuvent être définies facilement lorsque ce n'est pas directement le cas

    int saveDataInXML(outputFile)
    int loadDataFromXML(inputFile)
    ça ce sera à toi de le faire

    par contre tu peux par ailleurs demander l'export XMI du modèle contenant la définition des instances pour les retrouver lors d'un futur import

    Evidemment, pour éviter de faire n'importe quoi, la création des objets demande une vérification de la cohérence par rapport au modèle décrit dans le fichier XMI.
    a partir du moment où tu modélises tes instances dans le modèle tu ne peux pas faire n'importe quoi

    je suis vraiment content de voir que BOUML rencontre un grand succès (je vois même passer des CV qui citent ton outil !).
    et oui

    même le CTO (si tu ne te souviens pas ce sont les gens qui disent quel outil peut être utilisé dans la boite, Jean Yves et Jean Marc y sont) d'A. va le mettre dans la short liste des outils UML, c'est dire
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

Discussions similaires

  1. [Lazarus] Créer des fiches à partir d'une fiche modèle
    Par Louis Griffont dans le forum Lazarus
    Réponses: 4
    Dernier message: 19/03/2009, 13h10
  2. Comment créer des relances à partir d'1 table
    Par Rod_75 dans le forum Access
    Réponses: 9
    Dernier message: 01/03/2006, 15h42
  3. Travailler / Créer des objets complexes
    Par Ekinoks dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/08/2005, 14h38
  4. [C#] Créer des objets Winform personnalisés
    Par KibitO dans le forum Windows Forms
    Réponses: 8
    Dernier message: 31/05/2005, 17h09
  5. Créer des objets sur la pile ?
    Par Cornell dans le forum Langage
    Réponses: 8
    Dernier message: 03/03/2003, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo