SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Analyse et conception
de systèmes orientés
objet
Licence Informatique
2012-2013
Objectifs du cours
•Introduction àl’ingénierie du logiciel
–Comprendre les objectifs
•Modélisation avec
UML(UnifiedModelingLanguage)
–Comprendre les concepts clés de l’approche
orientée objet.
–Savoir aborder un problème en se basant sur une
approche orientée objet.
–Maîtriser les principaux diagrammes UML qui
permettent de concevoir un système orienté objet.
Cours d'UML 3
Hardware et Software
•Systèmes informatiques
–80 % de logiciel
–20 % de matériel
•Depuis quelques années, la fabrication
du matériel est assurée par quelques
fabricants seulement
–Le matériel est relativement fiable
–Le marché est standardisé
•Les problèmes liés à l’informatique sont
essentiellement des problèmes de
Logiciel
Cours d'UML 4
Le Génie Logiciel
•Terme introduit en 1968 lors de la conférence de
l’OTAN à Garmish
•Définitions
–Comme toute discipline d’ingénierie, le génie logiciel
est la rencontre entre la science et l’industrie(Shaw)
–Appliquer des connaissances scientifiques à la
production de programmes et de la documentation
nécessaire à leur développement, mise en œuvre et
maintenance (Boehm)
–Ingénierie: Proposer des solution pratiques en
appliquant des connaissances scientifiques pour
construire des produits de qualités à un coût et dans les
délais déterminés.
Cours d'UML 5
Objectifs du GL
•Comment faire des logiciels de
qualités?
•Mais d’abord c’est quoi les
critères de qualité d’un logiciel?
Cours d'UML 6
Qualités d’un logiciel
•Utilité
–Adéquation entre le besoin effectif
de l’utilisateur et les fonctionnalités
offertes du logiciel
–Comment y parvenir?
•Communication avec l’utilisateur
•Travail avec rigueur et avec abstraction
Cours d'UML 7
Qualités d’un logiciel
•Utilisabilité
–«Effectivité, efficacité et satisfaction avec laquelle
les utilisateurs accomplissent des tâches dans un
environnement particulier »
–Facilité d’apprentissage
•Comprendre ce que l’on peut faire avec le logiciel et
savoir le faire
–Facilité d’utilisation
•Importance de l’effort nécessaire pour interagir avec le
logiciel
–Comment atteindre ce but?
•Analyser le mode opératoire des utilisateurs
•Adapter l’ergonomie du logiciel aux utilisateurs.
Cours d'UML 8
Qualités d’un logiciel
•Fiabilité
–Justesse, conformité
•Le logiciel est conforme à sa spécification, les résultats
sont ceux escomptés
–Robustesse, sûreté
•Le logiciel fonctionne convenablement en toutes
circonstances, rien de catastrophique ne peut survenir
même en dehors des conditions d’utilisations prévues.
–Solutions
•Utiliser des méthodes formelles, langage de
programmation de haut niveau
•Vérification et tests
Cours d'UML 9
Qualités d’un logiciel
•Interopérabilité et couplage
–Un logiciel doit pouvoir interagir en synergie avec
d’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 de
communication normalisés (Corba)
•Enterprise ResourcesPlanning(ERP) ou Progiciels de Gestion
Intégrés(PGI)
Cours d'UML 10
Qualités d’un logiciel
•Performance
–Les logiciels doivent satisfaire aux
contraintes de temps d’exécution
–Solutions
•Logiciels simples
•Veiller à la complexité
•Machines plus performantes
Cours d'UML 11
Qualités d’un logiciel
•Portabilité
–Un logiciel doit pouvoir fonctionner sur
plusieurs plateformes
–Solutions
•Rendre le logiciel indépendant de son
environnement d’exécution
•Machines virtuelles
Cours d'UML 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 de
gestion stock)
•Construire des logiciels à partir de composants
•«Design pattern»
Cours d'UML 13
Qualités d’un logiciel
•Facilité de maintenance
–La maintenance absorbe une très grande
partie des efforts
•Maintenance corrective: corriger les erreurs
•Maintenance adaptative: ajuster le logiciel en
fonction de l’évolution de son environnement
•Maintenance perfective: accroître/améliorer les
possibilités du logiciels
Cours d'UML 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 algos
simples
•Anticiper les changements avenir
Cours d'UML 15
Quelques principes du
GL
•Généralisation
–regroupement d’un ensemble de fonctionnalités
semblables en une fonctionnalité paramétrable
(généricité, héritage)
•Structuration
–façon de décomposer un logiciel (utilisation d’une
méthode bottom-up ou top-down)
•Abstraction
–mécanisme qui permet de présenter un contexte en
exprimant les éléments pertinents et en omettant ceux
qui ne le sont pas.
Phases de réalisation
d’un système
d’information
Cours d'UML
Phases de
développement
•Le cycle de développement classique
comporte cinq étapes:
–Analyse des besoins: Déterminer les
fonctionnalités que doivent posséder le logiciel
–Analyse: déterminer les tâches et les structures
qui se répètent dans le problème
–Conception: s’accorder sur la manière dont le
système doit être construit.
–Implémentation: Codage du résultat de la
conception.
–Test: Le système est-il conforme au cahier des
charges
Cours d'UML
Analyse des besoins
•Capturer les besoins des clients.
–clarifier, filtrer et organiser les besoins, ne pas
chercher 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ère
Cours d'UML 19
Analyse
•Analyse du domaine: identifier les éléments du
domaine ainsi que les relations et interactions
entre ces éléments.
•Analyse de l’existant: déterminer les fonctions
principales et réutilisables du système existant.
•Analyse organisationnelle: déterminer la
structure de l’organisation actuelle.
•Analyse technique: recenser les équipements
informatiques en place.
Cours d'UML 20
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 programmation
Cours d'UML 21
Implémentation
•Création des modules et des bases de
données
–Un module pour réaliser une fonctionnalité
donnée
–Adaptation et/ ou modification des modules
existants
•Intégration des différents modules.
Cours d'UML 22
Tests
•Tests unitaires: permettent de vérifier que
chaque module fonctionne correctement
indépendamment des autres.
•Tests d’intégration: permettent de vérifier que
tous les programmes testés individuellement
fonctionnent bien ensemble.
•Tests systèmes: permettent de vérifier que le
système fonctionne correctement dans les
conditions réelles d’utilisation.
–Tests Alpha: faire tester le logiciel par le client sur le
site de développement
–Tests Bêta: faire tester le logiciel par le client sur le
site de production
Cours d'UML 23
Comment
réussir un
logiciel?Cours
d'UML
Utiliser des méthodes
•Objectifs
–Spécifier et planifier les étapes de l’analyse et de
la conception.
•Composition:
–une démarche: explique la procédure à suivre en
exploitant au mieux les principes de modularité,
d’abstraction, de réutilisation, etc.
–un formalisme de représentation: facilite la
communication, l’organisation et la vérification.
–des modèles: facilitent les retours sur la
conception et l’évolution des applications.
Cours d'UML 25
Des Modèles plutôt que
du Code
•Un modèle est la
simplification/abstraction de la réalité
•Nous construisons donc des modèles afin
de mieux comprendre les systèmes que
nous développons
•Nous modélisons des systèmes
complexes parce que nous somme
incapables de les comprendre dans leur
totalité
•Le code ne permet pas de
simplifier/abstraire la réalité
Cours d'UML 26
Méthodes d’analyse et
de conception
•Il existe de nombreuses méthodes:
–Méthodes fonctionnelles: hiérarchie de
fonction
•SADT, SA-SD, etc.
–Méthodes systémiques: séparation des
données et des traitements.
•Merise, EntitéRelation, etc.
–Méthodes objets: intégration des
données et des traitements dans un objet
unique.
•OMT, OOSE, etc.
Cours d'UML 27
Trop de Méthodes
orientées objets
•Entre 89 et 94 : le nombre de méthodes
orientées objet est passé de 10 à plus de
50
•Toutes les méthodes avaient pourtant
d’énormes points communs (objets,
méthode, paramètres, …)
•Au milieu des années 90, G. Booch, I.
Jacobson et J. Rumbaughont chacun
commencé à adopter les idées des autres.
Les 3 auteurs ont souhaité créer un
langage de modélisation unifié
Cours d'UML 28
Historique
Autres méthodesBooch’91OMT-
1OOSEPartenairesBooch’93OMT-2Méthode unifiée
0.8UML 0.9UML 1.0UML 1.1UML 1.2UML 1.xUML
2.01999-2002Juin 1998Novembre 1997Septembre 1997Janvier
1997Juin 1996Octobre 1995Standardisation par l’OMG Soumission
àl’OMG Standardisation par l’OMG Soumission àl’OMG Soumission
àl’OMG Version bêta OOPSLA’96OOPSLA’952003Cours d'UML 29
Aujourd’hui
•UML est le langage de modélisation
orienté 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 le
standard, ils ont une vision outillée d’UML
(Vision Utilisateur)
–5% forte compréhension, 45% faible
compréhension, 50% aucune compréhension
•UML est fortement critiqué car pas assez
formel
•Le marché UML est important et s’accroît
–MDA, UML2.0, IBM a racheté Rational !!!
Cours d'UML 30

