Partie II: Introduction à l orienté-objet

Documents pareils
Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Patrons de Conception (Design Patterns)

Diagramme de classes

UML et les Bases de Données

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

GOL502 Industries de services

Cours STIM P8 TD 1 Génie Logiciel

IFT2255 : Génie logiciel

TP1 : Initiation à Java et Eclipse

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

UML (Diagramme de classes) Unified Modeling Language

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Modélisation de bases de données : Le modèle relationnel

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

3. UML - Unified Modeling Language Diagrammes statiques

Cours Base de données relationnelles. M. Boughanem, IUP STRI

CHAPITRE 1. Introduction aux bases de données

Chapitre VI- La validation de la composition.

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

Université de Bangui. Modélisons en UML

Objets et Programmation. origine des langages orientés-objet

Systèmes d information et bases de données (niveau 1)

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Nom de l application

Introduction au Génie Logiciel

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Gestion de base de données

Générer du code à partir d une description de haut niveau

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Introduction aux concepts d ez Publish

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Les bases de données

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

1 Introduction et installation

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Plan Pédagogique du cours

Initiation à JAVA et à la programmation objet.

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Génie Logiciel Orienté Objet UML

PROJET 1 : BASE DE DONNÉES REPARTIES

Bases de données. Chapitre 1. Introduction

MODE D EMPLOI. Plateforme de réflexion et de recherche de la CIDEGEF pour un modèle de management francophone

UML (Paquetage) Unified Modeling Language

1 Modélisation d une base de données pour une société de bourse

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Programmation Orientée Objet

Bases de données relationnelles

Table des matières Sources

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Programmation MacOSX / ios

Le Guide Pratique des Processus Métiers

Bases de Données relationnelles et leurs systèmes de Gestion

Information utiles. webpage : Google+ : digiusto/

TABLE DES MATIÈRES 5. SANCTIONS ET CHANGEMENTS EXCEPTIONS PERSONNE RESPONSABLE ENTRÉE EN VIGUEUR... 5

RTDS G3. Emmanuel Gaudin

MEGA Database Builder. Guide d utilisation

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Généralités sur le Langage Java et éléments syntaxiques.

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

as Architecture des Systèmes d Information

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Introduction aux Bases de Données

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

CORBA haute performance

Langage SQL : créer et interroger une base

Votre Réseau est-il prêt?

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Cours de bases de données. Philippe Rigaux

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Trois entités forment notre groupe : Découvrez notre univers et rejoignez-nous. PARTN AIR GROUP 10 route des flandres St Martin Longueau

Méthodologie de conceptualisation BI

Bases de données Cours 1 : Généralités sur les bases de données

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Créer une base de données vidéo sans programmation (avec Drupal)

LOG4430 : Architecture logicielle et conception avancée

Java DataBaseConnectivity

Premiers Pas en Programmation Objet : les Classes et les Objets

Programmation Objet Java Correction

Installation et Mise en œuvre de MySQL

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Diagrammes de Package, de déploiement et de composants UML

Rappel sur les bases de données

Chap III : Les tableaux

Bases de données Outils de gestion

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Transcription:

Partie II: Introduction à l orienté-objet Références: C++ from the Beginning, Jan Skansholm, Addison Wesley, 1997 Chapitres couverts Chapitre 6 Object-oriented Program Development Chapitre 7 Classes Chapitre 8 More about Classes Chapitre 12 Dynamic Data Structures 1

Contenu Chapitre 12 : Programmation orienté-objet Analyse Conception Programmation Chapitre 13: Classes Déclaration, définition, utilisation Constructeurs, destructeurs Opérateurs Chapitre 14: Structures de données dynamiques Allocation de mémoire Listes Applications : piles, files, listes généralisées 2

Chapitre 12 : Programmation orienté-objet L exécution d un programme OO est effectué par des objets Chaque objet a sa propre identité a ses propres données (des variables ou d autres objets) fait des requêtes aux autres objets en leur envoyant des messages a ses propres fonctions (appelées méthodes) Chaque objet est une instance d une classe: une classe «groupe» les objets qui ont le même comportement (~ types et variables) Les classes sont organisées en une structure arborescente, appelée hiérarchie d héritage (non 3 expliquée dans ce cours)

Exemple simple: une réservation de train Alice désire avoir une réservation pour aller par train à Paris dimanche prochain. Alice demande à Tom (qui travaille pour une agence de voyage) d effectuer une réservation pour un train pour Paris. Tom demande à Sally (qui travaille pour la compagnie ferrovière) l horaire et informe Alice Alice marque son accord pour l horaire à Tom Tom confirme à Sally... 4

Exemple simple: une réservation de train Interactions entre agents Alice Tom Agence de voyage Sally DB des horaires Compagnie de train Note: d autres agents 5 peuvent être impliqués

Elements de programmation OO L exécution (exemple le scenario réservation ) est réalisé par des Objets Exemple: Alice, Tom, Sally, DB,... Les objets se font des requêtes à travers l envoi de Messages. Exemple : Alice demande à Tom d effectuer une réservation pour un train pour Paris Le recepteur du message peut l accepter et effectuer l action en utilisant ses propres données et renvoie un résultat. Les comportements possibles d un objet est donné par les méthodes définies pour cet objet (~ procédures associées). 6

Encapsulation L encapsulation OO est le groupement de données et de procédures traitant ces données. Données Comportement 7

Information Hiding (Masquage d information) Technique de masquage des détails internes Seul un objet est peut modifier ses données (noninterférence) DATA BEHAVIOR Interface 8

Que peut modéliser une classe? Choses tangibles: Avion Voiture Forme Document Personne Imprimante Rôles Employé, Employeur Pilote, Passager Joueur, Supporter, Journaliste Incidents (Evénements) Décision Décollage,, Crash Intéractions Contrat Mariage 9

