INTRODUCTION AUX
MÉTHODOLOGIES DE
CONCEPTION
1
MCOO–Chapitre
Plan
Introduction aux systèmes d’information
Introduction à la conception
Le langage UML
Le paradigme Objet
Méthodologie de
Conception Orientée Objet 2
Chp1: Introduction aux Méthodologies de Conception
LES SYSTÈMES
D’INFORMATION
Méthodologie de
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
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
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
Adéfinir sur 3 axes
• Savoir-faire de l’objet axefonctionnel
• Structure de l’objet axestatique
• Cycle de vie de l’objet axedynamique
Conception
Apport de solutions techniques: architecture, performance et
optimisation
Définition des structures et des algorithmes
Méthodologie de
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
Conception Orientée Objet 7
Chp1: Introduction aux Méthodologies de Conception
ÉTAPE DE CONCEPTION
Méthodologie de
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
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
Conception Orientée Objet 1
0
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 communiquer
Méthodologie de
Conception Orientée Objet 1
1
Chp1: Introduction aux Méthodologies de Conception
UML: UNIFIED MODELING
LANGUAGE
Méthodologie de
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
• OOSEde Ivar Jacobson: description des besoins de l’utilisateur
Méthodologie de
Conception Orientée Objet 13
UML
Consensus entre les « 3Amigos » pour créer une méthode
commune:
UML: Unified Modeling Language (Langage de Modélisation Unifié)
1997: Définition de la norme UMLcomme standard de
modélisation des systèmes d’information objet par l’OMG
(Object Management Group)
UMLest 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
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
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 16
Conception Orientée Objet
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
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
Conception Orientée Objet 18
Chp1: Introduction aux Méthodologies de Conception
LE PARADIGME ORIENTÉ
OBJET
Méthodologie de
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!
Solution : Exploiter le concept de réutilisation pour le logiciel
Approche orientée objet
Méthodologie de
Conception Orientée Objet 20
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
Ales mêmes réactions et la même modularité que le monde réel
L’objet informatique est une projection de l’objet du monde réel
Méthodologie de
Conception Orientée Objet 21
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 :
• « Vousvouspromenezdansla campagne, vouscroyezavoirrencontrédes troupeaux
dechevaux. Quelleerreur!(…) Carle Cheval-Modèle, le Cheval- Idée,n’est ni
noir ni blanc,il n’est d’aucune [Link] est cheval pur et vossens ne
vous le montreront jamais… » [Civilisation Grecque– [Link] ]
Voilà, la classe, c’est l’ « idée » du cheval
Un pur sang arabe de couleur noire, dont le nom estASWAD et
qui boîte légèrement, est un objet instancié à partir de cette
classe!
Méthodologie de
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
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
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
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-‐ilsije
démarre ma twingo?
twingo.démarrer( );
Méthodologie de
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
Encourager la réutilisation du code
Méthodologie de
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
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
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
Conception Orientée Objet 30
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?
Avantage
Partir d’objets de base pour construire des objets complexes
Méthodologie de
Conception Orientée Objet 31
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
Conception Orientée Objet 32