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

ALM Discussion :

besoins de conseils


Sujet :

ALM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Points : 119
    Points
    119
    Par défaut besoins de conseils
    Salut à tous,

    Je commence ma maîtrise en génie logiciel en janvier. Mon projet de maîtrise contient de la ré-ingénierie, conception et optimisation.

    Je pars d'un logiciel existant, ayant une mauvaise conception et contenant environ 200 classes.

    Je résume un peu l'état courant du logiciel:
    - Le logiciel est écrit en Java.
    - L'interface graphique est en Qt Jambi.
    - Le corps est basé sur l'algorithme génétique.

    Le but du projet:
    1- Faire une bonne conception:
    Rendre le code compréhensible, meilleure structure , réutilisable ...
    2- Optimiser le corps:
    Le but ici est de réduire le temps d'exécution en remplaçant la partie algorithme par du code C++ et en parallélisant l'algorithme avec MPI ou autres.

    Ma stratégie actuelle est de commencer par refaire la conception du corps en laissant les autres composantes de côté pour l'instant.
    Mais je me pose plusieurs questions:

    - Est ce que je devrais implémenter ma nouvelle conception de la partie algorithme d'abord en Java et ensuite convertir en C++ une fois que tous va bien ou je suis mieux de commencer en C++ puisque de toute façon l'algorithme sera écrit en C++ à la fin.

    - Est ce que interfacer Java/C++ se fait bien ou je risque d'avoir des problèmes ?

    - En considérant le fait qu'au moins 60% du logiciel sera re codé, que l'algorithme doit être codé en C++ et que Qt est mieux supportée en C++ qu'en Java, pensez vous que je devrais laissez tomber Java et réécrire tous en C++ ?

    Merci !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 138
    Points : 172
    Points
    172
    Par défaut
    Plusieurs remarques:

    Interfacer Java et C++ ça se fait bien avec JNI mais c'est pas immédiat. L'utilisation de C++ est-elle obligatoire pour le projet? Perso je ferais tout en Java dans un premier temps, ensuite tu mesures si les performances sont satisfaisantes et ensuite tu avises. Une bonne idée c'est d'écrire les algos en pseudocode dans un premier temps, de laisser le pseudocode dans les commentaires, comme ça ce sera plus facile de passer en C++

    Il est aussi possible de paralléliser en Java, Java 5 et 6 ont apporté pas mal de choses dans ce domaine.

    Après il faut voir le langage que tu maitrises le plus, si tu connais bien C++, recommencer de 0 ça peut etre pas mal, un projet de 200 classes c'est pas si gros.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Points : 119
    Points
    119
    Par défaut
    Merci toto828 pour ta réponse,

    C'est pas que l'utilisation du C++ est obligatoire, mais l'algorithme génétique s'exécute pendant des longues heures (peut être des jours) dans ce logiciel et utiliser un langage interprété comme Java n'est peut être pas une bonne idée. C'est pourquoi je disais que l'algorithme devrait être en C++.

    C++ est le langage que je maîtrise mais j'aimerai bien maîtriser Java aussi, c'est pourquoi je pensais au mixe des 2. Il y'a aussi le fait que le code actuelle est en Java et que les bases de données utilisées sont en Derby. Mais bon je peut toujours changer tout ca si sa vaut la peine...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 138
    Points : 172
    Points
    172
    Par défaut
    c'est pas le passage de java à c++ qui fera gagner un gros gain de performances. Par contre en utilisant un cluster de machines ça devrait etre intéressant, regarde ce framework : http://hadoop.apache.org/ , qui permet de faire un traitement réparti sur plusieurs machines

    ou alors il y a le cloud computing, qui devient interessant quand on a besoin d'une grosse puissance de calcul et qu'on a pas le parc informatique adequat

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Points : 119
    Points
    119
    Par défaut
    Merci pour les infos.

    Actuellement j'essaie d'évaluer si le code existant mérite d'être réutilisé ou bien si une réécriture est nécessaire. Le problème est que le code ne contient absolument aucune documentation, aucun patrons de conception n'est utilisé apparemment et le code est super difficile à comprendre.

    J'essaie de trouver des outils pour Eclipse ou autre qui peuvent m'aider à comprendre ce code .. si vous en connaissez n'hésitez pas !

    Merci

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 138
    Points : 172
    Points
    172
    Par défaut
    les outils de reverse engineering j'en ai jamais été très satisfait, le mieux c'est la lecture du code et essayer de se débrouiller.

    Tu peux toujours essayer AgileJ : http://www.agilej.com
    c'est un plugin eclipse pour obtenir le diagramme de classes, il y a une version d'évaluation ça coute rien d'essayer

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/05/2005, 14h30
  2. .htaccess - url rewriting, besoin de conseils
    Par giminik dans le forum Apache
    Réponses: 2
    Dernier message: 25/04/2005, 21h18
  3. [C#] [ADO.NET] Besoin de conseil
    Par djsbens dans le forum Accès aux données
    Réponses: 8
    Dernier message: 01/04/2005, 16h04
  4. Réponses: 3
    Dernier message: 24/12/2004, 13h21
  5. Réponses: 1
    Dernier message: 06/01/2003, 08h55

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