Introduction aux méthodes orientées objet
Transcription
Introduction aux méthodes orientées objet
Introduction aux méthodes orientées objet Samira Si-said Cherfi Cnam Paris [email protected] Situation de la qualité des SI Why Big Software Projects Fail: The 12 Key Questions Watts S. Humphrey, The Software Engineering Institute In spite of the improvements in software project management over the last several years, software projects still fail distressingly often, and the largest projects fail most often. …. The principal questions concern why large software projects are hard to manage, the kinds of management systems needed, and the actions required to implement such systems. Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 1 Situation de la qualité des SI 1992 London Ambulance System 1993 1996 Taurus Ariane5 1998 1992 Denver Baggage Handling System 1999 Email Buffer Overflow Mars Orbiter 1999 USS Yorktown Ariane 5 (1996) Mars Climate Orbiter (September 23rd, 1999) Le vol 501, vol inaugural de la fusée Ariane 5, a eu lieu le 4 juin 1996 et s'est USS Yorktown (1998)System London Ambulance E-mail buffer overflow (1998)s'est(1992) Mars Climate Orbiter (anciennement Mars Orbiter) l'une desaprès deux soldé par un échec. La fusée brisée etSurveyor a explosé en vol, était 40(1992) secondes Système de gestion de bagages à l’aéroport de Denver Taurus (1993) sondes spatiales du programme Mars Surveyor 98. Le 23 septembre 1999, Mars le décollage, à la suite d'une panne du système de navigation. L'incident, dû à Un membre de l'équipage du lance-missiles USS Yorktown a entré par erreur Plusieurs erreurs de gestion comises lors dud’erreur développement ont causé deux Les systèmes de messagerie souffrent souvent de dépassement de Climate Orbiter futappareils détruite à cause d'une erreur de navigation pendant sa mise en un bug dans les informatiques utilisés par le pilote automatique, a Le Système de gestion de bagages à l’aéroport de Denver était si complexe un zéro pour une valeur de donnée, ce qui a entraîné une division par zéro. défaillances graves durant l’exploitation de des ceautomatisées système. On raconte capacité buffer lorsque des messages avec adresses longues sont envoyés. Taurus, ledu système de règlement des normalement transactions prévue pour le qui a orbite autour de Mars à une altitude prévue de 140-150 km, erreur provoqué la destruction de la fusée ainsi que la charge utile – 4 sondes de (impliquant 300 ordinateurs) que les jusqu’à dépassements demais délai ont retardé L'erreur en cascade a attentes causé une défaillance du système en le arrêtant son est anecdotiquement des allant 11heures plus grave Cette faille est souvent exploitée par les pirates informatiques pour introduire desle London Stock Exchange a été annulée après 5 ans deseulement développement. Les pertes provoqué son entrée dans l'atmosphère martienne à 57etce km de la surface, la mission Cluster – d'une valeur totale 370 dollars, en fait l’ouverture de l’aéorport. correction des àmillions erreurs de ce système ont système de propulsion et La le navire ade sombré au fond de l’eau y qui est resté que des pertes de vie humaines (estimées 30) ont probablement été causées logiciels espions ou malveillants qui s’exécutent pendant la défaillance de la sont estimées à 75 millions £ pour le projet et 450m £ pour les clients. (Pooley & puis sa destruction par les turbulences et les frottements atmosphériques. bugpendant informatique le du plus coûteux l'histoire. Après enquête, ingénieurs du nécessité 50% budget initial s’élevant à 200ambulances. millions deles dollars. plusieurs heures. Une simple vérification de la division évité par des erreurs d’aiguillage etde d’affectation des Leaurait coût de messagerie. Stevens, 1999) L'enquête a mis en évidence que certains paramètres avaient été calculés en unités CNES se sont aperçus que par mesure d'économie, le logiciel de navigation de la cette défaillance. ( Scientific American, correction des erreurs a été estimé à 9 November millions de 1998) £. de mesure anglo-saxonnes etavait transmises telles quelles à l'équipe de navigation, qui fusée Ariane 5 était celui qui été conçu pour Ariane 4. attendait ces1999) données en unités du système métrique. Cette perte a coûté 125 millions . (Kernighan, de dollars à la NASA. Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris http://mars.jpl.nasa.gov/msp98/orbiter/ Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 2 Apparition des méthodes objet •Les premières méthodes d'analyse (années 70) •Décomposition (fonctionnelle et hiérarchique) d'un système. •L'approche systémique (années 80) •Modélisation des données + modélisation des traitements (Merise, Axial). Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Les méthodes objet L'émergence des méthodes objet (1990-1995) Prise de conscience de l'importance d'une méthode spécifiquement objet : Encapsulation des données (la structure) et des traitements (le comportement) Plus de 50 méthodes objet sont apparues durant cette période (Booch, Classe-Relation, Fusion, HOOD, OMT, OOA, OOD, OOM, OOSE...) Confusion autour de l’analyse et de la conception Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 3 Pourquoi l’approche objet ? But: modélisation des propriétés statiques et dynamiques de l’environnement dans lequel sont définis les besoins (domaine du problème), formalisation de la perception du monde et des phénomènes qui s ’y déroulent, mise en correspondance de l’espace du problème et de l’espace de la solution en offrant des notations et des principes pour toutes les étapes ( le domaine du sujet, l'analyse, la conception, l'implémentation et les tests) Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Pourquoi l’approche objet ? Avantages: capacité à Réduire l'écart sémantique entre la réalité et les modèles, capacité à regrouper ce qui a été séparé, à construire le complexe à partir de l’élémentaire, apporter des modifications locales aux modèles. Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 4 Les concepts Les principes de base de l'approche orientéeobjet les Objets Les Classes d'objets L'encapsulation L'héritage Le polymorphisme Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris L'objet La définition d'un objet dépend la phase du cycle de vie pour laquelle il est destiné Définition Générale: ce sur quoi porte notre connaissance Pour l’analyse du domaine: c’est une entité pertinente du domaine technique Dans un langage de programmation OO: c’est une structure de données et un ensemble de fonctions associées à cette structure de données Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 5 L'objet D'après [Coad &Yourdon, 1991] "C'est l'abstraction de quelque chose du domaine du problème qui reflète les capacités d'un système à mémoriser des informations ou à interagir avec le domaine" D'après [Jacobson, 1992] "Une entité capable de mémoriser un état (information) et qui offre des opérations (comportement) pour à la fois explorer et modifier cet état" Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris L'objet Ce qu'il faut retenir Unité formée de l’union d’un état interne (des attributs) et d’un comportement (des opérations) qui a une origine dans le monde réel et a sa propre identité. Exemples: Objets matériels (table, chaise, crayon, avion…) Objets immatériels, concepts (compte en banque, équation, match de boxe…) Objets virtuels (groupe de travail, division…) … Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 6 L'objet et l'abstraction L'objet est l'abstraction, faite par l'analyste, du phénomène réel observé. Cette abstraction est ensuite modélisée en utilisant les concepts appropriés. Deux personnes différentes peuvent avoir deux perception différentes et donc deux modèles différents du même phénomène réel. Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris L'objet et l'abstraction Type: Animal préhistorique Catégorie: Carnivore Taille: 13m long; 5m haut Époque: période du crétacé Type: Jouet amusant Catégorie: à désarticuler Taille: idéale pour le cartable Époque: récré ou pendant le cours de Maths Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 14 7 L'objet: Identité L’identité caractérise l’existence propre de l’objet: Immuable Permanente (permet de distinguer tout objet de façon non ambiguë indépendamment de son état) Concept différent de l'égalité dans les approches orientée-objet (contrairement aux BD relationnelles) Deux objets peuvent être égaux (attributs et associations) et correspondre à deux objets différents ayant chacun son identité. Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris L'objet : Les attributs et l'état Les attributs représentent les caractéristiques d'un objet Un attribut est constitué du couple (nom, valeur) Exemple une voiture est caractérisée par Couleur Masse Puissance fiscale Quantité de carburant Pouvant avoir les valeurs respectives: Bleu 979 kg 12 CV 30 litres Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 8 L'objet : Les attributs et l'état Les valeurs prises par les attributs les associations déterminent l'état d'un objet à un instant donné. L'état peut être une simple valeur comme il peut représenter un autre objet. Par exemple l'état "indisponible" d'un distributeur de billets signifier que l'objet réserve qui est un objet différent est "vide" Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris L'objet: Comportement Regroupe toutes les compétences d'un objet, l ’ensemble des opérations applicables à cet objet Décrit les actions et les réactions de l'objet. Concept d'opérations (méthodes) Une opération est déclenchée suite à une stimulation externe: message envoyé par un autre objet. • Exemple d'objet Attributs Nom:Dupont Grade:senior Age:45 salaire Opérations Modifer_salaire Modifier_grade associations Supérieur Emploi_du_temps … Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 9 Les liens entre les objets Les associations représentent les liens d'un objets vers les autres objets. Les association peuvent être des agrégations ou des références. Elles peuvent aussi être : Statiques : liens durables entre objets Dynamiques : liens établis par les opérations (liées au comportement) Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris L'objet: l'encapsulation "L'encapsulation est le processus qui consiste à compartimenter des éléments d'une abstraction pour constituer sa structure et son comportement" (Booch 1995) L'abstraction se focalise sur les caractéristiques observalbles et le comportement de l'objet, L'encapsulation se focalise sur la représentation de ces caractéristiques L'encapsulation nécessite la délimitation explicite des abstractions. Encapsulation (occultation des détails de la réalisation): masquer la structure sous-jacente et l ’implémentation des opérations les plus gros bénéfices obtenus par une approche orientée objets proviennent du respect du principe d’encapsulation Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 10 Les classes: La démarche d’abstraction Regroupent les objets qui se ressemblent (abstraction) Identification des caractéristiques (structure et comportement) communes à un ensemble d'éléments. Description condensée de ces caractéristiques. Moyen de transport Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Les classes:Description Spécification décrit le domaine de définition et les propriétés des instances de cette classe (notion de type dans les langages de programmation classiques). Réalisation décrit comment la spécification est réalisée et qui contient le corps des opérations et les données nécessaires à leur fonctionnement. Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 11 Les objets, instances de classes Chaque objet est une instance d'une classe. La classe définit les comportements et les structures possibles de ses instances qui sont les objets. Différentes instances (objets) peuvent avoir leurs opérations invoquées à différents moments et de différentes manières comme ils peuvent être dans différents états. Le mécanisme d'instanciation permet de générer des objets (instance) d'une classe. Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Les relations entre les classes:l’association Connexion sémantique bidirectionnelle entre classes Abstraction des liens qui existent entre les objets instances des classes associées (en général, un objet ne peut pas agir seul, il a besoin de l ’aide d ’autres objets). Dés lors qu’un objet a un lien vers un autre objet, il peut lui envoyer un message pour déclencher une de ses opérations Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 12 Les relations entre les classes:L’agrégation Connexion bidirectionnelle dissymétrique Un train est composé de wagons, un wagon contient des sièges... Une voiture possède quatre roues, un châssis, un moteur… Les relations exprimées ici sont des relations de composition (ou d’agrégation) Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Les hiérarchies de classes:L'héritage Dans une démarche d ’analyse ou de conception orientées objets, la spécialisation et la généralisation conduisent à définir des relations de sous-typage et à mettre en évidence l’héritage Si une classe B hérite d'une classe A, alors aussi bien les opérations que la structure de A deviennent ceux de la classe B" [Jacobson 1992) Sous-classe Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Spécialisation est_un hérite_de Généralisation Super-classe 13 Généralisation et spécialisation La généralisation signifie toujours: est un ou est une sorte de. Elle permet la création de l'ancêtre Exemple: Personnel Administratif Médical Permanent Vacataire Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Généralisation et spécialisation La généralisation est une relation non réflexive A Impossible!! Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 14 Généralisation et spécialisation La généralisation est une relation non symétrique. A Impossible!! B Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Généralisation et spécialisation La généralisation est une relation transitive Personne Enseignant Intervenant extérieur L’ « intervenant extérieur » est enseignant : puisqu’il hérite de « Enseignant » L’ « intervenant extérieur » est une « Personne » par transitivité Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 15 Des ensembles aux classes Les objets instances d’une classe partagent des caractéristiques générales, exprimées sous forme d’attribut, d’opération et de contrainte. C’est la propriété caractéristique de l’ensemble des instances. La propriété caractéristique de X est notée P(X). L’ensemble X peut être divisé en sous-ensembles. Dans une hiérarchie, l’ensemble des instances d’un sous type sont incluses dans l’ensemble des instances du super type. Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Des ensembles aux classes La généralisation des classes correspond à la relation d’inclusion des ensembles. Les objets instances d’une classe donnée sont décrits par la propriété caractéristique de leur classe, mais également par les propriétés caractéristiques de toutes les classes parents de leur classe. Livre Exemple: Auteur Nombre de pages Livre pour les enfants Fourchette des âges Livre pour l’enseignement Discipline Niveau Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 16 Des ensembles aux classes La généralisation - sous sa forme multiple - existe également entre arbres de classes disjoints. Elle permet à une classe d'hériter de deux classes ou plus. Y Z Propriété caractéristique de Y Propriété caractéristique de Z T Propriété caractéristique de T Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Des ensembles aux classes Notion de classe abstraite: Tous les objets instances d’une classe abstraite donnée appartiennent à l’une de ses sous-classes. Une classe abstraite ne donne pas directement des objets. Spécification plus abstraite pour des objets instances de ses sous-classes. Classe abstraite Classe concrète A Classe concrète B Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 17 Le polymorphisme, principe général Le terme polymorphisme décrit un élément qui peut prendre plusieurs formes. En Informatique, cela décrit un nom d ’objet qui peut désigner des instances de classes différentes issues d’une même arborescence. Principe général: Les interactions entre objets sont écrites selon les termes des spécifications définies dans leurs superclasses. Dans ce cas, on parle de polymorphisme d’opération: déclencher des opérations différentes en réponse à un même message. Une sous-classe peut modifier localement le comportement d’une opération héritée d’une super-classe. Mécanisme de découplage qui agit dans le temps. N’influence pas l’analyse, mais dépend de l’analyse. Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Le polymorphisme, Application Exemple: CollectionF[3] = { Carré( "un carré"), Cercle( "un cercle"), Triangle( "un triangle") }; for (int i = 0; i < 3; i++) { CollectionF[i].Dessiner(); } forme Carré Dessiner () { dessiner un carré } Dessiner () {} Cercle Dessiner () { dessiner un cercle } Triangle Dessiner () { dessiner un triangle } Collection polymorphe et spécialisation d’une opération. Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 18 Le polymorphisme et surcharge Ne pas confondre le polymorphisme avec la surcharge des opérations: Profil de paramètres différent pour des opérations de mêmes noms Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris Conclusion objet: entité qui combine les caractéristiques essentielles abstraites à partie du domaine du système. classe: expression de caractéristiques communes aux objets encapsulation: combinaison des attributs et des opérations dans un même objet. héritage: relation entre sous classes et super classes décrivant des degrés de ressemblances polymorphisme: facilité permettant l'invocation d'opérations en ignorant la classe destinataire du message. L'application de ces concepts permet: La modélisation de la structure La modélisation du comportement Auteur S. Si-said Cherfi Maitre de conférences au Cnam - Paris 19