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
Documents similaires
-
22
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 26, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 1.5244MB