64
CONCEPTION ORIENTÉE OBJET Présentation Amosse Edouard Inspiré du cours de F. Mallet

CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

CONCEPTION ORIENTÉE OBJETPrésentationAmosse EdouardInspiré du cours de F. Mallet

Page 2: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

ORGANISATION DU COURS

1. Volume Horaire et EDT http://unice.fr/faculte-des-sciences/departements/informatique/contenus-riches/documents-telechargeables/documentsl3i/calendrier-des-cours-tp-et-td-de-projet-informatique-et-de-coo

2. Evaluation 1. Examen théorique : 1h30 : 50%

2. Travaux Pratiques (en TD) : 50%

Page 3: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

PLAN DU COURSvIntroduction aux méthodologies de conception

vIntroduction à UML

vObjets et Classes

vLes diagrammes§ Les cas d’utilisation§ Les classes et leurs instances§ Les machines à états (et transitions)§ Les activités§ Les interactions§ Le mécanisme de profilage

Page 4: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

OBJECTIFSvMontrer les forces de la COO

vDécrire l’histoire de la POO

vCommenter l’utilisation actuelle de la POO

Page 5: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

CYCLE DE VIE D’UN LOGICIEL

Maintenance et Evolution

Validation

Tests et vérification

Implémentation

Conception

Analyse des besoins

Spécification

Expression des besoins

Page 6: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

CYCLE DE VIE D’UN LOGICIELvExpression des besoinsØDéfinition d’un cahier des charges

vSpécificationØCe que le système doit être et comment il peut être utilisé

vAnalyseØÉléments intervenant dans le SI, leurs structures et relationsØA définir sur 3 axes

ØSavoir-faire de l’objet è axe fonctionnelØStructure de l’objet è axe statiqueØCycle de vie de l’objet è axe dynamique

vConceptionØApport de solutions techniques: architecture, performance et optimisationØDéfinition des structures et des algorithmes

Page 7: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

CYCLE DE VIE D’UN LOGICIELvImplémentation vRéalisation et programmation

vTests et VérificationvContrôles de qualité

vVérification de la correspondance avec le cahier des charges

vMaintenance et Evolution vMaintenance corrective : traiter les erreurs (bugs)vMaintenance évolutive : intégration de nouveaux changements

Page 8: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

CONCEPTIONvProcessus créatif qui consiste à représenter les diverses fonctions du systèmepermettant d’obtenir rapidement un ou plusieurs programmes réalisant ses fonctions.

vUne « bonne » conception se définit en termes de la satisfaction des besoins et des spécifications.

vUne bonne Conception participe largement à la production d'un logiciel qui répondaux facteurs de qualité.

vElle se base sur la Modularité.

Page 9: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

CONCEPTION – CRITÈRES DE QUALITÉvCohésion : Se définit comme étant le caractère de ce qui forme un tout, dont les parties sont difficilement séparables.

vCouplage : Relatif à la cohésion. Il exprime le degré d’interconnexion des differents composants d’un système.

vCompréhensibilité : La compréhensibilité d’un module dépend de : - Sa cohésion- L’appelation : Utilisation de noms significatifs- La documentation : Lien entre le monde réel et le composant- La complexité

vAdaptabilité : Dépend du couplage et de la documentation. Un logiciel adaptable doit avoir un haut degré de lisibilité.

Page 10: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MÉTHODES DE CONCEPTIONOn distingue principalement de trois de méthodes de conception:

vMéthodes fonctionnelles

vMéthodes systémiques

vMéthodes orientées objets

Page 11: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MÉTHODES FONCTIONNELLESLes méthodes finctionnelles ou cartésiennes consistent à décomposer hiérarchiquementune application en un ensemble de sous applications.

Ces méthodes utilisent les raffinements successifs pour produire des spécificationsdon’t l’essentiel est sous forme de notation graphique en diagramme de flots de données.

Page 12: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MÉTHODES FONCTIONNELLESPoints forts

vSimplicité du processus de conception

vCapacité à répondre rapidement aux besoins ponctuels des utilisateurs

Points faibles:

vFixer les limites pour les décompositions hiérarchiques

vRédondance (éventuelle) des données

Page 13: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MÉTHODES SYSTÉMIQUESLes méthodes systéliques sont influencés par les systèmes de Gestion de bases de données en proposant une double démarche de modélisation:

vLa modélisation des données

vLa modélisation des traitements

vPoints forts : ØApproche globale prenant en compte la modélisation des données et des traitementsØNiveaux d’abstraction dans le processus de conception ØBonne adaptation à la modélisation des données et à la conceptiond es BDs

vPoints faiblesØDouble démarche de conception : données et traitementsØPas de fusion possible des deux aspects (données et traitements)

Page 14: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MÉTHODES FONCTIONNELLES ET SYSTÉMIQUESLes méthodes foncionnelles et systémiques sont de type descendant (approache Top-Down).

Inconvénients

Réutilisabilité : Modules non généraux mais adaptés aux sous problèmes pour lesquels ils ont été concus

Extensibilité: L’architecture du logiciel est fondée sur les traitements qui sont moinsstables que les données; par conséquent cette approche est inadaptée à la conception de gros logiciel.

Page 15: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MÉTHODES ORIENTÉES OBJETSvDans une approche Orientée Objet (OO), le logiciel est considéré comme unecollection d’objets dissociés définis par des propriétés.

vUne propriété est soit un attribut de l’objet ou une opération sur l’objet.

vUn objet comprend donc à la fois une structure de données et une collection d’opérations (son comportement).

vContrairement aux méthodes fonctionnelles et systémiques, les méthodes orientées objets sont ascendantes.

Page 16: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MÉTHODES ORIENTÉES OBJETSLa technologie Orientée Objet

vGuide la conception par vUn ensemble de concepts

vAbstraction, modularité, Encapsulation, Polymorphisme

vDes langages et outils qui supportent ces concepts vClassification vs. prototype vHéritage (Simple, Multiple)vTypage (Fort, Faible)

vAvantagesvReflète plus finement les objets du monde réel

vDu code : facile à maintenirvPlus stable: Isolation des changementsvRéutilisation des composantesvFaciliter le prototypage

Page 17: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MÉTHODES ORIENTÉES OBJETS – EXEMPLES

ObjetsQ Personnes

§ Etudiant, enseignant,principal, secrétaire

Q Diplôme§ Année,matière, parcours

Q Notes§ Coefficients

FonctionsQ CalculerlamoyenneQ Calculerles taux

d’encadrementQ Calculerlenombrede

redoublantsQ Calculerletauxde réussiteau

baccalauréat

Système de gestion d’un lycée

Page 18: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

OBJECTIFS DES TECHNOLOGIES À OBJETSQUtiliser lelangagedu domaine

§ Modèleetvocabulairemétier

QConstruiredesmodèlesfaciles à:§ Etendre,modifier,valider,vérifier

QFaciliter l’implantation§ Générationfacilitéeversleslangagesà objets

QNécessiteuneméthodeetdes outils§ RationalUnifiedProcess,Agile,…(cf.semestre 2)§ UMLestseulementun langage

Page 19: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

LES OBJETS…Définitions : ­ Entité cohérente rassemblant des données et du code travaillant sur ces données­ Structure de données valuées qui répond à un ensemble de messages

Caractérisé par : ­ son comportement : que peut-on faire avec cet objet?­ Méthodes

­ son état : comment réagit l’objet quand on applique ces méthodes?­ Attributs (Champs)

­ son identité : comment distinguer les objets qui ont le même état et le même comportement?­ Identifiant

A les mêmes réactions et la même modularité que le monde réel­ L’objet informatique est une projection de l’objet du monde réel

Page 20: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

UN MODÈLEQUne simplification de la réalité

Page 21: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

POURQUOI UN MODÈLE?QQuatreobjectifsàla modélisation

§ Aideràvisualiserle système§ Spécifierlastructureetle comportement§ Servirdeplanpourlaconstructioneffective§ Permettrededocumenterles choix

