Upload
internet
View
124
Download
10
Embed Size (px)
Citation preview
Génie logicielGénie logicielet et
Gestion de projetGestion de projet
BTS IRIS 2BTS IRIS 2 GLGL 11
IntroductionIntroduction
►Le Le génie logiciel génie logiciel ((software software engineering) engineering) existe depuis plus de 30 existe depuis plus de 30 ansans
►Né des constatations que les logiciels :Né des constatations que les logiciels : Pas fiablesPas fiables Incroyablement difficiles à réaliser dans Incroyablement difficiles à réaliser dans
les délaisles délais Ne satisfaisaient pas le cahier des chargesNe satisfaisaient pas le cahier des charges
BTS IRIS 2BTS IRIS 2 GLGL
22
La préhistoire du logicielLa préhistoire du logiciel
►Années 50 et 60 : programmation Années 50 et 60 : programmation empiriqueempirique production "artisanale" de logiciels scientifiquesproduction "artisanale" de logiciels scientifiques royaume des "codeurs" et les "grands gourous"royaume des "codeurs" et les "grands gourous"
►Fin des années 60 : la "crise du logiciel"Fin des années 60 : la "crise du logiciel" difficulté d'écrire de grands programmesdifficulté d'écrire de grands programmes difficulté de les utiliser, difficulté de les faire difficulté de les utiliser, difficulté de les faire
évoluerévoluer de nombreux projets échouentde nombreux projets échouent
BTS IRIS 2BTS IRIS 2 GLGL
33
Quelques erreurs célèbresQuelques erreurs célèbres
► perte de la 1ère sonde Mariner perte de la 1ère sonde Mariner vers Venus suite à une vers Venus suite à une erreur de programmation dans un programme Fortranerreur de programmation dans un programme Fortran
► perte, en 1971, de perte, en 1971, de 72 ballons d’expérimentation 72 ballons d’expérimentation météorologique météorologique à cause d’un bug logicielà cause d’un bug logiciel
► pannepanne, en 1990, , en 1990, du réseau téléphonique du réseau téléphonique de la cote Est de la cote Est des USA suite à un changement de version d’un des des USA suite à un changement de version d’un des modules du système de gestion du réseaumodules du système de gestion du réseau
► abandon d'un projet d'informatisation de la City après 4 abandon d'un projet d'informatisation de la City après 4 ans de travail et ans de travail et 100 M£100 M£ de perte de perte
► échec échec d’ARIANE 501 d’ARIANE 501 suite à un bug logicielsuite à un bug logiciel► Invalidation de version de Windows suite au changement Invalidation de version de Windows suite au changement
de version du de version du Windows Genuine AdvantageWindows Genuine Advantage BTS IRIS 2BTS IRIS 2 GLGL
44
La crise du logicielLa crise du logiciel
►Etude du gouvernement américain en Etude du gouvernement américain en 19791979 Payés mais jamais livrés Payés mais jamais livrés $3.2M $3.2M 47%47% Livrés mais jamais utilisés Livrés mais jamais utilisés $2.0M $2.0M 29%29% Abandonnés ou refaits Abandonnés ou refaits $1.3M $1.3M 19%19% Utilisés après modification Utilisés après modification $0.2M $0.2M 3%3% Utilisés tel quel Utilisés tel quel $0.1M $0.1M 2%2%
BTS IRIS 2BTS IRIS 2 GLGL55
Pourquoi le GL?Pourquoi le GL?
Si l'on veut maîtriser le développement de systèmes Si l'on veut maîtriser le développement de systèmes complexes, il faut :complexes, il faut :► rédiger de façon rédiger de façon claireclaire les spécifications du système (ce que les spécifications du système (ce que
l'on attend)l'on attend)=> comment être sûrs que ces spécifications sont complètes ?=> comment être sûrs que ces spécifications sont complètes ?
=> comment être sûrs que ces spécification sont cohérentes ?=> comment être sûrs que ces spécification sont cohérentes ?►valider/vérifiervalider/vérifier toutes les étapes du développements toutes les étapes du développements
=> a-t-on des moyens de validation/vérification => a-t-on des moyens de validation/vérification (mathématiques) ?(mathématiques) ?
►de réutiliser des sous-systèmes déjà réalisés (mais pas de réutiliser des sous-systèmes déjà réalisés (mais pas n'importe comment)n'importe comment)
=> a-t-on des règles, des outils pour aider à la réutilisation ?=> a-t-on des règles, des outils pour aider à la réutilisation ?
nécessité d’une nécessité d’une base théoriquebase théorique et d’une et d’une approche approche ingénierieingénierie (science de l’ingénieur) du logiciel (science de l’ingénieur) du logiciel
66
Définition Définition
► Le génie logiciel comporte des aspects de Le génie logiciel comporte des aspects de gestion de projetgestion de projet et des et des notions de notions de qualité qualité (satisfaire le client)(satisfaire le client)
► Ceci en utilisant des Ceci en utilisant des méthodesméthodes, des , des modèlesmodèles, et des , et des outilsoutils..
BTS IRIS 2BTS IRIS 2 GLGL
77
Récréation...Récréation...A propos de la réutilisation et du poids du passé…A propos de la réutilisation et du poids du passé…
QuestionQuestion : la distance standard entre 2 rails de chemin de : la distance standard entre 2 rails de chemin de fer aux US est de fer aux US est de 4 pieds et 8,5 pouces4 pieds et 8,5 pouces. C'est un chiffre . C'est un chiffre particulièrement bizarre.particulièrement bizarre.Pourquoi cet écartement a-t-il été retenu ?Pourquoi cet écartement a-t-il été retenu ?
Parce queParce que les chemins de fer US ont été construit de la les chemins de fer US ont été construit de la même façon qu'en Angleterre, par des ingénieurs anglais même façon qu'en Angleterre, par des ingénieurs anglais expatriés, qui ont pensé que c'était une bonne idée car ça expatriés, qui ont pensé que c'était une bonne idée car ça permettait également d'utiliser des permettait également d'utiliser des locomotives anglaiseslocomotives anglaises. . Pourquoi les anglais ont construits les leurs comme cela ?Pourquoi les anglais ont construits les leurs comme cela ?
Parce queParce que les premières lignes de chemin de fer furent les premières lignes de chemin de fer furent construites par les mêmes ingénieurs qui construisirent les construites par les mêmes ingénieurs qui construisirent les tramwaystramways, et que cet écartement était alors utilisé. , et que cet écartement était alors utilisé. Pourquoi ont-ils utilisé cet écartement ?Pourquoi ont-ils utilisé cet écartement ?
Récréation...Récréation... Parce queParce que les personnes qui construisaient les tramways étaient les les personnes qui construisaient les tramways étaient les
mêmes qui construisaient mêmes qui construisaient lesles chariotschariots et qu'ils ont utilisé les mêmes et qu'ils ont utilisé les mêmes méthodes et les mêmes outils. méthodes et les mêmes outils. Pourquoi les chariots utilisent un tel écartement ?Pourquoi les chariots utilisent un tel écartement ?
Parce queParce que partout en Europe et en Angleterre les routes avaient déjà partout en Europe et en Angleterre les routes avaient déjà des ornières et un espacement différent aurait causé la rupture de des ornières et un espacement différent aurait causé la rupture de l'essieu du l'essieu du chariotchariot. . Pourquoi ces routes présentaient elles des ornières ainsi espacées ?Pourquoi ces routes présentaient elles des ornières ainsi espacées ?
Parce queParce que les premières grandes routes en Europe ont été les premières grandes routes en Europe ont été construites par construites par l'empire romain l'empire romain pour accélérer le déploiement des pour accélérer le déploiement des légions romaines.légions romaines.Pourquoi les romains ont ils retenu cette dimension ?Pourquoi les romains ont ils retenu cette dimension ?
Parce queParce que les premiers chariots étaient des les premiers chariots étaient des chariots de guerre chariots de guerre romainsromains. Ces chariots étaient tirés par deux chevaux. Ces chevaux . Ces chariots étaient tirés par deux chevaux. Ces chevaux galopaient cote à cote et devaient être espacés suffisamment pour ne galopaient cote à cote et devaient être espacés suffisamment pour ne pas se gêner. Afin d'assurer une meilleure stabilité du chariot, les pas se gêner. Afin d'assurer une meilleure stabilité du chariot, les roues ne devaient pas se trouver dans la continuité des empreintes de roues ne devaient pas se trouver dans la continuité des empreintes de sabots laissées par les chevaux, et ne pas se trouver trop espacées sabots laissées par les chevaux, et ne pas se trouver trop espacées pour ne pas causer d'accident lors du croisement de deux chariots.pour ne pas causer d'accident lors du croisement de deux chariots.
Réponse à la question :Réponse à la question : l'espacement des rails US (4 pieds et 8 pouces et demi) s'explique l'espacement des rails US (4 pieds et 8 pouces et demi) s'explique parce que 2000 ans auparavant, sur un autre continent, les parce que 2000 ans auparavant, sur un autre continent, les chariots romains étaient construits en fonction de la dimension de chariots romains étaient construits en fonction de la dimension de l'arrière train des chevaux de guerre.l'arrière train des chevaux de guerre.
ConséquenceConséquence : la navette spatiale américaine est flanquée de : la navette spatiale américaine est flanquée de deux réservoirs additionnels attachés au réservoir principal. La deux réservoirs additionnels attachés au réservoir principal. La société THIOKOL fabrique ces réservoirs additionnels dans leur société THIOKOL fabrique ces réservoirs additionnels dans leur usine de l'UTAH. Les ingénieurs qui les ont conçus auraient bien usine de l'UTAH. Les ingénieurs qui les ont conçus auraient bien aimé les faire un peu plus larges, mais ces réservoirs devaient être aimé les faire un peu plus larges, mais ces réservoirs devaient être expédiés par train jusqu'au site de lancement. La ligne de chemin expédiés par train jusqu'au site de lancement. La ligne de chemin de fer entre l'usine et Cap Canaveral emprunte un tunnel sous les de fer entre l'usine et Cap Canaveral emprunte un tunnel sous les montagnes rocheuses. Les réservoirs additionnels montagnes rocheuses. Les réservoirs additionnels devaient devaient pouvoir passer sous ce tunnelpouvoir passer sous ce tunnel. Le tunnel est légèrement plus large . Le tunnel est légèrement plus large que que la voie de chemin de ferla voie de chemin de fer, et la voie de chemin de fer est à peu , et la voie de chemin de fer est à peu près aussi large que les arrières train de deux chevaux.près aussi large que les arrières train de deux chevaux.
ConclusionConclusion : une contrainte de conception du moyen de transport : une contrainte de conception du moyen de transport le plus avancé au monde est la largeur d'un cul de cheval.le plus avancé au monde est la largeur d'un cul de cheval.
Les modèles de Les modèles de développementdéveloppement
BTS IRIS 2BTS IRIS 2 GLGL
1111
Le modèle en cascadeLe modèle en cascade
BTS IRIS 2BTS IRIS 2 GLGL
1212
Étude préliminaireÉtude préliminaire
►définition définition globaleglobale du problème, du problème,►différentes stratégies possibles avec différentes stratégies possibles avec
avantages/inconvénients, ressources, avantages/inconvénients, ressources, coûts, délaiscoûts, délais
►rapport d’analyse préliminaire ou rapport d’analyse préliminaire ou schéma directeurschéma directeur
►Principalement guidé par Principalement guidé par l’expériencel’expérience
BTS IRIS 2BTS IRIS 2 GLGL
1313
Analyse des besoinsAnalyse des besoins
► qualités qualités fonctionnellesfonctionnelles attendues en termes des attendues en termes des services offertsservices offerts
► qualités qualités non fonctionnelles non fonctionnelles attendues : efficacité, attendues : efficacité, sûreté, sécurité, facilité d’utilisation, portabilité, sûreté, sécurité, facilité d’utilisation, portabilité, etc.etc.
► qualités attendues du qualités attendues du procédé de développement procédé de développement (ex : procédures de contrôle qualité)(ex : procédures de contrôle qualité)
► cahier des charges cahier des charges + plan qualité+ plan qualité
► Le cahier des charges peut inclure une partie Le cahier des charges peut inclure une partie destinée destinée aux clients aux clients (définition de ce que peuvent (définition de ce que peuvent attendre les clients) et une partie destinée attendre les clients) et une partie destinée aux aux concepteurs concepteurs (spécification des besoins)(spécification des besoins)
BTS IRIS 2BTS IRIS 2 GLGL
1414
Cahier des chargesCahier des charges►document document contractuel contractuel ►décrit ce qui est attendu du maître décrit ce qui est attendu du maître
d'œuvre par le maître d'ouvraged'œuvre par le maître d'ouvrage►décrit de façon décrit de façon préciseprécise (avec un (avec un
vocabulaire simple) les besoins vocabulaire simple) les besoins auxquels le maître d'œuvre doit auxquels le maître d'œuvre doit répondrerépondre
►fait apparaître le besoin de manière fait apparaître le besoin de manière fonctionnellefonctionnelle (indépendamment de (indépendamment de toute solution technique)toute solution technique)
BTS IRIS 2BTS IRIS 2 GLGL
1515
Cahier des chargesCahier des charges►But :But :
garantir au maître d'ouvrage que les garantir au maître d'ouvrage que les livrables seront livrables seront conformesconformes à ce qui est à ce qui est écritécrit
éviter que le souhait soit éviter que le souhait soit modifiémodifié au fur et au fur et à mesure du projetà mesure du projet
BTS IRIS 2BTS IRIS 2 GLGL
1616
Cahier des chargesCahier des charges► permet au maître d'œuvre de juger de la permet au maître d'œuvre de juger de la
tailletaille du projet et de sa du projet et de sa complexité complexité afin de afin de proposer une offre la plus proposer une offre la plus adaptéeadaptée possible possible (coût, délai, de ressources humaines, (coût, délai, de ressources humaines, qualité)qualité)
► document de référence, permettant de lever document de référence, permettant de lever toute toute ambiguïtéambiguïté sur ce qui était attendu sur ce qui était attendu
► un outil de dialogue permettant au maître un outil de dialogue permettant au maître d'œuvre d'interroger le maître d'ouvrage d'œuvre d'interroger le maître d'ouvrage afin afin d'affinerd'affiner sa compréhension de la sa compréhension de la demandedemande
BTS IRIS 2BTS IRIS 2 GLGL
1717
Éléments principaux du CdCÉléments principaux du CdC► Contexte : Contexte : Un cahier des charges commence généralement Un cahier des charges commence généralement
par une section décrivant le contexte, c'est-à-dire notamment par une section décrivant le contexte, c'est-à-dire notamment le positionnement le positionnement politique et stratégique politique et stratégique du projet. du projet.
► Objectifs : Objectifs : Très rapidement, le cahier des charges doit Très rapidement, le cahier des charges doit permettre de comprendre le permettre de comprendre le but recherchébut recherché, afin de permettre , afin de permettre au maître d'œuvre d'en saisir le sens. au maître d'œuvre d'en saisir le sens.
► Dictionnaire : Dictionnaire : Nombre de projets échouent à cause d'une Nombre de projets échouent à cause d'une mauvaise communication et en particulier à cause d'un mauvaise communication et en particulier à cause d'un manque de manque de culture et de vocabulaires communs culture et de vocabulaires communs entre entre maîtrise d'œuvre et maîtrise d'ouvrage. En effet, là où le maîtrise d'œuvre et maîtrise d'ouvrage. En effet, là où le maître d'ouvrage croît employer un vocabulaire générique, le maître d'ouvrage croît employer un vocabulaire générique, le maître d'œuvre entend parfois un terme technique avec une maître d'œuvre entend parfois un terme technique avec une signification particulière.signification particulière.
BTS IRIS 2BTS IRIS 2 GLGL
1818
Éléments principaux du CdCÉléments principaux du CdC► Périmètre : Périmètre : Le périmètre du projet permet de définir le Le périmètre du projet permet de définir le nombre de nombre de
personnes ou les ressources personnes ou les ressources qui seront impactées par sa mise en qui seront impactées par sa mise en place. place.
► Calendrier : Calendrier : Le calendrier souhaité par le maître d'ouvrage doit être Le calendrier souhaité par le maître d'ouvrage doit être très clairement explicité très clairement explicité et faire apparaître la date à laquelle le et faire apparaître la date à laquelle le projet devra impérativement être terminé. Idéalement des jalons projet devra impérativement être terminé. Idéalement des jalons seront précisés afin d'éviter un « effet tunnel ». seront précisés afin d'éviter un « effet tunnel ».
► Clauses juridiques : Clauses juridiques : Un cahier des charges étant un document Un cahier des charges étant un document contractuel, cosigné par la maîtrise d'œuvre et la maîtrise d'ouvrage, contractuel, cosigné par la maîtrise d'œuvre et la maîtrise d'ouvrage, possède généralement un certain nombre de possède généralement un certain nombre de clauses juridiques clauses juridiques permettant par exemple de définir à qui revient la propriété permettant par exemple de définir à qui revient la propriété intellectuelle de l'ouvrage, les pénalités en cas de non-respect des intellectuelle de l'ouvrage, les pénalités en cas de non-respect des délais ou encore les tribunaux compétents en cas de litigedélais ou encore les tribunaux compétents en cas de litige
BTS IRIS 2BTS IRIS 2 GLGL
1919
Analyse du systèmeAnalyse du système
►modélisationmodélisation du domainedu domaine de l’existant (éventuellement)de l’existant (éventuellement)
►définition d’un modèle conceptuel (ou définition d’un modèle conceptuel (ou spécification conceptuelle),spécification conceptuelle),
►plan de validation.plan de validation.
►dossier d’analyse + plan de validationdossier d’analyse + plan de validation BTS IRIS 2BTS IRIS 2 GLGL
2020
Conception Conception
► proposition de proposition de solutionsolution au problème spécifié au problème spécifié dans l’analysedans l’analyse
► organisation de l’application en organisation de l’application en modulesmodules et et interface des modules (architecture du interface des modules (architecture du logiciel),logiciel),
► description détaillée des description détaillée des modulesmodules avec les avec les algorithmes essentiels (modèle logique)algorithmes essentiels (modèle logique)
► structuration des donnéesstructuration des données..
► dossier de conception + plan de test global et dossier de conception + plan de test global et par modulepar module
BTS IRIS 2BTS IRIS 2 GLGL
2121
Programmation et testsProgrammation et testsunitairesunitaires
►traduction dans un langage de traduction dans un langage de programmation,programmation,
►tests avec les jeux d’essais par module tests avec les jeux d’essais par module selon le selon le plan de testplan de test..
►dossiers de programmation et codes dossiers de programmation et codes sourcessources
BTS IRIS 2BTS IRIS 2 GLGL
2222
Intégration et test Intégration et test d’intégrationd’intégration
►composition composition progressiveprogressive des modules, des modules,►tests des tests des regroupementsregroupements de modules, de modules,►test en vraie grandeur du système test en vraie grandeur du système
complet selon le plan de test global complet selon le plan de test global (‘(‘alpha testingalpha testing’)’) Parfois très long (Half Life 2)Parfois très long (Half Life 2)
BTS IRIS 2BTS IRIS 2 GLGL
2323
InstallationInstallation
►Mise en Mise en fonctionnement opérationnel fonctionnement opérationnel chez les utilisateurs. chez les utilisateurs.
►Parfois restreint dans un premier Parfois restreint dans un premier temps à des utilisateurs sélectionnés temps à des utilisateurs sélectionnés (« (« beta testingbeta testing »). »).
BTS IRIS 2BTS IRIS 2 GLGL
2424
MaintenanceMaintenance
►maintenance corrective (ou curative)maintenance corrective (ou curative) Dans le contratDans le contrat
►maintenance adaptativemaintenance adaptative Mises à jourMises à jour
►maintenance perfectivemaintenance perfective Nouvelles versionsNouvelles versions
BTS IRIS 2BTS IRIS 2 GLGL
2525
Activités transversales Activités transversales
►SpécificationSpécification
►DocumentationDocumentation
►validation et vérificationvalidation et vérification
►ManagementManagement
BTS IRIS 2BTS IRIS 2 GLGL
2626
Le modèle en VLe modèle en V
BTS IRIS 2BTS IRIS 2 GLGL
2727
Principe du modèle en VPrincipe du modèle en V
► démarche reste linéairedémarche reste linéaire► mais fait mieux apparaître :mais fait mieux apparaître :
les produits les produits intermédiairesintermédiaires à des à des niveaux d’abstraction niveaux d’abstraction et et de formalité différents de formalité différents
et les et les procédures d’acceptation procédures d’acceptation (validation et vérification) (validation et vérification) de ces produits intermédiaires.de ces produits intermédiaires.
► les activités de les activités de constructionconstruction précèdent les activités précèdent les activités de de validation et vérificationvalidation et vérification
► Mais l’acceptation est Mais l’acceptation est préparéepréparée dès la construction dès la construction (flèches de gauche à droite). Cela permet de mieux (flèches de gauche à droite). Cela permet de mieux approfondir la construction et de mieux planifier la approfondir la construction et de mieux planifier la ‘remontée’.‘remontée’.
BTS IRIS 2BTS IRIS 2 GLGL
2828
Modèle incrémentalModèle incrémental
BTS IRIS 2BTS IRIS 2 GLGL
2929
Principe du modèle Principe du modèle incrémentalincrémental
► Ces méthodes ne sont pas parfaites Dérives bureaucratiques (on passe plus de temps à faire des documents qu’à
coder…) Méthode bien sur le papier, mais dans la réalité, il est difficile de procéder de
manière linéaire► Modèle incrémental
Le produit est délivré en plusieurs fois, de manière incrémentale, c’est à dire en le complétant au fur et à mesure et en profitant de l’expérimentation opérationnelle des incréments précédents.
► Chaque incrément peut donner lieu à un cycle de vie classique plus ou moins complet.
► Les premiers incréments peuvent être des maquettes (jetables s’il s’agit juste de comprendre les besoins des
utilisateurs) ou des prototypes (réutilisables pour passer au prochain incrément en
les complétant et/ou en optimisant leur implantation).
► Le risque de cette approche est celui de la remise en cause du noyau.
3030
En réalité En réalité
► Il n’y a Il n’y a pas de modèle pas de modèle idéalidéal car tout dépend car tout dépend des des circonstancescirconstances
► Le modèle en cascade ou en V est risqué pour les Le modèle en cascade ou en V est risqué pour les développements innovants car les spécifications et développements innovants car les spécifications et la conception risquent d’être inadéquats et la conception risquent d’être inadéquats et souvent souvent remis en causeremis en cause
► Le modèle incrémental est risqué car il ne donne Le modèle incrémental est risqué car il ne donne pas beaucoup de pas beaucoup de visibilitévisibilité sur le processus complet sur le processus complet
► Souvent, un même projet peut mêler Souvent, un même projet peut mêler différentes différentes approchesapproches, exemple :, exemple : prototypage pour les sous-systèmes à haut risque prototypage pour les sous-systèmes à haut risque cascade pour les sous systèmes bien connus et à faible cascade pour les sous systèmes bien connus et à faible
risquerisque
BTS IRIS 2BTS IRIS 2 GLGL
3131
La normalisation des La normalisation des processusprocessus
► De nombreuses normes sont apparues dans les années 90 pour De nombreuses normes sont apparues dans les années 90 pour évaluer les processus en fonction de normes de qualitéévaluer les processus en fonction de normes de qualité
► USA : le standard CMM du SEI (Software Engineering Institute du USA : le standard CMM du SEI (Software Engineering Institute du DoD - Department Of Defense des USA) DoD - Department Of Defense des USA)
► UE : les UE : les normes ISO 9000normes ISO 9000 (9003) et ISO SPICE attestent qu’une (9003) et ISO SPICE attestent qu’une entreprise suit un processus orienté qualitéentreprise suit un processus orienté qualité
► QualitéQualité : : Définition donnée par la Norme ISO 9000:2000 : Aptitude d'un Définition donnée par la Norme ISO 9000:2000 : Aptitude d'un
ensemble de caractéristiques intrinsèques à satisfaire des exigencesensemble de caractéristiques intrinsèques à satisfaire des exigences capacité à atteindre les objectifs opérationnels viséscapacité à atteindre les objectifs opérationnels visés
► Les sociétés sont certifiées en fonction de leur respect de ces Les sociétés sont certifiées en fonction de leur respect de ces normesnormes
► Cela ne donne pas de garantie sur la qualité du produit lui mêmeCela ne donne pas de garantie sur la qualité du produit lui même
BTS IRIS 2BTS IRIS 2 GLGL
3232
La spécificationLa spécification
BTS IRIS 2BTS IRIS 2 GLGL
3333
Définition Définition
► Tout produit complexe à construire doit Tout produit complexe à construire doit d’abord être d’abord être spécifiéspécifié
► Exemple : un pont de 30 mètres de long, Exemple : un pont de 30 mètres de long, supportant au moins 1000 tonnes, construit supportant au moins 1000 tonnes, construit en béton, etc. en béton, etc.
► Ces spécifications peuvent être considérées Ces spécifications peuvent être considérées comme un comme un contratcontrat entre un client et un entre un client et un producteurproducteur
►De manière générale une spécification décrit De manière générale une spécification décrit les les caractéristiques attendues caractéristiques attendues (le quoi)(le quoi)
BTS IRIS 2BTS IRIS 2 GLGL
3434
Spécification et cycle de vieSpécification et cycle de vie► La La spécification des besoins (spécification des besoins (contrat entre les futurs contrat entre les futurs
utilisateurs et les concepteurs) concerne les utilisateurs et les concepteurs) concerne les caractéristiques caractéristiques attendues attendues (exigences fonctionnelles et non fonctionnelles)(exigences fonctionnelles et non fonctionnelles)
► La La spécification d’un système (spécification d’un système (contrat entre les futurs contrat entre les futurs utilisateurs et les concepteurs) concerne utilisateurs et les concepteurs) concerne la nature des la nature des fonctions offertesfonctions offertes, , les comportements souhaitésles comportements souhaités, , les données les données nécessairesnécessaires……
► La La spécification d’une architecture de système (spécification d’une architecture de système (contrat entre contrat entre les concepteurs et les réalisateurs) définit les concepteurs et les réalisateurs) définit l’architecture en l’architecture en modules modules de l’application à réaliserde l’application à réaliser
► La La spécification technique spécification technique d’un module, d’un programme, d’un module, d’un programme, d’une structure de données ou d’un type de données (contrat d’une structure de données ou d’un type de données (contrat entre le programmeur qui l’implante et les programmeurs qui entre le programmeur qui l’implante et les programmeurs qui l’utilisent) défini l’utilisent) défini la technologie à utiliserla technologie à utiliser..
BTS IRIS 2BTS IRIS 2 GLGL
3535
conclusionconclusion
►Différentes techniques et styles existentDifférentes techniques et styles existent► Souvent les techniques de spécifications se Souvent les techniques de spécifications se
complètentcomplètent, en décrivant des vues , en décrivant des vues complémentaires d’un système complémentaires d’un système
► Parler des techniques de spécification est Parler des techniques de spécification est comme parler des langages de programmation comme parler des langages de programmation : : Il n’y a ni langage ni technique idéale, ni Il n’y a ni langage ni technique idéale, ni langage ni technique permettant de tout fairelangage ni technique permettant de tout faire. .
► L’informaticien doit avoir une L’informaticien doit avoir une cultureculture assez assez étendue des diverses techniques comme des étendue des diverses techniques comme des divers langagesdivers langages
BTS IRIS 2BTS IRIS 2 GLGL
3636
La conceptionLa conception
BTS IRIS 2BTS IRIS 2 GLGL
3737
Définition Définition ► La conception propose La conception propose une solution une solution (le comment) au (le comment) au
problème spécifié lors de l’analyse :problème spécifié lors de l’analyse : architecture de l’application (architecture logicielle et architecture architecture de l’application (architecture logicielle et architecture
physique)physique) description détaillée des modules, des interfaces utilisateurs, des description détaillée des modules, des interfaces utilisateurs, des
donnéesdonnées
► Elle donne lieu à un Elle donne lieu à un dossier de conception dossier de conception avec souvent une avec souvent une partie destinée au client (présentation de la solution) et une partie destinée au client (présentation de la solution) et une partie pour les réalisateurs (conception technique)partie pour les réalisateurs (conception technique)
► La conception de l’architecture logicielle, concerne la La conception de l’architecture logicielle, concerne la décomposition du système en décomposition du système en modulesmodules, avec la description , avec la description abstraite de ce que chaque module doit faire et la description abstraite de ce que chaque module doit faire et la description des relations entre les modulesdes relations entre les modules
► La description précise du contenu des modules relève de la La description précise du contenu des modules relève de la phase de conception détailléephase de conception détaillée
BTS IRIS 2BTS IRIS 2 GLGL
3838
Modules et relationModules et relation
► Un module est un Un module est un composantcomposant d’une d’une application, contenant des définitions de application, contenant des définitions de données et/ou de types de données et/ou de données et/ou de types de données et/ou de fonctions et constituant un tout fonctions et constituant un tout cohérentcohérent
►On peut définir un module comme un On peut définir un module comme un fournisseurfournisseur de ressources ou de services de ressources ou de services
►Quand on décompose un système en Quand on décompose un système en modules il faut décrire précisément les modules il faut décrire précisément les relationsrelations entre ces modules entre ces modules
BTS IRIS 2BTS IRIS 2 GLGL
3939
Démarches de conception Démarches de conception
►Deux (principales) démarches de conception :Deux (principales) démarches de conception : l'approche fonctionnellel'approche fonctionnelle l'approche à objetsl'approche à objets
►Dans l'approche à objets, les modules Dans l'approche à objets, les modules principaux correspondent aux principaux correspondent aux objets concrets objets concrets ou abstraits ou abstraits du domaine de l'applicationdu domaine de l'application
► Ce sont des entités autonomes qui Ce sont des entités autonomes qui collaborentcollaborent pour réaliser le système globalpour réaliser le système global
BTS IRIS 2BTS IRIS 2 GLGL
4040
Interface et encapsulationInterface et encapsulation
► Objectif : diviser un système en composants qui Objectif : diviser un système en composants qui peuvent être conçus peuvent être conçus indépendammentindépendamment
► la nature de la relation d'utilisation doit être la nature de la relation d'utilisation doit être explicitement et précisément spécifiée : explicitement et précisément spécifiée : c’est son c’est son interfaceinterface
► La manière dont ces services sont réalisés ne doit La manière dont ces services sont réalisés ne doit pas apparaitre : c’est son implémentationpas apparaitre : c’est son implémentation
► On sépare ainsi :On sépare ainsi : la vue abstraite d’un module : nécessaire par ses clients (le la vue abstraite d’un module : nécessaire par ses clients (le
‘contrat’ passé entre le module et ses clients)‘contrat’ passé entre le module et ses clients) la vue de son implémentation.la vue de son implémentation.
BTS IRIS 2BTS IRIS 2 GLGL
4141
Interface et encapsulationInterface et encapsulation
► On peut programmer un module en ne connaissant On peut programmer un module en ne connaissant que les interfaces des autres modulesque les interfaces des autres modules
► En pratique, en conception objet, l’interface décrit En pratique, en conception objet, l’interface décrit principalement les objets du module, leurs attributs principalement les objets du module, leurs attributs publicspublics et leurs méthodes et leurs méthodes publicspublics
► Le reste de l’information doit être Le reste de l’information doit être cachécaché (encapsulé) dans l’implémentation.(encapsulé) dans l’implémentation.
► La partie encapsulée peut être modifiée, La partie encapsulée peut être modifiée, sans sans aucun impactaucun impact sur les modules clients à partir du sur les modules clients à partir du moment où l’interface ne change pasmoment où l’interface ne change pas
BTS IRIS 2BTS IRIS 2 GLGL
4242
Autres aspects de la Autres aspects de la conceptionconception
► D'autres aspects doivent être considérés par les D'autres aspects doivent être considérés par les concepteurs:concepteurs: conception des interfaces utilisateursconception des interfaces utilisateurs conception des algorithmesconception des algorithmes conception des bases de donnéesconception des bases de données etc. etc.
► Les systèmes étant de plus en plus souvent distribués Les systèmes étant de plus en plus souvent distribués sur un réseau, une phase de conception de la sur un réseau, une phase de conception de la l'architecture l'architecture physiquephysique de l'application peut-être de l'application peut-être nécessairenécessaire
► Les différents modules (présentation, logique Les différents modules (présentation, logique applicative, gestion des données…) sont répartis sur applicative, gestion des données…) sont répartis sur ces architectures physiquesces architectures physiques
BTS IRIS 2BTS IRIS 2 GLGL
4343
La vérificationLa vérification
BTS IRIS 2BTS IRIS 2 GLGL
4444
Définition Définition
► Tous les produits Tous les produits du cycle de vie doivent être vérifiés du cycle de vie doivent être vérifiés (pas seulement le code)(pas seulement le code)
► Le résultat de ces vérifications n’est pas Le résultat de ces vérifications n’est pas nécessairement binaire (acceptation ou rejet du nécessairement binaire (acceptation ou rejet du produit), des défauts peuvent être tolérés (correctifs, produit), des défauts peuvent être tolérés (correctifs, pack)pack)
► Il existe deux approches complémentaires de la Il existe deux approches complémentaires de la vérification:vérification: expérimenter expérimenter le comportement le comportement de l’application (la tester) avec de l’application (la tester) avec
un ensemble bien choisi de données (vérification dynamique)un ensemble bien choisi de données (vérification dynamique) analyser analyser les propriétés les propriétés du système, sans exécution du système, sans exécution
(vérification statique)(vérification statique) BTS IRIS 2BTS IRIS 2 GLGL
4545
Vérification dynamique : les Vérification dynamique : les TestsTests
► Les tests ont pour but de mettre en évidence Les tests ont pour but de mettre en évidence les erreursles erreurs
► se font à partir de jeux de tests (se font à partir de jeux de tests (jeux d’essaisjeux d’essais))
► Le programme est exécuté avec un jeu de Le programme est exécuté avec un jeu de teststests Les résultats obtenus sont comparés aux résultats Les résultats obtenus sont comparés aux résultats
attendusattendus
► Les tests peuvent prouver la présence Les tests peuvent prouver la présence d’erreurs mais d’erreurs mais ne peuvent pas prouver leur ne peuvent pas prouver leur absenceabsence
BTS IRIS 2BTS IRIS 2 GLGL
4646
Construction des jeux de Construction des jeux de teststests
►Approche Approche aléatoirealéatoire : : Le jeu de tests est sélectionné au Le jeu de tests est sélectionné au hasardhasard
sur le domaine de définition des entrées sur le domaine de définition des entrées Le domaine de définition déterminé à Le domaine de définition déterminé à
l’aide des interfaces de la spécification ou l’aide des interfaces de la spécification ou du programmedu programme
►Pas une bonne couverture de Pas une bonne couverture de l’ensemble des entrées l’ensemble des entrées Ne traite pas des cas limites ou Ne traite pas des cas limites ou
exceptionnelsexceptionnels►efficacité très efficacité très variablevariable
BTS IRIS 2BTS IRIS 2 GLGL
4747
Construction des jeux de Construction des jeux de teststests
►Approche Approche fonctionnellefonctionnelle (boîte noire) : (boîte noire) : considère uniquement la spécification de considère uniquement la spécification de
ce que doit faire le programme (sans ce que doit faire le programme (sans considérer sa structure interne)considérer sa structure interne)
vérifier chaque fonctionnalité décrite dans vérifier chaque fonctionnalité décrite dans la spécificationla spécification
►Avantage : on peut écrire ces Avantage : on peut écrire ces tests tests très tôttrès tôt, dès qu'on connaît la , dès qu'on connaît la spécificationspécification
BTS IRIS 2BTS IRIS 2 GLGL
4848
Construction des jeux de Construction des jeux de teststests
►Approche Approche structurellestructurelle (boîte blanche) : (boîte blanche) : on tient compte de la structure interne du on tient compte de la structure interne du
modulemodule On peut s’appuyer sur différents On peut s’appuyer sur différents critèrescritères
pour conduire le test (couverture des pour conduire le test (couverture des instructions, graphe de contrôle, instructions, graphe de contrôle, couverture des conditions…)couverture des conditions…)
BTS IRIS 2BTS IRIS 2 GLGL
4949
Types de testsTypes de tests► Test unitaires de programmes ou de modules :
test d’un programme isolé ou d’un module Pour tester un module, il faut simuler le comportement des modules appelés et
simuler les appels du module
► Tests d’intégration Après Tests unitaires tester leur intégration progressive jusqu’au système complet Test alpha : l’application est mise dans des conditions réelles d’utilisation, au sein
de l’équipe de développement (simulation de l’utilisateur final)
► Test de réception effectué par l'acquéreur (avec la participation du fournisseur ) après installation d'un
système dans ses locaux Test bêta : distribution du produit sur un groupe de clients avant la version définitive
► Tests de non régression suite à la modification d'un logiciel (ou d'un de ses constituants) a pour but de montrer que les autres parties du logiciel n'ont pas été affectées par
cette modification
BTS IRIS 2BTS IRIS 2 GLGL
5050
Vérifications statiquesVérifications statiques► Techniques informellesTechniques informelles
activités réalisées par un groupe d’inspecteurs qui examinent un activités réalisées par un groupe d’inspecteurs qui examinent un document à la recherche d’erreursdocument à la recherche d’erreurs
Dans le cas de code, les participants peuvent ‘jouer à la machine’ Dans le cas de code, les participants peuvent ‘jouer à la machine’ (« code walk-through »)(« code walk-through »)
Dans le cas de code ou de documents de conception, les Dans le cas de code ou de documents de conception, les participants peuvent faire des « revues » ou « inspections » en participants peuvent faire des « revues » ou « inspections » en s’aidant d’une liste des défauts les plus courantss’aidant d’une liste des défauts les plus courants
► Techniques formellesTechniques formelles prouver formellement la correction d’un programmeprouver formellement la correction d’un programme Le programme est caractérisé par sa précondition (condition Le programme est caractérisé par sa précondition (condition
éventuelle à respecter par les données du programme) et sa éventuelle à respecter par les données du programme) et sa postcondition (condition vraie à la fin du programme qui définit postcondition (condition vraie à la fin du programme qui définit donc son objectif)donc son objectif)
Méthode de Hoare définit des assertions logiques intermédiaires Méthode de Hoare définit des assertions logiques intermédiaires permettant de prouver la correction en remontant de la post-permettant de prouver la correction en remontant de la post-condition à la pré-condition du programmecondition à la pré-condition du programme
BTS IRIS 2BTS IRIS 2 GLGL
5151
Méthodes d’analyse Méthodes d’analyse et de conceptionet de conception
BTS IRIS 2BTS IRIS 2 GLGL
5252
Définition Définition
►propose une propose une démarchedémarche, distinguant les , distinguant les étapes du développement dans le cycle étapes du développement dans le cycle de vie du logiciel et exploitant au de vie du logiciel et exploitant au mieux les principes fondamentaux : mieux les principes fondamentaux : modularité, réduction de la complexité, modularité, réduction de la complexité, réutilisation, abstraction, etc.,réutilisation, abstraction, etc.,
►propose des propose des formalismesformalismes (langages) et (langages) et des types de documents (modèles), qui des types de documents (modèles), qui facilitent la communication, facilitent la communication, l’organisation et la vérificationl’organisation et la vérification
BTS IRIS 2BTS IRIS 2 GLGL
5353
Différentes méthodesDifférentes méthodes
►méthodes méthodes fonctionnelles fonctionnelles de décomposition de décomposition hiérarchique (1ère génération) :hiérarchique (1ère génération) : application du principe diviser pour régner application du principe diviser pour régner
(problème -> sous problèmes)(problème -> sous problèmes) SADT, SA-SD, ...SADT, SA-SD, ...
►méthodes méthodes systémiques systémiques (2ème génération) :(2ème génération) : séparation données/traitements, niveaux séparation données/traitements, niveaux
conceptuels, organisationnels, physiquesconceptuels, organisationnels, physiques MERISE, SSADM, ... MERISE, SSADM, ...
►méthodes méthodes objets objets (3ème génération) :(3ème génération) : OMT, OOSE, OOM, UML, ...OMT, OOSE, OOM, UML, ...
BTS IRIS 2BTS IRIS 2 GLGL
5454
Principaux objectifs des Principaux objectifs des méthodes objetsméthodes objets
► regrouper regrouper l’analysel’analyse des données et des des données et des traitementstraitements
► établir un couplage explicite entre les établir un couplage explicite entre les conceptsconcepts du monde réel et les composants du monde réel et les composants exécutablesexécutables
► faciliter la faciliter la réutilisationréutilisation► simplifier les transformations entre le niveau simplifier les transformations entre le niveau
conceptuel et l’implantationconceptuel et l’implantation
BTS IRIS 2BTS IRIS 2 GLGL
5555
Et UML dans tout ça ?Et UML dans tout ça ?
BTS IRIS 2BTS IRIS 2 GLGL
5656
Les vues d’UMLLes vues d’UML
BTS IRIS 2BTS IRIS 2 GLGL
5757
Démarche naturelleDémarche naturelle
BTS IRIS 2BTS IRIS 2 GLGL
5858
Diagrammes et phasesDiagrammes et phases
►Analyse des besoins : Analyse des besoins : cas d’utilisationcas d’utilisation►Analyse du système : Analyse du système : diagrammes de diagrammes de
classes, de collaboration, d’activités classes, de collaboration, d’activités (enchaînement des cas)(enchaînement des cas)
►Conception : diagrammes de Conception : diagrammes de classesclasses, , de de séquencesséquences, , d’activitésd’activités (conception (conception des méthodes), des méthodes), d’étatsd’états, de , de composantscomposants, de , de déploiementdéploiement..
BTS IRIS 2BTS IRIS 2 GLGL
5959
Outils, aspects organisationnelsOutils, aspects organisationnelset humainset humains
BTS IRIS 2BTS IRIS 2 GLGL
6060
Grandes catégoriesGrandes catégories
► les les outilsoutils dédiés à des tâches spécifiques dédiés à des tâches spécifiques
► les les ateliers de génie logiciel ateliers de génie logiciel (AGL) : (AGL) : intègrent plusieurs outils supportant une intègrent plusieurs outils supportant une partie des activités du développementpartie des activités du développement
► les les environnements intégrésenvironnements intégrés, qui visent à , qui visent à supporter tout le développement (cycle supporter tout le développement (cycle de vie et activités transversales)de vie et activités transversales)
BTS IRIS 2BTS IRIS 2 GLGL
6161
Les principaux outilsLes principaux outils
►Les outils d’Les outils d’éditionédition►outils de outils de programmationprogrammation►outils de outils de vérificationvérification►outils de outils de gestion de version et de gestion de version et de
gestion de configurationsgestion de configurations►outils de outils de gestion de projet et de gestion de projet et de
productivité individuelle ou collectiveproductivité individuelle ou collective
BTS IRIS 2BTS IRIS 2 GLGL
6262
Aspects organisationnels et Aspects organisationnels et humainshumains
► La gestion de projet inclut de La gestion de projet inclut de nombreuses activités nombreuses activités telles que :telles que : écriture des propositions de projetsécriture des propositions de projets estimation des coûts des projetsestimation des coûts des projets planification et l’ordonnancement des projetsplanification et l’ordonnancement des projets suivi et l’évaluation des projetssuivi et l’évaluation des projets Sélection et évaluation des personnels et l’organisation des Sélection et évaluation des personnels et l’organisation des
équipeséquipes rédaction des rapports de gestionrédaction des rapports de gestion
► 3 grands tâches :3 grands tâches : Organisation des équipesOrganisation des équipes Planification Planification Estimation des coûtsEstimation des coûts
BTS IRIS 2BTS IRIS 2 GLGL
6363
Diagramme de GANTTDiagramme de GANTT► outil permettant de modéliser la planification de tâches nécessaires à outil permettant de modéliser la planification de tâches nécessaires à
la réalisation d'un projetla réalisation d'un projet
► facilité de lecture => utilisé par la facilité de lecture => utilisé par la quasi-totalité des chefs de projet quasi-totalité des chefs de projet dans tous les secteursdans tous les secteurs
► permet de représenter permet de représenter graphiquement l'avancement du projet graphiquement l'avancement du projet (mais (mais également un moyen de communication entre les différents acteurs également un moyen de communication entre les différents acteurs d'un projet) d'un projet)
► facile à mettre en œuvre facile à mettre en œuvre avec un simple tableur ou des outils avec un simple tableur ou des outils spécialisésspécialisés
► Fait apparaître :Fait apparaître : Tâches Tâches Dates Dates
► Éléments supplémentaires :Éléments supplémentaires : Tâches jalonsTâches jalons RessourcesRessources
BTS IRIS 2BTS IRIS 2 GLGL
6464
Diagramme de GANTTDiagramme de GANTT
BTS IRIS 2BTS IRIS 2 GLGL
6565