Chapitre 8 : Conception Flashcards
Donne la définition de conception
Offrir une solution implémentable
Le workflow de la conception détermine quoi ?
La structure interne du logiciel : comment il va atteindre ses buts
Vrai ou faux ? Bonne conception contribue à la qualité du logiciel
Vrai (fiabilité, flexibilité, modularité)
Donne les deux types de conceptions
Conception architecturale (haut niveau)
Conception détaillée (bas niveau)
Défini la conception architecturale
- Définit la structure et l’organisation générale du
logiciel - Décrit les modules clés du domaine, les relations entre eux et contraintes
Défini la conception détaillée
- Réalise chaque cas d’utilisation
- Respecte le plan de la conception architecturale
- Décrit le fonctionnement interne de chaque module * Prépare l’implémentation
Donne les objectifs d’une bonne conception
Forte cohésion, faible couplage, abstraction, encapsulation et dissimulation d’information
Qu’est-ce qu’une forte cohésion ?
Éléments ne sont pas réunis dans un même module par hasard, ils forment un tout pour réaliser une tâche
Qu’est-ce qu’un faible couplage ?
Modules sont relativement indépendants : dépendent le moins possible des éléments d’autres modules
Qu’est-ce qu’une abstraction ?
Décomposition intuitive exprimée en termes du problème, qui permet de se concentrer sur un module à la fois
La conception doit tenir compte de quoi ?
Des besoins existants, des besoins à venir
Qu’est-ce qu’une encapsulation et dissimulation d’information ?
Détails d’implémentation propices à changer sont cachés derrière une interface stable
Vrai ou faux ? On doit obtenir une conception qui facilite l’adaptation du logiciel aux changements
Vrai, les types de changements sont :
* Fonctionnalité, algorithme
* Représentation des données * Environnement
* Processus de développement
Devrait-on diviser le système en petits modules ?
Oui, ils sont individuellement plus faciles à concevoir et implémenter
Qu’est-ce qu’un module ?
- Unité fournissant des ressources et/ou des services
- Morceau de code indépendant muni d’une interface bien définie avec le reste du
système (ex : classes, méthode, objet…)
- Morceau de code indépendant muni d’une interface bien définie avec le reste du