Le CETIC au service de la qualité logicielle

Software and Systems Engineering

Le CETIC au service de la qualité logicielle

Software and Systems Engineering

Une des préoccupations majeures du CETIC est d’apporter une aide active aux entreprises afin d’atteindre des niveaux de qualité plus élevés dans leurs développements IT. Le département « Software and Systems Engineering » est tout entier tourné vers cet objectif et apporte des conseils en méthodes et outils appropriés pour maîtriser la qualité des projets depuis le cahier des charges jusqu’à la maintenance, en couvrant les aspects processus, produits ainsi que des contraintes spécifiques telles que : fiabilité, sécurité et certification.

Expertise Qualité au CETIC

Les principales dimensions d’expertise Qualité du CETIC sont les suivantes :
- Les cahiers de charges : via les techniques et outils d’ingénierie des exigences ;
- Le code : analyse de code, orientée maintenabilité, sécurité et fiabilité ;
- L’estimation d’effort : via la méthode objective et rigoureuse COSMIC ;
- Les processus de développement : via un spectre de méthodes d’audit adapté à toutes les tailles d’organisation ;
- La certification : selon des normes spécifiques en qualité ou sûreté de fonctionnement.

Nous donnons un aperçu de ces différents points dans cet article. De nombreux points sont approfondis dans d’autres articles de cette newsletter que nous référencerons.

Qualité du cahier des charges

L’ingénierie des exigences (IE) est l’étape initiale de tout développement d’un logiciel. Elle a pour but d’identifier les parties prenantes et leurs besoins, de les documenter dans une forme adéquate pour leur analyse et d’ainsi permettre leur implémentation. Elle débouche sur un document contractuel pour le développement ultérieur : le cahier des charges. De nombreuses études ont démontré que la cause principale de défaillance de projet était généralement due à un problème dans cette phase qui est donc critique.

Le CETIC propose une expertise couvrant tout le spectre des méthodes et contextes d’application, depuis des méthodes légères basées sur des templates structurés, des notations graphiques de types UML, jusqu’à la spécification de modèles à la sémantique rigoureuse et pouvant être analysés par des outils informatiques. Le cœur de l’expertise repose sur la méthode KAOS, développée par l’UCL et dans laquelle le CETIC est activement impliquée notamment au niveau de l’outillage de la méthode.

En termes de services liés à l’ingénierie des exigences, le CETIC propose aux entreprises :
- L’amélioration de leurs pratiques d’IE par la conduite d’audit de leur processus d’IE, l’évaluation de la qualité des documents qu’ils produisent, l’accompagnement sur des projets spécifiques et l’aide à l’outillage.
- La conduite d’audits organisationnels permettant de construire une vue claire de la structure de l’organisation, de ses buts et de ses processus métier.
- L’accompagnement à la réalisation d’un processus complet d’émission d’un cahier de charges, depuis la collecte des besoins, leur structuration, la validation, la production du cahier de charges et l’aide à la sélection parmi les offres reçues.
- L’aide à la réalisation de modélisation formelle de systèmes critiques et à l’accomplissement des tâches de validation et de vérification liées à de tels modèles, notamment basés sur des techniques développées dans le projet DEPLOY.

Qualité du code

Le CETIC propose une approche d’évaluation de la qualité basée sur des techniques d’analyse statique permettant de fournir des indicateurs de maintenabilité, de sécurité et de fiabilité. Ces analyses reposent sur des outils spécifiques pointus développés en partie par le CETIC dans le cadre de projets de recherche ou acquis dans le cadre du laboratoire de génie logiciel. Certains sont issus du monde libre (ex. PMD, FindBugs) tandis que d’autres sont commerciaux (ex. CAST, Kalistick, Fortify, Polyspace).

Le CETIC propose les services d’analyse suivants :
- L’évaluation continue de l’évolution de la qualité du code durant le projet au moyen d’un Cockpit Qualité (voir notre article à ce sujet)
- L’évaluation de code interne sujet à évolution ou de code hérité
- L’évaluation en tierce partie de code développé dans une relation client-fournisseur
- L’évaluation qualité de composant open-source, basé sur la méthodologie développée dans le projet QualOSS (voir notre article à ce sujet)

Divers outils sont déployés suivant le contexte. Indépendamment des outils utilisés, un rapport d’analyse clair est produit afin d’assister les gestionnaires de projet dans leur processus de décision et les développeurs dans leur processus d’amélioration du code.
Des bénéfices directs sont la réduction du temps de développement par l’évaluation continue et la réduction des coûts de maintenance par les bonnes prises de décisions relativement à la qualité des composants.