Contenu connexe

Tendances (20)

2 TUP
2 TUP2 TUP
2 TUP
 
Modeliser une application_web
Modeliser une application_webModeliser une application_web
Modeliser une application_web
 
informatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicativeinformatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicative
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
 
Les limites-de-l uml (1)
Les limites-de-l uml (1)Les limites-de-l uml (1)
Les limites-de-l uml (1)
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
CoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalCoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-Total
 
Génie Logiciels : Introduction aux architectures
Génie Logiciels : Introduction aux architecturesGénie Logiciels : Introduction aux architectures
Génie Logiciels : Introduction aux architectures
 
013 mediha cgi - sensibilisation uml
013   mediha cgi - sensibilisation uml013   mediha cgi - sensibilisation uml
013 mediha cgi - sensibilisation uml
 
Rattrapage uml
Rattrapage umlRattrapage uml
Rattrapage uml
 
Elaborer un logiciel
Elaborer un logicielElaborer un logiciel
Elaborer un logiciel
 
Ttup
TtupTtup
Ttup
 
Génie Logiciel : Conception
Génie Logiciel : ConceptionGénie Logiciel : Conception
Génie Logiciel : Conception
 
SysML (Valtech Days 2008)
SysML (Valtech Days 2008)SysML (Valtech Days 2008)
SysML (Valtech Days 2008)
 
