Your SlideShare is downloading. ×
  • Like
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Cours génie logiciel

  • 916 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
916
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
42
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Introduction Génie LogicielMr Alaya RaddaouiAU. 2012/20131 Alaya RaddaouiFaculté des sciences de Gafsa
  • 2. Méthodes d’analyseet de conception2Alaya Raddaoui
  • 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.  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.  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.  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. 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. 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. 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. 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.  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. 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. 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.  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.  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. 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. 17Les différents types delangages de programmationAlaya Raddaoui
  • 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. 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. 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. 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. 22Tests et mise au pointAlaya Raddaoui
  • 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 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. Gestion de projet25 Alaya Raddaoui
  • 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. 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. Structuration de l’équipeStructure traditionnelle d’une équipe:28 Alaya Raddaoui
  • 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.  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. Alaya Raddaoui31U.M.L. en un clin d’oeil…
  • 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. 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. 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. 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. 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. 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. Alaya Raddaoui38Syntaxe des Classes et Instances en UML 2
  • 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. 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. 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. 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. 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…