Vous êtes ici : Accueil / TECHNICAL PAGES / Projets / Liste des actions à entreprendre à La Silla / Revision code procedures

Revision code procedures

 


 

La revision du code des procedures Inter a pour but de simplifier l'importance du code et faciliter la maintenance, le debug et la spécification des elements nécessaires pour le fonctionnement du telescope

Il faut savoir qu'une partie du code n'est pas utilisé et par nature pas fiable.

De mon avis il faut supprimer le code mort.

Il y a beaucoup de risque à effectuer cette révision. La faire sur place est un avantage indéniable, surtout du au fait qu'il y a plus de temps pour le faire et que l'on peut tester les modif sur le hardware.


 

Les étapes sont les suivantes:

Préparation

 

Determiner le T-zero, c'est a dire maintenant.

  • Archivage de l'état actuel ($THOME/prc), ainsi aucun code ou commentaire n'est perdu
  • Effacer les HISTORY de RCS dans toutes les procedure et rajouter les keyword LOG et HISTORY dans les procedures qui ne les ont pas.
  • Initialiser toutes les procedures pour RCS (Revision 1.1)
  • Debuter le travail de dégrossissage

 

Dégrossissage

 

En fait il n'y a pas de technique particulière, comme défaire un noeud dans un enchevêtrement de cable.

Par contre il y a des outils (scripts) et unix. Les processus décrits ci-dessous peuvent être utilisées dans différents ordres et le premier point ("Suppression des procédures inutilisées") est à répéter certainement apres chaque suppression de code où un appel à une procedure n'est plus effectué.

  • Suppression des procédures inutilisées. Le processus est itératif. On determine les procédures qui sont inutilisées. Ces procédures sont archivées avec un moyen simple de les récupérer. Une fois supprimées on recommence ce processus jusqu'au moment ou l'on sait qu'il n'y a plus de procedures orphelines.
  • Supression du code obsolète. C'est une révision du code ou l'on recherche les références au éléments qui n'existent plus, c'est à dire: lapalma, C2, P7, guidage C2, GRB, etc...
  • Revision des appels et arguments. Un grand nombre de procédures ont un choix d'arguments trop elevé qui complexifient inutilement le code et le rendent rapidement incomprehensible. Comme la plupart de ces options ne sont plus utilisées, on peut également dire qu'elle ne sont plus fiables. Cette revision limitera le code au code nécessaire.
  • Adaptation à nouvelles fonctionnalité de la PLC. Certaines notions n'existent plus, comme le tracking coupole (@track coup par exemple). Ainsi il faut les supprimer. Ce point est proche du point precedent à la différence qu'il n'est pas "mécanique" mais demande un connaissance du fonctionnement du soft d'observation.
  • Harmonisation des procédures ayant la même fonctionnalité. Certaines fonctionnalités existent dans 2 procédures distinctes, ceci est principalement à l'utilisation de certaines procédure depuis soit une autre procédure, soit depuis des menus de l'interface utilisateur (exemple pour la synchronisation de la coupole et beaucoup d'autres). Il est important d'utiliser une seule procedure pour tout les usages similaires.
  • Refactoring des variable locales. Renommer les variables qui n'ont pas le sens de leur usage pour permettre une compréhension facilitée des algorithmes.
  • Suppression des variables inutiles. Cela concernent les variable déclarées mais pas utilisées. Cette action est à entreprendre avec prudence car certaines variable existent pour leur usage dans la création des descripteurs FITS.
  • Amélioration des messages de log. Refaire une analyse de ce qui apparait dans les fichiers de log et déceler les problèmes potentiels qui ne sont pas enregistrés comme message de log.
  • Supprimer les connexions aux UIFs dans les procedures si possible. Préférer que les "top-procédures" le fasse et passe les info chercher en argument (exemple plus bas avec wrrd2guif)
  • supprimer les appel erreur /code et ainsi supprimer prc/ERRCODE/*

 

 

 


References

 

quelques technique sont deja testé est décrites ici:

LaSilla:

  • ~weber/RCS_pour_prc_methode.txt
  • ~weber/PRC_listes_pour_le_menage
  • ~/src/perl/prcallkw.pl

 

Geneve:

  • ~weber/Desktop/RejouvenceAnalyseProcedures/

 


 

Actions ponctuelles

  • harmoniser la procedure shm_simple (re-ecrite dans trop de procedures, la mettre dans util)
  • sous prc/bigeye: tenter de remplacer @centre par @bigcentre et ainsi supprimer @centresr
  • Attention gu.nointer n'est pas utilisé dans bigcentre.prc (option "no wait on bad identification" sur GUIF), il faut l'utiliser et la poser en argument pour ne pas accéder guif dans la procedure (@wrrd2guif)