Qui sommes nous ? Nous contacter
Ouverture de session :

Pseudonyme

Mot de Passe
Enregistrement
Rechercher :
SOMMAIRE
INFORMATIONS
MMT-fr
Ce site respecte les principes de la charte HONcode.
Ce site respecte les principes de la charte HONcode de HON 
Vérifiez ici.
Licences GNU FSF !
Licence Open Source
EN  LIGNE
Il y a actuellement 6 invités et 0 membres en ligne

Vous êtes un visiteur anonyme. Inscrivez-vous gratuitement en cliquant ici.

Introduction à l'UML et la Programmation Orientée Objet

Page: 1/2
(3422 total des mots dans ce texte)
(11287 lectures)   Format imprimable

Introduction à l'UML et la Programmation Orientée Objet

Introduction

> L'UML, acronyme pour Unified Modeling Language qu'on peut traduire par Langage de Modélisation Objet Unifié, est un outil universel qui permet de structurer un projet et de le matérialiser graphiquement sous forme de diagrammes compréhensibles par les non informaticiens. Aucune connaissance de langage informatique n'est prérequise. Cette modélisation permet dans un second temps de développer le code informatique, le plus souvent à l'aide d'un langage orienté objet (C++, Java par exemple). La description de projets en UML est une étape nécessaire qui permet de gagner beaucoup de temps dans le développement d'une application car la mise au point du code en est moins fastidieuse et le risque d'erreurs de conception ou de réalisation est plus limité. Bien que conçue pour la gestion de projets de grande envergure, l'utilisation de cette méthodologie est bénéfique même pour les projets les plus modestes.

> Ce document non exhaustif a pour ambition d'exposer les grandes lignes des caractéristiques de l'UML. Il s'adresse :

  • aux promoteurs de projets, afin de les aider à mieux structurer et présenter leurs travaux auprès des différentes équipes concernées,
  • aux personnes désireuses d'acquérir la maîtrise de l'UML, pour qu'ils puissent mieux appréhender le contenu des ouvrages spécialisés cités en référence.

Historique

> La modélisation d'un projet correspond à sa mise en forme avant codage. C'est l'une des premières étapes d'un projet pris globalement global ou pour chaque itération du cycle de vie [ Analyse > Conception > Implémentation > Testes ]. Elle joue le même rôle que les maquettes d'architecture et répond aux mêmes besoins :

  • vérifier que les fonctionnalités définies sont complètes et correctes,
  • s'assurer que les besoins de l'utilisateur final sont bien couverts,
  • et enfin que la maintenance et l'extensibilité du projet seront aisés si d'autres besoins se dessinent.

> L'UML, langage de modélisation objet sous forme de notation essentiellement graphique, a vu le jour en 1995. Il est le fruit d'un travail - mené par Ivar JACOBSON, Grady BOOCH et Jim RUMBAUGH - d'unification et de standardisation de trois méthodes de modélisation dominantes développées dans les années 90 : OMT, Booch et OOSE. Ces méthodes devaient permettre de répondre à la question «Comment structurer un système sans centrer l'analyse uniquement sur les données ou sur les traitements mais sur les deux ?».

> L'UML est depuis 1997 une norme de l'OMG (Object Management Group = organisme à but non lucratif fondé en 1989 à l'initiative de grandes sociétés informatiques) dont la philosophie vise à favoriser l'essor industriel des technologies « Objet » en offrant un ensemble de solutions technogiques non propriétaires qui reposent sur l'architecture CORBA (Common Object Request Broker Architecture) permettant de supprimer les clivages techniques qu'on peut rencontrer au sein de réseaux hétérogènes.

> Aujourd'hui, l'UML est un standard incontournable car il résulte d'un large consensus basé sur le travail d'expert reconnus et il est issu du terrain. L'UML est riche (il couvre toutes les phases d'un cycle de développement) et ouvert (il est indépendant du domaine d'application et des langages d'implémentation). Les outils de conception utilisant l'UML se multiplient (GDPro, Object Team, Objecteering, STP, Visio, Visual Modeler, WhiteClass, Poseidon, ...) et il existe un format d'échange standard de modèles UML (XMI).

