La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca Approche fonctionnelle : la modélisation est réalisée à partir.

Présentations similaires


Présentation au sujet: "1 Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca Approche fonctionnelle : la modélisation est réalisée à partir."— Transcription de la présentation:

1 1 Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca Approche fonctionnelle : la modélisation est réalisée à partir de fonctions que doit réaliser le système. Approche orientée objet : on identifie les objets manipulés par le système, avec leurs états et leurs comportements.

2 2 Approche objet L’idée est connue depuis 1976 Programmation orientée objet : 1980, version industrielle de SmallTalk Langages de programmation : Ada, C++, Java Les outils de POO existent, qu’en est-il de l’analyse et de la conception?

3 3 Historique Méthodes fonctionnelles et Systémiques –Années 60  90 Apparitions de méthodes objets : 90 – Booch, OMT (Rumbaugh), Objectory (Jacobson) Insuffisances –Méthodes partielles, cantonnées à des domaines distincts –« Abondance de biens nuit »

4 4 Autres méthodesBooch ’91 ObjectoryOMT-1Partenaires Booch ’93OMT-2 Standardisation OMG Soumission OMG juin 1999 Méthode Unifiée 0.8 UML 0.9 UML 1.0 UML 1.1 UML 1.2 UML 1.3 UML 2 Novembre 1997 Septembre 1997 Janvier 1997 Juin 1996 Octobre 1995 juin 1998 Soumission OMG OOPSLA ‘ 96 OOPSLA ‘ 95 Naissance d’UML

5 5 UML ? C’est: –Une notation, un langage de modélisation objet –Une description complète, évolutive, publique –Un standard, utilisé par des AGL Ce n’est pas : –Une méthodologie

6 6 Généralités sur l’approche objet Dans la vie courante on manipule des objets. Un objet possède un état et réagit selon un comportement. L’état évolue au cours du temps, en fonction du comportement Les objets échanges des messages.

7 7 Les classes Objets : Alice, Pierre, Paul; université d’Orléans, université Paris 7, université Lyon 1. Classe : regroupement d ’objets de même type. –Personne –Université L’objet est une instance de sa classe.

8 8 Les attributs ObjetClasse Pierre : Personne 25 ans Pierre Durand 40 rue ZOLA Personne Age : int Nom : string Adresse :string

9 9 Les méthodes Personne Age : int Nom, Adresse : string SePrésenter() Vieillir() ChangerNom(…) renvoie Nom Age = Age+1

10 10 Encapsulation Regroupement des attributs et des méthodes Modularité : –protège les données d ’une utilisation erronée –cache les détails des méthodes Evolutivité, fiabilité Personne Age : int Nom, Adresse : string SePrésenter() Vieillir() ChangerNom(…)

11 11 Héritage Relation entre classes –Oiseaux est un cas particulier de Animaux –Animaux généralise Oiseaux La classe fille –hérite les attributs et les comportements –peut avoir des attributs et des méthodes nouvelles –peut avoir un comportement modifié Animaux ReptilesOiseaux

12 12 Polymorphisme Tout animal peut se déplacer Il le fait différemment s’il s’agit d’un oiseau ou d’un serpent Animaux SeDeplacer() ReptilesSerpents SeDeplacer() { en volant } SeDeplacer() { en glissant }

13 13 Les diagrammes UML Diagramme Diagramme structurelDiagramme comportemental Vue statiqueVue dynamique

14 14 Les diagrammes Diagramme structurel –d’objets –de classes –de composants –de déploiement Diagramme comportemental –de cas d’utilisation –de collaboration –de séquence –d’activités –d’états-transitions

15 15 Diagramme de classes Nom de classe Attributs attr1 attr2 Opérations op 1 op 2... Exceptions ex1 ex2 attributs méthodes d’autres séparateurs peuvent être rajoutés pour mieux regrouper des attributs ou des méthodes

16 16 Attributs [ ] [:nom de type ou de classe>[= ]] Visibilité –Publique + –Privée - –Protégée # Attribut de classe ou d ’instance –sa valeur est la même pour tous les objets de la classe (ex : TVA) –on souligne la définition de l ’attribut Attribut référençant un autre objet –Par valeur –Par référence