QQuatre avantages§ Abstraction:diviserpour régner§ Compréhension:misesaupointavecle client§ L’énergiedéployéepourmodéliserrévèleles difficultés§ Leserreurssurlesmodèlescoûtentbienmoins cher

Page 22: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

IMPORTANCE DES MODÈLES

Avion papier Avionmilitaire

moins important Plus important

Ledéveloppement logicielAUSSInécessitedesmodèlesbienpensés !

Page 23: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

OBJETS – CLASSESS (EXEMPLES)Classe

Figure

longueurlargeurorigine

périmètresurfacetransposer

Objet

rectangle: Figure

longueur: 24largeur: 20Origine : (12, 20)

Figure rectangle= new Figure( );rectangle.surface();

Page 24: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MODEL DRIVEN ARCHITECTURE (MDA)

v Développementorientémodèles§ Spécifierunmodèleindépendantdelaplateformesurlaquelleilsera déployé

§ Spécifierlaoules plateformes§ Choisiruneplateformeadaptée§ Transformerlemodèledespécificationenunmodèlespécifiquepourla plateforme

Page 25: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

LES 4 PRINCIPES POUR CRÉER UN MODÈLEQUnmodèleinfluenceénormémentlafaçond’aborderleproblèmeetla solution§ VueduconcepteurBD#vueduprogrammeurOO

QChaquemodèlepeutêtreexprimeràdifférentsniveauxdeprécision§ Lesmeilleursmodèlespermettentdechoisirleniveaudedétailenfonctiondequiregardeetpourquoiille regarde

QLesmeilleursmodèlessontliésàla réalitéQUnseulmodèlen’estjamais suffisant

§ Tous les systèmes gagnent à être décrits avec plusieurs petits modèlesrelativement indépendant => comment assurer la cohérence entre lesmodèles

Page 26: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

UN SEUL MODÈLE NE SUFFIT PAS!QCréerunouplusieursmodèlesdifférentsmaisavecunpointcommun

Vueprocédé VueDéploiement

Vue logique Vued’implantation

Use-CaseViewUtilisateurfinalFonctionalité

ProgrammeursSoftware management

IntégrateursystèmePerformance,scalabilité, débit

IngénieursystèmeTopologie dusystème,livraison,

installation, communication

Analystes/ConcepteursStructure

Page 27: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

UNIFIED MODELING LANGUAGE (UML)QLangagevisuel unifié

§ Toutlemondedoitparlerlemême langage

QLangagepour spécifier§ Executable-UML§ Supposéprécisetnonambigu

QDes liensvers+slangagesde prog.§ Java,C++, VB§ RDMSou OODMS§ Générationdecodeetreverse engineering.

Page 28: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

UML - HISTORIQUEAnnées 80:­ Méthodes pour organiser la programmation fonctionnelle (Merise)­ Séparation des données et des traitements

Début des années 90:­ Apparition de la programmation objet: nécessite d’une méthodologie adaptée­ Apparition de plus de 50 méthodes entre 1990 et 1995

1994­ Consensus sur 3 méthodes

­ OMT de James Rumbaugh : représentation graphique des aspects statiques, dynamiques et fonctionnels d’un système

­ OOD de Grady Booch: concept de package

­ OOSE de Ivar Jacobson: description des besoins de l’utilisateur

Page 29: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

UMLConsensus entre OMT, OOD, OOSE pour créer une méthode commune:­ UML : Unified Modeling Language (Langage de Modélisation Unifié)

1997: Définition de la norme UML comme standard de modélisation des systèmes d’information objet par l’OMG (Object Management Group)

UML est employé dans l’ensemble des secteurs du développement informatique­ Systèmes d’information­ Télécommunication, défense­ Transport, aéronautique, aérospatial­ Domaines scientifiques

Mais pas seulement : on peut modéliser des comportement mécaniques, humain, etc.

Page 30: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

UML ET RUPQUnlangagen’estpassuffisant,ilfautaussiuneméthodeQLesméthodes(process)quifonctionnentlemieuxavecUMLsont :

§ OrientéparlesUse-case ;§ Centrésurl’architecture ;§ Itératifet incrémental.

• Lesutilisateursréagissentaufuretà mesure.