La version actuelle 1.4 (et bientôt 2.0) a éliminé les incohérences et clarifié les définitions et explications des versions précédentes.

> Arrivé à maturité, l'UML n'est pas un gadget mais un investissement fiable qui continue d'évoluer en se perfectionnant et se diversifiant.

L'approche Objet

Approche objet et Programmation orientée objet

> L'Approche objet considère un système comme une totalité organisée, dont les éléments solidaires ne peuvent être définis que les uns par rapport aux autres. Elle permet d'intégrer statiquement et dynamiquement les constituants d'un système.

> La Programmation orientée objet qui en découle, va modéliser informatiquement un ensemble d'éléments extraits du système réel auquel on s'intéresse (appelé domaine), en un ensemble d'entités informatiques appelées Objets. Les objets informatiques sont donc une représentation abstraite des entités d'un monde réel (chaise, voiture, ...) ou virtuel (compte en banque, dossier de patient, ...). Ils sont construits par processus d'abstraction après écomposition du système en éléments simples, directement représentables dans les langages de programmation, puis regroupement afin d'obtenir une relation d'encapsulation (cf. infra) qui assure une cohésion interne forte et un faible couplage avec le monde extérieur.

> La création de la représentation abstraite - sous forme d'Objets - des entités matérielles ou virtuelles dont elles doivent fidèlement décrire le comportement, constitue la principale difficulté de ce type modélisation.

Les Objets

> Comme les êtres vivants, les objets utilisés dans ce type de modélisation et de langages de programmation, ont un cycle de vie qui va de leur naissance à leur mort. Ils sont caractérisés par leur état interne et leur comportement lors des interactions avec les autres objets qu'on peut résumer par trois notions:

  • L'identité de l'objet, appelée clé naturelle, est indépendante de son état. Elle est implicite dès la création de l'objet, jamais modifiée et construite le plus souvent à partir d'un identifiant naturel du domaine du problème (voiture par n° de série, ...). C'est elle qui permet de distinguer un objet d'un autre de façon univoque.
  • Les attributs caractérisent l'objet, le décrivent. Ce sont les variables qui stockent les informations concernant l'état de l'objet.
  • Les méthodes (ou fonctions membres) caractérisent le comportement de l'objet, c'est-à-dire l'ensemble des opérations qu'il est à même d'effectuer. Ces opérations permettent de le faire réagir aux sollicitations extérieures ou d'agir sur les objets qui l'entourent. Les actions résultant des opérations dépendent souvent de la valeur prise par les attributs de l'objet ou peuvent les modifier.

Les Classes

> On appelle Classe l'abstraction d'un ensemble d'objets qui possèdent une structure identique (attributs) et un même comportement (méthodes). Un objet est donc « issu » d'une classe, on dit qu'il est une instanciation de cette classe

> Une classe est composée de deux parties :

  • Les Attributs qui représentent l'étatd'un objet de la classe.
  • Les Méthodes qui regroupent les opérations applicables à l'objet.

> Exemple :