17 17 Attributs (suite) - nbrBoissons:int =100 - produits:Ensemble # boissonPreparee:Boisson Boissons EnsembleBoisson Produits 11 boissonPreparee Par valeur : losange noir du cote du conteneur CamionChauffeur Affecter * Par référence : losange blanc du cote de la classe référençante

18 18 Attributs dérivés Rectangle longueur largeur /Surface Conception Rectangle longueur largeur Surface ( ) {Surface=longueur*largeur}

19 19 Méthodes ([nom_param:type_param[=valeur-par- defaut],…])[:type_retour] Exemple –+ChangerNom(nouveauNom : String) –+SePrésenter():String Méthode abstraite –indique une méthode non implémentée dans cette classe –Définition en Italique ou précédée de {abstrait}

20 20 Classes utilitaires « utilitaire » Maths +sin(Degré):Réel +sqrt(Réel):Réel +Pi: Réel +e: Réel On ne crée pas d ’instance de la classe Equivalent en C++ : classe ayant uniquement des mambres statiques

21 21 Classe paramétrable Paramètres formels « templates » du C++ Table générique Eléments Annuaire d ’entreprises « lie » (Entreprise) Table générique Deux notations possibles

22 22 Relations entre classes Association Composition / agrégation Utilisation ou délégation Dépendance Héritage

23 23 Associations Classe AClasse B Très semblable au modèle entité-association SociétéPersonne employeur employé SociétéPersonne < travaille pour 10..* Cardinalité : 1 0..1 N M..N * 0..1 0..* 1..*

24 24 Associations (suite) Classe 1 Classe 4 Classe 3 Classe 2 Classe 5 1 1..* 1 0..1 1 * Association n-aire 1..* * 1 instance de 3 correspond a plusieurs de 5 nom Navigabilité

25 25 Association attribué Note ElèveMatièreElèveMatière Note Résultat

26 26 Qualification AB Qualif. :A :B Réseau email Personne 0..1

27 27 La Navigation Classe AClasse B Classe AClasse B Idée : voire une association comme un canal de navigation entre objets A priori on peut aller de A à B ou de B à A Flèche : seulement la classe A « voit » la classe B –implémentation : seulement les objets de la classe A ont un pointeur vers des objets de la classe B

28 28 Contraintes sur les associations SociétéPersonne {ordonné} Classe d ’école Personne < Parents élèves < Délégués {sous-ensemble} HistoriqueFait {ajout uniquement} Les employés sont triés par leur numéro Les délégués font partie des parents On ne peut que rajouter des faits à un historique

29 29 Composition / agrégation Classe 1 Classe 2 Classe 3 Classe 4 Classe 5 O2.1 O2.2 o1 Nom Classe 3 Classe 1 Classe 2 Classe 4Classe 5 Par valeur Classe 3 Classe 1 Classe 2 Classe 4Classe 5 0..* O2.2O2.1 o1o2 O2.1 o1 O2.2 o2 Par référence Structure multivaluée o2

30 30 Héritage Animaux Classe A Mammifères ReptilesOiseaux Un peu de chaque Classe B {disjoint} Heritage contraint {disjoint} / {complet} / {incomplet} {chevauchement} Héritage simple Héritage multiple Plus délicat à gérer! certaines langages de programmation n'acceptent pas l'héritage multiple provient quelquefois d’une erreur de classification...

31 31 Diagrammes d’objets Visualisation d’instances Montrer un contexte –Influence des interactions Faciliter la compréhension –Structures récursives –Structures complexes –Illustrer, tout simplement

32 32 Diagrammes d ’objets Classe C Une instance de C On souligne le nom Attention, ne pas confondre avec « instancie » « instance de » Jean:PersonneJean:Gestion::Personne « Exception » : Erreur I/O :Voiture marque=’’Renault ’’ puissance=120 :Personne

33 33 Liens entre objets :Voiture :Passagers:Roues 4 1 Matthieu:Personne Nicolas:Personne stagiaire Lionel:Personne directeur

34 34 Et encore... :Partie :Tout Objet composite :ObjetActif Etudiant Diplômé « devient » {Si réussi exams}


Télécharger ppt "1 Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca Approche fonctionnelle : la modélisation est réalisée à partir."

Présentations similaires


Annonces Google