Vous êtes sur la page 1sur 28

Analyse et conception de systmes orients objet

Licence Informatique

2012-2013

Objectifs du cours
Introduction lingnierie du logiciel
Comprendre les objectifs

Modlisation avec UML(UnifiedModelingLanguage)


Comprendre les concepts cls de lapproche oriente objet. Savoir aborder un problme en se basant sur une approche oriente objet. Matriser les principaux diagrammes UML qui permettent de concevoir un systme orient objet. Cours d'UML 3

Hardware et Software
Systmes informatiques
80 % de logiciel 20 % de matriel

Depuis quelques annes, la fabrication du matriel est assure par quelques fabricants seulement
Le matriel est relativement fiable Le march est standardis

Les problmes lis linformatique sont essentiellement des problmes de Logiciel Cours d'UML 4

Le Gnie Logiciel
Terme introduit en 1968 lors de la confrence de lOTAN Garmish Dfinitions
Comme toute discipline dingnierie, le gnie logiciel est la rencontre entre la science et lindustrie(Shaw) Appliquer des connaissances scientifiques la production de programmes et de la documentation ncessaire leur dveloppement, mise en uvre et maintenance (Boehm) Ingnierie: Proposer des solution pratiques en appliquant des connaissances scientifiques pour construire des produits de qualits un cot et dans les dlais dtermins. Cours d'UML 5

Objectifs du GL
Comment faire des logiciels de qualits? Mais dabord cest quoi les critres de qualit dun logiciel? Cours d'UML 6

Qualits dun logiciel


Utilit
Adquation entre le besoin effectif de lutilisateur et les fonctionnalits offertes du logiciel Comment y parvenir?
Communication avec lutilisateur Travail avec rigueur et avec abstraction Cours d'UML 7

Qualits dun logiciel


Utilisabilit
Effectivit, efficacit et satisfaction avec laquelle les utilisateurs accomplissent des tches dans un environnement particulier Facilit dapprentissage
Comprendre ce que lon peut faire avec le logiciel et savoir le faire

Facilit dutilisation
Importance de leffort ncessaire pour interagir avec le logiciel

Comment atteindre ce but?


Analyser le mode opratoire des utilisateurs Adapter lergonomie du logiciel aux utilisateurs. Cours d'UML 8

Qualits dun logiciel


Fiabilit
Justesse, conformit
Le logiciel est conforme sa spcification, les rsultats sont ceux escompts

Robustesse, sret
Le logiciel fonctionne convenablement en toutes circonstances, rien de catastrophique ne peut survenir mme en dehors des conditions dutilisations prvues.

Solutions
Utiliser des mthodes formelles, langage de programmation de haut niveau Vrification et tests Cours d'UML 9

Qualits dun logiciel


Interoprabilit et couplage
Un logiciel doit pouvoir interagir en synergie avec dautres logiciels Solutions
Bases de donnes (indpendance donnes/traitements) Externaliser certaines en utilisant des middlewares Utiliser des formats standards (XML) et des protocoles de communication normaliss (Corba) Enterprise ResourcesPlanning(ERP) ou Progiciels de Gestion Intgrs(PGI) Cours d'UML 10

Qualits dun logiciel


Performance
Les logiciels doivent satisfaire aux contraintes de temps dexcution Solutions
Logiciels simples Veiller la complexit Machines plus performantes Cours d'UML 11

Qualits dun logiciel


Portabilit
Un logiciel doit pouvoir fonctionner sur plusieurs plateformes Solutions
Rendre le logiciel indpendant de son environnement dexcution Machines virtuelles Cours d'UML 12

Qualits dun logiciel


Rutilisabilit
Rutiliser du code existant Rendre le code rutilisable Solutions
Abstraction, gnricit(ex: MCD gnrique de gestion stock) Construire des logiciels partir de composants Design pattern Cours d'UML 13

Qualits dun logiciel


Facilit de maintenance
La maintenance absorbe une trs grande partie des efforts
Maintenance corrective: corriger les erreurs Maintenance adaptative: ajuster le logiciel en fonction de lvolution de son environnement Maintenance perfective: accrotre/amliorer les possibilits du logiciels Cours d'UML 14

Qualits dun logiciel


Facilit de maintenance
Objectifs
Rduire la quantit de maintenance corrective Rendre moins coteuse les autres maintenances

Solutions
Rutilisabilit Vrification, tests Structures de donnes complexes et algos simples Anticiper les changements avenir Cours d'UML 15

Quelques principes du GL
Gnralisation
regroupement dun ensemble de fonctionnalits semblables en une fonctionnalit paramtrable (gnricit, hritage)

Structuration
faon de dcomposer un logiciel (utilisation dune mthode bottom-up ou top-down)