- Classe = Patient

  • Attributs = [n°d' identité], [nom], [prénom], [taille], [poids], [BMI]
  • Méthode = calcul_BMI (BMI = poids / taille / taille)

- Instanciations = Patient 1, Patient 2, Patient 3

  • Patient 1 = [1], [DUPONT], [Jean], [1,78], [82],[25,9]
  • Patient 2 = [2], [MARTIN], [Françoise], [1,65], [55], [20,2]
  • Patient 3 = [3], [DURAND], [Edouard],[1,78], [85], [26,8]

Même lorsque deux patients ont les mêmes attributs de taille et de poids, voire le même nom, ils resteront distincts grâce au numéro d'identification

Concept d'Encapsulation

> L'Encapsulation est la mécanisme consistant à rassembler les données et les méthodes au sein d'une structure tout en masquant l'implémentation de l'objet, c'est-à-dire en refusant l'accès aux données par un autre biais que celui d'une interface. L'interface est la vue externe d'un objet, elle définit les services accessibles (offerts) aux utilisateurs.

> L'encapsulation permet de garantir l'intégrité des données contenues dans l'objet en définissant des niveaux de visibilité - au nombre de trois - qui définissent les droits d'accès aux données de la classe.

  • Les Classes publiques correspondent au niveau le plus faible de protection car tous les attributs et méthodes d'une telle classe sont accessibles aux autres classes.
  • Les Classes protégées ne permettent l'accès de leurs données qu'aux classes héritières.
  • Les Classes privées offrent le niveau de protection le plus élevé car les données ne sont accessibles qu'aux méthodes de la classe elle-même.

Notion d'héritage et de hiérarchie de classes

> L'Héritage (ou dérivation de classe) est un mécanisme de transmission des propriétés d'une classe (ses attributs et toutes ses fonctions) vers une sous-classe. L'intérêt majeur de l'héritage est de pouvoir définir de nouveaux attributs et de nouvelles méthodes pour la classe dérivée qui viennent s'ajouter à ceux et celles héritées pour définir une sous-classe spécialisée. Inversement plusieurs classes peuvent être généralisées en une seule qui les factorise, afin de regrouper toute les caractéristiques communes de cet ensemble de classe.

> Spécialisation et Généralisation permettent de créer une hiérarchie de classes imbriquées les unes dans les autres, de plus en plus spécialisées. Il est ainsi possible d'acheter dans le commerce des bibliothèques de classes qu'on va spécialiser selon ses besoins. L'arborescence de classes permet de représenter cette hiérarchie, prenant naissance à partir d'une Super-classe (classe mère), avec des Sous-classes de plus spécialisées (classes filles). La relation qui lie une classe fille à une classe mère peu s'exprimer de la façon suivante: classe fille est un classe mère (ex: le fémur est un os).

> Certains langages orientés (tels que le C++, C#,…) permettent de faire de l'héritage multiple, ce qui signifie qu'ils offrent la possibilté de faire hériter une classe de deux super-classes. Ainsi, cette technique permet de regrouper au sein d'une seule et même classe les attributs et les méthodes de plusieurs classes.

Polymorphisme

> Cette caractéristique essentielle de la programmation orientée objet correspond à la faculté de pouvoir donner le même nom à plusieurs fonctions différant par leurs paramètres (nombre ou types), le programme sélectionnant automatiquement la fonction adéquate selon les paramètres déclarés lors de l'appel. En augmentant la généricité du code, cela permet plus de souplesse dans son écriture, le programme utilisant la méthode adaptée au contexte (ex : aux échecs, la méthode mouvement() pourra être exécutée de façon appropriée grâce au type de pièce fourni en paramètre).

L'agrégation

> Il s'agit d'une relation entre deux classes, spécifiant que les objets d'une classe sont des composants de l'autre. Une relation d'agrégation permet donc de définir des objets composés d'autres objets.

> Exemple : L'objet eau : molécule est composé des trois objets :

  • hydrogène1 : atome
  • hydrogène2 : atome
  • oxygène : atome

Environnement de développement ou Langage de programmation objet

> Un environnement de développement ou langage de programmation est dit « Objet » si

  • il fournit un support pour l'encapsulation,
  • il permet l'utilisation du concept d'héritage,
  • il supporte le polymorphisme.

> Les langages modernes offrent :

  • un support pour les interfaces (graphiques, entrées/sorties, ...)
  • l'agrégation et le paquetage (regroupement de plusieurs objets),
  • le support pour les attributs.
   Suivant (2/2) Suivant

[ Retour PROGRAMMATION | Index des Rubriques ]

Accueil Actualités Articles Projets Téléch. Livres Liens Top10

Site internet motorisé par PostNuke ADODB database libraryLangage PHP

Tous les logos et toutes les marques de fabrication sont la propriété de leurs détenteurs respectifs. Les commentaires appartiennent aux personnes qui les ont postés, et tout le reste est Copyright© 2003-2010 de www.smart-doc.org
Ce site internet est réalisé avec PostNuke. Ce système de gestion de portail écrit enPHP est un Logiciel Libre distribué sous licence GNU/GPL license.