lire

Qualité logiciel

 

La qualité c’est:

Ce qui fait qu’une chose est plus ou moins recommandable,

Le degré plus ou moins élevé d’une échelle de valeurs pratique.

(Le Petit Robert)

 

Voici des documents sur la qualité logiciel :

- Mise en place d’une qualité logiciel

- Résumé du Capabilitty Maturity Model ( Modèle de maturité du logiciel américain )

 

Mise en place du CMM

dans une organisation sans certification

Décembre 2003

  1. Introduction
  2. Historique
  3. Structure du CMM
  4. Mise en place du niveau 2 : Reproductible
  5. Premier secteur clé : Gestion des exigences
  6. Deuxième secteur clé : Planification
  7. Troisième secteur clé : Suivi et supervision de projet logiciel
  8. Quatrième secteur clé : Gestion de la Sous-traitance
  9. Cinquième secteur clé : Assurance qualité
  10. Sixième secteur clé : Gestion de configuration
  11. Alternative au CMM : ISO SPICE

 

1) Introduction

 

 

CMM-SW ou Capability Maturity Model Software:
 Modèle d’évolution des capacités du logiciel
 Modèle de qualité avec certification sur 5 niveaux par paliers
 Premier modèle de qualité orienté logiciel

 Permet d’assurer sur la fiabilité d’un logiciel
 Permet d’améliorer la productivité

 Modèle de qualité énumérant des règles à respecter

 

But du CMM :

Définir ce qu’il faut respecter pour atteindre des objectifs de fiabilité et de productivité

 

But du document :

Mettre en place le premier niveau de certification du CMM

 

2) Historique

 

 

Le CMM 1.0 est créé en 1986 par le Software Engineering Institute ou Institut d’Ingénierie Logiciel.

But : Résoudre les développements d’applications de défense

Le développement de logiciel est déclaré « Industrie stratégique »

 

Exemples de pays utilisant le CMM :
 Les Etats-Unis pays ayant mis en place le CMM
 L’Inde pour être plus compétitive
 La France dans les industries de défense et de télécommunication
 La Grande-Bretagne

3.1) Structure du CMM

 

CMM-Maturité

Niveau de qualité initial : Qualité sans certification
Niveau de qualité optimisé : Qualité certifiée et mature

 

3.2) Structure d’un niveau de maturité

e

CMM-Niveau

Chaque niveau est structuré en secteurs clés contenant des pratiques clés et objectifs

 

