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

Design Patterns Discussion :

Modélisation de scénarios..


Sujet :

Design Patterns

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Par défaut Modélisation de scénarios..
    Bonjour,

    Je travail dans un bureau d'étude dans le domaine des énergies renouvelables et mon patron voudrai que je développe un logiciel de diagnostique énergétique pour les bâtiments.

    Le principe du logiciel serait le suivant:
    1. Paramétrage - Je dois saisir la valeur des paramètre pour l'ensemble des objets de mon modèle. Cela comprends les caractéristiques géométriques et thermiques des bâtiments étudiés ainsi que divers paramètres sur la ventillation. Il faut aussi saisir des paramètres sur la ventillation, le climat, le système de chauffage, etc... Le tout est consigné dans un modèle sous forme d'arbre.

    2. Calcul - J'exécute le calcul selon un algorithme qui dépend de la méthode utilisée. Le résultat est la consommation énergétique du bâtiment et le coût que cela représente.

    3. Améliorations - Je dois pouvoir modifier les paramètres saisies en (1) afin de de proposer des améliorations (isolation des paroies, changement de chaudière, etc.) et recommencer le calcule de la consommation. Mais je ne veux pas écraser les paramètres du calcul initial. Ce calcul initial représente le scénario 0, je veux pouvoir créer d'autres scénari à partir du premier en procédant par héritage du scénario initial, surdéfinition des paramètres à changer et ajout ou suppresion d'autres paramètres. Donc ce que je veux c'est un système de paramétrage basé sur l'héritage.

    Ma question est la suivante. Comment mettre en oeuvre ce système de paramétrage basé sur l'héritage? Existe t-il des designs patterns pour cela? Qu'elle est la meilleure technologie pour le mettre en oeuvre? Je pense à des technologies comme Java, SmallTalk, Lisp, ...

    Je pensai aussi procéder en deux étapes: La première étant la réalisation d'un moteur de calcul basé sur des fichiers de paramétrage en XML et la seconde la réalisation de l'interface graphique.

    Merci pour votre aide.

    Patrick

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 551
    Par défaut
    Bonjour,
    Citation Envoyé par gelinp Voir le message
    ... je veux pouvoir créer d'autres scénari à partir du premier en procédant par héritage du scénario initial...
    ...Comment mettre en oeuvre ce système de paramétrage basé sur l'héritage? ...
    c'est assez curieux comme méthode de raisonnement, pourquoi vouloir impérativement utiliser l'héritage alors que cela te pose des problèmes et que tu ne sais pas comment faire avec ? Bref alors que tu as déjà un problème à résoudre (faire ton prog), tu t'en ajoutes un autre venant de nulle part, c'est pas comme cela qu'on converge

    retire ton héritage, garde une liste de scenarii ordonnés (le premier étant le scénario original) et crée les autres scénario non pas par héritage mais par référence ou simplement pas recopie lors de leur construction

    une bonne implémentation n'est pas quelque chose de compliqué (pour (se) dire ensuite, qu'est-ce que je suis fort d'avoir terminer cette implémentation si compliquée), mais au contraire quelque chose le plus simple et le plus court possible. La majorité des programmes sont des usines à gaz parce que la majorité des informaticiens feraient mieux de faire un autre métier
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Par défaut
    Je crois que je n'ai pas très bien expliqué ma problématique et je tiens à préciser que je suis un fervant adepte des solutions simples.

    Pourquoi utiliser l'héritage? Et bien pour comprendre pourquoi je veux utiliser l'héritage et bannir la copie il faut imaginer le scénario d'utilisation suivant:

    1. Je paramètre mon premier scénario et je calcul mes consommations initiales.

    2. Je paramètre les améliorations dans des scénarios différents (par ex. dans le premier je change l'isolation, dans le second je change la chaudière et dans le troisième je change tout) et je calcul les nouvelles consommations. On remarque déjà que le troisième scénario est le cumul des autres et je n'ai pas envie de me taper son paramétrage surtout que je risque de faire des erreurs. Il faudrai pouvoir faire la somme de deux voir d'avantage de scénarios pour en créer un autre!

    Bon disons que jusque là tout va bien et pour trois scénarios je pourrai effectivement utiliser la copie.

    Mais voilà que le problème se complique car je m'aperçois que j'ai fait une erreur dans le paramétrage initiale et je dois le corriger de partout, c'est à dire dans le scénario initiale et dans les trois autres scénarios qui sont des copies du premier. Ca parait simple à dire mais je fais des diagnostiques sur des sites industriels qui comportent des dizaines de bâtiments avec 5 à 6 scénarios différents pour chaque bâtiment. Donc pour un projet je peux arriver à une demi-centaine de scénrios sans compter tous les croisements possibles entre chacun. Par ailleurs je gère plusieurs projets par mois et avec la fatigue je peux malheureusement facilement faire des erreurs de paramétrage...

    Donc il est très important pour moi que ce soit le programme qui gère cette compléxité et pas ma petite tête! En d'autres termes il est fondamentale que le programme me permette de créer rapidement un scénario en éritant d'un autre déjà existant et surtout qu'il m'évite de faire des erreurs et qu'il me facilite la vie grâce à l'héritage plutôt que je me casse les couilles à vérifier l'intégrité de l'ensemble de mon projet après chaque modification que j'ai fais !

    Patrick

  4. #4
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 551
    Par défaut
    il est ici question de dépendance entre scénario et non d'héritage (au sens UML/langage de prog)
    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

  5. #5
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Effectivement, il te faudrait procéder par "delta". C'est à dire par empilement de modifications.

    La base de ta pile est le scénario 0 qui décrit la majorité des paramètres.

    Ensuite, à chaque évolution proposée, tu empiles cette évolution.

    Pour avoir le scénario complet, tu instancie un nouveau scénario, pour lequel l'ensemble des paramètres est la somme des paramètres de la pile.

    (une liste est aussi bien adaptée, j'ai dit pile par habitude.)

  6. #6
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Par défaut
    A vrai dire, tous les languages permettent de faire ce que tu decris

    Commence par le debut, quels sont les languages que tu maitrises ?

    Solution la plus simple pour ce genre d'appli: excel ou calc d'open office.

    Avantage, tu n'as pas a t'occuper de l'interface graphique. Une feuille de calcul te permet de rentrer tes paramètres tres facilement.
    Pour faire un seconde scenar : un simple bouton copie par reference la page 1 par exemple.
    Tout tes champs deviennent des references à ta premiere feuille. Tu ne changes plus que les champs qui t'interesse et te voila ac un deuxieme scenario

    La grosse limitation de ces utilitaires viendra de la complexité de tes calculs.

    Apres, la reference en terme d'appli de calcul scientifique reste matlab.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Par défaut
    Je réponds à plusieurs messages à la fois,

    D'abord je tiens à préciser qu'avant de travailler dans l'énergie j'ai fait pratiquement dix ans en conception logiciel avec les technologies objet, notamment C++, Java, Deplhi, Python, ...

    A mon point de vue mon problème relève vraiment de l'héritage et en particulier de la redéfinition et du polymorphisme. La redéfinition car un paramètre du calcul héritée peut être redéfinie et le polymorphisme parce que, par exemple, une chaudière d'un type peut être remplacée par une autre d'un autre type. Par ailleurs, comme je l'ai déjà expliqué, la modification d'un scénario "ancêtre" doit être répercuté sur tous ceux qui en hérite.

    Maintenant je n'ai pas envie de me compliquer la vie et si l'analyse montre clairement qu'il s'agit d'un problème d'héritage je suis prêt a essayer n'importe quelle solution qui simplifie le problème en y répondant convenablement.

    Je retiens deux bonnes idées dans vos réponses. La première avec le concept de pile de scénarios, et l'autre avec la copie par référence dans Excel.

    Pour la seconde, la copie par référence d'une feuille de calcul, je viens de faire une recherche dans l'aide de Excel mais je n'ai rien trouvé sur le sujet. Peut être n'est ce accessible que par programmation. Par ailleurs il y a un problème de taille à résoudre c'est que une fois les feuilles du classeur câblées les unes avec les autres par les formules, il ne suffit pas de créer une autre feuille, il faut aussi modifier le câblage des calculs pour qu'ils prennent en compte la nouvelle feuille à la place de l'ancienne... Pour cela j'imagine qu'il faudrait imaginer une indirection définie dans une cellule qui contiendrai le non de la feuille active pour le calcul. L'intérêt de cette solution c'est que je peux utiliser Excel plutôt que de me taper à moi tout seul la programmation d'un logiciel. C'est beaucoup de temps de gagner. L'inconvénient c'est que je vais avoir beaucoup de feuilles de calculs à gérer et ça c'est un pétage de tête en perspective...

    Pour la première idée, une pile de modifications, avec à chaque étage une modification qui surdéfinit celle de l'étage inférieur. Ca me semble une bonne solution mais attention, il n'y a pas que modifications de paramètre. Par exemple si je passe d'un logement collectif avec chauffage individuel à un logement collectif avec chauffage collectif, il faut supprimer toutes les chaudières individuelles et les remplacer par une collective. C'est à dire que là, je ne modifie pas la valeur de mon paramètre chaudière individuelle mais je transforme la structure de mon problème en une autre structure. Ce n'est plus une modification, c'est une transformation.

    Merci pour vos réponses elles m'ont permis d'avancer!

  8. #8
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    On est tous d'accord sur héritage/polymorphisme sur les élements.

    Par contre, pas pour les scénarii.
    Une règle en général : "Preferer la composition à l'héritage" => plus souple, on peut modifier lors de l'exécution, etc..

    C'est pour cela que faire hériter les scénarii est une mauvaise idée selon moi.

    Pour la modification de la structure :
    scénario de base { 3 logements dans un immeuble, 3 chauffages individuels }
    empilement du 'paramètre' { - chauffage1, - chauffage2, - chauffage3, + chaudière collective, }

Discussions similaires

  1. Quels logiciels de modélisation pour une base de données ?
    Par octopus dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 11/06/2023, 16h20
  2. [Modélisation] Schéma constellation
    Par senke dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 13/05/2016, 13h27
  3. Réponses: 0
    Dernier message: 31/07/2012, 12h17
  4. Modélisation d'un scénario - BI
    Par marric01 dans le forum Approche théorique du décisionnel
    Réponses: 1
    Dernier message: 14/12/2010, 20h11
  5. [Class/PHP/Postgres] Problème de modélisation...
    Par k-reen dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 27/02/2003, 08h49

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