Approche Mda
Approche MdaApproche Mda
Approche Mda
 
Seminaire Borland UML (2003)
Seminaire Borland UML (2003)Seminaire Borland UML (2003)
Seminaire Borland UML (2003)
 
CM uml-intro
CM uml-introCM uml-intro
CM uml-intro
 
Introduction à Sysml
Introduction à SysmlIntroduction à Sysml
Introduction à Sysml
 
Cycle de vie d’un logiciel
Cycle de vie d’un logicielCycle de vie d’un logiciel
Cycle de vie d’un logiciel
 
CM uml-concepts-avances
CM uml-concepts-avancesCM uml-concepts-avances
CM uml-concepts-avances
 

En vedette

En vedette (20)

Espectáculo, aves de alta costura
Espectáculo, aves de alta costuraEspectáculo, aves de alta costura
Espectáculo, aves de alta costura
 
Computacion
ComputacionComputacion
Computacion
 
De noche por_paris
De noche por_parisDe noche por_paris
De noche por_paris
 
Trabajo Practico Info
Trabajo Practico InfoTrabajo Practico Info
Trabajo Practico Info
 
Discurso [1]..
Discurso [1]..Discurso [1]..
Discurso [1]..
 
Ojo Mujer Enbroncada
Ojo Mujer EnbroncadaOjo Mujer Enbroncada
Ojo Mujer Enbroncada
 
Lfepastopole
LfepastopoleLfepastopole
Lfepastopole
 
El menosprecio
El menosprecioEl menosprecio
El menosprecio
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Metodologia
MetodologiaMetodologia
Metodologia
 
Cama
CamaCama
Cama
 
Surabhi industrial equipments
Surabhi industrial equipmentsSurabhi industrial equipments
Surabhi industrial equipments
 
Arte con una sola hoja
Arte con una sola hojaArte con una sola hoja
Arte con una sola hoja
 
Seguridad con los sistemas hidráulicos
Seguridad con los sistemas hidráulicosSeguridad con los sistemas hidráulicos
Seguridad con los sistemas hidráulicos
 
Aprender Con AlegríA!!
Aprender Con AlegríA!!Aprender Con AlegríA!!
Aprender Con AlegríA!!
 
Portafolios Electrónicos
Portafolios ElectrónicosPortafolios Electrónicos
Portafolios Electrónicos
 
Italie mamamia
Italie mamamiaItalie mamamia
Italie mamamia
 
WordPress Auto Affiche
WordPress Auto AfficheWordPress Auto Affiche
WordPress Auto Affiche
 
Património Mundial em França
Património Mundial em FrançaPatrimónio Mundial em França
Património Mundial em França
 
