Bilan DC-0 French Science Ground Segment - 23 et 24 Janvier 2019 IAP - Paris - Indico

La page est créée Anthony Breton
 
CONTINUER À LIRE
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