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

Algorithmes et structures de données Discussion :

Génération de dépendances de programmes


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 23
    Points
    23
    Par défaut Génération de dépendances de programmes
    Bonjour,

    j'aimerais réaliser une cartographie de l'ensemble des relations entre plusieurs programmes et je sèche un peu sur la méthode à utiliser. De plus, je n'ai pas des outils très adapter pour m'aider (j'utilise cobol, db2 et excel). Je précise que je ne peut utliser cobol qu'en passant par des jcl ou utlitaires mais pas de programmes (je suis sur endevor..)


    Je contient l'ensemble de mes programmes dans 2 tables disctinctes.
    1 ere solution :
    Une table m'indique les relations de premier niveau entre les programmes (A appelle B; A appelle C; B appelle D, etc... mais je n'ai pas A appelle D par exemple).
    J'ai donc extrait tout les programmes de cette table puis exporte sur excel et j'aimerais les mettre en forme de sorte à avoir les programmes de niveau 1 sur la 1ere colonne, ceux de niveau 2 sur la seconde et ainsi de suite.. De plus pour chaque programme je l'insere directement sur la ligne en dessous du programme appelant.

    Pour tenter d'etre un peu plus clair, je regarde mon premier enregistrement dans ma premiere colonne et je l'insere sur une nouvelle feuille dans la cellule (1;1).
    Je regarde mon premier enregistrement dans la 2nde colonne, je l'insere dans la cellule (2;2). Ensuite je regarde si cet enregistrement se trouve dans la premiere colonne. Si je le trouve, je met l'enregistrement associe de la seconde colonne dans la cellule (3;3) sinon je passe a mon second enregistrement.

    Je regarde s'il correspond a celui de dessus. Si oui (je rappelle que je suis sur ma seconde ligne) j'insere l'enregistrement de la seconde colonne dans la cellule (2;3) et ainsi de suite.

    Voici en gros un exemple ce ce que je doit avoir :

    1er tableau :
    A-B
    A-C
    A-D
    C-E
    C-D
    D-F

    2nd tableau (que je desire)
    A
    - B
    - C
    - - E
    - - D
    - - - F
    - D
    - - F
    C
    - E
    - D
    - - F
    D
    - F

    Bien entendu j'ai pris le soin d'eliminer avant tout phénomène de récursivité ou de noeuds (moins génant)
    En travaillant dessus, je me suis rendu compte pour arriver à ce résultat,que je dois imbriquer N boucles; N étant mon niveau max, je peut poster l'algo que j'ai trouvé, je n'en suist pas sur a 100% mais je suis sur que je doit faire beaucoup de boucles imbriquées . Etant un peu feignant, je cherche a tester une méthode plus simple.

    2e solution :
    Une table contient deja une cartographie mais seulement pour des programmes points d'entree (programmes apelles par aucun autre programme). Je suis capable de sortir les programmes qui m'interesses, j'arrives a magouiller avec excel et ces tableaux dynamiques pour sortir une pseudo cartographie mais qui ne me convient pas. Le problème étant que dans cette table si un programme A se retrouve a des niveaux différents d'appels pour un meme programme B, on ne repporte qu'une seule fois les programmes appelés par le programme A.

    Par conséquent, quand le programme point d'entree ne m'interesses pas (malheuresement trop souvent ) je perds certaines informations ensuite que j'arrive a retrouver en magouillant avec des tableaux dynamiques mais qui n'est pas exploitable a mon avis pour une personne ne connaissant pas ma méthode. Une personne m'a suggéré avec excel et Vb de passer par des collections. Faire une collection par niveau d'appels et a partir de cela je devrais ensuite etre capable de tout remettre en ordre comme je le desire.

    Je ne connait pas trop les collections mais cette méthode me semble plus simple a réaliser. J'aurrais aimé souhaité avoir vos avis si bien entendu vous avez reussi a comprendre mon problème Si quelqu'un peut me dire qu'elle solution est plus simple a réalisé sachant que la seconde je ne devrait pas trop avoir de mal (faut juste que je me plonge dans les collections) tandis que la premiere faut que je sois sur de mon algo.

    Merci d'avance pour votre aide, je reste suis a disposition pour toutes question ou informations supplementaires si vous souhaite m'aider,

    Cordialement,

    PS : Ne faites pas trop attention aux fautes d'orthographes svp, je suis fache avec les accents et ne me relits pas forcement

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    J'ai lu rapidement désolé

    En tout cas, je t'explique grosso modo les méthodes possibles.


    Si tu as une base de donnée qui contient les dépendandes, par exemple une table qui contient
    Père Fils
    A --> B
    B --> C
    C --> R
    R --> T

    Pour constuire le graphe (ou l'arbre s'il n'y a pas de cycle), il est nécessaire de procéder à un parcours de graphe classique légérement modifié (il faut utiliser des techniques pour éviter trop d'accès à la base de données).

    Exemple amusant, si la base de donnée est sur un autre poste et que pour faire une requête il faut 0.1sec (ce qui est déjà beaucoup), il te sera nécessaire de faire n requêtes dans le cas où il y a n programmes dans l'arbre (il faut vérifier en effet pour chaque programme ses fils). Pour de grosses dépendances du type 1000 programmes, ça fait déjà des temps de chargement immense de l'ordre de 1000*0.1 sec = 100 sec.

    Il peut donc être utile de mettre en place des systèmes pour ne parcourir que jusqu'à une certaine profondeur.

    Une fois le graphe construit, il est nécessaire de le reparcourir pour générer le fichier excel sous forme d'arbre (attention si ton graphe a une dépendance cyclique, ça va planter !) Attention, il peut également y avoir des doublons au niveau des niveaux, par exemple en pièce jointe (ici programme mainframe)





    Si les dépendances ne sont pas énormes, il est possible d'exporter le graphe au format DOT et de générer l'images des dépendances avec dot (ou graphViz sous windows) ce qui donne le deuxième exemple en pièce jointe


    EDIT : Oups, je croyais que j'étais dans le forum Java, tant pis
    Images attachées Images attachées   

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Merci de ta réponse même si cela ne m'aide pas trop surement du a l'explication de mon problème qui n'est peut etre pas clair .

    Je pense que je vais partir sur ma 2eme solution car j'arrive a extraire mon arbre mais pas de la bonne manière. Je pense qu'en utilisant les collections sur excel, je devrais pouvoir facilement le remettre en forme.

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Oui, désolé, je croyais au début que j'étais dans la rubrique Java et j'avais des exemples plus concrets à te montrer. Mais là, c'est avec Excel et je ne sais pas du tout ce qu'on peut faire avec.

Discussions similaires

  1. [JAXWS] génération client + dépendance externe
    Par Didine981 dans le forum Services Web
    Réponses: 0
    Dernier message: 16/08/2010, 10h40
  2. Réponses: 13
    Dernier message: 14/06/2007, 10h46
  3. Génération des pages HTML à partir d'un programme.
    Par marcandre dans le forum Langage
    Réponses: 6
    Dernier message: 26/03/2007, 17h13
  4. Vérifier dépendances programmes DOS sous Win XP
    Par arnaud_verlaine dans le forum Windows XP
    Réponses: 3
    Dernier message: 24/07/2006, 16h47
  5. Make: génération des dépendances avec gcc
    Par Syrmonsieur dans le forum Systèmes de compilation
    Réponses: 1
    Dernier message: 08/06/2006, 15h22

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