Introduction Génie LogicielMr Alaya RaddaouiAU. 2012/20131 Alaya RaddaouiFaculté des sciences de Gafsa
Méthodes d’analyseet de conception2Alaya Raddaoui
La modélisation en général Modèles : Définition : Un modèle est une représentation abstraite de la réalitéqui exclut ce...
 Modèles : Utilité (suite) : Permet de réduire la complexité d’un phénomène enéliminant les détails qui n’influencent p...
 Types de Modélisation : Modélisation à priori : Modéliser un système avant sa réalisation (le systèmen’existe pas enco...
 Types de Modélisation : Modélisation à posteriori : Modéliser un système après sa réalisation (lesystème existe déjà)....
Approches de modélisation pour le logiciel Approche fonctionnelle : Approche traditionnelle basée sur l’utilisation desp...
Approches de modélisation pour le logiciel Modélisation fonctionnelle : Approche descendante : La modélisation du systè...
Approches de modélisation pour le logiciel Démarche :• Recenser les fonctionnalités à implanter Résultat :•Cahier des ch...
Approches de modélisation pour le logicielPrésentation de S.A.D.T. (Structured Analysis and Design Technique) Représentat...
 Modélisation fonctionnelle : Avantages : Adéquate pour les petits logiciels et les système peucomplexes. Démarche ord...
Approches de modélisation pour le logiciel Modélisation orientée objets : Approche fondée sur les objets : Le modèle à ...
Démarche•Analyser les objets intervenant dans le système Résultat•Diagramme de classes (objets)• Ensemble des classes (o...
 Modélisation orientée objets : Avantages : Démarche naturelle et logique. Raisonnement par abstraction sur les objets...
 Objectifs : Définir la sémantique des concepts. Définir une notation pour la représentation des concepts. Définir des...
Langages de modélisation Langages de modélisation (suite): Adaptés aux systèmes à objets (OMT, Booch, UML, …). Ateliers...
17Les différents types delangages de programmationAlaya Raddaoui
18 Langages impératifs•programme = suite d’instructions (éventuellement parallèles)• exemples : C, C++, ADA, PASCAL, BASI...
19Niveaux de langages Langage machine / AssembleurLangage « intermédiaires »• exemple : C• structure de l’implantation d...
20Classification selon le code exécuté Langage interprété (ex. Perl)• code exécuté = le source du programme• chaque instr...
21Les langages orientés objet Idée de base•Toute donnée est une structure à laquelle sont rattachéesdes fonctions appelée...
22Tests et mise au pointAlaya Raddaoui
23• Principe du test- des données en entrée- un résultat attendu- une exécution du logiciel obtenu sur les données- compar...
24 Tests unitaires :•vérification du bon comportement d’une fonction, d’unmodule, par rapport à sa spécificationTests d’...
Gestion de projet25 Alaya Raddaoui
Les différentes tâches Phases préliminaires- Estimation de charge- Ecriture du PQL- Constitution de l’équipe En cours de...
Types de projetD’après Boehm, Trois types de projet :– Organiques (environnement stable, pas de contraintestemps réel)exem...
Structuration de l’équipeStructure traditionnelle d’une équipe:28 Alaya Raddaoui
Rôles des intervenants (1) Chef de projet :- mise en œuvre de la qualité- assurer le suivi du projet- coordonner les équi...
 Responsable Assurance Qualité- Mettre au point le Plan Qualité Logiciel- Définir les mesures nécessaires et leur interpr...
Alaya Raddaoui31U.M.L. en un clin d’oeil…
Alaya Raddaoui32Pourquoi UML ? UML: Version 1.1 en 1997, version 2.0 en 2005. les méthodes orientées objets sont actuelle...
Alaya Raddaoui33 Permet d’établir divers modèles du système à réaliserFournit des notations (semi-graphiques) : diagramm...
Alaya Raddaoui34Qu’est-ce que UML ? UML, Version 1.1 : 9 types de diagrammes3 vues différentes : UML Version 2.0 ajoute ...
Alaya Raddaoui35Les « cas d’utilisation » en UML 2 Un « cas dutilisation » : une fonctionnalité du systèmedéclenchée pa...
Alaya Raddaoui36Les cas d’utilisation décrivent le comportement du système, les interactionsqu’il a avec l’extérieur.Un ...
Alaya Raddaoui37Diagrammes de séquenceIls correspondent à des « diagrammes système »le système est vu comme une « boite n...
Alaya Raddaoui38Syntaxe des Classes et Instances en UML 2
Alaya Raddaoui39Les attributsDe type simple (int, boolean, …) ou primitif (Date) uniquement !Les liens avec les autres c...
Alaya Raddaoui40Syntaxe des Classes et Instances en UML 2Cardinalités dans les associations: de la forme1, 2, ou un nombr...
Alaya Raddaoui41Exemple: En guise de cahier des charges…Une station service ATTOL a plusieurs postes de distributionsoit...
Alaya Raddaoui42La station dispose de 3 citernes (une par type de carburant) avecle niveau courant de carburant,un nive...
Alaya Raddaoui43Pour utiliser un poste automatique :Un client insère sa carte bancaire et tape son codeLe système authe...
Prochain SlideShare
Chargement dans…5
×

Cours génie logiciel

1 593 vues

Publié le

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 593
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1
Actions
Partages
0
Téléchargements
69
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Cours génie logiciel

  1. 1. Introduction Génie LogicielMr Alaya RaddaouiAU. 2012/20131 Alaya RaddaouiFaculté des sciences de Gafsa
  2. 2. Méthodes d’analyseet de conception2Alaya Raddaoui
  3. 3. La modélisation en général Modèles : Définition : Un modèle est une représentation abstraite de la réalitéqui exclut certains détails du monde réel. Utilité : Reflète ce que le concepteur croit important pour lacompréhension et la prédiction du phénomène modélisé,les limites du phénomène modélisé dépendent desobjectifs du modèle.3 Alaya Raddaoui
  4. 4.  Modèles : Utilité (suite) : Permet de réduire la complexité d’un phénomène enéliminant les détails qui n’influencent pas soncomportement de manière significative. Modélisation : Définition : Processus par lequel on arrive à élaborer un modèledécrivant un système réel (ou un phénomène du monderéel).La modélisation en général4Alaya Raddaoui
  5. 5.  Types de Modélisation : Modélisation à priori : Modéliser un système avant sa réalisation (le systèmen’existe pas encore). Objectifs : Comprendre le fonctionnement du future système. Mesurer et Maîtriser sa complexité. Assurer sa cohérence. Pouvoir communiquer au sein de l’équipe de réalisation.La modélisation en général5 Alaya Raddaoui
  6. 6.  Types de Modélisation : Modélisation à posteriori : Modéliser un système après sa réalisation (lesystème existe déjà). Objectifs : Corriger les erreurs dans l’ancien système. Faire évoluer l’ancien système.La modélisation en général6 Alaya Raddaoui
  7. 7. Approches de modélisation pour le logiciel Approche fonctionnelle : Approche traditionnelle basée sur l’utilisation desprocédures et des fonctions. Les grands programmes sont décomposés en sous-programmes. Approche orientée objets : On identifie les éléments du système et on en fait desobjets. On cherche à faire collaborer ces objets pour qu’ilsaccomplissent la tâche voulue.7 Alaya Raddaoui
  8. 8. Approches de modélisation pour le logiciel Modélisation fonctionnelle : Approche descendante : La modélisation du système se base sur les fonctions, etnon pas sur les objets. On commence par déterminer la fonction globale dusystème. Puis, on décompose la fonction globale du système enplusieurs sous-fonctions jusqu’à obtenir des fonctionsélémentaires simples à programmer. Il s’agit d’une démarche descendante.8 Alaya Raddaoui
  9. 9. Approches de modélisation pour le logiciel Démarche :• Recenser les fonctionnalités à implanter Résultat :•Cahier des charges fonctionnel On distingue:•Fonctions de service : besoins des utilisateurs•Fonctions techniques : requises pour implanter lesfonctions de service Pour chaque fonction, préciser :• Son importance• Des critères de qualité Application : (language de modélisation) SADTAnalyse fonctionnelle9 Alaya Raddaoui
  10. 10. Approches de modélisation pour le logicielPrésentation de S.A.D.T. (Structured Analysis and Design Technique) Représentation sous la forme d’actigrammes :Contrôle Décomposition de la « boîte » Activité :10 Alaya Raddaoui
  11. 11.  Modélisation fonctionnelle : Avantages : Adéquate pour les petits logiciels et les système peucomplexes. Démarche ordonnée et organisée. Inconvénients : Pose des problèmes de structuration de données, car elle estorientée fonctions. Produit des logiciels non réutilisables. Produit des logiciels très difficile à les faire évoluer ou corriger.Approches de modélisation pour le logiciel11 Alaya Raddaoui
  12. 12. Approches de modélisation pour le logiciel Modélisation orientée objets : Approche fondée sur les objets : Le modèle à produire est décrit en terme d’objets etnon pas en terme de fonctions. On peut partir des objets du domaine (briques debase) et remonter vers le système global. On défini également les interactions et lescollaborations entre les objets du système. Il s’agit essentiellement d’une approche ascendante.12 Alaya Raddaoui
  13. 13. Démarche•Analyser les objets intervenant dans le système Résultat•Diagramme de classes (objets)• Ensemble des classes (objets) nécessaires• Liens entre les classes (objets)•Méthodes et éventuellement attributs des classes Applications (languages de modélisation)•OMT, BOOCH, OOSE, UMLApproches de modélisation pour le logiciel13 Alaya Raddaoui
  14. 14.  Modélisation orientée objets : Avantages : Démarche naturelle et logique. Raisonnement par abstraction sur les objets du domaine. Inconvénients : Parfois moins intuitive que l’approche fonctionnelle. Rien dans les concepts de base objets ne précisecomment modéliser la structure objet d’un système demanière pertinente.Approches de modélisation pour le logiciel14 Alaya Raddaoui
  15. 15.  Objectifs : Définir la sémantique des concepts. Définir une notation pour la représentation des concepts. Définir des règles d’utilisation des concepts et deconstruction. Langages de modélisation : Adaptés aux système procéduraux (MERISE, …). Adaptés aux systèmes temps réel (ROOM, SADT, …).Langages de modélisation15 Alaya Raddaoui
  16. 16. Langages de modélisation Langages de modélisation (suite): Adaptés aux systèmes à objets (OMT, Booch, UML, …). Ateliers de génie logiciel : Présenter des outils pour la modélisation. Le rôle de ces outils est primordial pour l’utilisabilité enpratique des langages ( exemple Rational Rose )16 Alaya Raddaoui
  17. 17. 17Les différents types delangages de programmationAlaya Raddaoui
  18. 18. 18 Langages impératifs•programme = suite d’instructions (éventuellement parallèles)• exemples : C, C++, ADA, PASCAL, BASIC, etc. Langages fonctionnels• programme = composition de fonctions• exemples : LISP, SISP, CAML, SML Langages logiques• programme = ensemble de faits et de règles d’inférence• exemples : PROLOG, MercuryTaxonomie de baseAlaya Raddaoui
  19. 19. 19Niveaux de langages Langage machine / AssembleurLangage « intermédiaires »• exemple : C• structure de l’implantation doit encore être connueLangage « évolué »•exemple : ADA, Eiffel, Perl•structure interne complètement masquéeLangage de quatrième génération (L4G)Alaya Raddaoui
  20. 20. 20Classification selon le code exécuté Langage interprété (ex. Perl)• code exécuté = le source du programme• chaque instruction est d’abord traduite puis exécutée• exécution lente, mais mise au point aisée Langage compilé (ex. C)•code exécuté = une version en langage machine duprogramme• le source est traduit une fois pour toute• exécution rapide, mais recompilation nécessaireà chaque modificationLangage semi-interprété (ex. Java)•code exécuté = traduction en un pseudo-assembleur du sourceAlaya Raddaoui
  21. 21. 21Les langages orientés objet Idée de base•Toute donnée est une structure à laquelle sont rattachéesdes fonctions appelées méthodes• Programme = ensemble de données reliées entre elles Langages concernés : tous•Perl (impératif interprété)•Objetive Caml (fonctionnel interprété)•Eiffel (impératif compilé)•Java (impératif semi-interprété)Alaya Raddaoui
  22. 22. 22Tests et mise au pointAlaya Raddaoui
  23. 23. 23• Principe du test- des données en entrée- un résultat attendu- une exécution du logiciel obtenu sur les données- comparaison du résultat obtenu avec le résultat attendu•Interprétation du test- si échec : il y a un problème- si réussite : ??La notion de testjeu de testAlaya Raddaoui
  24. 24. 24 Tests unitaires :•vérification du bon comportement d’une fonction, d’unmodule, par rapport à sa spécificationTests d’intégration :• vérification du bon fonctionnement de la collaboration entremodulesTests fonctionnels :•vérification globale d’une fonctionnalité du système décritelors de l’expression des besoinsLes niveaux de testAlaya Raddaoui
  25. 25. Gestion de projet25 Alaya Raddaoui
  26. 26. Les différentes tâches Phases préliminaires- Estimation de charge- Ecriture du PQL- Constitution de l’équipe En cours de développement- Mise en place des différentes phases (de laspécification aux tests)- Gestion des anomalies- Contrôle de la qualité- Suivi de projet26 Alaya Raddaoui
  27. 27. Types de projetD’après Boehm, Trois types de projet :– Organiques (environnement stable, pas de contraintestemps réel)exemples : compilateur, calcul scientifique– Médians (environnement instable, contraintes temps réel)exemples : automates programmables, systèmes de régulations– Imbriqués (environnement très instable, performancesen temps et précision difficiles à atteindre)27 Alaya Raddaoui
  28. 28. Structuration de l’équipeStructure traditionnelle d’une équipe:28 Alaya Raddaoui
  29. 29. Rôles des intervenants (1) Chef de projet :- mise en œuvre de la qualité- assurer le suivi du projet- coordonner les équipes- diriger les différentes phases (sauf conception détailléeet tests unitaires) Chef d’équipe :- diriger la conception détaillée et les tests unitaires- assurer l’interface entre son équipe et le chef de projet29 Alaya Raddaoui
  30. 30.  Responsable Assurance Qualité- Mettre au point le Plan Qualité Logiciel- Définir les mesures nécessaires et leur interprétation- Mener le suivi de la qualité- Indépendant du Chef de Projet Responsable Gestion de Configuration- Gérer les différentes versions, les noms, les anomalies Responsable d’Affaires- Chiffrer les évolutions envisagées- Négocier avec le clientRôles des intervenants (2)30 Alaya Raddaoui
  31. 31. Alaya Raddaoui31U.M.L. en un clin d’oeil…
  32. 32. Alaya Raddaoui32Pourquoi UML ? UML: Version 1.1 en 1997, version 2.0 en 2005. les méthodes orientées objets sont actuellement en vogueUML est bien adapté (classes, interfaces, héritage, …)Pas forcément associé à la programmation objet, peut servirdans un contexte plus large:Description des aspects statique (représentation des données)et dynamiques (comportements + évènements) Notation devenue un standard de fait Synthèse de notationsantérieures (OMT, OOA/OOD, OOSE, …) Définie et maintenue par l’OMG (http://www.omg.org) Consortium de spécification (IBM, Sun, Oracle, HP, Boeing, BEA,…) À la base de nombreux standards (CORBA, SOAP, MDA, …)
  33. 33. Alaya Raddaoui33 Permet d’établir divers modèles du système à réaliserFournit des notations (semi-graphiques) : diagrammes… Les diagrammes peuvent être enrichis par des textesUML ne fournit pas le mode d’emploi Quel usage ? Graphique => outil de communication possible avec lesclients Modèles partagés par l’équipe de développement Plusieurs modèles selon les étapes, dans la mêmenotation UML se veut Universel (limité à une notion discrète du temps)Extensible (via des « stéréotypes » et des « profiles »Couvre le développement de l’analyse à la conceptionUML = Unified Modeling Language
  34. 34. Alaya Raddaoui34Qu’est-ce que UML ? UML, Version 1.1 : 9 types de diagrammes3 vues différentes : UML Version 2.0 ajoute 4 types de diagrammes :Diagrammes de structure composite, de communication, de paquetages,de contraintes temporelles (« timing »)
  35. 35. Alaya Raddaoui35Les « cas d’utilisation » en UML 2 Un « cas dutilisation » : une fonctionnalité du systèmedéclenchée par un acteur extérieur Acteur : tiers qui joue un rôleEn interagissant avec le système :Il envoie des données / signaux au systèmeet/ou en reçoit des informationsIl est extérieur au système
  36. 36. Alaya Raddaoui36Les cas d’utilisation décrivent le comportement du système, les interactionsqu’il a avec l’extérieur.Un système ne fait pas des choses spontanément, mais en réaction à une sollicitationinitiale par un « acteur » extérieurOn doit préciser un cas d’utilisationen décrivant les flots d’événements à l’aide d’un texte ;À l’aide de diagrammes de séquences pour préciser graphiquement ces flotsIl faut prendre en compteLes cas normaux, leurs variantes éventuellesLes cas « d’erreurs »Il faudra aussi mettre en évidence les interactions entre fonctionnalités des casd’utilisation (diagrammes de séquence)Les « cas d’utilisation » en UML 2
  37. 37. Alaya Raddaoui37Diagrammes de séquenceIls correspondent à des « diagrammes système »le système est vu comme une « boite noire »Échanges de messages entre les acteurs et le systèmejamais entre acteurs (pas du ressort du système !)ni entre éléments internes au système (conception)Représentation de la chronologie des échangesPas de boucle, branchement !Un chemin principal, des alternatives,des cas d’exception, des commentaires
  38. 38. Alaya Raddaoui38Syntaxe des Classes et Instances en UML 2
  39. 39. Alaya Raddaoui39Les attributsDe type simple (int, boolean, …) ou primitif (Date) uniquement !Les liens avec les autres classes d’intérêt sont représentés par les associationsDans le modèle d’analyse, on les considère comme public (on raffinera à laconception, ainsi que les méthodes d’accès)On ne distingue pas les attributs « dérivés » des autresLes opérations:dans un premier temps, on ne considère que les opérations principales (liéesaux cas d’utilisation) on ne les rattache pas à une classe particulière, donc on ne sepréoccupe pas des méthodes à ce niveau (quels paramètres ?)Syntaxe des Classes et Instances en UML 2
  40. 40. Alaya Raddaoui40Syntaxe des Classes et Instances en UML 2Cardinalités dans les associations: de la forme1, 2, ou un nombre entier précis (pas une expression !)* : un nombre quelconque, éventuellement nulun intervalle comme 1..*, 0..1, 1..3, (pas 1..N)on donnera systématiquement les cardinalités
  41. 41. Alaya Raddaoui41Exemple: En guise de cahier des charges…Une station service ATTOL a plusieurs postes de distributionsoit automatiques (par carte bancaire) ouverts 24h/24soit manuels (utilisables seulement si la station est ouverte)Chaque poste est identifié par un numéro.Chaque poste peut délivrer 3 sortes de carburant. A chaque instant, il en délivre auplus une sorte.Chaque poste est muni de 3 compteurs la quantité de carburant serviele prix au litrele prix à payer (qui ne change pas pendant la journée)Les compteurs affichent 0 s’il n’y a pas de distribution en cours.
  42. 42. Alaya Raddaoui42La station dispose de 3 citernes (une par type de carburant) avecle niveau courant de carburant,un niveau d’alerte pour prévenir le gérant qu’elle va être videun niveau minimal qui, une fois atteint, ne permet plus de délivrer ducarburant.Les niveaux d’alerte et minimaux sont les mêmes pour toutes les citernes.Le système doit garder une trace de tous les achats effectués depuis ladernière ouverture de la station.Un opérateur ouvre la station quand il arrive et la ferme quand il partExemple: En guise de cahier des charges…
  43. 43. Alaya Raddaoui43Pour utiliser un poste automatique :Un client insère sa carte bancaire et tape son codeLe système authentifie la carte auprès du service bancaireEn cas de succès, le client choisit un type de carburant et se sert d’un certainnombre de litres.Le système enregistre l’achat, envoie un ordre de débit au service bancaire etremet à zéro les compteurs du poste. Pour utiliser un poste manuel : le client choisit son carburant et se sert. Les caractéristiques de l’achat sont envoyées à l’opérateur. Lorsque le client a payé en indiquant son numéro de pompe, le pompisteenregistre l’achat et remet à zéro les compteurs du posteExemple: En guise de cahier des charges…

×