Mesure de la structure du système GEF492A 2014 Référence: [HvV §12.1.5] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.

Slides:



Advertisements
Présentations similaires
Théorie des graphes.
Advertisements

Chap. 4 Recherche en Table
Chapitre annexe. Récursivité
Algorithmes et structures de données avancés
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
Nicolas Bourbaki.
Les Ateliers de Génie Logiciel
Introduction à la POO: Les classes vs les objets
Introduction aux CMS.
Définition : C'est un format de données qui permet de réaliser des sommaires Un « flux RSS » est un fichier texte qui contient les titres des derniers.
Récursivité.
Principes de la technologie orientée objets
Initiation à la conception de systèmes d'information
Introduction à la conception de Bases de Données Relationnelles
Chap 4 Les bases de données et le modèle relationnel
Le codage des nombres en informatique
Bases de données lexicales
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Formation Python Modules (d'après "Learning Python", de Mark Lutz)
Les fichiers indexés (Les B-arbres)
LES ARBRES IUP 2 Génie Informatique
Algorithme de Bellman-Ford
Structures de données IFT-2000
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Cours de Base de Données & Langage SQL
Algorithmes d ’approximation
Forces et moments Chapitre 2.
Les Algorithmes de Tri Introduction Tri par Sélection
Les fractions rationnelles
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Structures de données IFT Abder Alikacem Gestion des exceptions Module 2 Département dinformatique et de génie logiciel Édition Septembre 2009.
Le calcul algébrique.
Procédures et fonctions
Patrons de conceptions de créations
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Introduction à la programmation orientée objets
RAPPEL Qu’est ce qu’une structure de contrôle itérative ?
Présentation de la méthode des Eléments Finis
ANALYSE METHODE & OUTILS
Cycle de vie: « Waterfall » GEF492A Automne 2014 [HvV § 3.1]
GEF492 - PPL09 Estimation de projets logiciels
GEF COCOMO pour maintenance et réutilisation
La gestion des risques GEF492A 2014 Référence: [HvV] §8.3
Mesures orientées objet GEF492A 2014 Référence: [HvV §12.1.6] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie informatique.
Les principes de la modélisation de systèmes
GEF Techniques de plannification et de contrôle
Objectifs de vérification logiciels GEF492A 2014 Référence: [HvV §14.1] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
Potentiel électrostatique
Une introduction au eXtreme Programming (XP) GEF492A 2014 Référence: [Jefferies et al ch. 1,2, 7, 9-14] Capt Vincent Roberge Collège Militaire Royal du.
Développement d'application rapide GEF492A Automne 2014 [HvV § 3.2.3]
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Le problème du déphasage.
Algorithmique et programmation (1)‏
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
Estimer la distribution en personnel GEF492A 2014 Référence: [HvV §7.3] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Le Rational Unified Process GEF492A 2014 Référence: [Roy ch ] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie informatique.
COCOMO II GEF492A 2013 Référence: [HvV §7.1.2, & Boehm]
Introduction à la programmation objet en C++
GEF Mesures de qualité Automne 2013 Mesures de qualités - attributs et perspectives GEF492A 2014 Référence: [HvV §6.1-3] Capt Vincent Roberge.
Faire du café - Solution GEF492A 2014
Tableur 1.Concept : Un tableur permet de manipuler des données, de le présenter, de les trier et d'effectuer automatiquement des calculs sur des nombres.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Programmation Collège militaire royal du Canada Génie électrique et génie informatique.
Faire du café - Solution GEF492A 2014 Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie informatique.
Transcription de la présentation:

Mesure de la structure du système GEF492A 2014 Référence: [HvV §12.1.5] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie informatique roberge.segfaults.net PPL22-MesureStructureSysteme.pdf

Aperçu Structure du système Graphe d'appels Flux d'information 2 Automne 2014GEF492

Qualité de conception  Qualité du produit L’habileté à maintenir et la réutilisation sont fonction de la qualité du produit Les aspects de la qualité de la conception incluent: complexité basée sur la grandeur et la structure (dernière séance) structure du système dépendances entre modules (séance d'aujourd'hui) abstraction procédurale – de données – de contrôle modularité cohésion et couplage masquage d’information 3 Automne 2014GEF492 (discutés lors de mesures OO)

Structure du système On peut imaginer la structure du système comme l'ensemble de modules, ainsi que les relations entre ceux-ci, qui forment l'entité logicielle Est-ce que le module A contient le module B? Est-ce que le module A précédé le module B lors de l'exécution? Est-ce que le module A passe données / contrôle au module B? Est-ce que le module A utilise le module B? Afin de minimiser la complexité du système, notre intuition nous pousse à limiter l'information qu'un module doit maintenir vis-à-vis les autres On minimise les relations d'usage et on les garde locales Organisation des dépendances (hiérarchies ou grappes) 4 Automne 2014GEF492

Exemple System - Gagnants † 5 Automne 2014GEF492 ChoisitGagnant () Tri(A) Permute(a,b) Stock(s) ObtientGrandeur( A) trit(tableau) stock(a) permute(x,y)obtientGrandeur(A) stock(gagnant) † Pourrait être un système procédural ou orienté objet

Graphes d'appel On définit un graph d'appel comme étant un graph qui représente les relations d'utilisation (use-relationship) entre modules où: Les modules sont représentés par les nœuds du graphe Appels procéduraux (utilisations) sont représenté par des arcs Exemple (Gagnant) 6 Automne 2014GEF492 AB D C E Ex

Impuretés de graphes d'appels (1) Les cycles dans un graphe représentent des dépendances cycliques, qui diminuent la qualité du design Un graphe d'appels est idéalement acyclique Un graphe acyclique peut être représenté à l'aide d'une hiérarchie Exemple (Gagnants) 7 Automne 2014GEF492 A B D C E Ex

Impuretés de graphes d'appels (2) Faire appel au travers de plusieurs niveaux de la hiérarchie créé souvent de la confusion entre les niveaux d'abstraction et diminue également la qualité du design Idéalement, le graph devrait être strictement hiérarchique Exemple (Gagnant) 8 Automne 2014GEF492 A B D C E Ex

Impuretés de graphes d'appels (3) Dans la situation la plus pure, chaque module est utilisé par un et un seul module Le graphe idéal est donc un arbre Exemple (Gagnant modifié) 9 Automne 2014GEF492 A B D†D† C E † D stocke maintenant ses variables locales à l'interne, de façon temporaire Ex

Mesurer l'impureté du graphe (1) Bien que la structure en arbre soit idéale du point de vue de la structure, celle-ci n'est pas toujours réaliste, ou même désirée. Ceci nous donne par contre un jalon pour mesurer la structure du système. Alors, étant donné un graphe G avec n nœuds et e arcs, on définit l'impureté de l'arbre m(G) comme le nombre d'arcs supplémentaires divisé par le nombre maximum d'arcs supplémentaires m(G) = (e - e arbre )/(e max - e arbre ) = 2 (e-n+1)/ (n-1)(n-2) théorèmese max = n(n-1)/2 {arcs maximum du graphe} e arbre = (n-1) {arrêtes dans un arbre} 10 Automne 2014GEF492

Mesurer l'impureté du graphe (2) Exemple 1 (Gagnant): n = 5, e = 5 m(G) = 2 (e-n+1)/ (n-1)(n-2) = 2/12 = 1/6 notez que e max = n(n-1)/2 = 10 e arbre = (n-1) = 4 Ete extra = e - e arbre = 1 e max_extra = e max - e arbre = 6 Exemple 2 (Gagnant modifié): n = 5, e = e arbre = 4 {un arbre} m(G) = 0 Exemple 3 (Perdant): n = 5, e = e max = 10 {tout un dégât} m(G) = 1 11 Automne 2014GEF492

Mesure des flux d'information (1) Rappelons-nous qu'il n'est pas toujours désirable de représenter tous les systèmes avec une belle structure hiérarchique Ce qu'on recherche est la minimisation des dépendances intermodules, où les dépendances sont des flux d'information, et non uniquement des appels procéduraux On a besoin d'une mesure qui compte non seulement les arcs du graphe, mais également le flux d'information qui y circule Les flux de données peuvent être directs (flux locaux) Passé d'un module à un autre Ou indirect (flux globaux) Passé au travers d'une structure de donnée globale 12 Automne 2014GEF492

Mesure de flux d'information (2) Définitions Un flux local existe du module A au module B si: - A invoque B et lui passe un paramètre, où - B invoque A et A retourne une valeur Un flux global existe du module A au module B si: - A fait la mise à jour d'une structure de donnée globale, et - B récupère cette structure de donnée et L'entrance est le nombre de flux entrant M La sortance est le nombre de flux sortant de M 13 Automne 2014GEF492

Mesure de flux d'information (3) Définissons également complexité(M) = (entrance(M) * sortance(M)) 2 Interprétations un module avec grande entrance a probablement une faible cohésion dans une structure hiérarchique, une hausse dans le flux d'information d'un niveau à un autre démontre probablement un niveau d'abstraction manquant Limites chaque flux est traité de façon égale, peut importe la complexité ne convient pas bien aux structures orientées objet 14 Automne 2014GEF492

MESURES ORIENTÉES OBJET Prochaine séance: Automne 2014GEF492 15