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.

Slides:



Advertisements
Présentations similaires
Mathilde VINCENT - Olivier JOURDAN Paris - le 7/2/2012
Advertisements

Génie Logiciel 2 Julie Dugdale
Unified Modeling Language
Ingénierie des Modèles
Autour des objets et du formalisme UML
T. Libourel Autour des objets T. Libourel
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Laboratoire Informatique Image Interaction
Langages objet Définitions Traduction des méthodes en C++
M.E.D.A.L. Module dEnseignement à Distance pour lArchitecture Logicielle Alain VAILLY Diapositive n° 1 IUP MIAGE - Université de NANTES IUP-MIAGE 3ème.
UML - Présentation.
Les objets: représentation
POO.
Programmation Orientée Objet (POO)
Introduction à UML NFE108 CNAM – LILLE Madame DELECLUSE
UML (Unified Modeling Langage)
Introduction à la POO: Les classes vs les objets
FSAB1402: Informatique 2 Techniques de Programmation Orientée Objet
UML : GENERALITES Rappel Diagrammes Niveaux de visions
Principes de la technologie orientée objets
Analyse et Conception orientée objet
Modélisation E/R des Données
Modélisation des bases de données avec UML
IFT1025, Programmation 2 Jian-Yun Nie
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
L’orienté objet: hier, aujourd’hui et demain
Static modeling, Thu G. Falquet, L. Nerima.
Vers la conception objet
Modèle, Méthode et Conception
Langage Oriente Objet Cours 2.
Modélisation orientée objet UML
Analyse et conception orientée objet
Structures de données IFT-10541
Introduction au paradigme orienté-objet (suite)
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Portée, arrimages et intervenants Évolution des méthodes
UML (2) Modèle dynamique le diagramme de séquence
Sensibilisation a la modelisation
UML - Présentation.
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.
Introduction au langage de modélisation Unifié UML
UML : un peu d’histoire H. Lounis.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Nouvelles Technologies Internet & Mobile
2 Processus de conception de BD
Les classes Introduction aux Langages Orientés Objets
La programmation par objets Principes et concepts Etude de Smalltalk.
Unified Modeling Language
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Modélisation et Construction d’un Système d’Information
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
2 Tracks Unified Process
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
(UML) Unified Modeling Language
Nouvelles Technologies Internet & Mobile
La programmation par objets
UML : DIAGRAMME D’OBJETS
UML : DIAGRAMME DE CLASSES
Introduction à la Programmation Orientée Objet
UML support à la COO 2ème année IUT Calais-Boulogne Bénédicte Talon
TP D’UML Groupe N° 3.
Diagramme de classe Classe Objet Associations Diagramme de classe.
Conception Orienté Objet Avancée UML et le Processus unifié Hela LTIFI 1.
Transcription de la présentation:

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 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 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 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 Les attributs ObjetClasse 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 SePrésenter() Vieillir() ChangerNom(…) renvoie Nom 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 ReptilesOiseaux

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 Les diagrammes UML Diagramme Diagramme structurelDiagramme comportemental Vue statiqueVue dynamique

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 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 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 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 Attributs dérivés Rectangle longueur largeur /Surface Conception Rectangle longueur largeur Surface ( ) {Surface=longueur*largeur}

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 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 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 Relations entre classes Association Composition / agrégation Utilisation ou délégation Dépendance Héritage

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é : N M..N * * 1..*

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

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

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

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 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 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 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 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 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 Liens entre objets :Voiture :Passagers:Roues 4 1 Matthieu:Personne Nicolas:Personne stagiaire Lionel:Personne directeur

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