SesióN 2º
SesióN 2ºSesióN 2º
SesióN 2º
 

Similaire à Uml partie 1

Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMALoic Yon
 
Enrichir Ses Méthodes Avec des Processus Unifiés Agiles
Enrichir Ses Méthodes Avec des Processus Unifiés AgilesEnrichir Ses Méthodes Avec des Processus Unifiés Agiles
Enrichir Ses Méthodes Avec des Processus Unifiés AgilesRomain Couturier
 
Formation viseo modelisation_uml_avec_enterprise_architect
Formation viseo modelisation_uml_avec_enterprise_architectFormation viseo modelisation_uml_avec_enterprise_architect
Formation viseo modelisation_uml_avec_enterprise_architectMïna You
 
Génie Logiciel.pptx
Génie Logiciel.pptxGénie Logiciel.pptx
Génie Logiciel.pptxLatifaBen6
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppthbadir
 
vers une optimisation de la chaine logistique.pptx
vers une optimisation de la chaine logistique.pptxvers une optimisation de la chaine logistique.pptx
vers une optimisation de la chaine logistique.pptxMelissaMeli13
 
Modeliosoft@md day2011
Modeliosoft@md day2011Modeliosoft@md day2011
Modeliosoft@md day2011MDDAY11
 
2 relation-acteurs-projet
2 relation-acteurs-projet2 relation-acteurs-projet
2 relation-acteurs-projetbriann_guillaud
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Erradi Mohamed
 
Softfluent speig mdday2010
Softfluent speig mdday2010Softfluent speig mdday2010
Softfluent speig mdday2010MD DAY
 
introduction génie logiciel-1.ppt
introduction génie logiciel-1.pptintroduction génie logiciel-1.ppt
introduction génie logiciel-1.pptSafaeElhouicha
 
Soft fluent@md day2011
Soft fluent@md day2011Soft fluent@md day2011
Soft fluent@md day2011MDDAY11
 
srep_cours_01.pdf
srep_cours_01.pdfsrep_cours_01.pdf
srep_cours_01.pdfSamirAwad14
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logicielMohamed Diallo
 

Similaire à Uml partie 1 (20)

Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMA
 
Enrichir Ses Méthodes Avec des Processus Unifiés Agiles
Enrichir Ses Méthodes Avec des Processus Unifiés AgilesEnrichir Ses Méthodes Avec des Processus Unifiés Agiles
Enrichir Ses Méthodes Avec des Processus Unifiés Agiles
 
Formation viseo modelisation_uml_avec_enterprise_architect
Formation viseo modelisation_uml_avec_enterprise_architectFormation viseo modelisation_uml_avec_enterprise_architect
Formation viseo modelisation_uml_avec_enterprise_architect
 
Génie Logiciel.pptx
Génie Logiciel.pptxGénie Logiciel.pptx
Génie Logiciel.pptx
 
Lmo02.ppt
Lmo02.pptLmo02.ppt
Lmo02.ppt
 
Plasticitérecherche2017
Plasticitérecherche2017Plasticitérecherche2017
Plasticitérecherche2017
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
 
vers une optimisation de la chaine logistique.pptx
vers une optimisation de la chaine logistique.pptxvers une optimisation de la chaine logistique.pptx
vers une optimisation de la chaine logistique.pptx
 
Modeliosoft@md day2011
Modeliosoft@md day2011Modeliosoft@md day2011
Modeliosoft@md day2011
 
2 relation-acteurs-projet
2 relation-acteurs-projet2 relation-acteurs-projet
2 relation-acteurs-projet
 
Projet+com02.ppt
Projet+com02.pptProjet+com02.ppt
Projet+com02.ppt
 
Uml
UmlUml
Uml
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
Softfluent speig mdday2010
Softfluent speig mdday2010Softfluent speig mdday2010
Softfluent speig mdday2010
 
introduction génie logiciel-1.ppt
introduction génie logiciel-1.pptintroduction génie logiciel-1.ppt
introduction génie logiciel-1.ppt
 
Lecon 1.1
Lecon 1.1Lecon 1.1
Lecon 1.1
 
Soft fluent@md day2011
Soft fluent@md day2011Soft fluent@md day2011
Soft fluent@md day2011
 
srep_cours_01.pdf
srep_cours_01.pdfsrep_cours_01.pdf
srep_cours_01.pdf
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logiciel
 

