• Aucun résultat trouvé

Structures de données et algorithmes

N/A
N/A
Protected

Academic year: 2022

Partager "Structures de données et algorithmes"

Copied!
12
0
0

Texte intégral

(1)

Structures de données et algorithmes

Chapitre 1 Techniques de programmation

1ièrepartie : Qualité des logiciels

1.1 Les facettes de la qualité du logiciel

1.1.1 Facteurs internes et externes

Objectifs : Avoir des programmes rapides, fiables, ergonomiques, lisibles, modulaires et structurés Ces objectifs appartiennent à deux catégories

Facteurs externes Facteurs internes

Efficacité Modularité

Facilité d’adaptation

Les facteurs externes dépendent des facteurs internes!

(2)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

3

1.1 Les facettes de la qualité du logiciel

1.1.2 Facteurs externes de qualité

l

Validité

C’est l’aptitude d’un produit logiciel à réaliser exactement les tâches définies par sa spécification.

l

Robustesse

C’est l’aptitude d’un logiciel à fonctionner même dans des conditions anormales.

Robustesse

Spécification

Validité figure 1 - Validité et robustesse

1.1 Les facettes de la qualité du logiciel

1.1.2 Facteurs externes de qualité

l

Extensibilité

C’est la facilité d’adaptation d’un logiciel aux changements de spécifications.

l

Réutilisabilité

C’est l’aptitude d’un logiciel à être réutilisé en tout ou en partie pour des nouvelles applications.

l

Compatibilité

C’est l’aptitude des logiciels à pouvoir être combinés les uns avec les autres.

(3)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

5

1.1.2 Facteurs externes de qualité

l

Efficacité

C’est la bonne utilisation des ressources du matériel informatique.

l

Portabilité

C’est la facilité avec laquelle un produit logiciel peut être adapté à différents environnements matériels et logiciels.

l

Vérifiabilité

C’est la facilité de préparation des procédures de recettes et de certification

(notamment des tests et procédures de déverminage).

1.1 Les facettes de la qualité du logiciel

1.1.2 Facteurs externes de qualité

l

Intégrité

C’est l’aptitude d’un logiciel à protéger ses différents composants contre les accès ou des modifications non autorisées.

l

Facilité d’utilisation

C’est la facilité avec laquelle les utilisateurs d’un logiciel peuvent apprendre comment :

- l’utiliser

- le faire fonctionner - préparer les données - interpréter les résultats

- et aussi comment réparer les effets en cas d’erreur.

(4)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

7

1.1 Les facettes de la qualité du logiciel

1.1.3 Le cycle de vie d’un logiciel et sa maintenance

Spécification

Conception

Verification

Programmation Tests

Rafinement Production

Maintenance

Documentation

figure 2 - Cycle de vie d’un logiciel

1.1 Les facettes de la qualité du logiciel

1.1.3 Le cycle de vie d’un logiciel et sa maintenance

l

Spécification

C’est la phase où il faut définir toutes les tâches que le logiciel doit effectuées. C’est ici qu’il faut identifier tousles aspects du problème.

l

Conception

C’est la phase où il faut concevoir tous les aspects techniques du logiciel, autant au niveau des structures de données, des

algorithmes, de l’interface usager, des périphériques, de la documentation, etc.

(5)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

9

1.1.3 Le cycle de vie d’un logiciel et sa maintenance

l

Vérification

Après la conception, il est important de s’assurer que toutes les spécifications ont été respectée lors de la conception. Elles doivent être vérifiées et validées (comme les entrées/sorties des différents éléments du programme par exemple).

l

Programmation

C’est l’écriture du code. C’est ici qu’il faut traduire les algorithmes en pseudo-code vers un langage approprié.

1.1 Les facettes de la qualité du logiciel

1.1.3 Le cycle de vie d’un logiciel et sa maintenance

l

Tests

Cette étape sert à identifier et corriger le plus d’erreurs possibles.

Tous les types d’erreurs doivent être vérifiés (les entrés/sorties, fonctionnement général, robustesse, interface usager, etc.) l

Raffinement

C’est la phase d’amélioration du logiciel.

Voici 2 exemples typiques d’amélioration :

Parfois, certaines simplifications sont faites lors de la conception et nécessitent quelques ajustements.

De plus, l’usage préliminaire du logiciel lors de la phase de test permet de déceler des manques ou des parties peu performantes par rapport aux spécifications initiales.

(6)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

11

1.1 Les facettes de la qualité du logiciel

1.1.3 Le cycle de vie d’un logiciel et sa maintenance

l

Production

C’est la production, la distribution et l’implantation du logiciel.

l

Maintenance

La maintenance d’un logiciels n’est pas comme l’entretient d’un objet qui s’use, c’est plutôt l’amélioration continue du produit. Les systèmes changent et les spécifications changent au fil du temps.

Ainsi, il importe de maintenir le logiciel toujours fidèles aux spécifications même si ces dernières sont changeantes. De plus, les usagers trouveront immanquablement des problèmes que la phase de tests n’avait pas permis d’identifier.

1.1 Les facettes de la qualité du logiciel

1.1.3 Le cycle de vie d’un logiciel et sa maintenance

l

On estime que 70% du coût d’un logiciel est consacré à la maintenance. La qualité d’un logiciel ne peut-être satisfaite si elle néglige cet aspect.

l

La documentation est réalisée soit pendant le

développement du système, soit jamais!

(7)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

13

1.1.3 Le cycle de vie d’un logiciel et sa maintenance

Autres: 3,4%

Amélioration d’efficacité: 4%

Documentation: 5,5%

Modifications du matériel: 6,2%

Corrections d’erreurs de routine: 9%

Corrections d’erreurs en urgence: 12,4%

Modifications de formats de données: 17,4%

Modifications dans les exigences des utilisateurs: 41,8%

figure 3 - Répartition des tâches pour la maintenance

1.1 Les facettes de la qualité du logiciel

1.1.4 Les qualités essentielles d’un logiciel

Deux sous-groupes de solutions apparaissent

l

Réutilisabilité, extensibilité et compatibilité

Exigent des techniques architecturales qui produisent des programmes souples et décentralisés, composés de modules cohérents connectés par des interfaces bien définies

l

Validité et robustesse

Favorisées par des techniques qui permettent le développement systématique de logiciels grâce à la spécification précise des besoins et des contraintes

(8)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

15

1.2 La modularité

l

Modulaire ≡ Structuré ≡ Convivial

l

La programmation modulaire est définie comme la construction de programme par assemblage d’éléments de petite taille (des sous-programmes)

l

Pour un soucis d’extensibilité et de réutilisabilité les modules doivent être autonomes, cohérents et organisés en architectures robustes

1.2 La modularité

1.2.1 Critères pour une méthode modulaire

l

Décomposabilité modulaire

Une méthode de conception répond au critère de la

décomposabilité modulaire si elle aide à décomposer un nouveau problème en plusieurs sous-problèmes dont la solution peut être recherchée séparément.

(9)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

17

1.2.1 Critères pour une méthode modulaire

l

Composabilité modulaire

Une méthode répond au critère de composabilité modulaire si elle favorise la production d’éléments de logiciels qui peuvent être combinés librement les uns avec les autres pour produire de nouveaux systèmes.

figure 5 - Composabilité modulaire

1.2 La modularité

1.2.1 Critères pour une méthode modulaire

l

Compréhensibilité modulaire

Une méthode favorise la compréhensibilité modulaire si elle aide à produire des modules dont chacun peut être compris isolément.

L’analyse d’un élément ne doit consulter que quelques voisins au plus.

figure 6 - Compréhensibilité modulaire

(10)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

19

1.2 La modularité

1.2.1 Critères pour une méthode modulaire

l

Continuité modulaire

Une méthode de conception répond au critère de continuité modulaire si une petite modification de la spécification du problème n’amène à modifier qu’un seul module ou peu de modules.

1.2 La modularité

1.2.1 Critères pour une méthode modulaire

l

Protection modulaire

Une méthode répond au critère de protection modulaire si elle conduit à des architectures dans lesquelles l’effet d’une condition anormale, se produisant à l’exécution d’un module, reste localisé à ce module, tout au moins ne se propage qu’à quelques modules voisins.

(11)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

21

1.2.2 Principes de modularité

l

Unités modulaire linguistique

Les modules doivent correspondre aux unités syntaxiques des langages.

l

Peu d’interfaces

Tout module doit communiquer avec d’autres, mais aussi peu que possible.

figure 8 - Type de structures d’interconnection de modules

(a) (b) (c)

1.2 La modularité

1.2.2 Principes de modularité

l

Petites interfaces (couplage faible)

Si deux modules communiquent, ils doivent échanger aussi peu d’informations que possible.

l

Interfaces explicites

Chaque fois que deux modules communiquent, la communication doit être claire.

figure 9 - Communication inter modules

(12)

GPA665 - Automne 2002 © Mohamed Cheriet, ing., Ph. D.

23

1.2 La modularité

1.2.2 Principes de modularité

l

Masquage de l’information

Toute information concernant un module doit être privée, sauf si elle est explicitement déclarée publique.

figure 10 - Masquage d’informations

1.2 La modularité

1.2.2 Principes de modularité

l

Le principe d’ouverture-fermeture

Une bonne technique de décomposition modulaire doit satisfaire un critère supplémentaire: elle doit fournir des modules qui soient à la fois ouverts et fermés.

Un module sera dit :

ouvert s’il est encore disponible pour des extensions

fermé s’il est prêt à être utilisé dans d’autres modules

Références

Documents relatifs

C’est le contexte dans lequel nous soignons les gens, et nos patients ajoutent à cela leur vécu et leur espoir que nous les accompagnerons sur le chemin de la santé.. Le

Fidèles à cette vision, à cette créativité et à cette volonté de s’adapter avec le temps, 58 ans plus tard, le CMFC et la médecine familiale ont

- le programme se compose de plusieurs fichiers source et la variable doit être utilisée dans un autre fichier que celui dans lequel elle est définie. extern

- le programme se compose de plusieurs fichiers source et la variable doit être utilisée dans un autre fichier que celui dans lequel elle est définie. extern

l Même si vous pouvez écrire une solution itérative au problème, considérer la recherche dichotomique récursive du dictionnaire :?.

l La procédure WriteBinary possède le paramètre formel par valeur N comme la seule variable locale, cependant, chaque enregistrement d’activation doit avoir deux..

– Si T n’est pas vide et possède une hauteur h > 0, alors T est un arbre binaire plein si les deux sous-arbres de la racine sont des arbres.. binaires pleins de hauteur h

célébrant de tout votre cœur les louanges du Seigneur ; rendez continuellement grâces pour toutes choses à Dieu le Père, au nom de notre Seigneur Jésus-Christ, en ayant