Analyse et conception des Analyse et conception des systèmes d'information dans systèmes d'information dans
l'entreprise l'entreprise
INF7215 INF7215
Tho Tho - - Hau Nguyen Hau Nguyen
Plan du cours Plan du cours
Motivations de l'orientation objet Motivations de l'orientation objet
Concepts Concepts
Motivations de l'orientation objet Motivations de l'orientation objet
Génie LogicielGénie Logiciel
–– Coût de la maintenanceCoût de la maintenance
–– Conception et maintenance de logiciels plus complexesConception et maintenance de logiciels plus complexes –– Logiciels modifiables, réutilisables, Logiciels modifiables, réutilisables,
compréhensibles,…
compréhensibles,…
Intelligence artificielleIntelligence artificielle
–– Représentation de la connaissanceReprésentation de la connaissance
Motivations de l'orientation objet Motivations de l'orientation objet
(suite) (suite)
Bases de donnéesBases de données
–– Objets complexes et évolutifs (textes, graphiques, Objets complexes et évolutifs (textes, graphiques, images,…)
images,…)
–– Langages de programmation et BDLangages de programmation et BD
Systèmes d'information Systèmes d'information
–– Trop de modèlesTrop de modèles
–– Modèle conceptuel, logique et physique uniqueModèle conceptuel, logique et physique unique –– Réutilisation (conception, modèle)Réutilisation (conception, modèle)
L'orientation
L'orientation - - objet une approche objet une approche naturelle et intuitive
naturelle et intuitive
Insérer le graphe
Langages OO…un peu d'histoire Langages OO…un peu d'histoire
Programmation structurée Programmation structurée
–– Procédures + structures de donnéesProcédures + structures de données –– AvantagesAvantages
»» Diviser pour mieux régnerDiviser pour mieux régner
»» Programmation dirigée par le traitementProgrammation dirigée par le traitement
Programmation objet Programmation objet
–– Objet = données + procéduresObjet = données + procédures –– AvantagesAvantages
»» Programmation dirigée par les donnéesProgrammation dirigée par les données
Langages Orientés
Langages Orientés - - objet objet
Deux famillesDeux familles
–– SimulaSimula
»» Regroupement de données et procéduresRegroupement de données et procédures
»» Concept de classeConcept de classe
»» Concept d'héritageConcept d'héritage
»» Ex: C++, Ex: C++, Object Object Pascal, EiffelPascal, Eiffel
–– SmalltalkSmalltalk
»» Envoi de messageEnvoi de message
»» Méta-Méta-classeclasse
»» Environnement de programmation completEnvironnement de programmation complet
»» Ex: Ex: FlavorsFlavors, Clos, Objective C, , Clos, Objective C, ObjectlispObjectlisp
Caractéristiques des LOO Caractéristiques des LOO
Abstraction des données Abstraction des données
–– Principe d'utilisationPrincipe d'utilisation
»» L'objet est uniquement accessible par son interface L'objet est uniquement accessible par son interface opérationnelle (partie publique)
opérationnelle (partie publique)
»» Interface = protocole de communicationInterface = protocole de communication
–– Principe de dissimulationPrincipe de dissimulation
»» La réalisation des opérations de l'objet et son La réalisation des opérations de l'objet et son implantation physique sont dissimulées
implantation physique sont dissimulées
Caractéristiques des LOO (suite) Caractéristiques des LOO (suite)
Regroupement des objets Regroupement des objets
–– Le programmeur est obligé de structurer les Le programmeur est obligé de structurer les objets de son application en classes
objets de son application en classes
Partage des connaissances Partage des connaissances
–– Les objets peuvent partager des propriétésLes objets peuvent partager des propriétés
Objet Objet
Collection d'éléments de données structurés, Collection d'éléments de données structurés, identifiés par une référence unique
identifiés par une référence unique
Exemples Exemples
–– La personne JeanneLa personne Jeanne –– L'avion AC710L'avion AC710
–– Le cercle CLe cercle C
–– L'hôtel L'EsterelL'hôtel L'Esterel
–– Le congrès IMQLe congrès IMQ--9999
Objet (suite) Objet (suite)
Concept fondamental Concept fondamental
–– Dans une base de données orientéeDans une base de données orientée--objet, tout objet, tout objet est identifié par un identificateur unique objet est identifié par un identificateur unique
»» OID (OID (Object Object Identifier)Identifier)
–– Chaque objet possède une identitéChaque objet possède une identité
–– Deux objets ayant les mêmes valeurs, mais un Deux objets ayant les mêmes valeurs, mais un identifiant différent, sont considérés comme identifiant différent, sont considérés comme différents
différents
Objet: Employé Objet: Employé
Insérer le dessin
Propriété Propriété
Caractéristique d'un objet désigné par un nom Caractéristique d'un objet désigné par un nom pouvant correspondre à:
pouvant correspondre à:
–– Un attributUn attribut
–– Un sousUn sous--objet composantobjet composant
Propriété (suite) Propriété (suite)
–– Exemples:Exemples:
»» Attribut simpleAttribut simple
Nom d'une personneNom d'une personne
Longueur d'une tableLongueur d'une table
»» Sous-Sous-objet composantobjet composant
Enfants d'une personneEnfants d'une personne
Propriétés d'une personnePropriétés d'une personne
Méthode Méthode
Opération associée à une classe qui Opération associée à une classe qui
manipule ou retourne l'état d'un objet ou manipule ou retourne l'état d'un objet ou
d'une partie d'un objet de la classe d'une partie d'un objet de la classe
–– Exemples:Exemples:
»» ImprimerImprimer
»» CréerCréer
Des objets: Propriétés et Des objets: Propriétés et
Méthodes Méthodes
Insérer le dessin
L'encapsulation L'encapsulation
Insérer le dessin
Héritage Héritage
Transmission des propriétés d'une classe vers une Transmission des propriétés d'une classe vers une soussous--classeclasse
Possibilité d'un type d'objet A d'hériter des Possibilité d'un type d'objet A d'hériter des
propriétés et des opérations d'un type d'objet B propriétés et des opérations d'un type d'objet B
Possibilités de créer des types d'objets spécialisés Possibilités de créer des types d'objets spécialisés à partir d'objets généraux
à partir d'objets généraux
PermetPermet
–– RéutilisationRéutilisation
–– On parle de classificationOn parle de classification
Héritage: un exemple Héritage: un exemple
Insérer le dessin
Classe, instance Classe, instance
Classe:Classe:
–– Type de données abstraitType de données abstrait –– Ensemble d'objetsEnsemble d'objets
»» Même structure (attributs)Même structure (attributs)
»» Même comportement (méthodes)Même comportement (méthodes)
»» Même protocole de communicationMême protocole de communication
–– Moule pour générerMoule pour générer
»» Ses représentants physiques (instances)Ses représentants physiques (instances)
Classe, instance (suite) Classe, instance (suite)
–– Exemples:Exemples:
»» Les personnesLes personnes
»» Les cartes géographiquesLes cartes géographiques
»» Les municipalitésLes municipalités
»» Les informaticiens du QuébecLes informaticiens du Québec
Classe, instance: un exemple Classe, instance: un exemple
Insérer le dessin
Liens sémantiques entre classes Liens sémantiques entre classes
Généralisation Généralisation
–– Lien hiérarchique entre deux classes spécifiant Lien hiérarchique entre deux classes spécifiant que les objets de la classe supérieure sont plus que les objets de la classe supérieure sont plus généraux que ceux de la classe inférieure
généraux que ceux de la classe inférieure
Agrégation Agrégation
–– Composant –Composant – composécomposé
Message Message
Bloc de paramètres permettant par envoi Bloc de paramètres permettant par envoi
l'invocation d'une méthode publique d'un objet l'invocation d'une méthode publique d'un objet
Un objet réagit à un message en exécutant la Un objet réagit à un message en exécutant la
méthode associée et en retournant les paramètres méthode associée et en retournant les paramètres
résultats de la méthode résultats de la méthode
Le retour des résultats peut être sous forme de Le retour des résultats peut être sous forme de message à la méthode appelante
message à la méthode appelante
–– Exemples:Exemples:
»» Tracteur, avanceTracteur, avance
Message: un exemple Message: un exemple
Insérer le dessin