Publicité
Publicité

Contenu connexe

Publicité
Publicité

Cours Génie Logiciel 2016

  1. Mohamed ERRADI ENS de Martil MAROC
  2. Comment le client l’a souhaité Comment le chef de projet l’a compris Comment l’analyste l’a compris Comment le programmeur l’a écrit Comment le business consultant l’a décrit Ce dont le client avait réellement besoin. Ce dont le support technique est effectué Comment le client a été facturé Ce qui a été installé chez le client Comment le projet a été documenté Observer l’image et le titre: 1- Problématique des logiciels? 2 – Le génie logiciel: Objectifs?
  3. Explosion de CHALLENGER Perte de Mars sattellite , 1999 Accident de train au USA Panne du système de réservation SNCF
  4. Prendre du recul sur des expériences vécues (ou à venir) en:  stages,  mini-projets,  travaux pratiques.  Formaliser votre expérience du développement logiciel. OBJECTIFS
  5. Art et science de concevoir et de construire, avec économie et élégance des applications, et d’autres systèmes informatiques, qui soient corrects, robustes, réutilisables, sûrs, efficaces, facile à maintenir et à utiliser. Le génie logiciel applique les techniques d’ingénierie à la définition, la conception, la réalisation et l’évolution de systèmes logiciels . Le génie logiciel comprend des méthodes et techniques et des outils Définitions et Objectifs
  6. Domaine des ‘sciences de l’ingénieur’ dont la finalité est la conception, la fabrication et la maintenance de systèmes logiciels complexes, sûrs et de qualité (‘Software Engineering’ en anglais). Aujourd’hui les économies de tous les pays développés sont dépendantes des systèmes logiciels. Le GL se définit souvent par opposition à la ‘programmation’, c’est à dire la production d’un programme par un individu unique, considérée comme ‘facile’. Dans le cas du GL il s’agit de la fabrication collective d’un système complexe, concrétisée par un ensemble de documents de conception, de programmes et de jeux de tests Définitions et Objectifs
  7. Le GL se préoccupe d’assurer que les 4 critères suivants soient satisfaits.  Le système qui est fabriqué répond aux besoins des utilisateurs (correction fonctionnelle).  La qualité correspond au contrat de service initial:  la validité  la fiabilité  la robustesse  l’extensibilité  la réutilisabilité :  la compatibilité :  l’efficacité  la portabilité  la traçabilité :  la vérifiabilité  l’intégrité  la facilité d'utilisation, d’entretien, etc.  Les coûts restent dans les limites prévues au départ.  Les délais restent dans les limites prévues au départ.
  8. Rigueur ( fermeté; détermination; assurance …). Séparation des problèmes (stratégie «diviser pour régner »). Modularité: composition en sous systèmes plus simples (primitives) Abstraction: ne considérer que les aspects jugés importants. Anticipation du changement: pour prévoir, faciliter et gérer des évolutions inévitables. Construction incrémentale: chaque résultat est construit en étendant le précédent. Générosité: résolution d’un problème général au lieu de la résolution d’un problème spécifique. principes
  9. CYCLE DE VIE D’UN LOGICIEL Définitions Ensemble des étapes de la réalisation, de l’énoncé des besoins à la maintenance ou au retrait du logiciel. Le cycle de vie permet de détecter les erreurs au plus tôt et ainsi de maîtriser la qualité du logiciel, les détails de sa réalisation et les coûts associés. C’est la période de temps s’étalant du début à la fin du processus du logiciel.
  10. CYCLE DE VIE D’UN LOGICIEL Étapes • Pourquoi développer le logiciel? • Y a-t-il de meilleurs alternatives? • Comment procéder pour faire ce développement? • Y a-t-il un marché pour ce logiciel? • Quels moyens faut-il mettre en œuvre? A t-on le budget, le personnel, le matériel nécessaires? Activité Faire une étude préalable Description Etudier la faisabilité du projet, ses contraintes techniques (coût, temps, qualité) et les alternatives possibles Entrées Problème à résoudre, objectifs à atteindre. Sorties Si oui: décision de réaliser le logiciel Si non: projet abondonné. Doc: faisabilité
  11. CYCLE DE VIE D’UN LOGICIEL Étapes • Que doit faire le logiciel? • Les spécifications fonctionnelles? Les spécifications non fonctionnelles? • Performance requise? • Comportement en cas d’erreur? • Interfaces avec l’utilisateur? • Contraintes de réalisation? • Environnement? Activité Spécifier Description Décrire ce que doit faire le logiciel. Décrire comment vérifier que le logiciel fait bien ce sui est exigé. Entrées Client qui a une idée de ce qu’il veut. Exigences, désir, besoins… concernant le système permettant de résoudre le problème. Sorties Cahier des charges du logiciel. Des procédures de validation. Doc: cahier des charges
  12. CYCLE DE VIE D’UN LOGICIEL Étapes • Conception générale ou globale ou préliminaire ou architecturale? • Description de la solution retenue; description de l’architecture de la solution: les entités, les interfaces des entités et interaction entre entités • Conception détaillée • Décomposition des entités en entités plus élémentaires • Interface; algorithmes utilisés, traitements des erreurs,; performance…. Activité Concevoir Description Organiser le logiciel afin qu’il puisse satisfaire les exigences de la spécification et faire les principaux choix techniques pertinentes. Entrées Une spécification Sorties Une description des décisions de conception. Des procédures de tests qui permettent de vérifier que les décisions de conception sont correctement implémentées en code source. Doc: conception générale Doc: conception détaillée
  13. CYCLE DE VIE D’UN LOGICIEL Étapes • Tests unitaires? • Assemblage • Tests d’intégration? Activité Intégrer Description Assembler le code source du logiciel et dérouler les tests d’intégration Entrées Conception, code source, tests (d’intégration) Sorties Rapport de tests d’intégration
  14. CYCLE DE VIE D’UN LOGICIEL Étapes • Tests unitaires? • Assemblage • Tests d’intégration? • Installation dans son environnement d’exploitation Activité Validder Description Construire le logiciel complet exécutable. Dérouler les tests de validation sur le logiciel complet exécutable. Entrées Le logiciel complet exécutable à valider. Tests de validation Sorties Rapport de tests de validation
  15. CYCLE DE VIE D’UN LOGICIEL Étapes • Maintenance corrective: • Corriger les erreurs: défaut d’utilité; d’utilisabilité; de fiabilité • Identifier la défaillance, le fonctionnement • Localiser la partie du code responsable • Corriger et estimer l’impact d’une modification • Maintenance adaptative: ajuster le logiciel pour qu’il continue à remplir son rôle compte tenu de l’évolution des environnements d’exécution… • Maintenance perfective ou d’extension: • Accroitre / améliorer les possibilités du logiciel (services; interface, performance..)
  16. CYCLE DE VIE D’UN LOGICIEL Etude de faisabilité Analyse des besoins Spécifications Conception Implémentation Validation
  17. Analyse des besoins Conception Codage Tests Validation Maintenance Spécifications Modèle DE développement D’UN LOGICIEL Modèle en cascade
  18. Modèle DE développement D’UN LOGICIEL Modèle en cascade • Description:  Linéaire ou séquentiel  Découpage en phase successives dans le temps  A chaque phase correspond une activité précise produisant des livrables  On ne passe à l’étape suivante que si les résultats de l’étape précédente sont jugés satisfaisants  Les entrées de chaque étape sont les sorties de l’étape qui lui précède  Chaque phase ne peut être remise en cause que par l’étape qui précède  La phase de spécification est critique
  19. Modèle DE développement D’UN LOGICIEL Modèle en cascade • Avantages:  Simple  Logique  Bien adapté pour des petits systèmes  Contrôle facile  Facilité de planification des étapes et délais  Accent sur la documentation et la structure  Idéal pour les petits projets logiciels stables
  20. Modèle DE développement D’UN LOGICIEL Modèle en cascade • Inconvénients:  Mal adapté à des systèmes complexes (processus de développement rarement séquentiel)  Les tests s’appliquent à l’application globale (pas de validation de besoins)  Difficultés de définir les besoins dès le début du projet.  Délais assez long pour voir quelques choses.
  21. Modèle DE développement D’UN LOGICIEL Modèle en V Expression des besoins Spécifications Conception Générale Conception détaillée Implémentation Tests unitaires Tests Intégration et tests d’intégration Tests de validation Installation & tests système
  22. Modèle DE développement D’UN LOGICIEL Modèle en V • Description:  La première branche correspond à un modèle en cascade  La seconde branche correspond à tests effectifs  Chaque étape est accompagnée d’un test  Enchainement successive des phases  Relations logiques entre les phases plus éloignées  Le début du processus conditionne ses dernières étapes  L’intégration est réalisée jusqu’à l’obtention du système final.
  23. Modèle DE développement D’UN LOGICIEL Modèle en V • Avantages:  Stricte structure en V permet d’espérer un livrable final parfait  Facile de prévoir les tests à réaliser  Bien adapté au partage des tâches entre clients et prestataires, et définissant parfaitement les rôles du partenariat,  le cycle recommence en proposant un produit de plus en plus complet.  Largement utilisé en informatique  Idéal quand les besoins sont bien connus, quand l’analyse et la conception sont claires.
  24. Modèle DE développement D’UN LOGICIEL Modèle en V • Inconvénients:  N’envisage pas que les spécifications initiales puissent être modifiées après leurs validations.  Difficile de l’appliquer à des projets complexes ou trop techniques ou à des projets qui risquent d’évoluer.
  25. Modèle DE développement D’UN LOGICIEL Modèle en Spirale des alternatives des contraintes /validation
  26. Modèle DE développement D’UN LOGICIEL Modèle en spirale • Description:  Un cycle de la spirale commence par l’élaboration d’objectifs tels que la performance, la fonctionnalité… on énumère ensuite les différentes manières de parvenir à ces objectifs ainsi que les contraintes.  On évalue ensuite chaque alternative en fonction de l’objectif  L’étape suivante consiste à évaluer les risques pour chaque activité, comme l’analyse détaillée, le prototypage, la simulation etc…
  27. Modèle DE développement D’UN LOGICIEL Modèle en spirale • Description:  Après avoir évalué le risque, on choisit un modèle de développement pour le système. • Si les risques concernent l’interface utilisateur modèle prototypage évolutif • Si les risques concernent l’intégration des sous systèmes modèle en cascade  La situation est ensuite réévaluée pour déterminer si un développement supplémentaire est nécessaire Le modèle de la spirale englobe tous les autres modèles
  28. Modèle DE développement D’UN LOGICIEL Modèle en spirale • Description:  Chaque spire confirme et affine les spires précédentes en mettant des activités de même nature successivement.  L’analyse ou la conception ne sont plus effectuées dans une seul phase ou étape mais sont conduites en tant qu’activités qui se déroulent sur de multiples phases.  A chaque étape, après avoir défini les objectifs et les alternatives, celles-ci sont évaluées par différentes techniques (prototypage, simulation,..;)  Le nombre de cycles est variable selon que le développement est classique ou incrémental
  29. Modèle DE développement D’UN LOGICIEL Modèle en Spirale • Avantages:  Ce modèle met l’accent sur l’analyse des risques (exigences technologiques, réutilisation des composants, calendrier, budgets irréalistes, défaillance du personnel…)  Modèle souple et adaptatif  Le prototype est évalué par le client  Estimation des coûts faciles (grâce à la construction des prototypes  Permet de développer l’expertise du client sur un nouveau système  Utilisé pour des projets dont les enjeux (risques) sont importants.
  30. Modèle DE développement D’UN LOGICIEL Modèle en Spirale • Inconvénients:  Fonctionne le mieux uniquement pour les grands projets  Besoins de compétences ressources  Difficile de travailler sur un protocole pré définie  Evaluation des risques génère une augmentation dans les coûts
  31. Modèle DE développement D’UN LOGICIEL Modèle par prototypage Spécification schématique Evaluation du prototype Acceptation du logiciel Utilisation du logiciel Livraison du logiciel Logiciel adéquat Réalisation du prototype ouinon
  32. Modèle DE développement D’UN LOGICIEL Modèle par prototypage • Description:  Il s’agit d’écrire une première spécification et de réaliser un sous-ensemble du produit logiciel final,  Cet ensemble est ensuite raffiné incrémentalement et évalué jusqu’à obtenir le produit final. • Deux types de prototypage: • Jetable: squelette du logiciel qui n’est crée que dans un but et dans une phase particulière de développement • Evolutif: conservé tout au long de développement, Il est amélioré et complété pour obtenir le logiciel final.
  33. Modèle DE développement D’UN LOGICIEL Modèle itératif Expression des besoins Spécifications Validation Développement Evaluation Déploiement
  34. Modèle DE développement D’UN LOGICIEL Modèle itératif • Description: Tout commence par l’expression de besoin : le client explique ce qu’il veut, tout en sachant que ces besoins peuvent être modifiés par la suite du processus. Ensuite, on se lance dans le processus itératif en lui-même avec la rédaction des spécifications qui est suivie par le développement, puis la validation (c’est à dire les tests) et enfin une évaluation du travail qui servira d’information de départ pour le cycle suivant en dressant le bilan des difficultés rencontrées et des fonctionnalités abandonnées pendant le cycle. A l’issue de la validation on passe aussi au déploiement : les livrables (il peut s’agir d »une version du site ou logiciel, ou même d’une documentation) qui ont été validés sont déployés, c’est à dire mis à disposition.
  35. Modèle DE développement D’UN LOGICIEL Modèle itératif • Avantages:  Le plus modèle le plus souple  chaque itération permet de s’adapter à ce qui a été appris dans les itérations précédentes et le projet fini peut varier du besoin qui a été exprimé à l’origine.  Comme dans le cycle en spirale, la mise à disposition de livrables à chaque cycle permet un apprentissage de l’utilisateur final en douceur.
  36. Modèle DE développement D’UN LOGICIEL Modèle itératif • Inconvénients:  La confiance qui amène bien souvent à négliger les test d’intégration.  On peut livrer une nouvelle fonctionnalité sans se rendre compte qu’on a modifié une chose qui fonctionnait dans les cycles précédents.
  37. Problématique générale
  38. Les méthodesLes outilsLes modèles dirigées par les données • Jackson (1975) Fonctionnelles • Analyse structurée (SA-SD) • SADT Systémique • MERISE Orientées objets • OMT • UML informels (formatés) • Dictionnaire de données • Table de décisions • Table états-transitions graphiques ou semi formels • DFD • Diagramme de structure • Diagramme Entité – relation • États d’états transitions • Pétri Iconiques Analogiques Analytiques Conceptuels • Structurels • Comportementaux Typologie des modèles, outils et des méthodes d’analyse
  39. L’analyse structurée (SA: structured analysis) est une méthode descendante par raffinement successifs des traitements ou processus.
  40. 1 2 3 4 1.1 1.2 1.3 3.1 3.3 3.2 4.1 4.2 4.3 4.4 Diagramme de contexte Niveau 1 Niveau 2 Diagrammes de flots de données DFD
  41. Décrit les processus mis en œuvre dans le cadre du développement d’un logiciel. Il comprend généralement: – Les tâches (ou processus ou activité) – Les artefacts (ou répertoire des données) fichiers, données, … ou – Les flux de données (liens)
  42. gestion stockage Client gestion vente Commander régler facturer gestion comptabilité Envoyer copie facture Envoyer copie BL
  43. gestion stockage Client gestion commandes régler facturer gestion comptabilité Envoyer copie facture Envoyer copie BL gestion facturation envoyer Double BL Envoyer Double BC Commander
  44. Représenter le diagramme de flots de données pour calculer la formule mathématique suivante: (x+y)*(w+z) Ajouter Ajouter Multiplier Afficher la Réponse y x w z Somme 1 Somme 2
  45. Un abonné d’une médiathèque fait une demande d’emprunt d’un film spécifique. Le gestionnaire vérifie à la fois l’historique de l’emprunt de son client (s’il est à jour) et la disponibilité du film demandé. L’enregistrement de l’emprunt ne peut avoir lieu que si les deux paramètres sont validés. Une fois l’enregistrement validé, le stock le compte client sont mis à jour. Du langage naturel au langage semi formel
  46. Du langage naturel au langage semi formel client Stock film Compte client validation K7demande Enregistrer emprunt Vérifier solvabilité
  47. Du langage semi formel au langage naturel client Stock Compte client validation factureCommande Calculer facture Vérifier solvabilité Tarifs
  48. Estimation Types de projets L’effort (mois_hommes) E= a * KDSI b Temps de développement (mois) TDEV= c * KDSI d Organique < 50 KDSI E= 2,4 * KDSI 1,05 TDEV= 2,5 * KDSI 0,38 Semi-détaché < 300 KDSI E= 3,0 * KDSI 1,12 TDEV= 2,5 * KDSI 0,35 Imbriqué > 300 KDSI E= 3,6 * KDSI 1,20 TDEV= 2,5 * KDSI 0,32 Taille Equipe = E / TDEV (nombre de personnes)
Publicité