1 / 34

Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

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.

sarah
Download Presentation

Analyse et conception orientée objet Réalisation des transparents : M. Exbrayat, I. Todinca

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Analyse et conception orientée objetRé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. 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. 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. Naissance d’UML UML 2 Soumission OMG UML 1.3 juin 1999 UML 1.2 juin 1998 Standardisation OMG Soumission OMG UML 1.1 Novembre 1997 Septembre 1997 Soumission OMG UML 1.0 Janvier 1997 OOPSLA ‘ 96 UML 0.9 Juin 1996 Méthode Unifiée 0.8 OOPSLA ‘ 95 Octobre 1995 Booch  ’93 OMT-2 OMT-1 Objectory Partenaires Autres méthodes Booch ’91

  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. 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. 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. Objet Classe Les attributs Pierre : Personne 25 ans Pierre Durand 40 rue ZOLA Personne Age : int Nom : string Adresse :string

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

  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. 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 Reptiles Oiseaux

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

  13. Les diagrammes UML Diagramme Diagramme structurel Diagramme comportemental Vue statique Vue dynamique

  14. 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 Les diagrammes

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

  16. Attributs • [<Visibilité>]<nom d ’attribut>[:nom de type ou de classe>[=<valeur initiale>]] • 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. Attributs (suite) Par valeur : losange noir du cote du conteneur Boissons Boissons - nbrBoissons:int =100 - produits:Ensemble # boissonPreparee:Boisson Produits 1 1 boissonPreparee Ensemble Boisson Par référence : losange blanc du cote de la classe référençante Affecter * Camion Chauffeur

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

  19. Méthodes <nom_operation>([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. Classes utilitaires • On ne crée pas d ’instance de la classe • Equivalent en C++ : classe ayant uniquement des mambres statiques « utilitaire » Maths +Pi: Réel +e: Réel +sin(Degré):Réel +sqrt(Réel):Réel

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

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

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

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

  25. Association attribué Elève Matière Elève Résultat Matière Note Note

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

  27. La Navigation Classe A Classe B Classe A Classe 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. Contraintes sur les associations Société Personne • 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 {ordonné} < Parents élèves Classe d ’école Personne {sous-ensemble} < Délégués Historique Fait {ajout uniquement}

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

  30. Héritage Heritage contraint {disjoint} / {complet} / {incomplet} {chevauchement} Animaux {disjoint} Héritage simple Oiseaux Reptiles Mammifères 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... Classe A Classe B Un peu de chaque

  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. Diagrammes d ’objets Classe C Attention, ne pas confondre avec « instancie » « instance de » On souligne le nom Une instance de C Jean:Personne :Personne Jean:Gestion::Personne :Voiture « Exception » : Erreur I/O marque=’’Renault ’’ puissance=120

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

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

More Related