3.3) Niveau 1 : Initial

 

  •  Les produits livrés contiennent des anomalies ou failles
  • Les projets n’aboutissent pas
  • Les délais ne sont pas respectés
  • La réussite dépend de quelques personnes essentielles
  • Peu de mise en valeur de l’expérience acquise
  • Manque de compétitivité et appauvrissement de l’entreprise
  • Explications

  • Certaines procédures non écrites mettent en danger le projet
  • D’autres procédures non définies ne mettent pas en danger le projet
  •  

    3.4) Niveau 2 : Reproductible

  • Premier niveau de qualité à atteindre dans le CMM
  • Une discipline existe
  • Succès possible
  • Estimations plus fiables
  • Prévisions et actions correctives
  • Pas de compromis sur la qualité

    Pourquoi ?

  • Le développement est planifié
  • Processus de gestion de projet définis
  • L’ingénierie participe aux principales étapes du projet.
  • Les procédures sont connues et appliquées par les équipes
  • Les produits sont vérifiés par rapport aux exigences
  •  

    3.5) Niveau 3 : Défini

     

  • Niveau de qualité institutionnalisé
  • Processus du niveau 2 généralisés à toute l’organisation
  • Affinage des processus

    Caractéristiques du niveau défini :

  • Homogénéité des projets
  • Les risques diminuent immanquablement
  • Bénéfices accrus
  • Réutilisation du savoir faire et du code
  • Culture d’entreprise et compréhension commune
  • Enseignements analysés
  • Prévention

    3.6) Niveau 4 : Contrôlé

  • Niveau de qualité mesuré
  • Processus mesurés
  • Les données sont consolidées et exploitées
  • Créé pour atteindre le niveau 5

    Caractéristiques du niveau contrôlé :

  • Indicateurs mis en place et exploités
  • Réutilisation de l’expérience
  • Assurance qualité mesurée
  • Evaluation des impacts liés aux évolutions des processus
  •  

    3.7) Niveau 5 : Optimisé

  • Niveau de qualité mature
  • Maîtrise totale de chaque processus.
  • Utile pour mettre en place de nouvelle technologies
  • Utile pour faire évoluer les processus

    Caractéristiques du niveau optimisé :

  • Amélioration continue du processus
  • Performance individuelle et collective suivie
  • Gestion des changements
  •  

    4.1) Mise en place du niveau 2
    Portée du CMM

    Travailler en fonction du CMM consiste :

  • A identifier chaque rôle et chaque activité dans chaque projet
  • A créer d’abord des procédures documentées à respecter
  • A documenter ses activités en fonction de ces procédures
  • A se remettre en cause

    Les procédures documentées contiendront :

  • Ce qu’il faut respecter pour le niveau de qualité
  • Ce qu’il est utile pour l’organisation
  •  

    4.2) Mise en place du niveau 2
    Quelques rôles

    Le Gestionnaire

  • Fournit des directives d’ordre administratif

    La Direction

  • Gestionnaires mettant an place des processus sur le long terme

    Le Chef de Projet

  • Responsable de l’ensemble de son son projet

    Le Personnel

  • Personnes chargées d’effectuer une fonction donnée

    Groupe

  • Ensemble de services, de personnes effectuant des tâches, des activités
  •  

    4.3) Mise en place du niveau 2
    Budget

     

    La mise en place d’un niveau de maturité nécessite de disposer de fonds mais la mise en place d’un domaine d’activité rapporte.

    Si on manque de moyen, il est utile de procéder par étapes :

    • Mise en place des procédures documentées
    • Mise en place d’une gestion de configuration
    • Mise en place de l’ingénierie système
    • Mise en place de l’assurance qualité
    • Certification

    4.4) Mise en place du niveau 2
    Plan de développement

     

    Il va servir de base pour le développement

    Il définit :

  • Ce qui va être fait
  • La façon dont les choses seront faîtes
  • Les personnes responsables des tâches logiciel
  • Les délais pour effectuer les tâches

    Le plan de développement est de nouveau documenté pendant le développement. Il est :

  • Comparé et vérifié
  • Mis à jour pour l’évaluation des risques
  • Mis à jour pour la planification si nécessaire
  •  

    4.5) Mise en place du niveau 2
    Tests

     

     

    Les tests servent pour l’ingénierie au respect des exigences.
    Les tests servent pour l’assurance qualité à donner un aperçu de la performance et de la fiabilité dans le projet à la Direction.
    Chaque produit de travail du projet est testé.

    Produit de travail

  • Produit intervenant dans l’élaboration du logiciel et du projet

    On teste :

  • La performance
  • La fiabilité
  • Les fonctionnalités
  • La sécurité
  • La configuration ou l’environnement
  • L’ergonomie
  •  

    4.6) Mise en place du niveau 2
    Estimations de taille

     

    But : Finir le projet dans les délais

    Les estimations de taille permettent de connaître exactement l’aboutissement de chaque activité du développement.

    Elle prennent en compte :

  • Le nombre de lignes de code pour le langage utilisé
  • Le type de projet à mettre en place
  • Le langage et l’outil utilisé.

    Elle est utilisée par rapport :

  • Au temps défini et nécessaire pour écrire les lignes de codes
  • Au nombre de personnes affectées
  • Les données sont remises en cause et alors recalculées
  •  

    4.7) Mise en place du niveau 2
    Revues et audits

    Les revues servent à connaître une situation à un moment donné.

    Définition : Revue par les pairs

  •  Évaluation d'un produit logiciel, selon des procédures définies, par des confrères du réalisateur du produit, en vue d'identifier les défauts présents et les améliorations possibles. (CMM)

    Les audits servent à comprendre une situation à un moment donné.

    Définition : Audit

  •  Revue indépendante d'un ou de plusieurs résultats d'un travail pour évaluer leur conformité aux spécifications, aux normes, aux ententes contractuelles et à d'autres critères (cf IEEE STD-610)

    4.8) Mise en place du niveau 2
    Cycle de vie

     

    Le cycle de vie du logiciel sera remis en cause. Il doit donc permettre les changements et devra être itératif. Une itération correspond à une version du logiciel non terminé mais livrable.

    Pourquoi structurer le développement en itérations ?

  • Gérer les changements
  • Répondre aux attentes primordiales du contrat
  • Répondre aux attentes secondaires ajoutées ensuite
  •  

    5) Premier secteur clé du niveau 2
    Gestion des exigences

     

    C’est la première étape avant la planification. La gestion des exigences permet au client de comprendre le projet qu’il commande. Elle permet au maître d’œuvre d’établir des frontières à partir de la demande

    Ce système de gestion comprend :

  • La mise en place d’un accord d’exigences pour le logiciel
  • Le maintient de cet accord

    L’accord servira de base pour :

  • L’élaboration du projet
  • La planification
  • Le suivi tout au long du cycle de vie
  • La validation du projet
  •  

    6) Deuxième secteur clé du niveau 2
    Planification

    Elle va permettre de mettre en place le plan de développement

    Elle est planifiée après la gestion des exigences

    Elle dépend de :

  • Prévisions fiables et réalistes
  • De procédures permettant d’effectuer des prévisions

    Elle comprend :

  • L’estimation des travaux
  • Les engagements nécessaires pour l’élaboration du plan de travail

    Elle aboutit à l’élaboration d’un plan de travail documenté

     

    7) Troisième secteur clé du niveau 2
    Suivi et supervision de projet

    On le retrouve dans les autres secteurs clés.

    Le Suivi et la supervision de projet logiciel permettent :

  • D’estimer l'avancement réel des travaux
  • De planifier des changements sur les travaux quand on s’écarte des prévisions

    Les gestionnaires responsables de ce secteur orienté génie logiciel :

  • Vérifieront l’avancée du projet à des jalons déterminés
  • Modifieront le plan de développement ou amélioreront la performance
  •  

    8) Quatrième secteur clé du niveau 2
    Gestion de la sous-traitance

    Si il n’y a pas de sous-traitants, ce secteur clé n’est pas mis en place.Ce secteur clé oriente sur l’évaluation du sous-traitant. Elle repose sur les autres secteurs clés du niveau 2.

    Rôle du sous-traitant

  •  Les activités de planification, de suivi et de supervision des travaux sous-traités sont réalisées par le sous-traitant.

    Rôle du maître d’œuvre

  • Le maître d’œuvre veille à ce que ces activités soient réalisées et que les produits livrés répondent aux critères d’acceptation.

    9) Cinquième secteur clé du niveau 2
    Assurance qualité

     

    Principe

  • Assurer que les produits de travail sont conformes aux exigences techniques demandées.

    Elle est mise en place dans tous les autres secteurs clés.

    Utilisation dans le CMM

  • L'Assurance qualité logiciel permet de fournir aux gestionnaires la vision appropriée sur le processus utilisé par le projet et sur les produits en élaboration. Pour atteindre ses objectifs et ceux de la Direction, elle est indépendante.
  • ti

    10) Sixième secteur clé du niveau 2
    Gestion de configuration

     

    La gestion de configuration logiciel est utilisée dans chaque secteur clé.

    Une gestion de configuration permet de :

  • Gérer les mises à jour sur le logiciel
  • Gérer les versions différentes du logiciel
  • Gérer les documents partagés

    La Gestion de configuration logiciel consiste dans le CMM à :

  • Identifier les produits de travail sélectionnés et leur description à des moments donnés
  • A contrôler les changements apportés aux produits de travail
  • A maintenir leur intégrité et leur traçabilité tout au long du cycle de vie
  •  

    11) Alternative au CMM : SPICE

     

    Le CMM oblige à respecter des règles et une évolution par rapport à un niveau de maturité. SPICE a été créé ensuite par l’ISO pour résoudre ces contraintes.

    Maturité des processus

    Chaque processus est évalué individuellement et possède son propre niveau de maturité.

    Niveaux

    Le niveau 1 (Initial) du CMM a été scindé en deux niveaux :

  • Niveau 0 : maîtrise inexistante des processus
  • Niveau 1 : maîtrise informelle des processus
  • Les autres niveaux correspondent à ceux du C.M.M.

    Chercher sur google :

    Google