Conception Orientée Objets Conception Orientée Objets Présentation Frédéric Mal

Conception Orientée Objets Conception Orientée Objets Présentation Frédéric Mallet http://deptinfo.unice.fr/~fmallet/ F. Mallet - COO 1 2015-2016 Conception Orientée Objets Organisation du cours Volume Horaire et EDT  12 demi-journées  http://deptinfo.unice.fr/twiki/bin/view/Linfo/ProjetInfo201516 Evaluation  Evaluation théorique, 1h30 : 50%  Evaluation pratique (en TD) : 50% F. Mallet - COO 2 2015-2016 Conception Orientée Objets Plan du cours Introduction à UML2 Les « 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 Le langage de contraintes OCL Classification vs. Prototypage Modélisation multiniveau F. Mallet - COO 3 2015-2016 Conception Orientée Objets Les objets Objectifs  Montrer les forces de COO  Décrire l’histoire de POO  Commenter l’utilisation actuelle de la POO 2015-2016 4 F. Mallet - COO Conception Orientée Objets 2015-2016 F. Mallet - COO 5 La technologie Orientée-Objet Guide la conception par  Un ensemble de concepts • abstraction, modularité, encapsulation, polymorphisme  Des langages et des outils qui supportent ces concepts • Classification vs. prototype • Héritage (multiple) • Typage : fort/faible, explicite/inféré Ses forces (supposées)  Reflète plus finement les objets du monde réel • Du code (plus) facile à maintenir • Plus stable : un changement s’applique à un sous-système facile à identifier et isoler du reste du système Conception Orientée Objets Système de gestion d’un lycée Objets  Personnes  Etudiant, enseignant, principal, secrétaire  Diplôme  Année, matière, parcours  Notes  Coefficients Fonctions  Calculer la moyenne  Calculer les taux d’encadrement  Calculer le nombre de redoublants  Calculer le taux de réussite au baccalauréat 2015-2016 F. Mallet - COO 6 Conception Orientée Objets Objectifs des technologies à objets Utiliser le langage du domaine  Modèle et vocabulaire métier Construire des modèles faciles à:  Etendre, modifier, valider, vérifier Faciliter l’implantation  Génération facilitée vers les langages à objets Nécessite une méthode et des outils  Rational Unified Process, Agile, … (cf. semestre 2)  UML est seulement un langage 2015-2016 F. Mallet - COO 7 Conception Orientée Objets 2015-2016 8 Les forces des technologies à objets Difficiles à imposer dans l’industrie  Certains pensaient que c’était une mode  D’autres que c’est une étape vers autre chose : programmation par composants, par aspects Les objets sont partout (Turing Award en 2000)  Un seul paradigme : de l’analyse système à l’implantation • En pratique : raffinements semi-automatiques parfois difficiles  Les objets représentent le monde réel : objets ou phénomènes  Stable et adaptatif : • Petits changements localisés et dé-corrélés du reste F. Mallet - COO Conception Orientée Objets 2015-2016 9 L’histoire des technologies à objets Étapes majeures Simula 1967 C ++ Late 1980s Smalltalk 1972 Java 1991 The UML 1994-97 UML 2 2004 2006 UML 2.1 Premier environnement commercial Smalltalk, suivi de C++ Booch : G. Booch OMT : J. Rumbaugh Objectory : I. Jacobson Turing Award pour O-J. Dahl et K. Nygaard F. Mallet - COO Conception Orientée Objets 2015-2016 10 COO vs. conception structurée La COO  Seulement une couche supplémentaire  Garde le meilleur de la conception structurée  Mélange les aspects statiques et dynamiques  Réutilise une classe plutôt qu’un ensemble de routines • Systématisation de la conception modulaire  Rend primitif des mécanismes puissants • Encapsulation # fichiers en-tête • Polymorphisme # pointeur sur void • Liaison dynamique # pointeur sur fonction F. Mallet - COO Conception Orientée Objets 2015-2016 11 Des vieilles idées resservies Procédural Décomposition fonctionnelle Masquer l’information Module Appel de procédure Procédure Appel dynamique Déclaration dynamique Conception structurée Type Objets (UML) Unified Process Encapsulation Instance Message Opération Liaison dynamique Instanciation Conception OO Classe Matériel Platform-based design Interface Entité # Canal Process # Table vectorisation Instanciation Conception par composant Cellule F. Mallet - COO Conception Orientée Objets 2015-2016 12 UML2 – Modélisation visuelle et MDA Objectifs  Décrire l’intérêt de la modélisation visuelle  Énoncer les quatre principes de base  Expliquer ce que représente UML  Présenter les procédés les mieux adaptés à UML F. Mallet - COO Conception Orientée Objets 2015-2016 1-13 Qu’est-ce qu’un modèle ? Un modèle est UNE simplification de la réalité F. Mallet - COO Conception Orientée Objets 2015-2016 14 Pourquoi un modèle ? Quatre 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 Quatre avantages  Abstraction : diviser pour régner  Compréhension : mises au point avec le client  L’énergie déployées pour modéliser révèle les difficultés  Les erreurs sur les modèles coûtent bien moins cher F. Mallet - COO Conception Orientée Objets 2015-2016 15 L’importance des modèles Avion papier Avion militaire moins important Plus important Le développement logiciel AUSSI nécessite des modèles bien pensés ! F. Mallet - COO Conception Orientée Objets 2015-2016 16 Model Driven Architecture (MDA) 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 Modèle PIM Modèle de transformation Plateforme Modèle PSM F. Mallet - COO Conception Orientée Objets 2015-2016 17 MDA viewpoints (1/2) Computation Independent Model (CIM)  Modèle métier : pas la structure du système  Présente le système et son environnement • Vocabulaire utilisé • Doit pouvoir être tracé vers PIM et PSM  Ex: décrit un serveur web, un accès internet, mais cela ne signifie pas qu’il y aura une classe « WebServer » ou « Internet » Platform-Independent Model (PIM) Platform-Specific Model (PSM) F. Mallet - COO Conception Orientée Objets 2015-2016 18 MDA viewpoints (2/2) Computation Independent Model (CIM) Platform-Independent Model (PIM)  Modélise le système indépendamment d’une cible  Utilisation d’une machine virtuelle neutre (analyse)  La plateforme se résume à ses services (communication, ordonnancement, nommage)  Ex: Ne sait pas si on utilise Corba, J2EE, ou .net Platform-Specific Model (PSM)  Comment le système utilise les spécificités d’une plateforme (conception)  Conversion des noms  Devrait être généré automatiquement F. Mallet - COO Conception Orientée Objets 2015-2016 19 Les quatre principes Un modèle influence énormément la façon d’aborder le problème et la solution  Vue du concepteur BD # vue du programmeur OO Chaque 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 Les meilleurs modèles sont liés à la réalité Un 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 F. Mallet - COO Conception Orientée Objets 2015-2016 20 Principe 4 : un seul modèle ne suffit pas ! Créer plusieurs modèles indépendants mais avec des points communs Vue procédé Vue Déploiement Vue logique Use-Case View Vue d’implantation Utilisateur final Fonctionalité Programmeurs Software management Performance, scalabilité, débit Intégrateur système Topologie du système, livraison, installation, communication Ingénieur système Analystes/Concepteurs Structure F. Mallet - COO Conception Orientée Objets 2015-2016 21 Unified Modeling Language Langage visuel unifié  Tout le monde doit parler le même langage Langage pour spécifier  Executable-UML  Supposé précis et non ambigu Des liens vers +s langages de prog.  Java, C++, VB  RDMS ou OODMS  Génération de code et reverse engineering. F. Mallet - COO Conception Orientée Objets Unified Modeling Language Genesis In 1994  Object-orientation was becoming popular  Too many methods/languages to describe similar concepts (>5000) • Metamodels were very similar • Graphical notations were completely different  The Industry was asking for a standard notation Rational Software Corporation starts a process  Booch method (Grady Booch) and OMT (Jim Rumbaugh)  Followed by OOSE (Ivar Jacobson from Objectory) • Use cases 2015-2016 F. Mallet - COO 22 Conception Orientée Objets Unified Modeling Language Genesis http://en.wikipedia.org/wiki/File:OO-historie.jpg 2015-2016 F. Mallet - COO 23 Conception Orientée Objets Unified Modeling Language (UML) Specified by the OMG  Object Management Group • OMG™ is an international, open membership, not-for-profit computer industry consortium since 1989 • Most famous specifications: CORBA, UML, MDA, MOF, IDL • http://www.omg.org 2015-2016 F. Mallet - COO 24 Conception Orientée Objets 2015-2016 25 UML et RUP Un langage n’est pas suffisant, il faut aussi une méthode Les 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. Rational Unified Process F. Mallet - COO Conception Orientée Objets 2015-2016 26 Modèle orienté par les use-case Les 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 Retirer de l’argent Client Vérifier le solde - SysML les reprend et définit des diagrammes de uploads/Ingenierie_Lourd/ cours-1-presentation.pdf

  • 22
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager