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

Modélisation Discussion :

Méthodes/outils pour comprendre logique programme?


Sujet :

Modélisation

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 38
    Points : 30
    Points
    30
    Par défaut Méthodes/outils pour comprendre logique programme?
    Bonjour

    (Si une autre partie du forum est plus adaptée à ma question, merci de me l'indiquer.)

    De manière générale, j'aimerais savoir comment font les programmeurs expérimentés pour comprendre le plus rapidement possible la logique d'un programme qu'ils sont amenés à modifier et y intégrer de nouvelles fonctionnalités?

    Y a-t-il des méthodes/outils plus productifs que de suivre le code source ligne à ligne avec papier/crayon afin de peu à peu comprendre la logique?

    Je trouve que c'est lent et qu'il est difficile de ne pas se perdre dans les détails.

    Merci pour toute information.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    La principale difficulté porte sur la relativement bonne compréhension de l'existant nécessaire à la réalisation de ces modifications sans trop de dégâts (régressions fonctionnelles).

    "Idéalement", une application est livrée avec une documentation dont les seuls intérêts sont:
    - faciliter cette prise de connaissance par un/des développeurs d'un niveau raisonnable,
    - documenter suffisamment l'application pour estimer la faisabilité et le coûts des évolutions.

    Dans la pratique, la réalisation d'une telle documentation est souvent négligée et lorsqu'elle existe, elle permet rarement de satisfaire les besoins énoncés précédemment...

    Et on se retrouve avec:
    - une documentation qui existe à défaut de répondre à nos questions,
    - des tas de sources,
    - des scripts de constructions,
    - un existant qui fonctionne,

    Et il va falloir mettre un peu tout çà en forme pour définir ce qu'il faudra modifier. Cette mise en forme consiste à redécouvrir:
    - l'organisation des différents fonctionnalités réalisées par l'application,
    - les flux correspondants (au moins) aux principaux traitements effectués,

    Une application, c'est comme une sorte de machine construite pour réaliser certaines fonctions. Avec de l'expérience, on peut rapidement construire une organisation qui a défaut de coller à l'application, donnera une "carte" qui permettra de la lire et de faire la part des choses entre important et secondaire.

    Si l'application est "bien construite", elle sera généralement suffisamment bien structurée pour que l'important et le secondaire soit lisible.

    Dans ce cas, le graphe des appels de méthodes/fonctions ressemblera à un arbre a plusieurs niveaux. Sinon il ressemblera à un parapluie: des tas de méthodes/fonctions appelées à la suite les unes des autres sans plus.

    Puis, suivant le langage de développement, nous avons la possibilité de mettre en œuvre des outils de reverse engineering ou de trace qui permettent de construire des diagrammes de classes ou de séquences à partir des sources ou du contexte d'exécution.

    Ces outils ne sont peut être pas à mettre en branle immédiatement: ils génèrent beaucoup d'informations qui vont dans des détails qui poseront des tas de questions qu'on ne saura peut être pas encore prioriser correctement.

    C'est l'expérience qui vous permet d'arbitrer s'il faut élargir la connaissance globale ou décortiquer les détails.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Merci pour les infos. Je me demandais s'il existait un outil type Director qui pourrait afficher la logique d'un logiciel sous forme de storyboard sur lequel on pourrait zoomer in/out sur différentes parties afin d'avoir plus ou moins de détails.

    Apparemment, c'est de la science-fiction ;-)

Discussions similaires

  1. Aider pour comprendre un programme en vb.net
    Par laoualb dans le forum VB.NET
    Réponses: 15
    Dernier message: 10/04/2014, 16h14
  2. Réponses: 0
    Dernier message: 17/02/2013, 12h04
  3. IA et théorèmes : quels d'algorithmes/méthodes/outils pour prouver un théorème ?
    Par coucou1975 dans le forum Intelligence artificielle
    Réponses: 4
    Dernier message: 19/02/2011, 18h17

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