Exemple Classe Ascenseur Direction Etage Aller_vers( ) Stop ( ) Quel_étage ( ) Objets Asc1BatUA:ascenseur Haut 2 Asc2BatNO:ascenseur Stationnaire 8 10

Objet Un objet a: Un état (ensemble des valeurs des attributs) Un comportement Une identité La structure et le comportement des objets similaires est défini par une classe. 11

Classe (Notation UML) Attributs de données Visibilité (+ : public; # : protected; - : private) Nom Type Valeur initiale Méthodes (opérations) Visibilité Nom Arguments (paramètres) Type de retour Window + position : Coordinate = (0,0) # lenght : Integral # height : Integral - visibility : Boolean + display () : Boolean + create (position : const Point&) }Signature 12

Attributs // champs en C++ Exemple sans méthode : tableau avec clé et information satellite: typedef char TypeOfKey; typedef int TypeOfElem; class Entree { public: Attributs de la classe TypeOfElem e; TypeOfKey k; }; typedef Entree Vecteur[max]; Entree x; Vecteur v; x.e = 47; x.k = 'a'; v[3].e = 16; v[3].k = 'h'; 13

Relations entre objets Alice DB des horaires Tom Sally Agence de voyage Compagnie de train Plusieurs types de relations peuvent exister entre des objets (classes) Exemples: Anne est la mère de Julie Un bateau est un véhicule Anne est la propriétaire de cette voiture Ma voiture a 4 roues 14

4 types de relations Association Aggrégation Composition Généralisation (Héritage) (pas dans ce cours) Remarque: l exemple précédant est un diagramme d objets UML Généralement on regarde le diagramme de classe qui montre les liens entres les classes définies dans l application (UML est un langage graphique utiliser 15 pour analyser les systèmes OO à concevoir)

Association Représente la Relation connaît entre les classes (aussi appelé lien) Exemples Est marié à Travaille pour Est le propriétaire de 16

Association : notation UML Diagramme de classe Rôle Nom employé Travaille pour employeur Personne * 0..1 Société Multiplicity Multiplicité 17

Association Caractéristiques : Association nom Pour chque extrémité Multiplicité rien : non spécifié * : zéro ou plus 0..1 : optionel 1 : 1 et un seul 1 Nom de rôles Navigabilité Note: on aura les mêmes caractéristiques pour les Aggrégation & Composition (voir plus bas) 18

Association: notation UML Diagramme d objet John : Personne OA Group : Société Isabelle : Personne Alain : Personne Anne : Personne IBM : Société 19

Association: UML Notation Diagramme de classe Ordre * 1 Client Navigabilité 20

Association: other example Diagramme de classe 0..1 patron Personne 0..* employé Diagramme d objet John:Personne employé patron Mary:Personne 21

Agrégation & Composition Represente la relation est composé de ou fait partie de entre instances de classes Examples Une voiture a un moteur Un segment est formé de 2 points Un polygone est dessiné dans un certain style Avec la composition l objet faisant partie peut appartenir qu à un seul contenant (durée de vie plus petite ou égale) 22

Aggrégation & Composition : Notation Diagramme de classe Contrainte Polygone * Composition {ordered} Agrégation 3..* 1 Points Style couleur 23

Relation «est» (héritage) Une (sur)classe possède des caractéristiques communes à d autres (sous)classes Une hiérarchie peut être construite Héritage => réutilisation, librairies, Exemple d héritage Attributs communs véhicule héritage voiture bateau train vélo Attributs spécifiques 24

Analyse OO - Relation «est» Exemple d héritage Attributs: nom, prénom Personne Attributs: ceux de la personne, n inscription année Etudiant * * * Cours Professeur * * 25

Analyse OO Objectif : analyser et spécifier les besoins, comprendre et décrire ce que le programme doit faire Démarche (itérative; partie «structure statique») Trouver les objets faisant partie du modèle Définir leurs attributs Etablir les relations qui les relient 26

Analyse OO Comment trouver les objets? Considérer les entités réelles de l environnement Partir de scénarios représentatifs (partie dynamique et comportementale) et vérifier que tous les services que doivent rendre les objets sont disponibles Relations : est composé de (agrégation et composition), connaît (association), est (héritage) 27

Conception OO Le modèle de l analyse est rendu plus concret, et le «comment les problèmes doivent être résolus?» est abordé Deux parties Conception du système : modularisation du système en sous-systèmes, communication avec l environnement Conception détaillée des objets : ajouter les détails nécessaires à la couverture des fonctions désirées et des messages à traiter entre clients et classes - choix des algorithmes (opérations à effectuer) et des structures de données (construction interne) 28

Programmation OO - Un «bon» programme Correct : ne pas contenir d erreurs par rapport à ce qui a été spécifié (mais la spécification est-elle correcte?) Efficace : utiliser les ressources au mieux Réutilisable : permettre à d autres programmes d être composés sur base de modules déjà prêts et testés ; nécessite une conformité de conception, des données, des appels systèmes, et des interfaces bien définies Diminue le coût de développement Diminue le temps de développement Améliore la qualité des logiciels produits Adaptable : permettre la maintenance (correction d erreurs, ajout ou modification de fonctionnalités) ; basé sur une grande cohésion interne, un faible couplage externe, et le principe d information hiding 29

Programmation OO - 3 concepts clés Encapsulation et information hiding Cacher tout ce qui définit les propriétés des objets en un seul endroit, de telle sorte que d autres objets ne puissent ni voir ni accéder à ces informations Héritage Partir d objets existants et leur ajouter / supprimer / modifier des attributs en vue de créer de nouveaux objets Généricité Créer des codes qui puissent être utilisés avec différentes classes d objets, telles que les containers (liste, ensemble) 30