INTRODUCTION AUX
                 MÉTHODOLOGIES DE
                    CONCEPTION MCOO–

                          Chapitre   1
L2ARS/SIL – 2011/2012
Plan
                Introduction aux systèmes d’information
                Introduction à la conception
                Le langage UML
                Le paradigme Objet




                               Méthodologie de
15/11/2011                Conception Orientée Objet
                                                           2
Chp1: Introduction aux Méthodologies de Conception

             LES SYSTÈMES
             D’INFORMATION
                                Méthodologie de
15/11/2011                 Conception Orientée Objet
                                                                  3
Introduction aux SI
              Un système d’information représente
               l’ensemble des éléments participant à la
               gestion, stockage, traitement, transport et
               diffusion de l’information au sein d’une
               organisation
              Rôle:
                Collecte d’informations
                Stockage de l’information
                Traitement de l’information
                Diffusion de l’information
                              Méthodologie de
15/11/2011               Conception Orientée Objet
                                                             4
Etapes de Réalisation d’un
                      SI (1/3)
                   Expression des besoins

                        Spécification

                          Analyse

                        Conception

                      Implémentation

                    Tests et vérification

                         Validation

                  Maintenance et Evolution
                         Méthodologie de
15/11/2011          Conception Orientée Objet
                                                5
Etapes de Réalisation d’un
                      SI (2/3)
              Expression des besoins
                 Définition d’un cahier des charges
              Spécification
                 Ce que le système doit être et comment il peut être utilisé
              Analyse
                 Éléments intervenant dans le SI, leurs structures et
                  relations
                 A définir sur 3 axes
                    • Savoir-faire de l’objet              axe fonctionnel
                    • Structure de l’objet                         axe statique
                    • Cycle de vie de l’objet              axe dynamique
              Conception
                 Apport de solutions techniques: architecture, performance
                  et optimisation
                 Définition des structures et des algorithmes
                                   Méthodologie de
15/11/2011                    Conception Orientée Objet
                                                                                   6
Etapes de Réalisation d’un
                      SI (3/3)
              Implémentation
                 Réalisation et programmation
              Tests et vérification
                 Contrôles de qualité
                 Instaurés tout au long du cycle de développement
              Validation
                 Vérification de la correspondance avec le cahier des
                  charges + discussion avec l’utilisateur
              Maintenance et Evolution
                 Maintenance corrective: traiter les erreurs (bugs)
                 Maintenance évolutive: intégration de nouveaux
                  changements
                                 Méthodologie de
15/11/2011                  Conception Orientée Objet
                                                                         7
Chp1: Introduction aux Méthodologies de Conception

             ÉTAPE DE CONCEPTION


                                Méthodologie de
15/11/2011                 Conception Orientée Objet
                                                                  8
Conception
              Processus créatif pour la mise au point d’un
               logiciel
              Permet de donner une architecture au logiciel
               en le découpant en briques, chacune en charge
               de fonctionnalités différentes
              2 types de conception
                Conception architecturale
                  • Définition de la structure interne du logiciel
                  • Décomposition en composants de taille maîtrisable
                  • Définition des interfaces et interactions entre composants
                Conception détaillée
                  • Définition du rôle de chacun des composants
                  • Définition des sous-composants
                                Méthodologie de
15/11/2011                 Conception Orientée Objet
                                                                             9
Modélisation
              Support de la conception
              Formalisation de la solution, en utilisant des
               notations ou des règles connues
              Permet de réduire la complexité d’un
               phénomène
                 Éliminer les détails non significatifs
                 Refléter ce qui est important pour la compréhension
                  et prédiction du phénomène modélisé
              Création d’un Modèle
                 Représentation abstraite et simplifiée d’une entité du
                  monde réel en vue de le décrire, de l’expliquer ou de
                  le prévoir
                 Exemple : Plan
                                Méthodologie de
15/11/2011                 Conception Orientée Objet
                                                                       10
