© Petko ValtchevUniversité de Montréal Février 2002 1 IFT 2251 Génie Logiciel Génie Logiciel Orienté-Objet Hiver 2002 Petko Valtchev.

Slides:



Advertisements
Présentations similaires
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Advertisements

Génie Logiciel 2 Julie Dugdale
LOG4430 : Architecture logicielle et conception avancée
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
UML - Présentation.
Programmation Orientée Objet (POO)
Introduction à UML NFE108 CNAM – LILLE Madame DELECLUSE
UML (Unified Modeling Langage)
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
FSAB1402: Informatique 2 Techniques de Programmation Orientée Objet
Principes de la technologie orientée objets
le profil UML en temps réel MARTE
Analyse et Conception des Systèmes d’Informations
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Analyse et Conception orientée objet
Modélisation E/R des Données
Introduction à la conception de Bases de Données Relationnelles
Modélisation des bases de données avec UML
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
L’orienté objet: hier, aujourd’hui et demain
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Static modeling, Thu G. Falquet, L. Nerima.
Chapitre 3 Les diagrammes de classes
Modèle, Méthode et Conception
Modèle Logique de Données
Modélisation orientée objet UML
Analyse et conception orientée objet
Etude globale de système.
Structures de données IFT-10541
Unified Modeling Langage
Introduction au paradigme orienté-objet (suite)
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel La Modélisation des Données Hiver 2002 Petko Valtchev.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Portée, arrimages et intervenants Évolution des méthodes
Sensibilisation a la modelisation
Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,
Travaux Pratiques Représentation des connaissances
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Conception Hiver 2002 Petko Valtchev.
Introduction à la programmation objet en C++
Unified Modeling Langage
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Nouvelles Technologies Internet & Mobile
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Spécification de Processus Concurrents Hiver 2002 Petko Valtchev.
Le polymorphisme.
2 Processus de conception de BD
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Préambule Hiver 2002 Petko Valtchev.
La programmation par objets Principes et concepts Etude de Smalltalk.
Unified Modeling Language
Initiation aux SGBD Frédéric Gava (MCF)
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Nouvelles Technologies Internet & Mobile
UML : DIAGRAMME DE CLASSES
Introduction à la Programmation Orientée Objet
Diagramme de classe Classe Objet Associations Diagramme de classe.
Introduction Module 1.
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
UML : méthode Processus. Introduction(1) ● Cycles ● Spécification par cas d'utilisation ● Identifier les besoins ● Analyse par cas d'utilisation ● Affiner.
Transcription de la présentation:

© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Génie Logiciel Orienté-Objet Hiver 2002 Petko Valtchev

© Petko ValtchevUniversité de Montréal Février Conception Sommaire l Introduction et concepts de base l Modélisation par objets et UML l Diagramme de classes l Diagramme de cas d’utilisation l Diagrammes de collaboration l Diagramme d’états l Diagramme d’activités l Processus de modélisation

© Petko ValtchevUniversité de Montréal Février Conception L’Essence de l’Orienté-Objet l Le paradigme orienté-objet (OO) = modéliser les traitements sous forme d’un ensemble de composants qui communiquent entre eux afin de faire émerger la solution du problème global. l Le paradigme structuré = modélise les traitements effectués par un logiciel en termes de fonctions (mathématiques) de transformation des données. système « SafeHome » système composant Capteurs Alarme

© Petko ValtchevUniversité de Montréal Février Conception L’approche structurée: division des fonctionnalités en processus de plus en plus simples (diviser-pour-régner), transformation en modules puis factorisation. L’approche OO : réunir les données et leur traitement dans la même unité, l’objet. Quelques retombées de la décomposition en objets: l Conduit à des modèles plus naturels du domaine d’application l La distance cognitive entre les artefacts informatiques (les objets et les classes) et les entités du domaine est faible l Facilite la maintenance l Augmente l’extensibilité du logiciel produit l Rend possible la réutilisation de composants existant l S’accorde bien de la complexité des problèmes à résoudre l Permet de tracer les besoins plus facilement La Raison d’Être de l’OO

© Petko ValtchevUniversité de Montréal Février Conception Les Objets « A concept, abstraction or thing with crisp boundaries and meaning for the problem at hand. » Rumbaugh et al., 1991 « [reflects] the capabilities of a system to keep information [or] to interact. » Coad and Yourdon, 1991 « [has] state, behaviour and identity. » Booch, 1993 « represents a particular instance of a class. It has identity and attribute values. » UML Spec V1.1 Quelques tentatives de définition de la notion d’objet:

© Petko ValtchevUniversité de Montréal Février Conception l Les objets possèdent un ensemble (peut être vide) d’attributs. l Attribut = propriété de l’entité exprimée par l’objet l Les attributs ont un type et peuvent prendre des valeurs. l Les attributs sont de nature: l statique, l Dynamique. l L’état d’un objet est composé par l’ensemble des valeurs de ses attributs. L’État d’un Objet Ex. Un objet voiture Attributs possibles : l producteur l modèle l km parcourus l date-taxation l date-contrôle l date-enregistrement États possibles: l enregistrée / non enregistrée l taxée / non taxée l contrôlée / non contrôlée

© Petko ValtchevUniversité de Montréal Février Conception l Un ensemble d’opération est associé à chaque objet. l Une opération est toujours activée par un autre objet par l’envoi d’un message. En réponse du message (requête) l’opération peut: l consulter les données stockées dans les attributs de l’objet l modifier ces données. l Le comportement de l’objet est constitué par les opérations valides. Comportement et Identité Ex. Un objet voiture changer de couleur taxer faire contrôler l Chaque objet possède une identité, un identifiant unique dans le système appelé obj-id. l L’identifiant est indépendant des valeurs des attributs de l’objet.

