Cours Magistral Session 1 - Conception Orientée Objet - PDF

Document Details

ExcellentInterstellar

Uploaded by ExcellentInterstellar

Université Nice-Sophia Antipolis

Amosse Edouard

Tags

object-oriented design software design uml programming concepts

Summary

This document provides a comprehensive overview of object-oriented programming concepts and methods. It details the course structure, objectives, and different design approaches, including functional, system, and object-oriented methodologies. UML and object representation are also discussed.

Full Transcript

Présentation CONCEPTION ORIENTÉE OBJET Amosse Edouard Inspiré du cours de F. Mallet ORGANISATION DU COURS 1. Volume Horaire et EDT http://unice.fr/faculte-des- sciences/departements/informatique/contenus-riches/documents- telechargeables/documentsl3...

Présentation CONCEPTION ORIENTÉE OBJET Amosse Edouard Inspiré du cours de F. Mallet 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% PLAN DU COURS vIntroduction 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 OBJECTIFS vMontrer les forces de la COO vDécrire l’histoire de la POO vCommenter l’utilisation actuelle de la POO CYCLE DE VIE D’UN LOGICIEL Expression des besoins Spécification Analyse des besoins Conception Implémentation Tests et vérification Validation Maintenance et Evolution CYCLE DE VIE D’UN LOGICIEL vExpression 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 CYCLE DE VIE D’UN LOGICIEL vImplémentation vRéalisation et programmation vTests et Vérification vContrô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 CONCEPTION vProcessus créatif qui consiste à représenter les diverses fonctions du système permettant 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épond aux facteurs de qualité. vElle se base sur la Modularité. 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é. MÉTHODES DE CONCEPTION On distingue principalement de trois de méthodes de conception: vMéthodes fonctionnelles vMéthodes systémiques vMéthodes orientées objets MÉTHODES FONCTIONNELLES Les méthodes finctionnelles ou cartésiennes consistent à décomposer hiérarchiquement une application en un ensemble de sous applications. Ces méthodes utilisent les raffinements successifs pour produire des spécifications don’t l’essentiel est sous forme de notation graphique en diagramme de flots de données. MÉTHODES FONCTIONNELLES Points 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 MÉTHODES SYSTÉMIQUES Les 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) MÉTHODES FONCTIONNELLES ET SYSTÉMIQUES Les 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 moins stables que les données; par conséquent cette approche est inadaptée à la conception de gros logiciel. MÉTHODES ORIENTÉES OBJETS vDans une approche Orientée Objet (OO), le logiciel est considéré comme une collection 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. MÉTHODES ORIENTÉES OBJETS La 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) vAvantages vReflète plus finement les objets du monde réel vDu code : facile à maintenir vPlus stable: Isolation des changements vRéutilisation des composantes vFaciliter le prototypage MÉTHODES ORIENTÉES OBJETS – EXEMPLES Système de gestion d’un lycée Objets Fonctions Q Personnes Q Calculer la moyenne § Etudiant, enseignant, Q Calculer les taux principal, secrétaire d’encadrement Q Diplôme Q Calculer le nombrede § Année, matière, parcours redoublants Q Notes Q Calculer le taux de réussite au § Coefficients baccalauréat OBJECTIFS DES TECHNOLOGIES À OBJETS QUtiliser le langage du domaine § Modèle et vocabulaire métier QConstruire des modèles faciles à: § Etendre, modifier, valider, vérifier QFaciliter l’implantation § Génération facilitée vers les langages à objets QNécessite une méthode et des outils § Rational Unified Process, Agile, … (cf. semestre 2) § UML est seulement un langage 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 UN MODÈLE QUne simplification de la réalité POURQUOI UN MODÈLE? QQuatre objectifs à la modélisation § Aider à visualiser le système § Spécifier la structure et le comportement § Servir de plan pour la construction effective § Permettre de documenter les choix QQuatre avantages § Abstraction : diviser pour régner § Compréhension : mises au point avec le client § L’énergie déployée pour modéliser révèle les difficultés § Les erreurs sur les modèles coûtent bien moins cher IMPORTANCE DES MODÈLES moins important Plus important Avion papier Avion militaire Le développement logiciel AUSSI nécessite des modèles bien pensés ! OBJETS – CLASSESS (EXEMPLES) Classe Objet Figure longueur rectangle: Figure largeur origine longueur: 24 largeur: 20 périmètre Origine : (12, 20) surface transposer Figure rectangle= new Figure( ); rectangle.surface(); MODEL DRIVEN ARCHITECTURE (MDA) v Développement orienté modèles § Spécifier un modèle indépendant de la plateforme sur laquelle il sera déployé § Spécifier la ou les plateformes § Choisir une plateforme adaptée § Transformer le modèle de spécification en un modèle spécifique pour la plateforme LES 4 PRINCIPES POUR CRÉER UN MODÈLE QUn modèle influence énormément la façon d’aborder le problème et la solution § Vue du concepteur BD # vue du programmeur OO QChaque modèle peut être exprimer à différents niveaux de précision § Les meilleurs modèles permettent de choisir le niveau de détail en fonction de qui regarde et pourquoi il le regarde QLes meilleurs modèles sont liés à la réalité QUn seul modèle n’est jamais suffisant § Tous les systèmes gagnent à être décrits avec plusieurs petits modèles relativement indépendant => comment assurer la cohérence entre les modèles UN SEUL MODÈLE NE SUFFIT PAS! QCréer un ou plusieurs modèles différents mais avec un point commun Vue logique Vue d’implantation Analystes/Concepteurs Programmeurs Structure Software management Use-Case View Utilisateur final Fonctionalité Vue procédé Vue Déploiement Ingénieursystème Intégrateursystème Topologie du système, livraison, Performance, scalabilité, débit installation, communication UNIFIED MODELING LANGUAGE (UML) QLangage visuel unifié § Tout le monde doit parler le même langage QLangage pour spécifier § Executable-UML § Supposé précis et non ambigu QDes liens vers +s langages de prog. § Java, C++, VB § RDMS ou OODMS § Génération de code et reverse engineering. UML - HISTORIQUE Anné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 UML Consensus 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. UML ET RUP QUn langage n’est pas suffisant, il faut aussi une méthode QLes méthodes (process) qui fonctionnent le mieux avec UML sont : § Orienté par les Use-case ; § Centré sur l’architecture ; § Itératif et incrémental. Les utilisateurs réagissent au fur et à mesure. QRational Unified Process MODELE ORIENTÉ “USE CASE” QLes use-case sont la base § Ils doivent être précis et concis § Ils sont compréhensibles par la majorité § Ils permettent de synchroniser les différents modèles § Ils décrivent l’ensemble des fonctions du système et les acteurs concernés Vérifier le solde Client Retirer de l’argent LES BASES D’UML Les é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 UML - LES VUES Vue 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Ù UML – LES DIAGRAMMES LES DIAGRAMMES vLes diagrammes sont représentés dans des cadres(frames) kind ∈ { activity, class, component, deployment, interaction, package, state machine, use case } Forme simplifiée {act, class, cmp, dep, sd, pkg, stm, uc } UML - OBJETS QObjectifs § Encapsulation, abstraction, modularité, hiérarchie § Structure d’une classe § Relations entre une classe et un objet § Polymorphisme et généralisation § Les interfaces RETOUR SUR LES OBJETS ET LES MODELES QQu’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 QU’EST-CE QU’UN OBJET ? QUn objet représente une entité physique, conceptuelle ou logicielle du monde réel. § Entité physique Camion § Entité conceptuelle Procédé chimique § Entité logicielle Liste chainée QU’EST-CE QU’UN OBJET ? QUn objet a une frontière bien définie, une identité : état et comportement. § L’état est représenté par des slots et des références § Le comportement est représenté par les opérations et les machines à états ETAT D’UN OBJET QL’état est une condition ou situation pendant la vie d’un objet qui satisfait une condition, effectue une activité ou attend pour un événement. QL’état d’un objet peut changer dans le temps. Nom: C Martin ID: 567138 Embauche:25/07/91 Grade: MCF Discipline: Biologie Service: 192h Nom: C Martin ID: 567138 Embauche: 25/07/1991 Grade: Maitre de conférence Discipline: Biologie Service dû : 192h Professeur Martin COMPORTEMENT D’UN OBJET QLe comportement détermine comment l’objet agit ou réagit QLe comportement visible d’un objet est son interface (ensemble d’opérations). Nom: C Martin ID: 567138 Embauche:25/07/91 Grade: MCF Discipline: Biologie Comportement du professeur Martin Service: 192h Corriger les examens Préparer un nouveau cours Chercher Chercher() Faire l’emploi du temps IDENTITÉ DES OBJETS QL’identité d’un objet est unique même si l’état est le même que celui d’un autre objet Professeur “C Martin” enseigne la biologie Professeur “C Martin” enseigne la biologie CONCEPTS FONDAMENTAUX DE LA COO ­Abstraction ­Encapsulation ­Modularité ­Hiérarchie (Héritage) ­Polymorphisme 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 ENCAPSULATION Mé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 ENCAPSULATION Concepteur Voiture marque Affiche : couleur immatriculation La voiture est démarrée démarrer conduire arrêter Utilisateur J’aimerais créer une nouvelle twingo Voiture twingo = new Voiture( ); Que se passe-t-il si je démarre ma twingo? twingo.démarrer( ); MODULARITÉ QCasser un système en sous modules Inscription administrative Inscription pédagogique Système de gestion de l’université Gestion des parcours 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 HÉRITAGE SIMPLE Plus Valeur monétaire abstrait CompteBancaire Portefeuille BienImmobilier Moins Epargne Courant Action Obligation abstrait Les éléments au même niveau hiérarchique devraient être au même niveau d’abstraction HÉRITAGE SIMPLE QUn CompteEpargne est-un Compte Ancêtre Compte - solde Superclasse (mère) - nom - nombre + retirer() + créer Relevé() Relation généralisation Sous-classes Epargne Courant (filles) HERITAGE MULTIPLE QUne classe peut hériter de plusieurs MachineVolante Animal Héritage multiple Avion Hélicoptère Oiseau Loup Cheval Utiliser l’héritage multiple avec prudence et seulement si indispensable! Non supporté par la plupart des langages de POO (ex: Java, C#) PROBLÈME AVEC L’HÉRITAGE MULTIPLE QCombien de moteurs à l’hydravion ? DE QUOI HÉRITE-T-ON? QUne sous-classe hérite les attributs, les opérations et les références de ses parents. QUne sous-classe peut: § Ajouter des attributs, des opérations, des références. § Redéfinir des opérations héritées. QLes catégories communes sont montrées dans la classe mère la plus haute possible POLYMORPHISME Dé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 POLYMORPHISME Véhicule seDéplacer( ) Train Voiture Bateau seDéplacer( ) seDéplacer( ) seDéplacer( ) seDéplacer(){ seDéplacer(){ seDéplacer(){ Print (« Sur des rails »); Print (« Sur la route »); Print (« Sur l’eau»); } } } REPRESENTATION DES OBJETS EN UML QUn objet (InstanceSpecification) est représenté par un rectangle. QLe nom est souligné C Martin : Professeur Objet nommé : Professeur Professeur C Martin Objet anonyme MODÈLES OU CLASSES Contient 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 C’EST QUOI UNE CLASSE? Q Une classe décrit un ensemble d’objets qui partagent les mêmes attributs, opérations, références, et sémantique. § Un objet est l’instance d’une classe. QUne classe est une abstraction car elle § Met en évidence certaines caractéristiques § Supprime d’autres caractéristiques LA CLASSE COURS Classe Cours Attributs Comportement Nom Ajouter un étudiant Salle Enlever un étudiant Durée Crédits Semestre CLASSES VS. OBJETS QLa classe est une définition abstraite § Elle définit la structure et le comportement de chaque objet issue de cette classe § Sert de modèle pour la création d’instances Professeur Professeur T Professeur M Professeur A LES CLASSES EN UML QUne classe est représentée par un rectangle avec 3 compartiments Professeur § Le nom de la classe - nom - ID : UniqueId - embauche - grade § La structure (les attributs) - discipline - service + preparerCours() § Le comportement (opérations) + corrigerExamen() + faireEDT() + chercher() ATTRIBUTS DES CLASSES QUn attribut est une propriété structurelle nommée dont le type décrit le domaine des valeurs que l’instance peut prendre. § Une classe peut avoir un nombre quelconque d’attributs y compris 0. - nom - adresse Attributs - ID - âge ATTRIBUTS ET VALEURS :Etudiant - nom = “B. Simpson” - adresse = “123 rue Gde” Etudiant - ID = 9 - nom - âge = 23 - adresse Objets (InstanceSpecification) - ID - âge :Etudiant - nom = “R. Bidochon” - adresse = “456 av Chêne” attributs - ID = 2 slots - âge = 43 ValueSpecification CLASSES ET OPÉRATIONS QUn service qui peut être invoqué par un objet pour effectuer un comportement. Une opération a une signature, qui définit les paramètres formels possibles QUne classe peut avoir un nombre quelconque d’opérations Etudiant + getParcours() + ajouteUE() Opérations + getEDT() + enleveUE() + getCredit()

Use Quizgecko on...
Browser
Browser