QRational Unified Process

Page 31: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MODELE ORIENTÉ “USE CASE”QLesuse-casesontla base

§ Ilsdoiventêtrepréciset concis§ Ilssontcompréhensiblesparlamajorité§ Ilspermettentdesynchroniserlesdifférentsmodèles§ Ilsdécriventl’ensembledesfonctionsdusystèmeetlesacteurs concernés

Retirer de l’argent

Client

Vérifierle solde

Page 32: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

LES BASES D’UMLLes éléments­ Ce sont les abstractions essentielles au modèle.

Les relations­ Les relations expriment les liens existants entre les différents éléments.

Les diagrammes­ Un diagramme est une représentation visuelle de l’ensemble des éléments qui constituent le système­ Ils servent à visualiser un système sous différents angles (utilisateur, administrateur par ex.)­ Dans les systèmes complexes, un diagramme ne fournit qu’une vue partielle du système

­ L’ensemble des diagrammes réunis permet d’obtenir une vue globale du système à concevoir

­ Chaque diagramme va permettre de modéliser ou spécifier une vue (spécificité) du système à concevoir

Page 33: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

UML - LES VUESVue des cas d’utilisation­ Description du modèle vu par les acteurs du système­ Besoins attendus pour chaque acteur­ Le QUOI et le QUI

Vue logique­ Définition du système vu de l’intérieur­ COMMENT satisfaire les besoins des acteurs

Vue d’implémentation­ Dépendances entre les modules

Vue des processus­ Vue temporelle et technique

­ Mise en œuvre des notions de tâches concurrentes, synchronisation…

Vue de déploiement­ Position géographique et architecture physique de chaque élément

­ Le OÙ

Page 34: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

UML – LES DIAGRAMMES

Page 35: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

LES DIAGRAMMESvLes diagrammes sont représentés dans des cadres(frames)

• kind∈ {activity,class,component,deployment,interaction,package,statemachine,usecase }

• Forme simplifiée {act,class,cmp,dep,sd,pkg,stm,uc }

Page 36: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

UML - OBJETS

QObjectifs§ Encapsulation,abstraction,modularité,hiérarchie§ Structured’uneclasse§ Relationsentreuneclasseetun objet§ Polymorphismeet généralisation§ Les interfaces

Page 37: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

RETOUR SUR LES OBJETS ET LES MODELESQQu’est-ce qu’un objet ?

QQuatre concepts au centre de la COO

QQu’est-ce qu’une classe ?

QGénéralisation et polymorphisme

QOrganisation des éléments modèles

Page 38: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

QU’EST-CE QU’UN OBJET ?QUnobjetreprésenteuneentitéphysique,conceptuelleoulogicielledumonde réel.

§ Entitéphysique

§ Entité conceptuelle

§ Entité logicielle

Camion

Procédéchimique

Listechainée

Page 39: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

QU’EST-CE QU’UN OBJET ?QUn objet a une frontière biendéfinie, une identité : état etcomportement.§ L’étatestreprésentépardesslotsetdes références

§ Lecomportementestreprésentéparlesopérationsetlesmachinesà états

Page 40: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

ETAT D’UN OBJETQL’état est une condition ou situation pendant la vied’un objet qui satisfait une condition, effectue uneactivité ou attend pour un événement.

QL’étatd’unobjetpeutchangerdansle temps.

Nom:CMartinID: 567138Embauche:25/07/91Grade:MCFDiscipline:Biologie Service: 192hNom:C Martin

ID: 567138Embauche:25/07/1991Grade:MaitredeconférenceDiscipline:BiologieServicedû: 192h Professeur Martin

Page 41: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

COMPORTEMENT D’UN OBJETQLe comportement détermine comment l’objet agit ou réagit

QLe comportement visible d’un objet est son interface (ensembled’opérations).

Chercher()

ComportementduprofesseurMartinCorrigerles examensPréparerunnouveaucoursChercherFairel’emploidu temps

Nom:CMartinID: 567138Embauche:25/07/91Grade:MCFDiscipline:Biologie Service: 192h

