Metriques de Logiciels Chapitre 15 Lfi2 Automne 2008.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

POO par Jenny Benois-Pineau 25/03/2017.
Tests et Validation du logiciel
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Traitement sémantique et grammaire dattributs Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Introduction : Compilation et Traduction
Outils d’analyse statique
Algorithme et programmation
INTRODUCTION A MATLAB ENVIRONNEMENT MATLAB.
Initiation au système d’information et aux bases de données
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Points importants de la semaine Les types arithmétiques. Les opérateurs.
Introduction : Compilation et Traduction
Chapitre 7: Les polynômes
Analyse lexicale Généralités Expressions rationnelles Automates finis
COCOMO Intermediaire: Systemes Heterogenes LFI2, Automne 2008, Gestion de Projets.
IFT1025, Programmation 2 Jian-Yun Nie
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Structures de données IFT-2000
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Structures de données IFT-2000
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 5 : La surcharge des opérateurs Département dinformatique.
Le langage Javascript pour le web
Une nouvelle structure de données : les tableaux
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Grammaires attribuées.
1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Chapitre 3 Syntaxe et sémantique.
C++ : fonctions et opérateurs
CSI3525: Concepts des Langages de Programmation Notes # 6: Langages de Programmation Fonctionelle II: Introduction au ML.
Le modèle relationnel Le modèle relationnel est une représentation de la structure de la base de donnée, permettant de la développer à laide dun logiciel.
Types de données fondamentaux
La librairie assert.h.
Animateur : Med HAIJOUBI
Conditions aux Frontières Ouvertes
Paradigmes des Langages de Programmation
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
Master 1 – Sciences du Langage –
ALGORITHMIQUE ET PROGRAMMATION C
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
Specifications de Systemes Logiciels المواصفات الشكلية Software Specifications Chapitre 7.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
REPRESENTATION DE L’INFORMATION
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Introduction au langage C Fonctions et Procédures
L’analyse lexicale Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Les surcharges d'opérateurs
Sélection de colonnes (la projection)
Le calcul algébrique.
Structure de stockage et relations
Cours LCS N°4 Présenté par Mr: LALLALI
Chapitre III Introduction aux objets et aux classes.
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Metriques de Logiciels Chapitre 15 Lfi2 Automne 2008.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Planification de Projets Logiciels Chapitre 17 Lfi2 Automne 2008.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Sébastien Ross, enseignant DEP Soutien informatique V2 Colloque de la TREAQFP 22 mai 2015.
COCOMO Intermediaire: Systemes Homogenes LFI2, Automne 2008, Gestion de Projets.
Planification de Projets Logiciels Chapitre 17 Lfi2 Automne 2008.
Traitement d’images Semaine 09 v.A15.
Introduction au langage C
M7-Géoréférencement Choix du code terrain…. Très important : choix du « type de code… » Paramètres divers…
Int 10. Int 6.
Transcription de la présentation:

Metriques de Logiciels Chapitre 15 Lfi2 Automne 2008

Hierarchie d’Attributs  Attributs de Qualite. On les sent, mais on ne sait pas les definir.  Fonctions Quantitatives. On sait les definir, mais on ne sait pas les calculer.  Metriques Calculables. On sait les calculer mais on ne sait pas ce qu’elles representent. AQ  FQ: Relation de modelisation (partielle). FQ  MC: Relation d’approximation.

Hierarchie d’Attributs

Exemple DefinitionRoleExemple Attributs qualitatifs Qualite intuitive Definit attribut pertinent Maintenabilite Fonctions quantitatives Fonction numerique Apprehende attribut Effort annuel de maint/ loc Metriques calculables MetriqueApproxime la fq Size, nesting, structures

Taille  Nombre de lignes de code Indicateurs d’effort? Indicateurs de fonctionalite? En moyenne…

Mesure d’Effort  Utilise dans COCOMO.  Varie selon le langage?

Mesure de Fonction alite?

Taille Nombre de lexemes  Lexeme: unite syntaxique (mot cle, symbole, separateur, operateur, variable, constante, etc).  Permet de depasser la limitation de la variabilite des longueurs de lignes.

Exemple

Separation entre operateurs, operandes

Combining Compelemtary tokens

Exemple de Calcul void unsuccessfultest (int testnumber, indextype N, itemtype a[MaxSize], itemtype x) { teststream << "Test#" << testnumber << "was unsuccessful" << endl; teststream << "Initial Data N=" << N << "x=" << x << "a=" << endl; for (i=0; i<N; i++) {teststream << a[i];} teststream << endl; }

Operations

Operandes

Mesures de Profondeur  Taille: dimension superficielle.  Ne reflete pas la complexite logique.  Ne reflete pas l’imbrication du code.

Contraste

Mesure de McCabe  V = e – n + 1.  Nombre de regions dans le graphe de flot du programme.

Mesure de McCabe

Mesure de Dunsmore: Profondeur

 Prendre la moyenne des profondeurs.  Dans le cas du programme pris pour exemple:  Longueur: 7.

Mesures de Taille  La Taille selon Halstead n1: nombre d’operateurs uniques n2: nombre d’operandes uniques N1: nombre (d’instances) d’operateurs. N2: nombre (d’instances) d’operandes. n = n1+n2. N = N1+N2. Volume, V = N x log2(n).

Quantite d’Information d’un message  Alphabet = {m1, m2, … mk}.  H(k): quantite d’information transmise par message parmi k.  H(1)=0.  H(2)=1.  Deux sources: A de taille n, B de taille m. H(n x m) = H(n) + H(m).  H(n) = log2(n).  N bits: 2^^N. H(2^^N)=log2(2^^N)=N.

Interpretation de Halstead  Operateurs et operandes: alphabet avec lequel est ecrit ce programme.  log2(n) quantite d’information portee par chaque symbole du programme.  N x log2(n): quantite totale d’information portee par le programme.

Exemple de Volume

Calcul de Volume  n = 14+14=28. n1 = 14. n2 = 14.  N = = 69. N1 = 42. N2 = 27.  V = 69 x log2(28) = 69 x 4.81 = 332.

Longueur Estimee  Longueur reelle: N1 + N2.  Longueur estimee: n1 x log2(n1) + n2 x log2(n2).  Exemple: 14 x log2(14) + 14 x log2(14) = 106 > 69.

Variables Vivantes 48/16 = 3

Etendue des Variables 48/16 = 3

Metriques de Conception  Couplage et Cohesion

Metriques OO  Profondeur de la structure hereditaire.  Fan In, Fan Out.  Nombre de redefinitions.