Méthode et Langage
              Méthode de conception
                Description normative des étapes de la
                 modélisation
                Exemple: Merise
                Problème:
                  • Existence de plusieurs cas particuliers  difficulté de
                    représenter une méthode exhaustive
              Langage de modélisation
                Langage graphique pour
                 représenter, communiquer les divers aspects
                 d’un système d’information
                Possède un vocabulaire et des règles qui
                 permettent de combiner les mots afin de
                              Méthodologie de
15/11/2011       communiquer
                         Conception Orientée Objet
                                                                              11
Chp1: Introduction aux Méthodologies de Conception

             UML: UNIFIED MODELING
             LANGUAGE
                                Méthodologie de
15/11/2011                 Conception Orientée Objet
                                                                  12
Historique
              Années 80:
                Méthodes pour organiser la programmation
                 fonctionnelle (Merise)
                Séparation des données et des traitements
              Début des années 90:
                Apparition de la programmation objet: nécessite
                 d’une méthodologie adaptée
                Apparition de plus de 50 méthodes entre 1990 et
                 1995
              1994
                Consensus sur 3 méthodes
                  • OMT de James Rumbaugh : représentation graphique
                    des aspects statiques, dynamiques et fonctionnels d’un
                    système
                  • OOD de Grady Booch: concept de package
15/11/2011        • OOSE de Ivar Jacobson:de
                                   Méthodologie description des besoins de
                                                                           13
                    l’utilisateur
                              Conception Orientée Objet
UML
              Consensus entre les « 3 Amigos » pour créer une
               méthode commune:
                 UML : Unified Modeling Language (Langage de
                  Modélisation Unifié)
              1997: Définition de la norme UML comme standard
               de modélisation des systèmes d’information objet
               par l’OMG (Object Management Group)
              UML est employé dans l’ensemble des secteurs du
               développement informatique
                   Systèmes d’information
                   Télécommunication, défense
                   Transport, aéronautique, aérospatial
                   Domaines scientifiques
              Mais pas seulement : on peut modéliser des
               comportement mécaniques, humain, etc.
                                   Méthodologie de
15/11/2011                    Conception Orientée Objet
                                                                 14
Briques de base d’UML
              Les éléments
                 Ce sont les abstractions essentielles au modèle.
              Les relations
                 Les relations expriment les liens existants entre les
                  différents éléments.
              Les diagrammes
                 Un diagramme est une représentation visuelle de
                  l’ensemble des éléments qui constituent le système
                 Ils servent à visualiser un système sous différents angles
                  (utilisateur, administrateur par ex.)
                 Dans les systèmes complexes, un diagramme ne fournit
                  qu’une vue partielle du système
                    • L’ensemble des diagrammes réunis permet d’obtenir une vue
                      globale du système à concevoir
                    • Chaque diagramme va permettre de modéliser ou spécifier une
                      vue (spécificité) du système à concevoir
                                  Méthodologie de
15/11/2011                   Conception Orientée Objet
                                                                                15
Les 4+1 Vues
              Vue des cas d’utilisation
                  Description du modèle vu par les acteurs du système
                  Besoins attendus pour chaque acteur
                  Le QUOI et le QUI
              Vue logique
                  Définition du système vu de l’intérieur
                  COMMENT satisfaire les besoins des acteurs
              Vue d’implémentation
                  Dépendances entre les modules
              Vue des processus
                  Vue temporelle et technique
                  Mise en œuvre des notions de tâches concurrentes, synchronisation…
              Vue de déploiement
                  Position géographique et architecture physique de chaque élément
                  Le OÙ
                                     Méthodologie de
15/11/2011                      Conception Orientée Objet
                                                                                        16
Les 4+1 Vues

                  Vue Logique                   Vue d’implémentation
             - Classes                         - Fichiers
             - Interfaces                      - Ressources externes
             - Collaboration
                                Vue des cas d’utilisation

                                - Cas d’utilisation
                                - Acteurs

              Vue de déploiement                  Vue des processus

             - Nœuds                           - Processus
                                               - Threads



                         Méthodologie de
15/11/2011          Conception Orientée Objet
                                                                       17