Uml partie 1

  • 1. Analyse et conception de systèmes orientés objet Licence Informatique 2012-2013
  • 2. Objectifs du cours •Introduction àl’ingénierie du logiciel –Comprendre les objectifs •Modélisation avec UML(UnifiedModelingLanguage) –Comprendre les concepts clés de l’approche orientée objet. –Savoir aborder un problème en se basant sur une approche orientée objet. –Maîtriser les principaux diagrammes UML qui permettent de concevoir un système orienté objet. Cours d'UML 3
  • 3. Hardware et Software •Systèmes informatiques –80 % de logiciel –20 % de matériel •Depuis quelques années, la fabrication du matériel est assurée par quelques fabricants seulement –Le matériel est relativement fiable –Le marché est standardisé •Les problèmes liés à l’informatique sont essentiellement des problèmes de Logiciel Cours d'UML 4
  • 4. Le Génie Logiciel •Terme introduit en 1968 lors de la conférence de l’OTAN à Garmish •Définitions –Comme toute discipline d’ingénierie, le génie logiciel est la rencontre entre la science et l’industrie(Shaw) –Appliquer des connaissances scientifiques à la production de programmes et de la documentation nécessaire à leur développement, mise en œuvre et maintenance (Boehm) –Ingénierie: Proposer des solution pratiques en appliquant des connaissances scientifiques pour construire des produits de qualités à un coût et dans les délais déterminés. Cours d'UML 5
  • 5. Objectifs du GL •Comment faire des logiciels de qualités? •Mais d’abord c’est quoi les critères de qualité d’un logiciel? Cours d'UML 6
  • 6. Qualités d’un logiciel •Utilité –Adéquation entre le besoin effectif de l’utilisateur et les fonctionnalités offertes du logiciel –Comment y parvenir? •Communication avec l’utilisateur •Travail avec rigueur et avec abstraction Cours d'UML 7
  • 7. Qualités d’un logiciel •Utilisabilité –«Effectivité, efficacité et satisfaction avec laquelle les utilisateurs accomplissent des tâches dans un environnement particulier » –Facilité d’apprentissage •Comprendre ce que l’on peut faire avec le logiciel et savoir le faire –Facilité d’utilisation •Importance de l’effort nécessaire pour interagir avec le logiciel –Comment atteindre ce but? •Analyser le mode opératoire des utilisateurs •Adapter l’ergonomie du logiciel aux utilisateurs. Cours d'UML 8
  • 8. Qualités d’un logiciel •Fiabilité –Justesse, conformité •Le logiciel est conforme à sa spécification, les résultats sont ceux escomptés –Robustesse, sûreté •Le logiciel fonctionne convenablement en toutes circonstances, rien de catastrophique ne peut survenir même en dehors des conditions d’utilisations prévues. –Solutions •Utiliser des méthodes formelles, langage de programmation de haut niveau •Vérification et tests Cours d'UML 9
  • 9. Qualités d’un logiciel •Interopérabilité et couplage –Un logiciel doit pouvoir interagir en synergie avec d’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 de communication normalisés (Corba) •Enterprise ResourcesPlanning(ERP) ou Progiciels de Gestion Intégrés(PGI) Cours d'UML 10
  • 10. Qualités d’un logiciel •Performance –Les logiciels doivent satisfaire aux contraintes de temps d’exécution –Solutions •Logiciels simples •Veiller à la complexité •Machines plus performantes Cours d'UML 11
  • 11. Qualités d’un logiciel •Portabilité –Un logiciel doit pouvoir fonctionner sur plusieurs plateformes –Solutions •Rendre le logiciel indépendant de son environnement d’exécution •Machines virtuelles Cours d'UML 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 de gestion stock) •Construire des logiciels à partir de composants •«Design pattern» Cours d'UML 13
  • 13. Qualités d’un logiciel •Facilité de maintenance –La maintenance absorbe une très grande partie des efforts •Maintenance corrective: corriger les erreurs •Maintenance adaptative: ajuster le logiciel en fonction de l’évolution de son environnement •Maintenance perfective: accroître/améliorer les possibilités du logiciels Cours d'UML 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 algos simples •Anticiper les changements avenir Cours d'UML 15
  • 15. Quelques principes du GL •Généralisation –regroupement d’un ensemble de fonctionnalités semblables en une fonctionnalité paramétrable (généricité, héritage) •Structuration –façon de décomposer un logiciel (utilisation d’une méthode bottom-up ou top-down) •Abstraction –mécanisme qui permet de présenter un contexte en exprimant les éléments pertinents et en omettant ceux qui ne le sont pas. Phases de réalisation d’un système d’information Cours d'UML
  • 16. Phases de développement •Le cycle de développement classique comporte cinq étapes: –Analyse des besoins: Déterminer les fonctionnalités que doivent posséder le logiciel –Analyse: déterminer les tâches et les structures qui se répètent dans le problème –Conception: s’accorder sur la manière dont le système doit être construit. –Implémentation: Codage du résultat de la conception. –Test: Le système est-il conforme au cahier des charges Cours d'UML
  • 17. Analyse des besoins •Capturer les besoins des clients. –clarifier, filtrer et organiser les besoins, ne pas chercher 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ère Cours d'UML 19
  • 18. Analyse •Analyse du domaine: identifier les éléments du domaine ainsi que les relations et interactions entre ces éléments. •Analyse de l’existant: déterminer les fonctions principales et réutilisables du système existant. •Analyse organisationnelle: déterminer la structure de l’organisation actuelle. •Analyse technique: recenser les équipements informatiques en place. Cours d'UML 20
  • 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 programmation Cours d'UML 21
  • 20. Implémentation •Création des modules et des bases de données –Un module pour réaliser une fonctionnalité donnée –Adaptation et/ ou modification des modules existants •Intégration des différents modules. Cours d'UML 22
  • 21. Tests •Tests unitaires: permettent de vérifier que chaque module fonctionne correctement indépendamment des autres. •Tests d’intégration: permettent de vérifier que tous les programmes testés individuellement fonctionnent bien ensemble. •Tests systèmes: permettent de vérifier que le système fonctionne correctement dans les conditions réelles d’utilisation. –Tests Alpha: faire tester le logiciel par le client sur le site de développement –Tests Bêta: faire tester le logiciel par le client sur le site de production Cours d'UML 23
  • 23. Utiliser des méthodes •Objectifs –Spécifier et planifier les étapes de l’analyse et de la conception. •Composition: –une démarche: explique la procédure à suivre en exploitant au mieux les principes de modularité, d’abstraction, de réutilisation, etc. –un formalisme de représentation: facilite la communication, l’organisation et la vérification. –des modèles: facilitent les retours sur la conception et l’évolution des applications. Cours d'UML 25
  • 24. Des Modèles plutôt que du Code •Un modèle est la simplification/abstraction de la réalité •Nous construisons donc des modèles afin de mieux comprendre les systèmes que nous développons •Nous modélisons des systèmes complexes parce que nous somme incapables de les comprendre dans leur totalité •Le code ne permet pas de simplifier/abstraire la réalité Cours d'UML 26
  • 25. Méthodes d’analyse et de conception •Il existe de nombreuses méthodes: –Méthodes fonctionnelles: hiérarchie de fonction •SADT, SA-SD, etc. –Méthodes systémiques: séparation des données et des traitements. •Merise, EntitéRelation, etc. –Méthodes objets: intégration des données et des traitements dans un objet unique. •OMT, OOSE, etc. Cours d'UML 27
  • 26. Trop de Méthodes orientées objets •Entre 89 et 94 : le nombre de méthodes orientées objet est passé de 10 à plus de 50 •Toutes les méthodes avaient pourtant d’énormes points communs (objets, méthode, paramètres, …) •Au milieu des années 90, G. Booch, I. Jacobson et J. Rumbaughont chacun commencé à adopter les idées des autres. Les 3 auteurs ont souhaité créer un langage de modélisation unifié Cours d'UML 28
  • 27. Historique Autres méthodesBooch’91OMT- 1OOSEPartenairesBooch’93OMT-2Méthode unifiée 0.8UML 0.9UML 1.0UML 1.1UML 1.2UML 1.xUML 2.01999-2002Juin 1998Novembre 1997Septembre 1997Janvier 1997Juin 1996Octobre 1995Standardisation par l’OMG Soumission àl’OMG Standardisation par l’OMG Soumission àl’OMG Soumission àl’OMG Version bêta OOPSLA’96OOPSLA’952003Cours d'UML 29
  • 28. Aujourd’hui •UML est le langage de modélisation orienté 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 le standard, ils ont une vision outillée d’UML (Vision Utilisateur) –5% forte compréhension, 45% faible compréhension, 50% aucune compréhension •UML est fortement critiqué car pas assez formel •Le marché UML est important et s’accroît –MDA, UML2.0, IBM a racheté Rational !!! Cours d'UML 30