Page 42: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

IDENTITÉ DES OBJETS

QL’identitéd’unobjetest uniquemême si l’état est lemême que celui d’unautre objet

Professeur“CMartin”enseignela biologie Professeur“CMartin”

enseignela biologie

Page 43: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

CONCEPTS FONDAMENTAUX DE LA COO

­Abstraction

­Encapsulation

­Modularité

­Hiérarchie (Héritage)

­Polymorphisme

Page 44: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

ABSTRACTION

vCaractéristiques qui differencie une entité (objet) des autres

vDépend de la perspective et di contexte

vN’est pas une manifestation concrète, dénote l’essentiel

Page 45: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

ENCAPSULATIONMécanisme consistant à rassembler, au sein d’une même structure, les données et les traitements­ Définition des attributs et méthodes au niveau de la classe

L’implémentation de la classe est cachée pour l’utilisateur­ Définition d’une interface : vue externe de l’objet

Possibilité de modifier l’implémentation sans modifier l’interface­ Facilité de l’évolution de l’objet

Préservation de l’intégrité des données ­ L’accès direct aux attributs est interdit­ L’interaction entre les objets se fait uniquement grâce aux méthodes

Page 46: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

ENCAPSULATIONVoiture

marquecouleurimmatriculation

démarrerconduirearrêter

Affiche : La voiture est

démarrée

Voiture twingo = new Voiture( );

twingo.démarrer( );

J’aimerais créer une nouvelle twingo

Que se passe-t-il si je démarre ma twingo?

Concepteur

Utilisateur

Page 47: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MODULARITÉ

QCasser unsystèmeensousmodulesInscriptionadministrative

Systèmedegestiondel’université

Inscriptionpédagogique

Gestion desparcours

Page 48: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

HIÉRARCHIE (HÉRITAGE)Un objet spécialisé bénéficie ou hérite des caractéristiques de l’objet le plus général, auquel il rajoute ses éléments propres­ Création de nouvelles classes basées sur des classes existantes­ Transmission des propriétés (attributs et méthodes) de la classe mère vers la classe fille

Traduit la relation « est un … »

Deux orientations possibles­ Spécialisation : Ajout / adaptation des caractéristiques­ Généralisation : Regroupement des caractéristiques communes

Possibilité d’héritage multiple

Avantages­ Éviter la duplication du code­ Encourager la réutilisation du code

Page 49: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

HÉRITAGE SIMPLE

Moinsabstrait

Plusabstrait

Valeurmonétaire

BienImmobilierCompteBancaire Portefeuille

Epargne Courant Action Obligation

Lesélémentsaumêmeniveauhiérarchiquedevraientêtreaumêmeniveaud’abstraction

Page 50: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

HÉRITAGE SIMPLE

CourantEpargne

Superclasse (mère)

Sous-classes(filles)

Relationgénéralisation

Compte- solde- nom- nombre

+ retirer()+créer Relevé()

QUnCompteEpargneest-unCompteAncêtre

Page 51: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

HERITAGE MULTIPLEQUneclassepeuthériterde plusieurs

