Analyse et Conception orientée objet 01 - Introduction
UML et pensée « objet » Lorsque nous parlons d’Analyse et conception orientée objet, on pense souvent à UML. UML n’est qu’un langage ou une notation supportant la pensée objet. Faire des diagrammes à l’aide d’UML ne signifie pas que vous faites des diagrammes orientés objet. Ce qui relève de l’orienté objet, c’est la pensée et la façon de concevoir les choses.
Pensée objet La pensée objet n’est donc en rien : le langage de modélisation utilisé (UML); et encore moins le langage de programmation utilisé; il est possible de faire de l’« orienté objet » en C et ne pas faire de l’orienté objet en C++/Java/C#. pour nous en convaincre, nous allons prendre un exemple concret.
Pensée objet Prenons l’exemple d’une classe CPersonne regroupant un nom et un prénom. Voilà comment on procéderait en C#.
Pensée objet : Exemple
Pensée objet : Exemple Pour afficher une personne, on pourrait utiliser le code suivant : Le problème est que cette façon de faire n’est pas orientée objet, même si elle est programmée en C#.
Pensée objet : Exemple Pourquoi pas orientée objet ? L’affichage d’une personne peut se retrouver à différents endroits dans le code (N fois). La classe CPersonne peut évoluer, par exemple par l’ajout d’une date de naissance. Dans ce cas, il serait nécessaire de modifier non seulement la classe (ajouter une date de naissance) mais également le code où on affichait une personne. Pour la classe, la modification est aisée, MAIS comment retrouver les endroits où on affiche la personne ?
Pensée objet : Exemple Pour que ce soit orienté objet, il est nécessaire que l’objet soit le plus autonome possible, c’est-à-dire que sa propre modification entraîne le moins de modifications dans le code. Ceci n’est qu’un aspect de l’orienté objet.
Pensée objet : Exemple Voyons les corrections à apporter : « La structure de l’objet est connue seulement de l’objet lui-même. » Celui qui utilise l’objet ne doit pas en connaître sa structure interne.
Pensée objet Il n’est donc pas suffisant d’apprendre le langage UML pour apprendre à analyser et concevoir d’une façon orientée objet. Il sera nécessaire de voir comment cette pensée orientée objet se retrouve en permanence dans l’analyse et la conception.
Analyse et conception L’analyse met l’accent sur une investigation du problème et des besoins plutôt que sur la recherche d’une solution. La conception sous-entend l’élaboration d’une solution conceptuelle répondant aux besoins plutôt que la mise en œuvre de cette solution.
Analyse et conception orientées objet L’analyse orientée objet est davantage tournée vers la recherche et la description des objets – ou concepts – du domaine du problème. Par exemple, dans le cas d’un système d’information destiné à une compagnie aérienne, certains concepts comprennent l’Avion, le Vol et le Pilote. La conception orientée objet est centrée sur la définition des objets logiciels et sur la façon dont ils collaborent pour satisfaire les besoins. Par exemple, un objet logiciel Avion peut posséder un attribut NuméroDeVol et une méthode GetHistoriqueDuVol(). Enfin, lors de la programmation orientée objet, les objets conceptuels sont implémentés, par exemple en développant en Java une classe Avion.
Méthode d’analyse L’analyse et la conception orientées objets s’intègrent dans une méthode qui définit les différentes étapes ainsi que leur séquence dans le temps. Nous verrons également dans ce cours une méthode évolutive et itérative, celle nommée « Processus Unifié ».
Structure du cours Avant de voir en détails cette méthode, nous allons : Définir les concepts de base de l’orienté objet; Apprendre le langage UML. Nous reviendrons ensuite sur la façon d’utiliser ces concepts et ce langage face à un problème réel.