© Petko ValtchevUniversité de Montréal Février Conception l Les objets de l’application collaborent afin de réaliser les besoins fonctionnels. l Les objets communiquent en s’envoyant de messages. l Un message est une requête adressée par un objet à un autre objet qui lui demande de faire quelque chose (rendre un service): l Un message appelle une opération de l’objet destinataire, l Il peut inclure des paramèters = données nécessaires pour exécuter l’opération, l Il peut transmettre une valeur de retour = le résultat de l’opération. Envoi de Messages emprunter abonné nom adresse état livre titre état l L’objet abonné envoie un message emprunter à livre l L’objet livre appelle l’opération emprunter l Résultat: son état change en prêté

© Petko ValtchevUniversité de Montréal Février Conception L’Encapsulation données comportement OBJETOBJET Signature = Nom opération + Nombre et types des paramètres

© Petko ValtchevUniversité de Montréal Février Conception l L’implémentation d’un objet reste cachée pour les autres objets, cependant cela ne les empêche pas d’utiliser les services que l’objet offre. l « Know what not how! » l Les autres objets ne voient que les protocoles des opérations admissibles d’un objet. l Ce principe permet de faire évoluer de manière significative la partie interne cachée de l’objet sans effet néfaste sur le reste du système. l Du moment que l’objectif et le protocole d’une opération restent les mêmes, les éventuels changement ne se propagent pas dans le code. Atouts de l’Encapsulation

© Petko ValtchevUniversité de Montréal Février Conception Les Classes « a group of objects with: similar properties, common behaviour, common associations to other objects and common semantics. » Rumbaugh et al., 1991 « a descriptor for a set of objects with similar structure and behaviour. » UML Spec V1.1 Quelques tentatives de définition de la notion de claasse:

© Petko ValtchevUniversité de Montréal Février Conception l Principe de regroupement des objets en classes : en fonction du comportement et de la structure que les objets ont en commun. l Les objets d’une classe = ses instances. l Plus les objets partagent des propriétés et des opérations, plus ils ont la chance de se retrouver ensemble dans une classe bien définie. l Le principe de classification supporte bien l’évolution dans les classes: l ajout de nouveaux attributs ou opérations, l modification du comportement existant. l Ex. Un compte épargne est un type particulier de compte qui rapporte des intérêts sur son solde et qui n’autorise pas les découvertes. Classification

© Petko ValtchevUniversité de Montréal Février Conception Ex. Syst. d’Information Universitaire : une classe générale Employé (StaffMember). l Pour des raisons de modélisation, il faut distinguer les Employés académiques des Employés administratifs. l Une raison: les administratifs ne peuvent pas enseigner La classe StaffMember sera specialisée l La spécialisation permet de diférencier les objets d’une classe existante en les divisant en un ensemble de classes plus restreintes (plus spécifiques) appelées les sous-classes. l Les sous-classes étendent la sur-classe en ajoutant des nouvelles informations. Leurs instances sont également des instances de la sur- classe. Spécialisation

© Petko ValtchevUniversité de Montréal Février Conception Spécialisation AcademicStaff possède des associations spécialisantes avec la classe Module Les instances de AdminStaff et AcademicStaff partagent les attributs name, address, phone, nextOfKin qui leur viennent de la classe StaffMember

© Petko ValtchevUniversité de Montréal Février Conception l Le mécanisme d’héritage permet une modélisation différentielle : l Afin de définir une nouvelle classe qui est la spécialisation d’une classe existante, on ne doit spécifier que les propriétés et le comportement spécifiques pour la nouvelle classe. l L’héritage permet donc la réutilisation des définitions des classes existantes, tout en minimisant l’effort de description (en évitant les duplications). l Le principe réalise une factorisation du modèle : les descriptions d’un attribut et/ou d’une opération ne se trouvent qu’à un seul endroit dans le modèle. l Favorise les changements : ceux-ci qui se répercutent automatiquement sur toutes les sous-classes. l L’héritage n’a pas un effet contraignant, les sous-classes peuvent remodeler les éléments hérités l Ex. Les deux sous-classes de StaffMember redéfinissent l’opération pay (sans changer la signature) Héritage

© Petko ValtchevUniversité de Montréal Février Conception l Le polymorphisme est un principe qui se base sur la spécialisation et l’héritage. l Permet de s’adresser aux instances d’une classe pour leur demander un service sans pour autant se soucier de la sous-classe exacte de ces instances (et donc de la sémantique particulière de l’opération sous-jacente) Ex. La redéfinition de pay en est une manifestation : les deux sous-classes AdminStaff et AcademicStaff définissent leur propre implémentation de cette opération, néanmoins, le même message pay peut être envoyé à un ensemble d’instances de StaffMember sans savoir à quelle des deux sous-classe elles appartiennent, l la méthode appropriée sera toujours exécutée. Polymorphisme « Capacité d’un phénomène de se manifester sous plusieurs (poly) formes (morph) différentes. »

© Petko ValtchevUniversité de Montréal Février Conception References l Bennett, S., McRobb, S. & Farmer, R. Object-Oriented Systems Analysis and Design using UML McGraw-Hill 1999 l Jacobson, I., Booch, G. and Rumbaugh, J. (1999), The Unified Software Development Process, Addison-Wesley, Reading Mass. l Rational Unified Process 2000