Abstraction
mcanisme qui permet de prsenter un contexte en exprimant les lments pertinents et en omettant ceux qui ne le sont pas.

Phases de ralisation dun systme dinformation Cours d'UML

Phases de dveloppement
Le cycle de dveloppement classique comporte cinq tapes:
Analyse des besoins: Dterminer les fonctionnalits que doivent possder le logiciel Analyse: dterminer les tches et les structures qui se rptent dans le problme Conception: saccorder sur la manire dont le systme doit tre construit. Implmentation: Codage du rsultat de la conception. Test: Le systme 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 lexhaustivit.

Dlimiter les frontires du systme.


Spcifier le quoi fait par le logiciel.

tudier la faisabilit du projet


Faisabilit organisationnelle. Faisabilit technique. Faisabilit temporelle Faisabilit financire Cours d'UML 19

Analyse
Analyse du domaine: identifier les lments du domaine ainsi que les relations et interactions entre ces lments. Analyse de lexistant: dterminer les fonctions principales et rutilisables du systme existant. Analyse organisationnelle: dterminer la structure de lorganisation actuelle. Analyse technique: recenser les quipements informatiques en place. Cours d'UML 20

Conception
Dfinir larchitecture du logiciel Dfinir chaque constituant du logiciel
Informations traites Oprations effectues Rsultats fournis Contraintes respecter

Optimiser les modles Choisir un langage de programmation Cours d'UML 21

Implmentation
Cration des modules et des bases de donnes
Un module pour raliser une fonctionnalit donne Adaptation et/ ou modification des modules existants

Intgration des diffrents modules. Cours d'UML 22

Tests
Tests unitaires: permettent de vrifier que chaque module fonctionne correctement indpendamment des autres. Tests dintgration: permettent de vrifier que tous les programmes tests individuellement fonctionnent bien ensemble. Tests systmes: permettent de vrifier que le systme fonctionne correctement dans les conditions relles dutilisation.
Tests Alpha: faire tester le logiciel par le client sur le site de dveloppement Tests Bta: faire tester le logiciel par le client sur le site de production Cours d'UML 23

Comment russir un logiciel?Cours d'UML

Utiliser des mthodes


Objectifs
Spcifier et planifier les tapes de lanalyse et de la conception.

Composition:
une dmarche: explique la procdure suivre en exploitant au mieux les principes de modularit, dabstraction, de rutilisation, etc. un formalisme de reprsentation: facilite la communication, lorganisation et la vrification. des modles: facilitent les retours sur la conception et lvolution des applications. Cours d'UML 25

Des Modles plutt que du Code


Un modle est la simplification/abstraction de la ralit Nous construisons donc des modles afin de mieux comprendre les systmes que nous dveloppons Nous modlisons des systmes complexes parce que nous somme incapables de les comprendre dans leur totalit Le code ne permet pas de simplifier/abstraire la ralit Cours d'UML 26

Mthodes danalyse et de conception


Il existe de nombreuses mthodes: Mthodes fonctionnelles: hirarchie de fonction
SADT, SA-SD, etc.

Mthodes systmiques: sparation des donnes et des traitements.


Merise, EntitRelation, etc.

Mthodes objets: intgration des donnes et des traitements dans un objet unique.
OMT, OOSE, etc. Cours d'UML 27

Trop de Mthodes orientes objets


Entre 89 et 94 : le nombre de mthodes orientes objet est pass de 10 plus de 50 Toutes les mthodes avaient pourtant dnormes points communs (objets, mthode, paramtres, ) Au milieu des annes 90, G. Booch, I. Jacobson et J. Rumbaughont chacun commenc adopter les ides des autres. Les 3 auteurs ont souhait crer un langage de modlisation unifi Cours d'UML 28

Historique
Autres mthodesBooch91OMT1OOSEPartenairesBooch93OMT-2Mthode unifie 0.8UML 0.9UML 1.0UML 1.1UML 1.2UML 1.xUML 2.01999-2002Juin 1998Novembre 1997Septembre 1997Janvier
1997Juin 1996Octobre 1995Standardisation par lOMG Soumission lOMG Standardisation par lOMG Soumission lOMG Soumission lOMG Version bta OOPSLA96OOPSLA952003Cours d'UML 29

Aujourdhui
UML est le langage de modlisation orient objet le plus connu et le plus utilis au monde UML sapplique plusieurs domaines UML nest pas une mthode
RUP

Peut dutilisateurs connaissent le standard, ils ont une vision outille dUML (Vision Utilisateur)
5% forte comprhension, 45% faible comprhension, 50% aucune comprhension

UML est fortement critiqu car pas assez formel Le march UML est important et saccrot
MDA, UML2.0, IBM a rachet Rational !!! Cours d'UML 30