Analyse et conceptionde systèmes orientésobjetLicence Informatique2012-2013
Objectifs du cours•Introduction àl’ingénierie du logiciel–Comprendre les objectifs•Modélisation avecUML(UnifiedModelingLan...
Hardware et Software•Systèmes informatiques–80 % de logiciel–20 % de matériel•Depuis quelques années, la fabricationdu mat...
Le Génie Logiciel•Terme introduit en 1968 lors de la conférence del’OTAN à Garmish•Définitions–Comme toute discipline d’in...
Objectifs du GL•Comment faire des logiciels dequalités?•Mais d’abord c’est quoi lescritères de qualité d’un logiciel?Cours...
Qualités d’un logiciel•Utilité–Adéquation entre le besoin effectifde l’utilisateur et les fonctionnalitésoffertes du logic...
Qualités d’un logiciel•Utilisabilité–«Effectivité, efficacité et satisfaction avec laquelleles utilisateurs accomplissent ...
Qualités d’un logiciel•Fiabilité–Justesse, conformité•Le logiciel est conforme à sa spécification, les résultatssont ceux ...
Qualités d’un logiciel•Interopérabilité et couplage–Un logiciel doit pouvoir interagir en synergie avecd’autres logiciels–...
Qualités d’un logiciel•Performance–Les logiciels doivent satisfaire auxcontraintes de temps d’exécution–Solutions•Logiciel...
Qualités d’un logiciel•Portabilité–Un logiciel doit pouvoir fonctionner surplusieurs plateformes–Solutions•Rendre le logic...
Qualités d’un logiciel•Réutilisabilité–Réutiliser du code existant–Rendre le code réutilisable–Solutions•Abstraction, géné...
Qualités d’un logiciel•Facilité de maintenance–La maintenance absorbe une très grandepartie des efforts•Maintenance correc...
Qualités d’un logiciel•Facilité de maintenance–Objectifs•Réduire la quantité de maintenance corrective•Rendre moins coûteu...
Quelques principes duGL•Généralisation–regroupement d’un ensemble de fonctionnalitéssemblables en une fonctionnalité param...
Phases dedéveloppement•Le cycle de développement classiquecomporte cinq étapes:–Analyse des besoins: Déterminer lesfonctio...
Analyse des besoins•Capturer les besoins des clients.–clarifier, filtrer et organiser les besoins, ne paschercher l’exhaus...
Analyse•Analyse du domaine: identifier les éléments dudomaine ainsi que les relations et interactionsentre ces éléments.•A...
Conception•Définir l’architecture du logiciel•Définir chaque constituant du logiciel–Informations traitées–Opérations effe...
Implémentation•Création des modules et des bases dedonnées–Un module pour réaliser une fonctionnalitédonnée–Adaptation et/...
Tests•Tests unitaires: permettent de vérifier quechaque module fonctionne correctementindépendamment des autres.•Tests d’i...
Commentréussir unlogiciel?CoursdUML
Utiliser des méthodes•Objectifs–Spécifier et planifier les étapes de l’analyse et dela conception.•Composition:–une démarc...
Des Modèles plutôt quedu Code•Un modèle est lasimplification/abstraction de la réalité•Nous construisons donc des modèles ...
Méthodes d’analyse etde conception•Il existe de nombreuses méthodes:–Méthodes fonctionnelles: hiérarchie defonction•SADT, ...
Trop de Méthodesorientées objets•Entre 89 et 94 : le nombre de méthodesorientées objet est passé de 10 à plus de50•Toutes ...
HistoriqueAutres méthodesBooch’91OMT-1OOSEPartenairesBooch’93OMT-2Méthode unifiée0.8UML 0.9UML 1.0UML 1.1UML 1.2UML 1.xUML...
Aujourd’hui•UML est le langage de modélisationorienté objet le plus connu et le plus utiliséau monde•UML s’applique à plus...
Prochain SlideShare
Chargement dans…5
×

Uml partie 1

307 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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

Aucune remarque pour cette diapositive

Uml partie 1

  1. 1. Analyse et conceptionde systèmes orientésobjetLicence Informatique2012-2013
  2. 2. Objectifs du cours•Introduction àl’ingénierie du logiciel–Comprendre les objectifs•Modélisation avecUML(UnifiedModelingLanguage)–Comprendre les concepts clés de l’approcheorientée objet.–Savoir aborder un problème en se basant sur uneapproche orientée objet.–Maîtriser les principaux diagrammes UML quipermettent de concevoir un système orienté objet.Cours dUML 3
  3. 3. Hardware et Software•Systèmes informatiques–80 % de logiciel–20 % de matériel•Depuis quelques années, la fabricationdu matériel est assurée par quelquesfabricants seulement–Le matériel est relativement fiable–Le marché est standardisé•Les problèmes liés à l’informatique sontessentiellement des problèmes deLogicielCours dUML 4
  4. 4. Le Génie Logiciel•Terme introduit en 1968 lors de la conférence del’OTAN à Garmish•Définitions–Comme toute discipline d’ingénierie, le génie logicielest la rencontre entre la science et l’industrie(Shaw)–Appliquer des connaissances scientifiques à laproduction de programmes et de la documentationnécessaire à leur développement, mise en œuvre etmaintenance (Boehm)–Ingénierie: Proposer des solution pratiques enappliquant des connaissances scientifiques pourconstruire des produits de qualités à un coût et dans lesdélais déterminés.Cours dUML 5
  5. 5. Objectifs du GL•Comment faire des logiciels dequalités?•Mais d’abord c’est quoi lescritères de qualité d’un logiciel?Cours dUML 6
  6. 6. Qualités d’un logiciel•Utilité–Adéquation entre le besoin effectifde l’utilisateur et les fonctionnalitésoffertes du logiciel–Comment y parvenir?•Communication avec l’utilisateur•Travail avec rigueur et avec abstractionCours dUML 7
  7. 7. Qualités d’un logiciel•Utilisabilité–«Effectivité, efficacité et satisfaction avec laquelleles utilisateurs accomplissent des tâches dans unenvironnement particulier »–Facilité d’apprentissage•Comprendre ce que l’on peut faire avec le logiciel etsavoir le faire–Facilité d’utilisation•Importance de l’effort nécessaire pour interagir avec lelogiciel–Comment atteindre ce but?•Analyser le mode opératoire des utilisateurs•Adapter l’ergonomie du logiciel aux utilisateurs.Cours dUML 8
  8. 8. Qualités d’un logiciel•Fiabilité–Justesse, conformité•Le logiciel est conforme à sa spécification, les résultatssont ceux escomptés–Robustesse, sûreté•Le logiciel fonctionne convenablement en toutescirconstances, rien de catastrophique ne peut survenirmême en dehors des conditions d’utilisations prévues.–Solutions•Utiliser des méthodes formelles, langage deprogrammation de haut niveau•Vérification et testsCours dUML 9
  9. 9. Qualités d’un logiciel•Interopérabilité et couplage–Un logiciel doit pouvoir interagir en synergie avecd’autres logiciels–Solutions•Bases de données (indépendance données/traitements)•Externaliser certaines en utilisant des middlewares•Utiliser des formats standards (XML) et des protocoles decommunication normalisés (Corba)•Enterprise ResourcesPlanning(ERP) ou Progiciels de GestionIntégrés(PGI)Cours dUML 10
  10. 10. Qualités d’un logiciel•Performance–Les logiciels doivent satisfaire auxcontraintes de temps d’exécution–Solutions•Logiciels simples•Veiller à la complexité•Machines plus performantesCours dUML 11
  11. 11. Qualités d’un logiciel•Portabilité–Un logiciel doit pouvoir fonctionner surplusieurs plateformes–Solutions•Rendre le logiciel indépendant de sonenvironnement d’exécution•Machines virtuellesCours dUML 12
  12. 12. Qualités d’un logiciel•Réutilisabilité–Réutiliser du code existant–Rendre le code réutilisable–Solutions•Abstraction, généricité(ex: MCD générique degestion stock)•Construire des logiciels à partir de composants•«Design pattern»Cours dUML 13
  13. 13. Qualités d’un logiciel•Facilité de maintenance–La maintenance absorbe une très grandepartie des efforts•Maintenance corrective: corriger les erreurs•Maintenance adaptative: ajuster le logiciel enfonction de l’évolution de son environnement•Maintenance perfective: accroître/améliorer lespossibilités du logicielsCours dUML 14
  14. 14. Qualités d’un logiciel•Facilité de maintenance–Objectifs•Réduire la quantité de maintenance corrective•Rendre moins coûteuse les autres maintenances–Solutions•Réutilisabilité•Vérification, tests•Structures de données complexes et algossimples•Anticiper les changements avenirCours dUML 15
  15. 15. Quelques principes duGL•Généralisation–regroupement d’un ensemble de fonctionnalitéssemblables en une fonctionnalité paramétrable(généricité, héritage)•Structuration–façon de décomposer un logiciel (utilisation d’uneméthode bottom-up ou top-down)•Abstraction–mécanisme qui permet de présenter un contexte enexprimant les éléments pertinents et en omettant ceuxqui ne le sont pas.Phases de réalisationd’un systèmed’informationCours dUML
  16. 16. Phases dedéveloppement•Le cycle de développement classiquecomporte cinq étapes:–Analyse des besoins: Déterminer lesfonctionnalités que doivent posséder le logiciel–Analyse: déterminer les tâches et les structuresqui se répètent dans le problème–Conception: s’accorder sur la manière dont lesystème doit être construit.–Implémentation: Codage du résultat de laconception.–Test: Le système est-il conforme au cahier deschargesCours dUML
  17. 17. Analyse des besoins•Capturer les besoins des clients.–clarifier, filtrer et organiser les besoins, ne paschercher l’exhaustivité.•Délimiter les frontières du système.–Spécifier le «quoi» fait par le logiciel.•Étudier la faisabilité du projet–Faisabilité organisationnelle.–Faisabilité technique.–Faisabilité temporelle–Faisabilité financièreCours dUML 19
  18. 18. Analyse•Analyse du domaine: identifier les éléments dudomaine ainsi que les relations et interactionsentre ces éléments.•Analyse de l’existant: déterminer les fonctionsprincipales et réutilisables du système existant.•Analyse organisationnelle: déterminer lastructure de l’organisation actuelle.•Analyse technique: recenser les équipementsinformatiques en place.Cours dUML 20
  19. 19. Conception•Définir l’architecture du logiciel•Définir chaque constituant du logiciel–Informations traitées–Opérations effectuées–Résultats fournis–Contraintes à respecter•Optimiser les modèles•Choisir un langage de programmationCours dUML 21
  20. 20. Implémentation•Création des modules et des bases dedonnées–Un module pour réaliser une fonctionnalitédonnée–Adaptation et/ ou modification des modulesexistants•Intégration des différents modules.Cours dUML 22
  21. 21. Tests•Tests unitaires: permettent de vérifier quechaque module fonctionne correctementindépendamment des autres.•Tests d’intégration: permettent de vérifier quetous les programmes testés individuellementfonctionnent bien ensemble.•Tests systèmes: permettent de vérifier que lesystème fonctionne correctement dans lesconditions réelles d’utilisation.–Tests Alpha: faire tester le logiciel par le client sur lesite de développement–Tests Bêta: faire tester le logiciel par le client sur lesite de productionCours dUML 23
  22. 22. Commentréussir unlogiciel?CoursdUML
  23. 23. Utiliser des méthodes•Objectifs–Spécifier et planifier les étapes de l’analyse et dela conception.•Composition:–une démarche: explique la procédure à suivre enexploitant au mieux les principes de modularité,d’abstraction, de réutilisation, etc.–un formalisme de représentation: facilite lacommunication, l’organisation et la vérification.–des modèles: facilitent les retours sur laconception et l’évolution des applications.Cours dUML 25
  24. 24. Des Modèles plutôt quedu Code•Un modèle est lasimplification/abstraction de la réalité•Nous construisons donc des modèles afinde mieux comprendre les systèmes quenous développons•Nous modélisons des systèmescomplexes parce que nous sommeincapables de les comprendre dans leurtotalité•Le code ne permet pas desimplifier/abstraire la réalitéCours dUML 26
  25. 25. Méthodes d’analyse etde conception•Il existe de nombreuses méthodes:–Méthodes fonctionnelles: hiérarchie defonction•SADT, SA-SD, etc.–Méthodes systémiques: séparation desdonnées et des traitements.•Merise, EntitéRelation, etc.–Méthodes objets: intégration desdonnées et des traitements dans un objetunique.•OMT, OOSE, etc.Cours dUML 27
  26. 26. Trop de Méthodesorientées objets•Entre 89 et 94 : le nombre de méthodesorientées objet est passé de 10 à plus de50•Toutes les méthodes avaient pourtantd’énormes points communs (objets,méthode, paramètres, …)•Au milieu des années 90, G. Booch, I.Jacobson et J. Rumbaughont chacuncommencé à adopter les idées des autres.Les 3 auteurs ont souhaité créer unlangage de modélisation unifiéCours dUML 28
  27. 27. HistoriqueAutres méthodesBooch’91OMT-1OOSEPartenairesBooch’93OMT-2Méthode unifiée0.8UML 0.9UML 1.0UML 1.1UML 1.2UML 1.xUML2.01999-2002Juin 1998Novembre 1997Septembre 1997Janvier1997Juin 1996Octobre 1995Standardisation par l’OMG Soumissionàl’OMG Standardisation par l’OMG Soumission àl’OMG Soumissionàl’OMG Version bêta OOPSLA’96OOPSLA’952003Cours dUML 29
  28. 28. Aujourd’hui•UML est le langage de modélisationorienté objet le plus connu et le plus utiliséau monde•UML s’applique à plusieurs domaines•UML n’est pas une méthode–RUP•Peut d’utilisateurs connaissent lestandard, ils ont une vision outillée d’UML(Vision Utilisateur)–5% forte compréhension, 45% faiblecompréhension, 50% aucune compréhension•UML est fortement critiqué car pas assezformel•Le marché UML est important et s’accroît–MDA, UML2.0, IBM a racheté Rational !!!Cours dUML 30

×