Diagrammes d’UML 2
              Diagrammes structurels / statiques (UML Structure)
                   diagramme de classes (Class diagram)
                   diagramme d’objets (Object diagram)
                   diagramme de composants (Component diagram)
                   diagramme de déploiement (Deployment diagram)
                   diagramme de paquetages (Package diagram)
                   diagramme de structures composites (Composite structure diagram)

              Diagrammes comportementaux / dynamiques (UML Behavior)
                   diagramme de cas d’utilisation (Use case diagram)
                   diagramme d’activités (Activity diagram)
                   diagramme d’états-transitions (State machine diagram)
                   diagrammes d’interaction (Interaction diagram)
                     •   diagramme de séquence (Sequence diagram)
                     •   diagramme de communication (Communication diagram)
                     •   diagramme global d’interaction (Interaction overview diagram)
                     •   diagramme de temps (Timing diagram)


                                       Méthodologie de
15/11/2011                        Conception Orientée Objet
                                                                                         18
Chp1: Introduction aux Méthodologies de Conception

             LE PARADIGME ORIENTÉ
             OBJET
                                Méthodologie de
15/11/2011                 Conception Orientée Objet
                                                                  19
Introduction à l’approche
                    Orientée Objet
          Evolution foudroyante du matériel
               Premier ordinateur :
                  • 50 tonnes, 25 Kwatts, quelques milliers de positions de
                    mémoire
                  • Quelques composants par circuit
               Actuellement : Processeurs avec 2, 4 et jusqu’à 6
                cœurs
                  • Quelques grammes, 17 watts, jusqu’à 16 Go de RAM,
                    environs 20 000 MIPS (millions d’instructions par seconde)
                  • 400 millions de transistors
                  Concept clef : la Réutilisation
          Evolution lente du logiciel
               Les projets informatiques repartent de zéro!

15/11/2011   Solution : Exploiter le concept de réutilisation pour 20
                              Méthodologie de
                           Conception Orientée Objet
Objet…?
              Définitions :
                 Entité cohérente rassemblant des données et du code travaillant sur
                  ces données
                 Structure de données valuées qui répond à un ensemble de
                  messages
              Caractérisé par :
                 son comportement : que peut-on faire avec cet objet?
                    • Méthodes
                 son état : comment réagit l’objet quand on applique ces
                  méthodes?
                    • Attributs (Champs)
                 son identité : comment distinguer les objets qui ont le
                  même état et le même comportement?
                    • Identifiant
              A les mêmes réactions et la même modularité que le
               monde réel     Méthodologie de
15/11/2011                                                                         21
                 L’objet   informatique Orientée projection
                               Conception est une Objet        de l’objet du monde
Classe
              Composant de base
              Contient la description d’un objet
                 Modèle de l’objet effectif
              Correspond à l’ « idée » qu’on se fait d’un objet
                 Analogie avec la philosophie platonnienne idéaliste :
                   • « Vous vous promenez dans la campagne, vous croyez
                     avoir rencontré des troupeaux de chevaux. Quelle erreur!
                     (…) Car le Cheval-Modèle, le Cheval-Idée, n’est ni noir ni
                     blanc, il n’est d’aucune race chevaline. Il est cheval pur et
                     vos sens ne vous le montreront jamais… » [Civilisation
                     Grecque – A.Bonnard ]
                 Voilà, la classe, c’est l’ « idée » du cheval
                 Un pur sang arabe de couleur noire, dont le nom est
                  ASWAD et qui boîte légèrement, est un objet
                  instancié à partir de cettede
                                 Méthodologie classe!
15/11/2011                   Conception Orientée Objet
                                                                                22
Exemples
              Classe                                   Objet
                       Voiture                                   twingo : Voiture
                 marque
                 couleur                                 marque : Renaut
                 immatriculation                         couleur : grise
                                                         immatriculation : 102   102
                 démarrer
                 conduire
                 arrêter

             class Voiture {
                // attributs                         Voiture twingo = new Voiture( );
                   String marque;
                   String couleur;
                   String immatriculation;
                //méthodes
                   void démarrer( ){ }
                   void conduire( ){ }
                   void arrêter( ){ }
             }
                                        Méthodologie de
15/11/2011                         Conception Orientée Objet
                                                                                        23