Qualité des processus de développement

Le CETIC dispose d’une large expertise en qualité des processus et dans les standards associés tels que CMMI, ISO/IEC 15504. Cependant ceux-ci s’avèrent souvent trop lourds pour de petites structures. En réponse à ce problème, le département SSE a développé une approche d’amélioration logicielle adaptée aux petites, voire très petites structures étagées de la manière suivante :
- comme première approche, un simple questionnaire appelé micro-évaluation permet de collecter les informations clefs et de sensibiliser les personnes aux principaux facteurs de qualité à prendre en compte.
- Lors d’une seconde étape, une analyse plus complète OWPL (Observatoire Wallon des Pratiques Logicielles), inspirée de CMMI et SPICE est proposée. Celle-ci couvre 10 processus clefs et est étayée par une série de bonnes pratiques.
- Pour les pratiques liés à la maîtrise de la gestion des connaissances.
- Pour les projets ayant des besoins spécifiques en sécurité, le micro-audit sécurité propose une analyse de points de contrôle sécurité (basée sur le standard ISO27000), complétée par une analyse de risques.

Le CETIC continue par ailleurs à suivre et contribuer activement à l’évolution des standards dans le domaine en s’impliquant dans les travaux du groupe ISO/IEC JTC1-SC7 qui développe un nouveau cycle de vie logiciel adapté aux TPE (ISO/IEC29110) et se veut le relais des entreprises au sein de l’ISO.
Par ailleurs, au niveau de systèmes critiques, nécessitant la mise en place de méthodes rigoureuses de développement, le CETIC dispose d’une expertise sur la manière optimale d’introduire ces méthodes au niveau des processus d’analyse et de développement ainsi que de l’outillage. Plus de détails sont disponibles dans l’article DEPLOY.

Qualité de l’estimation d’effort

L’estimation d’effort de développement reste un exercice périlleux dans tout projet logiciel avec un impact important sur l’organisation et le planning du projet. La plupart des méthodes reposent sur l’expérience passée. Le département SSE a développé une expertise basée sur la méthode COSMIC (ISO/IEC19761) permettant une estimation objective de la taille fonctionnelle d’un logiciel sur base de sa spécification. Cette taille fonctionnelle est ensuite convertie en effort de développement à l’aide de données statistiques (répertoire ISBSG) dont le CETIC dispose.

Les principaux services proposés sont les suivants :
- Production d’estimation en taille fonctionnelle et effet de développement pour des projets interne ou dans le cadre d’un appel d’offre (émission ou réponse)
- Formation introductive à l’estimation de taille fonctionnelle à l’aide de COSMIC
- Accompagnement à la mise en œuvre effective de COSMIC et à l’utilisation d’ISBSG sur un projet pilote
- Aider à la mise en place d’un plan de mesure des projets permettant de produire un référentiel interne pour l’estimation d’effort

Plus de détails sur notre expertise en ce domaine sont repris dans l’article à propos de COSMIC.

Support à la certification

Le processus de certification est un processus qui repose essentiellement sur la preuve que des standards de qualité ont été mis en place et respectés. Il s’insère donc naturellement dans une perspective qualité. La certification est souvent requise pour des domaines industriels ayant des dimensions critiques en sécurité (ex. cartes à puces, pare-feux : critère communs ou ISO/IEC15408) ou en sécurité de fonctionnement (ex. aéronautique : DO178B, ferroviaire : Cenelec 50126/8/9). Leur maîtrise n’est pas triviale et nécessite une connaissance du standard et de la manière de le mettre en œuvre au niveau du cycle de développement logiciel.

Le CETIC a acquis cette expertise ainsi que certains outils spécifiques pour les standards sus-mentionnés et propose plus particulièrement les services suivants :

En matière de sécurité :
- L’évaluation de risque, la suggestion d’actions correctives et l’estimation de leur ROI
- L’analyse de sécurité de code à l’aide d’outils spécialisés, notamment Fortify
- La préparation à la certification d’une cible de sécurité selon les critères communs

En matière de sûreté de fonctionnement :
- Une expertise générique au niveau de la norme IEC-61508 et des normes dérivées dans des secteurs spécifiques
- L’analyse de fiabilité de code à l’aide de l’outil Polyspace

Plus de détails sur notre expertise en ce domaine est décrite dans l’article sur la sécurité et la fiabilité.

Christophe PONSARD