Utiliserl’héritagemultipleavecprudenceetseulementsiindispensable!NonsupportéparlaplupartdeslangagesdePOO(ex:Java,C#)

MachineVolante Animal

ChevalLoupOiseauHélicoptèreAvion

Héritagemultiple

Page 52: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

PROBLÈME AVEC L’HÉRITAGE MULTIPLEQCombiendemoteursàl’hydravion ?

Page 53: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

DE QUOI HÉRITE-T-ON?

QUnesous-classehéritelesattributs,lesopérationsetlesréférencesdeses parents.QUnesous-classe peut:§ Ajouterdesattributs,desopérations,des références.§ Redéfinirdesopérationshéritées.

QLescatégoriescommunessontmontréesdanslaclassemèrelaplushaute possible

Page 54: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

POLYMORPHISMEDéfinition : ­ Poly : plusieurs­ Morphisme : Forme

Faculté d’une méthode à pouvoir s’appliquer à des objets de classes différentes

Capacité d’une classe à redéfinir une méthode héritée à partir d’une classe mère­ Surcharge

Avantages­ Lisibilité du code­ Généricité du code

Page 55: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

POLYMORPHISMEVéhicule

seDéplacer()

Train

seDéplacer()

Voiture

seDéplacer()

Bateau

seDéplacer()

seDéplacer(){Print(«Surdesrails»);

}

seDéplacer(){Print(«Surlaroute»);

}

seDéplacer(){Print(«Surl’eau»);

}

Page 56: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

REPRESENTATION DES OBJETS EN UMLQUnobjet(InstanceSpecification)estreprésentéparun rectangle.

QLenomest souligné CMartin:Professeur

: Professeur

Objet nommé

Objet anonymeProfesseurCMartin

Page 57: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

MODÈLES OU CLASSESContient la description d’un objet­ Modèle de l’objet effectif

Correspond à l’«idée» du monde réel de l’objet­ Analogie avec la philosophie platonnienne idéaliste :

­ « Vous vous promenez dans la campagne, vous croyez avoir rencontré des troupeaux de chevaux. Quelle erreur! (…) Car le Cheval-Modèle, le Cheval-Idée, n’est ni noir ni blanc, il n’est d’aucune race chevaline. Il est cheval pur et vos sens ne vous le montreront jamais… » [Civilisation Grecque – A.Bonnard ]

­ La classe è l’« idée » du cheval­ Un pur sang arabe de couleur noire, dont le nom est ASWAD et qui boîte légèrement, est un objet

instancié à partir de cette classe! è ça c’est un cheval

Page 58: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

C’EST QUOI UNE CLASSE?QUneclassedécritunensembled’objetsquipartagentlesmêmesattributs,opérations,références, etsémantique.§ Unobjetestl’instanced’uneclasse.

QUneclasseestuneabstractioncar elle§ Metenévidencecertaines caractéristiques§ Supprimed’autrescaractéristiques

Page 59: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

LA CLASSE COURSClasseCours

AttributsNomSalleDuréeCréditsSemestre

ComportementAjouterun étudiantEnleverun étudiant

Page 60: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

CLASSES VS. OBJETS

QLaclasseestunedéfinition abstraite§ Elledéfinitlastructureetlecomportementdechaqueobjetissuedecetteclasse

§ Sertdemodèlepourlacréationd’instances

Professeur

Professeur M

Professeur T

Professeur A

Page 61: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

LES CLASSES EN UML

QUneclasseestreprésentéeparunrectangleavec3compartiments

§ Lenomdela classe

§ Lastructure(les attributs)

§ Lecomportement (opérations)

Professeur- nom- ID:UniqueId- embauche- grade- discipline- service

+ preparerCours()+ corrigerExamen()+ faireEDT()+ chercher()

Page 62: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

ATTRIBUTS DES CLASSES

QUnattributestunepropriétéstructurellenomméedontletypedécritledomainedesvaleursquel’instancepeutprendre.§ Uneclassepeutavoirunnombrequelconqued’attributsycompris0.

Attributs

- nom- adresse- ID- âge

Page 63: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

ATTRIBUTS ET VALEURS

Objets(InstanceSpecification)

Etudiant- nom- adresse- ID- âge

:Etudiant- nom=“B. Simpson”- adresse=“123rue Gde”- ID= 9- âge= 23

:Etudiant- nom=“R. Bidochon”- adresse=“456av Chêne”- ID= 2- âge= 43slots ValueSpecification

attributs

Page 64: CONCEPTION ORIENTÉEOBJET Présentation Amosse Edouard …miageprojet2.unice.fr/@api/deki/files/2677/Cours... · 2016-10-13 · PLAN DU COURS vIntroduction aux méthodologies de conception

CLASSES ET OPÉRATIONS

QUnservicequipeutêtreinvoquéparunobjetpoureffectueruncomportement.Uneopérationaunesignature,quidéfinitlesparamètresformelspossiblesQUneclassepeutavoirunnombrequelconqued’opérations

Opérations

Etudiant

+ getParcours()+ ajouteUE()+ getEDT()+ enleveUE()+ getCredit()