Concepts fondamentaux de
                   l’approche OO

              Caractéristiques de l’approche objet :
                Encapsulation

                Héritage

                Polymorphisme

                Agrégation



                                 Méthodologie de
15/11/2011                  Conception Orientée Objet
                                                        24
Encapsulation
              Mécanisme consistant à rassembler, au sein
               d’une même structure, les données et les
               traitements
                 Définition des attributs et méthodes au niveau de la
                  classe
              L’implémentation de la classe est cachée pour
               l’utilisateur
                 Définition d’une interface : vue externe de l’objet
              Possibilité de modifier l’implémentation sans
               modifier l’interface
                 Facilité de l’évolution de l’objet
              Préservation de l’intégrité des données
                 L’accès direct aux attributs est interdit
                 L’interaction entre les objets se fait uniquement grâce
                  aux méthodes    Méthodologie de
15/11/2011                   Conception Orientée Objet
                                                                        25
Encapsulation : Exemple
         Concepteur                 Voiture
                                 marque
                                 couleur                        Affiche :
                                 immatriculation             La voiture est
                                                               démarrée
                                 démarrer
                                 conduire
                                 arrêter


         Utilisateur
                               J’aimerais créer une
                                  nouvelle twingo


                          Voiture twingo = new Voiture( );


                               Que se passe-t-il si je
                               démarre ma twingo?


                          twingo.démarrer( );


                            Méthodologie de
15/11/2011             Conception Orientée Objet
                                                                              26
Héritage
              Un objet spécialisé bénéficie ou hérite des
               caractéristiques de l’objet le plus général, auquel il
               rajoute ses éléments propres
                 Création de nouvelles classes basées sur des classes
                  existantes
                 Transmission des propriétés (attributs et méthodes) de la
                  classe mère vers la classe fille
              Traduit la relation « est un … »
              Deux orientations possibles
                 Spécialisation : Ajout / adaptation des caractéristiques
                 Généralisation : Regroupement des caractéristiques
                  communes
              Possibilité d’héritage multiple
              Avantages
                 Éviter la duplication du code
                                   Méthodologie de
15/11/2011       Encourager la réutilisation du code
                              Conception Orientée Objet
                                                                              27
Héritage : Exemple
                                               Oeuvre                                    généralisation

                                             titre
                                             auteur



                     Livre                       Opéra             Film
                  ISBN                       genre_musical   réalisateur
                  couverture                 compositeur     bande_originale



     Roman                          BD

   nb_chapitres                dessinateur


                                                                               spécialisation

                                          Méthodologie de
15/11/2011                           Conception Orientée Objet
                                                                                                28
Polymorphisme
              Définition :
                 Poly : plusieurs
                 Morphisme : Forme
              Faculté d’une méthode à pouvoir s’appliquer à
               des objets de classes différentes
              Capacité d’une classe à redéfinir une méthode
               héritée à partir d’une classe mère
                 Surcharge
              Avantages
                 Lisibilité du code
                 Généricité du code

                               Méthodologie de
15/11/2011                Conception Orientée Objet
                                                           29
Polymorphisme : Exemple

                                                     Véhicule

                                                 seDéplacer( )



                                    Train              Voiture                  Bateau

                             seDéplacer( )        seDéplacer( )             seDéplacer( )


     seDéplacer(){                            seDéplacer(){                        seDéplacer(){
       Print (« Sur des rails »);               Print (« Sur la route »);            Print (« Sur l’eau»);
     }                                        }                                    }




                                             Méthodologie de
15/11/2011                              Conception Orientée Objet
                                                                                                             30
Abstraction
 L’abstraction est la caractérisation d’un objet
  par une partie publique, une partie privée et
  une partie implémentation.
    L’accès public
    L’accès privé
    La partie implémentation




                                               31
Abstraction
 Ce concept d’abstraction engendre deux
  catégories d’acteurs :
    les concepteurs des classes
    les utilisateurs des objets
 Ces derniers peuvent utiliser les méthodes
  d’une classe indépendamment de leurs
  structures internes.
 Ils n’utilisent que les signatures des méthodes
  (interface de l’objet)
 Ce qui permet aux concepteurs des classes
  d’objets de modifier la structure interne des
  méthodes des classes sans altérer le travail de
  leurs utilisateurs.                             32
