La Méthode COSMIC-FFP Bernard Londeix 1 Les Journées du CMSL 31 Mars 2004 Le CNAM - Paris
Sommaire Etape 1: Le context CMMi Description générale du standard ISO/IEC 19761,2003 Les attributs-objets du model Méthode de mesure COSMIC-FFP 2
La Proto-Histoire Une idée de taille Le problème a toujours été le dimensionnement: comment évaluer une quantité de logiciel? Méthode de 1ere génération utilise le nombre de lignes de code source (UK, US: LOC ou bien SLOC). Avantage: La taille est visible : peut être comptée dans un fichier source Désavantage: Connaissance de la taille est tardive dans le cycle de vie Difficile à estimer en début de cycle de vie. 3
Le Context CMMi (1991) CMM Pb: Trop de variantes 4 EIA/SW IPD-CMM SW-CMM CMMi V 1.1 (Mars 2002) Sol: Intégration Managé Défini Répétitif Initial CMM Optimisation Optimisation Quantitatif M Défini Managé Initial CMMi
PA1 PA2 PA3 INTRODUCTION AU STANDARD COSMIC-FFP CMMi Niveau 2 - Managé RM PP PMC Niveau 2: Les Cahier des Charges sont gérés Les procédés sont plannifié; pratiqués, mesurés, et contrôlés. SG1: Etablir les Estimations Prépare au Niveau 4 Techniques quantitatives et statistiques Répertoire d entreprise PA4 PA5 PA6 PA7 5 SAM M&A PPQA CM 1. Requirements Management 2. Project Planing 3. Project Monitoring & Control 4. Supplier Agreement Management 5. Measurement and Analysis 6. Process and Product Quality Assurance 7. Configuration Management PA5: Se donner les moyens de mesurer et vraiment mesurer....
Plannifier les Projets - Etablir l Estimation (PA2-SG1) SP 1.1 - Estimer le périmètre du projet SP 1.2 - Estimer le produit logiciel (taille) SP 1.3 - Définir le cycle de vie du projet SP 1.4 - Estimer l effort, et le coût. Note: La durée du projet n est pas estimée. Elle est supposée être produite de la manière traditionnelle. C est à dire: utiliser un outil de plannification pour découvrir par éssais et erreurs quel est le meilleur ordonnancement des tâches. 6
Mesures et Analyses (PA5) SG2: Produire les mesures SP 2.1: Collecter les données Complete, integrité, données de base et dérivées SP 2.2: Analyser les données Revue et rafinement SP 2.3: Sécuriser les données Projet ou organisation? Complete, intègre, précise, et à jour SP 2.4: Communiquer les résultats Rapporter à temps pour prise de décisions 7 Comment se préparer à mesurer?
Preparation pour la Mesure et l Estimation PA5 - SG1: Aligner M&A avec les objectifs SP 1.1: Pourquoi measurer? SP 1.2: Que veut on mesurer? SP 1.3: Comment obtient on les données et les sécuriser? Les procédures et les outils? SP 1.4: Comment analyser les données? Les actions de mesure seront viable si elles supportent les affaires de l entreprise. Travail préliminaire important. Méthode GQM (Basili, 1984) 8 Outillage et actions?
Mesurer le Logiciel - L approche CMMi CMMi - SP 1.2 est très libérale: CMMi inclut : Pages de texte Lignes de source code Points de Fonction Classes et Objets Volume de Données Interfaces L approche doit être consistante avec le Cahier des Charges pour estimer l effort, les coûts, et la durée des projets. 9 Un choix est à faire
La Méthode COSMIC-FFP Produit par le Common Software Measurement International Consortium (COSMIC), Montreal, Canada http://www.cosmicon.com Standardisé ISO/IEC 19761, 2003 Merite particulier: permet de mesurer logiciel temps-réel aussi bien que le logiciel de gestion. 10 Principe de la mesure COSMIC-FFP: La taille fonctionnelle du logiciel est directement proportionelle au nombre de sous-procesus élémentaires. De là, un ensemble de règles permet de définir ces sous-processus élémentaires. Leur nombre est compté et le total ainsi compté donne la taille fonctionnelle du morceau de logiciel. L étalon de mesure est le Cfsu (COSMIC Functional Size Unit)
Histoire rapide des techniques de mesure 3-D FP s ISO FSM Standard MkII FPA 1.3 COSMIC FFP V. 2.2 Allan Albrecht FPA MkII FPA Feature Points IFPUG 4.0 Full FP s V.1 IFPUG 4.1 COSMIC FFP V. 2 11 1980 1985 1990 1995 2000 2005
Mesure du Logiciel - Méthodes Modernes Les technologies de mesure ont progressé: IFPUG: International Function Point User Group: Allan Albrecht (1979) IFPUG CPM Version 4.1 UKSMA: UK Software Measurement Association Charles Symons (1991) Mk II FPA CPM Version 1.3 NESMA: c est un standard IFPUG simplifié http://www.ifpug.org http://www.uksma.co.uk http://www.nesma.nl/ Méthodes rigoureuses mais limitées aux application de gestion 12 et le dernier en date est COSMIC-FFP
L Equipe COSMIC Common Software Measurement International Consortium COSMIC est dirigée par: Professeur Alan Abran Ecole de Technologie Supérieure, Montreal, Canada, et; Charles Symons Software Measurement Services Ltd, UK COSMIC comprend 2 groupes: International Advisory Council (IAC) Measurement Practices Committee (MPC) 12 experts de 7 nations en Europe, Amerique and Asie-Pacifique forment l équipe principale. C est une initiative sans but lucratif Commencée en November 1998; Le Manuel de Mesure fut publié en Octobre 1999 13
Mesure du logiciel et Cycle de Vie Mesurement COSMIC-FFP Mesurement estimé COSMIC-FFP Estimation Traditionelle basée sur modules Estimation Erreur Faisabilité Requis Etude Construction Réalisation Vérification 14
Le produit logiciel App 1 App 2 Couches Morceaux de logiciel à mesurer Système A Système B Système C 15
FUR et Utilisateur Functionalité Utilisateur Requise exprime les besoins de l Utilisateur selon le point de vue de l Utilisateur. Exclut les besoins en matière de qualité et de besoins techniques Utilisateur Logiciel à mesurer Utilisateur: Etre humain, autre logiciel, ou machine qui interagit avec le logiciel à mesurer. Frontière 16
Utilisateur et Evénement Déclencheur Utilisateur: Etre humain, autre logiciel, ou machine qui interagit avec le logiciel a mesurer. Utilisateur Frontière Evénement déclencheur Processus Fonctionnel Logiciel Un événement déclencheur se produit à l exterieur de la frontière du logiciel mesuré et déclenche un ou plusieurs Processus Fonctionnnels. 17
Objet d Interet et Groupe de Données Entrée Ecriture Objet d Interêt Correspond aux besoins fonctionnels de l Utilisateur Groupes de Données Ensemble d attributs non vide non ordonné non redondant Sortie Unité de Stockage Logiciel Lecture Stockage Persistance: Trois types: Transitoire (durée du process) Courte, (tant que le logiciel est opérationnel), et; Durable (au-delà de la durée des opérations du logiciel). 18
Le Processus Fonctionnel Ensemble unique de Mouvement de Données Déclenché directement ou indirectement par un Utilisateur ou par un Evénement Déclencheur Evénement Déclencheur Processus Fonctionnel Processus Fonctionnel Processus Fonctionnel Processus Fonctionnel Logiciel Stockage Entrée Sortie Mouvement de Données Mouvement de Données Mouvement de Données Mouvement de Données Ecriture Lecture Stockage 19
Le FUR et le morceau de logiciel objet de la mesure COSMIC-FFP est intéressé par l aspect fonctionnel du morceau de logiciel. Le FUR est une description de cette fonctionalité. Donc pour réaliser une illustration de cette situation nous aurions le schéma ci-contre. Le logiciel étant le porteur de la fonctionalité, le logiciel se trouvera entre l unité d échange avec l utilisateur (souris, écran, etc) et l Unité de Stockage de l information. Unité d Echange FUR Logiciel Unité de Stockage Description générale montrant le logiciel et ses Processus Functionels 20
Les types de sous-processus Entrée Sortie Lecture Ecriture Entrée Sortie Ecriture Lecture Logiciel Stockage Un sous processus COSMIC-FFP est un Mouvement de Données élémentaire fonctionnel. Ce Mouvement de Données se produit pendant l execution du processus fonctionnel. Il y a quatre types de Mouvement de Données: entrée, sortie, lecture, et écriture. Un Mouvement de Donnée est concerné par un et un seul Groupe de Données. 21
Entrée Une Entrée déplace un Groupe de Données du coté Utilisateur vers l intérieur de la Frontière du logiciel. Entrée Une entrée représente toute les manipulations: de formatage; de présentation requises par l utilisateur, et; toutes les validations associées à l entrée des données. Logiciel Stockage Ces manipulations n impliquent pas d autres type de Sous-Processus 22
Ecriture Une Ecriture déplace un Groupe de Données des limites du Processus Fonctionel auquel il appartient vers l Unité de Stockage à l intérieur de la Frontière du logiciel. Une Ecriture représente: tous les traitements et tous les calculs associés aux stockage des attributs Ecriture Logiciel Stockage Ces manipulations n impliquent pas d autres type de Sous-Processus 23
Lecture Une Lecture déplace un Groupe de Données de l Unité de Stockage à l intérieur de la Frontière du logiciel vers les limites du Processus Fonctionel auquel il appartient. Une Lecture représente tous les traitements et tous les calculs associés aux données lues de presentation requises par l utilisateur, et; toutes les validations associées à l entrée des données. Logiciel Lecture Stockage Ces manipulations n impliquent pas d autres type de Sous-Processus 24
Sortie Une Sortie déplace un Groupe de Données de l intérieur de la Frontière du logiciel vers le coté Utilisateur. Une Sortie représente toutes les manipulations: de formatage et de présentation requises par l utilisateur, et; du traitements requis pour acheminer ces données à l utilisateur. Sortie Logiciel Stockage Ces manipulations n impliquent pas d autres type de Sous-Processus 25
L Unité de taille La taille fonctionnelle du logiciel est directement proportionnelle au nombre de ses sous-processus élémentaires. Etalon de mesure: La norme de mesure de 1 Cfsu (Unité de taille fonctionnelle COSMIC-FFP) est définie par convention comme étant équivalente à un sous-processus élémentaire. Cfsu 26
Example de Processus Fonctionnels Les Processus Fonctionnels sont listés ci-contre 27
Example de Mouvements de Données Les mouvements de données cicontre peuvent être des Entrées, Sorties, Ecritures, ou Lectures 28
Evaluation de COSMIC-FFP L évaluation a été conduite par l équipe COSMIC durant la période fin 1999 début 2000. Trois organisations dans trois pays ont contribué aux mesures de 12 projets. Ces projets incluaient 10 nouveaux développements et 2 projets de maintenance. La taille des projets allait de 56 Cfsu à 8.251 Cfsu. La taille totale rapportée était de 13.961 Cfsu Le cycle de vie adopté pour ces projets comportait 3 phases: Spécification, Construction et Test. L équipe COSMIC a pu montrer qu il y avait une relation entre l effort et la taille. Spécification: Es = 4,0. S 0.99 Construction Ec = 12,3. S 1,015 Test Et = 5,2. S 1,024 (où S est la taille en Cfsu) 29
Un outil de mesure: MeterIT-Cosmic 30
Pour en savoir plus consultez les sites: Uquam http://www.uqam.com Le site du créateur de COSMIC-FFP Cosmicon http://www.cosmicon.com Les plus récentes informations sur le MFC (Group de support de la méthode COSMIC-FFP) sont données sur ce site Telmaco http://www.telmaco.com MeterIT-Cosmic, outil de mesure COSMIC-FFP du logiciel, peut être téléchargé de ce site. ISO http://www.iso.ch Le standard COSMIC-FFP peut être obtenu de ce site 31
Eléments de bibliographie [1] - Albrecht Measuring Applications Development Productivity, présenté à IBM Application Development Symposium, Monterey, Ca, 1979 [2] - Abran, Symons, Oligny An overview of COSMIC-FFP field trial results, présenté à ESCOM 2001, London, 2-4 Avril 2001 [3] - COSMIC (2001) COSMIC-FFP Measurement Manual, The COSMIC Implementation Guide for ISO/IEC 19761: 2003), Common Software Measurement International Consortium. Version 2.2, January 2003. 32
33 INTRODUCTION AU STANDARD COSMIC-FFP Récapitulation Ce que nous avons appris: Nous mesurons la taille du logiciel en mesurant sa taille fonctionnelle Un morceau de logiciel est constitué d un nombre de Processus Fonctionnels Chaque Processus Fonctionnel est constitué d un nombre de Mouvement de Données Chaque Mouvement de Donnée peut être une Entrée, une Ecriture, une Lecture, ou une Sortie La taille est le nombre de Mouvement de Données; la taille s exprime comme un nombre de Cfsu
Mesurer le logiciel: pourquoi faire? Mesurer les projets La taille d un logiciel est un élément de la mesure du projet logiciel Estimer les projets La taille d un logiciel est un estimateur du projet logiciel Les contrats d externalisation Quantité de logiciel à externaliser? Assurance contre les pertes de logiciel Quantité de logiciel à mettre aux actifs? 34
INTRODUCTION AU COSMIC-FFP Questions et réponses 35