Génie Logiciel Avancé Cours 1 : Introduction Qu'est-ce que le génie ...
Génie Logiciel Avancé Cours 1 : Introduction Qu'est-ce que le génie ...
Génie Logiciel Avancé Cours 1 : Introduction Qu'est-ce que le génie ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Criti<strong>que</strong> du modè<strong>le</strong> de développement évolutif<br />
Modè<strong>le</strong> de développement à livraison incrémenta<strong>le</strong><br />
◮ Il est plus diffici<strong>le</strong> de gérer un projet utilisant <strong>ce</strong> modè<strong>le</strong> car la visibilité de<br />
l’avan<strong>ce</strong>ment du développement est peu clair.<br />
⇒ Dans <strong>ce</strong> cadre, encore plus <strong>que</strong> dans un autre, un chef de projet doit aussi<br />
être un bon programmeur puisqu’il doit être capab<strong>le</strong> de se faire une idée de<br />
l’état du système en observant <strong>le</strong> développement (possib<strong>le</strong>ment chaoti<strong>que</strong>)<br />
des prototypes.<br />
◮ Il est diffici<strong>le</strong> de structurer correctement <strong>le</strong> logiciel (définir de bonnes<br />
abstractions, modulariser effica<strong>ce</strong>ment) car <strong>le</strong>s prototypes sont par définition<br />
des produits “bricolés”.<br />
◮ Le coût en termes de tests et de validation du produit final peuvent être très<br />
importants.<br />
⇒ Des approches mixtes intégrant modè<strong>le</strong> de développement évolutif pour<br />
produire un premier prototype validé et un modè<strong>le</strong> en cascade pour<br />
reconstruire correctement un produit final constituent en général de bons<br />
compromis.<br />
◮ Une approche à mi-chemin entre <strong>le</strong> modè<strong>le</strong> en cascade et <strong>le</strong> modè<strong>le</strong> de<br />
développement évolutif s’appuie sur une livraison incrémenta<strong>le</strong> du produit.<br />
◮ On hiérarchise <strong>le</strong>s besoins du client en termes de priorité.<br />
◮ Cha<strong>que</strong> itération du modè<strong>le</strong> vise à obtenir un ensemb<strong>le</strong> de fonctionnalités par<br />
ordre de priorité.<br />
◮ Traiter <strong>le</strong>s parties <strong>le</strong>s plus criti<strong>que</strong>s du système en premier permet de<br />
minimiser <strong>le</strong>s ris<strong>que</strong>s d’inadéquation avec <strong>le</strong> produit final.<br />
◮ Cependant, il se peut <strong>que</strong> <strong>le</strong>s choix pris en amont, trop focalisés sur <strong>ce</strong> noyau<br />
de fonctionnalités, compromettent <strong>le</strong> développement des fonctionnalités<br />
secondaires.<br />
Modè<strong>le</strong> de développement par composants<br />
Modè<strong>le</strong> de développement par composants<br />
Définition des besoins<br />
Analyse des composants<br />
Modification des besoins<br />
Con<strong>ce</strong>ption par réutilisation<br />
Développement et intégration<br />
◮ Ce modè<strong>le</strong> vise à développer un logiciel en grande partie à l’aide d’une base<br />
de composants généri<strong>que</strong>s pré-existants.<br />
◮ L’élaboration de la spécification est dirigée par <strong>ce</strong>tte base : une<br />
fonctionnalité est proposée à l’utilisateur en fonction de sa facilité à l’obtenir<br />
à l’aide d’un composant existant.<br />
⇒ Situation typi<strong>que</strong> chez <strong>le</strong>s sociétés de servi<strong>ce</strong>s (hébergement de serveurs,<br />
déploiement automati<strong>que</strong> de site web, etc . . . ).<br />
◮ Ce modè<strong>le</strong> permet d’obtenir rapidement des produits de bonne qualité<br />
puisqu’ils sont construits à partir de composants qui ont fait <strong>le</strong>ur preuve.<br />
◮ Le travail d’intégration peut s’appuyer sur des outils dirigés par des<br />
descriptions de haut-niveau du système qui génèrent <strong>le</strong> code de “glue” par<br />
exemp<strong>le</strong>.<br />
Validation du système