FIN du Chapitre 1




                    Méthodologie de
15/11/2011     Conception Orientée Objet
                                           33
Agrégation
              Relation entre deux classes, de sorte que
               les objets de l’une soient des composants
               de l’autre
              Traduit la relation « est composé de… » ou
               «a…»
              Toute agrégation est caractérisée par une
               cardinalité
                Combien définit la classe contenante d’instances
                 de la classe contenue?
                À combien de classes peut appartenir un objet?

15/11/2011
              Avantage        Méthodologie de
                                                               34
                          Conception Orientée Objet
Agrégation : Exemple

                                                        Roue
             Relation d’agrégation                 4


                                     1
                     Voiture                           Moteur
                                                   1
                  roues[ ]           1
                  moteur
                  châssis
                                     1                 Châssis
                                                   1
                                     Cardinalité




                              Méthodologie de
15/11/2011               Conception Orientée Objet
                                                                 35

Chp1 intro conception

  • 1.
    INTRODUCTION AUX MÉTHODOLOGIES DE CONCEPTION MCOO– Chapitre 1 L2ARS/SIL – 2011/2012
  • 2.
    Plan  Introduction aux systèmes d’information  Introduction à la conception  Le langage UML  Le paradigme Objet Méthodologie de 15/11/2011 Conception Orientée Objet 2
  • 3.
    Chp1: Introduction auxMéthodologies de Conception LES SYSTÈMES D’INFORMATION Méthodologie de 15/11/2011 Conception Orientée Objet 3
  • 4.
    Introduction aux SI  Un système d’information représente l’ensemble des éléments participant à la gestion, stockage, traitement, transport et diffusion de l’information au sein d’une organisation  Rôle:  Collecte d’informations  Stockage de l’information  Traitement de l’information  Diffusion de l’information Méthodologie de 15/11/2011 Conception Orientée Objet 4
  • 5.
    Etapes de Réalisationd’un SI (1/3) Expression des besoins Spécification Analyse Conception Implémentation Tests et vérification Validation Maintenance et Evolution Méthodologie de 15/11/2011 Conception Orientée Objet 5
  • 6.
    Etapes de Réalisationd’un SI (2/3)  Expression des besoins  Définition d’un cahier des charges  Spécification  Ce que le système doit être et comment il peut être utilisé  Analyse  Éléments intervenant dans le SI, leurs structures et relations  A définir sur 3 axes • Savoir-faire de l’objet  axe fonctionnel • Structure de l’objet  axe statique • Cycle de vie de l’objet  axe dynamique  Conception  Apport de solutions techniques: architecture, performance et optimisation  Définition des structures et des algorithmes Méthodologie de 15/11/2011 Conception Orientée Objet 6
  • 7.
    Etapes de Réalisationd’un SI (3/3)  Implémentation  Réalisation et programmation  Tests et vérification  Contrôles de qualité  Instaurés tout au long du cycle de développement  Validation  Vérification de la correspondance avec le cahier des charges + discussion avec l’utilisateur  Maintenance et Evolution  Maintenance corrective: traiter les erreurs (bugs)  Maintenance évolutive: intégration de nouveaux changements Méthodologie de 15/11/2011 Conception Orientée Objet 7
  • 8.
    Chp1: Introduction auxMéthodologies de Conception ÉTAPE DE CONCEPTION Méthodologie de 15/11/2011 Conception Orientée Objet 8
  • 9.
    Conception  Processus créatif pour la mise au point d’un logiciel  Permet de donner une architecture au logiciel en le découpant en briques, chacune en charge de fonctionnalités différentes  2 types de conception  Conception architecturale • Définition de la structure interne du logiciel • Décomposition en composants de taille maîtrisable • Définition des interfaces et interactions entre composants  Conception détaillée • Définition du rôle de chacun des composants • Définition des sous-composants Méthodologie de 15/11/2011 Conception Orientée Objet 9
  • 10.
    Modélisation  Support de la conception  Formalisation de la solution, en utilisant des notations ou des règles connues  Permet de réduire la complexité d’un phénomène  Éliminer les détails non significatifs  Refléter ce qui est important pour la compréhension et prédiction du phénomène modélisé  Création d’un Modèle  Représentation abstraite et simplifiée d’une entité du monde réel en vue de le décrire, de l’expliquer ou de le prévoir  Exemple : Plan Méthodologie de 15/11/2011 Conception Orientée Objet 10
  • 11.
    Méthode et Langage  Méthode de conception  Description normative des étapes de la modélisation  Exemple: Merise  Problème: • Existence de plusieurs cas particuliers  difficulté de représenter une méthode exhaustive  Langage de modélisation  Langage graphique pour représenter, communiquer les divers aspects d’un système d’information  Possède un vocabulaire et des règles qui permettent de combiner les mots afin de Méthodologie de 15/11/2011 communiquer Conception Orientée Objet 11
  • 12.
    Chp1: Introduction auxMéthodologies de Conception UML: UNIFIED MODELING LANGUAGE Méthodologie de 15/11/2011 Conception Orientée Objet 12
  • 13.
    Historique  Années 80:  Méthodes pour organiser la programmation fonctionnelle (Merise)  Séparation des données et des traitements  Début des années 90:  Apparition de la programmation objet: nécessite d’une méthodologie adaptée  Apparition de plus de 50 méthodes entre 1990 et 1995  1994  Consensus sur 3 méthodes • OMT de James Rumbaugh : représentation graphique des aspects statiques, dynamiques et fonctionnels d’un système • OOD de Grady Booch: concept de package 15/11/2011 • OOSE de Ivar Jacobson:de Méthodologie description des besoins de 13 l’utilisateur Conception Orientée Objet
  • 14.
    UML  Consensus entre les « 3 Amigos » pour créer une méthode commune:  UML : Unified Modeling Language (Langage de Modélisation Unifié)  1997: Définition de la norme UML comme standard de modélisation des systèmes d’information objet par l’OMG (Object Management Group)  UML est employé dans l’ensemble des secteurs du développement informatique  Systèmes d’information  Télécommunication, défense  Transport, aéronautique, aérospatial  Domaines scientifiques  Mais pas seulement : on peut modéliser des comportement mécaniques, humain, etc. Méthodologie de 15/11/2011 Conception Orientée Objet 14
  • 15.
    Briques de based’UML  Les éléments  Ce sont les abstractions essentielles au modèle.  Les relations  Les relations expriment les liens existants entre les différents éléments.  Les diagrammes  Un diagramme est une représentation visuelle de l’ensemble des éléments qui constituent le système  Ils servent à visualiser un système sous différents angles (utilisateur, administrateur par ex.)  Dans les systèmes complexes, un diagramme ne fournit qu’une vue partielle du système • L’ensemble des diagrammes réunis permet d’obtenir une vue globale du système à concevoir • Chaque diagramme va permettre de modéliser ou spécifier une vue (spécificité) du système à concevoir Méthodologie de 15/11/2011 Conception Orientée Objet 15
  • 16.
    Les 4+1 Vues  Vue des cas d’utilisation  Description du modèle vu par les acteurs du système  Besoins attendus pour chaque acteur  Le QUOI et le QUI  Vue logique  Définition du système vu de l’intérieur  COMMENT satisfaire les besoins des acteurs  Vue d’implémentation  Dépendances entre les modules  Vue des processus  Vue temporelle et technique  Mise en œuvre des notions de tâches concurrentes, synchronisation…  Vue de déploiement  Position géographique et architecture physique de chaque élément  Le OÙ Méthodologie de 15/11/2011 Conception Orientée Objet 16
  • 17.
    Les 4+1 Vues Vue Logique Vue d’implémentation - Classes - Fichiers - Interfaces - Ressources externes - Collaboration Vue des cas d’utilisation - Cas d’utilisation - Acteurs Vue de déploiement Vue des processus - Nœuds - Processus - Threads Méthodologie de 15/11/2011 Conception Orientée Objet 17
  • 18.
    Diagrammes d’UML 2  Diagrammes structurels / statiques (UML Structure)  diagramme de classes (Class diagram)  diagramme d’objets (Object diagram)  diagramme de composants (Component diagram)  diagramme de déploiement (Deployment diagram)  diagramme de paquetages (Package diagram)  diagramme de structures composites (Composite structure diagram)  Diagrammes comportementaux / dynamiques (UML Behavior)  diagramme de cas d’utilisation (Use case diagram)  diagramme d’activités (Activity diagram)  diagramme d’états-transitions (State machine diagram)  diagrammes d’interaction (Interaction diagram) • diagramme de séquence (Sequence diagram) • diagramme de communication (Communication diagram) • diagramme global d’interaction (Interaction overview diagram) • diagramme de temps (Timing diagram) Méthodologie de 15/11/2011 Conception Orientée Objet 18
  • 19.
    Chp1: Introduction auxMéthodologies de Conception LE PARADIGME ORIENTÉ OBJET Méthodologie de 15/11/2011 Conception Orientée Objet 19
  • 20.
    Introduction à l’approche Orientée Objet  Evolution foudroyante du matériel  Premier ordinateur : • 50 tonnes, 25 Kwatts, quelques milliers de positions de mémoire • Quelques composants par circuit  Actuellement : Processeurs avec 2, 4 et jusqu’à 6 cœurs • Quelques grammes, 17 watts, jusqu’à 16 Go de RAM, environs 20 000 MIPS (millions d’instructions par seconde) • 400 millions de transistors Concept clef : la Réutilisation  Evolution lente du logiciel  Les projets informatiques repartent de zéro! 15/11/2011 Solution : Exploiter le concept de réutilisation pour 20 Méthodologie de Conception Orientée Objet
  • 21.
    Objet…?  Définitions :  Entité cohérente rassemblant des données et du code travaillant sur ces données  Structure de données valuées qui répond à un ensemble de messages  Caractérisé par :  son comportement : que peut-on faire avec cet objet? • Méthodes  son état : comment réagit l’objet quand on applique ces méthodes? • Attributs (Champs)  son identité : comment distinguer les objets qui ont le même état et le même comportement? • Identifiant  A les mêmes réactions et la même modularité que le monde réel Méthodologie de 15/11/2011 21  L’objet informatique Orientée projection Conception est une Objet de l’objet du monde
  • 22.
    Classe  Composant de base  Contient la description d’un objet  Modèle de l’objet effectif  Correspond à l’ « idée » qu’on se fait d’un objet  Analogie avec la philosophie platonnienne idéaliste : • « Vous vous promenez dans la campagne, vous croyez avoir rencontré des troupeaux de chevaux. Quelle erreur! (…) Car le Cheval-Modèle, le Cheval-Idée, n’est ni noir ni blanc, il n’est d’aucune race chevaline. Il est cheval pur et vos sens ne vous le montreront jamais… » [Civilisation Grecque – A.Bonnard ]  Voilà, la classe, c’est l’ « idée » du cheval  Un pur sang arabe de couleur noire, dont le nom est ASWAD et qui boîte légèrement, est un objet instancié à partir de cettede Méthodologie classe! 15/11/2011 Conception Orientée Objet 22
  • 23.
    Exemples  Classe  Objet Voiture twingo : Voiture marque couleur marque : Renaut immatriculation couleur : grise immatriculation : 102 102 démarrer conduire arrêter class Voiture { // attributs Voiture twingo = new Voiture( ); String marque; String couleur; String immatriculation; //méthodes void démarrer( ){ } void conduire( ){ } void arrêter( ){ } } Méthodologie de 15/11/2011 Conception Orientée Objet 23
  • 24.
    Concepts fondamentaux de l’approche OO  Caractéristiques de l’approche objet :  Encapsulation  Héritage  Polymorphisme  Agrégation Méthodologie de 15/11/2011 Conception Orientée Objet 24
  • 25.
    Encapsulation  Mécanisme consistant à rassembler, au sein d’une même structure, les données et les traitements  Définition des attributs et méthodes au niveau de la classe  L’implémentation de la classe est cachée pour l’utilisateur  Définition d’une interface : vue externe de l’objet  Possibilité de modifier l’implémentation sans modifier l’interface  Facilité de l’évolution de l’objet  Préservation de l’intégrité des données  L’accès direct aux attributs est interdit  L’interaction entre les objets se fait uniquement grâce aux méthodes Méthodologie de 15/11/2011 Conception Orientée Objet 25
  • 26.
    Encapsulation : Exemple Concepteur Voiture marque couleur Affiche : immatriculation La voiture est démarrée démarrer conduire arrêter Utilisateur J’aimerais créer une nouvelle twingo Voiture twingo = new Voiture( ); Que se passe-t-il si je démarre ma twingo? twingo.démarrer( ); Méthodologie de 15/11/2011 Conception Orientée Objet 26
  • 27.
    Héritage  Un objet spécialisé bénéficie ou hérite des caractéristiques de l’objet le plus général, auquel il rajoute ses éléments propres  Création de nouvelles classes basées sur des classes existantes  Transmission des propriétés (attributs et méthodes) de la classe mère vers la classe fille  Traduit la relation « est un … »  Deux orientations possibles  Spécialisation : Ajout / adaptation des caractéristiques  Généralisation : Regroupement des caractéristiques communes  Possibilité d’héritage multiple  Avantages  Éviter la duplication du code Méthodologie de 15/11/2011  Encourager la réutilisation du code Conception Orientée Objet 27
  • 28.
    Héritage : Exemple Oeuvre généralisation titre auteur Livre Opéra Film ISBN genre_musical réalisateur couverture compositeur bande_originale Roman BD nb_chapitres dessinateur spécialisation Méthodologie de 15/11/2011 Conception Orientée Objet 28
  • 29.
    Polymorphisme  Définition :  Poly : plusieurs  Morphisme : Forme  Faculté d’une méthode à pouvoir s’appliquer à des objets de classes différentes  Capacité d’une classe à redéfinir une méthode héritée à partir d’une classe mère  Surcharge  Avantages  Lisibilité du code  Généricité du code Méthodologie de 15/11/2011 Conception Orientée Objet 29
  • 30.
    Polymorphisme : Exemple Véhicule seDéplacer( ) Train Voiture Bateau seDéplacer( ) seDéplacer( ) seDéplacer( ) seDéplacer(){ seDéplacer(){ seDéplacer(){ Print (« Sur des rails »); Print (« Sur la route »); Print (« Sur l’eau»); } } } Méthodologie de 15/11/2011 Conception Orientée Objet 30
  • 31.
    Abstraction  L’abstraction estla caractérisation d’un objet par une partie publique, une partie privée et une partie implémentation.  L’accès public  L’accès privé  La partie implémentation 31
  • 32.
    Abstraction  Ce conceptd’abstraction engendre deux catégories d’acteurs :  les concepteurs des classes  les utilisateurs des objets  Ces derniers peuvent utiliser les méthodes d’une classe indépendamment de leurs structures internes.  Ils n’utilisent que les signatures des méthodes (interface de l’objet)  Ce qui permet aux concepteurs des classes d’objets de modifier la structure interne des méthodes des classes sans altérer le travail de leurs utilisateurs. 32
  • 33.
    FIN du Chapitre1 Méthodologie de 15/11/2011 Conception Orientée Objet 33
  • 34.
    Agrégation  Relation entre deux classes, de sorte que les objets de l’une soient des composants de l’autre  Traduit la relation « est composé de… » ou «a…»  Toute agrégation est caractérisée par une cardinalité  Combien définit la classe contenante d’instances de la classe contenue?  À combien de classes peut appartenir un objet? 15/11/2011  Avantage Méthodologie de 34 Conception Orientée Objet
  • 35.
    Agrégation : Exemple Roue Relation d’agrégation 4 1 Voiture Moteur 1 roues[ ] 1 moteur châssis 1 Châssis 1 Cardinalité Méthodologie de 15/11/2011 Conception Orientée Objet 35