Contenu
Services
Le savoir-faire et l'expérience des consultants de Kalimetrix a permis d'élaborer un référentiel unique en matière de qualité des logiciels. Il respecte les exigences normatives imposées à l'industrie du logiciel sans négliger les fortes contraintes de coût et de délai qui la régissent.
Ce référentiel, Kalimetrix le met à la disposition de ses clients au travers de prestations de service à forte valeur ajoutée.
Analyse des exigences de qualité des logiciels
- Formalisation des exigences de qualité d’un produit logiciel: Capacité fonctionnelle, Fiabilité, Rendement, Facilité d’utilisation, Maintenabilité, Portabilité (selon le modèle qualité de la norme internationale ISO/CEI 9126) ;
- Support au processus d’acquisition d’un produit logiciel : rédaction du cahier des charges, évaluation des réponses, etc. ;
- Gestion des exigences durant le cycle de vie : changement, traçabilité, etc. ;
Audit de produits logiciels
- Maintenabilité et Fiabilité du code source d’applications en langage Ada, C, C++, Java ;
- Conformité d’un code source aux exigences du Galileo Software Standard,
- Vérification de code source d’un logiciel sécuritaire (conformité aux exigences de la norme internationale CEI 61508),
- Inspection de la documentation de test,
- Audit sur mesure selon les artefacts logiciels disponibles (code source, documentation, exécutables, etc.) et les exigences d’évaluation : Réutilisabilité, Fiabilité, Performance, Maintenabilité, Portabilité, etc.
Evaluation des processus du cycle de vie du logiciel
- Conformité aux exigences et recommandations des initiatives et normes internationales : CMMI, SPICE, ISO/CEI 12207, ISO 15504, etc.
- Audit des processus “Support” du cycle de vie :
- Documentation,
- Gestion de Configuration,
- Assurance Qualité,
- Contrôle Qualité : Revue, Vérification, Validation, Audit,
- Gestion des changements.
Assurance Qualité Logiciel
- Elaboration de guides / standards de conception, de codage, de test, de documentation;
- Rédaction de Plan Assurance Qualité Logiciel, Plan de Développement Logiciel, etc.
- Revues et suivi des plans de développement, de test, etc.
- Recette des livrables,
- Mise en place de plans d’amélioration des processus,
Atelier de test de logiciels
- Mise en place d’environnements (méthodes et outils) pour l’automatisation des tests,
- Elaboration de stratégie de test,
- Spécification de plans de test, de vérification, de qualification, de recette, etc.
Automatisation de la vérification de code source
- Spécification et développement d’analyseur de code source pour un langage particulier: Delphi, Cobol, Assembler, etc.
- Intégration avec Telelogic Logiscope.
Simplification de la maintenance des logiciels
Contexte
Les volumes de code développés sont de plus en plus importants. Même si, à l’origine, le code est conçu avec des techniques efficaces, au fil du temps il se dégrade. Lors des phases de maintenance évolutives et correctives, du code est ajouté, pas nécessairement comme cela devrait être fait, du code est dupliqué, certaines fonctions sont remplacées par d’autres et ne sont pas enlevées. Tout cela fait que le nombre de lignes à maintenir ne fait qu’augmenter au cours du temps et qu’il devient très difficile de faire le tri entre ce qui est utile et ce qui ne l’est pas.
L’expérience montre que des logiciels qui ont une dizaine d’années contiennent plus de 30% de leurs instructions qui sont inutiles. Les commentaires ne sont plus à jour. Les évolutions sont difficiles et coûteuses à réaliser et très risquées car la probabilité d’introduire des défauts est forte.
Lorsque la situation devient intenable, la seule solution, aujourd’hui, consiste à tout réécrire avec les risques et les coûts que cela comporte.
Kalimetrix propose des techniques et les outils associés pour rendre aux logiciels leur jeunesse en localisant tout ce qui ne sert plus et en aidant à réorganiser le reste.
Démarche
La démarche qui est proposée par Kalimetrix est la suivante :
- Phase 1 : un état des lieux du logiciel est réalisé. Une évaluation des défauts à corriger et améliorations possibles est faite :
- Localisation de bugs potentiels
- Localisation des fonctions les plus complexes à simplifier
- Localisation du code inutilisé
- Localisation du code dupliqué
- Localisation de problèmes de conception
- Identification de composants réutilisables
- Phase 2 : une évaluation des travaux de simplification est faite ; leur coût et le gain attendu sont identifiés
- Phase 3 : un plan d’action est mis en place
- Phase 4 : le plan d’action est réalisé
- Phase 5 : bilan
Modules disponibles
Lors de la phase 1, les modules suivants peuvent être mis en œuvre :
- M1 : Module d’identification des bugs potentiels par vérification de l’utilisation de constructions dangereuses du langage
- M2 : Module de recherche des fonctions les plus complexes par l’analyse de métriques calculées sur le code
- M3 : Module de recherche du code inutilisé (sous-programmes jamais appelés, headers inclus inutilement, parties de headers jamais utilisées)
- M4 : Module de recherche du code dupliqué
- M5 : Module de recherche de code qui n’est pas à sa place (un sous-programme traite une donnée D et ne se trouve pas avec les sous-programmes qui traitent cette donnée)
- M6 : Module de recherche d’objets non identifiés lors de la conception (par exemple, si plusieurs sous-programmes ont comme paramètres nom, prénom, âge, on peut en déduire qu’il manque un objet « personne »).
- M7 : Module d’aide à la simplification des dépendances entre fichiers source (Si A utilise B et B utilise A, en déplaçant certains sous-programmes, il est peut-être possible de faire que A et B soient indépendants).
