Bilan DC-0 French Science Ground Segment - 23 et 24 Janvier 2019 IAP - Paris - Indico
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
French Science Ground Segment Bilan DC-0 23 et 24 Janvier 2019 IAP – Paris Valérie PONS – NEXEYA C&F
SOMMAIRE 1ère PARTIE : Bilan DC-0, Activités menées, Activités à venir, Quelques rappels pour l’intégration Cartographie du Code JAVA- PYTHON 2ème PARTIE : Éléments complémentaires Code Page 2
BILAN AP DC-0 Démarrage : 17/10/2018 Clôture : 23/01/2019 Les Plans de Projet : Le Plan de développement du FSGS : livré au CNES fin Novembre Le Plan Qualité et le Plan de Gestion de Configuration simplifié : livrés au CNES semaine 51. La SRS : FSGS System Requirements Specifications Livrée au CNES semaine 51. La Spécification de Test du DC-0 : Contient les composants intégrés, Une définition exhaustive des tests à exécuter (~ 50 tests), Contient aussi le résultat des tests. Sous POLARION : https://dsm-polarion.cea.fr/polarion/#/project/Svom2015/home Page 3
ACTIVITÉS MENÉES Les Plans : Plan Qualité et le Plan de Gestion de Configuration du Projet simplifiés ont été validés globalement par le Chef de Projet et soumis au CNES pour validation semaine 51 (compatibilité avec les exigences qualité imposées : « Spécification Assurance Qualité Logiciel pour les développements avec des laboratoires » - DNO/DA/AQ- 2017-0016646 – ED1, Rev0 du 07/11/2017) La SRS : Rajout dans la MOCD-Pol des exigences de l’IC FPOC Contrôle de la livraison de la SRS Proposition d’amélioration du Work Item Requirement dans Polarion (Traceability Rules for Documents Generated with POLARION, in interface with CNES specifications - SV-PRO-AN-865- CNES- 19/03/2018) Contrôle de Code pour le DC-0 Page 4
ACTIVITÉS A VENIR La SRS : Mise à niveau de la SRS, et génération de la matrice de traçabilité dès que le WI Requirement sera implémenté : Rajout du mode de vérification Génération de la matrice de traçabilité avec les exigences de haut niveau (développement d’une macro Polarion) Mise en place d’un workflow de « respect des bonnes pratiques » des composants candidat à l’intégration Cycle de contrôle Auteur/Vérificateur (Chef de Projet et/ou SQAM) avec Jira Contrôle de Code pour le DC-0 : À poursuivre, dès que l’usine logicielle sera disponible (Fin Février) Finaliser Bilan Qualité du DC-0 Page 5
INTEGRATION - RAPPELS Ce que vous devez faire : Rédiger le paragraphe descriptif de vos applications dans https://drf-gitlab.cea.fr/svom/Tools/wikis/application- directory et y faire référence à la page d’instructions pour l’installation. Rédiger les instructions d’installation en suivant le modèle https://drf-gitlab.cea.fr/svom/Tools/wikis/instructions- template ou les instructions déjà en ligne. Compléter le fichier README.md de déploiement sur la page https://drf-gitlab.cea.fr/svom/svom-deployment Mettre à jour et vérifier toutes vos pages de documentation sur gitlab. Mettre à jour et vérifier vos WI de test dans Polarion (DC-0 Spécification) Nettoyer la page https://drf-gitlab.cea.fr/svom / en supprimant ou en mettant au grenier les dossiers obsolètes. Page 5
CARTOGRAPHIE DU CODE La méthode Analyse de la volumétrie avec l’outil gratuit cloc – count line of code Lien : http://cloc.sourceforge.net/#Overview Cartographie des modules et des langages Contrôle de code sur du langage C (2ème Partie) Le périmètre d’analyse Dans la Gitlab : https://drf-gitlab.cea.fr/svom/svom- deployment , fichier Readme.md Le périmètre de contrôle porte sur les composants ayant un répertoire « code » mentionné dans le Readme.md. La liste des composants est donnée dans le tableau ci- dessous. Page 6
LES COMPOSANTS Nom Description alerts-master la gestion des alertes crestdb le serveur de gestion de configuration eclairs le traitement des données Eclairs general program eclgrm le traitement des données Eclairs-GRM messaging le serveur de messagerie monitoring Gestion du monitoring des trois outils (Grafana, InfluxDB et Grafana) mxt le traitement des données MXT bande X mxt-vhf le traitement des données MXT VHF noaa-receiver l'application de réception des images NOAA packets-decod le décodage des paquets VHF proxy le serveur Proxy vhfdb-postgre le serveur de base de données postgresql pour la VHF vhfmgr la gestion des données VHF xband-system le serveur de données bande X Page 7
VOLUMETRIE – JAVA-PYTHON COMPONENTS code vhfmgr 20339 Components Classification crestdb 20317 eclairs 5543 xband-system 3752 40000 eclgrm 3201 600 35000 noaa-receiver 3056 mxt-vhf 1303 500 30000 alerts-master 1202 400 25000 20000 300 15000 200 10000 100 5000 0 0 vhfmgr crestdb eclairs xband-system eclgrm noaa-receiver mxt-vhf alerts-master blank comment code Nbfile Page 8
VOLUMETRIE – PYTHON - JAVA Synthèse Volumétrie 8 composants, 810 fichiers, Lignes blanches : 20194, Lignes de commentaires : 16798, Lignes de code : 58713, Un taux de commentaires moyen de l’ordre de 20% Nblignes code/fichier : 72 vhfmgr crestdb eclairs 17% 18% 20% blank blank blank comment 17% comment comment 59% 24% 57% 23% code 65% code code Page 9
CARTOGRAPHIE JAVA ET PYTHON Language distribution 35000 600 Synthèse 31604 30000 519 27109 500 JAVA, PYTHON 25000 400 20000 291 300 15000 9583 10346 200 10000 8009 8789 5000 100 0 0 Java Python blank comment code NBFILE Language distribution Composant Java Python 35000 8 31604 NON OUI 30000 7 27109 7 alerts-master 25000 6 crestdb OUI OUI 5 20000 eclairs NON OUI 4 4 NON OUI 15000 9583 10346 3 eclgrm 8009 8789 10000 NON OUI 2 mxt-vhf 5000 1 0 0 noaa-receiver OUI OUI Java Python vhfmgr OUI OUI blank comment code NBMODULE xband-system OUI NON Page 10
CONCLUSION VOLUMETRIE PYTHON-JAVA Une volumétrie importante Un taux de commentaires respecté. Page 12
DES QUESTIONS? Page 13
SOMMAIRE 2ème PARTIE: Éléments complémentaires Code Volumétrie tout langage Une analyse qualimétrie avec Logiscope Page 14
VOLUMETRIE GLOBALE Synthèse Volumétrie 14 composants analysés, 1763 fichiers, Lignes blanches : 23044, Lignes de commentaires : 26060, Lignes de code : 117251, Un taux de commentaires moyen de l’ordre de 16% crestdb vhfmgr noaa-receiver 13% blank 13% blank 15% blank 11% 17% comment comment 18% comment 70% code 67% 76% code code Page 9
VOLUMETRIE – TOUT LANGAGE COMPONENTS code crestdb 39529 vhfmgr 36891 noaa-receiver 19174 eclairs 5793 eclgrm 4256 Components Classification xband-system 4093 mxt-vhf 2068 60000 monitoring 2022 600 alerts-master 1885 50000 500 mxt 1334 40000 proxy 124 400 messaging 51 30000 vhfdb-postgre 20 300 packets-decod 11 20000 200 10000 100 0 0 blank comment code Nbfile Page 8
CARTOGRAPHIE PAR LANGAGE Synthèse Language distribution 24 langages 60000 50000 600 500 Les plus utilisés : 40000 30000 400 300 Java, JSON, 20000 10000 200 100 Python, C 0 0 Bourne Again… YAML XML Java make JSON C/C++ Header Perl C Scala CMake CSS Javascript XSD Python C++ Bourne Shell GO SQL HTML Maven m4 Groovy Mustache DOS Batch blank comment code NBFILE Language distribution 60000 14 12 Langages de Programmation : Java et 50000 40000 10 Python 8 30000 6 20000 4 10000 Configurations: JSON, 2 0 0 Bourne Again… YML…. YAML XML Java make JSON Perl C/C++ Header Scala CSS Javascript Python C C++ CMake SQL XSD Bourne Shell GO HTML Groovy m4 Mustache Maven DOS Batch Langage C, code réutilisé blank comment code NBMODULE Page 10
CONTRÔLE DE CODE SUR DU C Le code : C de nooa-receiver - Code Réutilisé Nombre de fichiers C 29, Nombre de fichiers H 19, Nombre de ligne de code : >12000 L’outil : Logiscope Métrique de code Seuil Logiscope HORS SEUIL Nombre cyclomatique McCabe
CONTRÔLE DE CODE CONCLUSION Une forte volumétrie Disparité des langages. Certains langages incontournables pour l’intégration (fichiers de configuration) méritent une attention particulière. Des normes de programmation devraient être définies en vue de faciliter l’étape d’intégration. Code C : Code réutilisé peu complexe au regard des métriques imposées En revanche, le taux de commentaires est bas Page 12
DES QUESTIONS? Page 13
Vous pouvez aussi lire