Upload
phamcong
View
214
Download
0
Embed Size (px)
Citation preview
1
Julie Vachon, Hiver 2006
IFT2251 :Génie logiciel
Chapitre 4 - Analyse orientée objetsSection 1. Introduction à UML
Chap.4, Sect.1, p.2 Copyrights Julie Vachon, 2006
4.1. Introduction à UML1. Approches de développement2. Introduction à UML (une méthodologie
basée sur l’approche orientée aspect)3. Rappel de quelques concepts objets
Chap.4, Sect.1, p.3 Copyrights Julie Vachon, 2006
4.1.1 Approches de développementLa personnalisation du modèle de processus de
développement implique le choix d’une méthodologie de développement:
Processus : Gère l’organisation générale du projet et l’ordonnancement des activités.Méthodologie: Démarche complète (modèles, techniques, outils) à suivre pour réaliser chaque activité du cycle de vie du système à développer.
méthodologie
Processus de développement
Chap.4, Sect.1, p.4 Copyrights Julie Vachon, 2006
Méthodologie
modèles
outils
techniques
méthodologieDiagramme entité-associtationDiagramme de flot de donnéesDiagramme de classesDiagramme d’activitésEtc.
Atelier de génie logiciel (outil CASE)Application de gestion de projetTraitement de texte et éditeurOutil de génération de codeOutil de réingénérieEtc.
Technique de gestion de projetTechnique d’entrevue des utilisateursTechnique de modélisationTechnique de programmationEtc.
2
Chap.4, Sect.1, p.5 Copyrights Julie Vachon, 2006
Approche de développement
Les méthodologies reposent sur une « approche » i.e. une façon particulière de concevoir les choses…Deux grandes approches existent
Presque toutes les méthodologies se basent sur l’une ou l’autre de ces approches.
Chap.4, Sect.1, p.6 Copyrights Julie Vachon, 2006
Vers une approche orientée objets
P4
P5 P6
P7P8
Données A Données B
Objet ADonnées +
Traitements
Objet BDonnées + Traitements
Objet CDonnées + Traitements
Message
Message
Approche orientée objets
Approche classique
Chap.4, Sect.1, p.7 Copyrights Julie Vachon, 2006
Approche axée sur la conception modulaire et la programmation structurée.
Méthodologies classiques:SADT (Structured Analysis and Design Techniques) OU approche structuréeJSD (Jackson System Development)Technique de l’information (James Martin)Merise, Axial, IE, etc.
Chap.4, Sect.1, p.8 Copyrights Julie Vachon, 2006
Approche structurée
Méthode de développement d’un système utilisant des techniques
d’analyse structurée (1960)de conception structurée (1970)de programmation structurée (1960)
3
Chap.4, Sect.1, p.9 Copyrights Julie Vachon, 2006
Approche structurée
Analyse structurée Diagramme entité - associationDiagramme de flot de données
Dictionnaire
Conceptionstructurée
OrganigrammeStructurogramme
Programmation structurée(au moyen de structures
de programmation)Pseudo-code
Anglais structuréGraphique d’acheminement
Chap.4, Sect.1, p.10 Copyrights Julie Vachon, 2006
RemarquesCritiques:
Ensemble de techniques nécessitant d’être plus complètes et rigoureusesAnalyse et conception idéalisées (cascade…)Accent sur les processus, au détriment des donnéesAbsence de planification stratégique…
Approche qui a évoluée avec le temps: différentes variantes sont nées.
Chap.4, Sect.1, p.11 Copyrights Julie Vachon, 2006
Approche de développement qui voit un système comme une collection d’objets interdépendants qui fonctionnent de concert pour exécuter des
tâches.
Chap.4, Sect.1, p.12 Copyrights Julie Vachon, 2006
L’approche objet d’hier à aujourd’huiLes concepts objet sont stables et éprouvés (issus du terrain)
1967: Simula, implémente le concept de type abstrait de données (à l'aide de classes).1976: Smalltalk implémente les concepts fondateurs de l'approche objet (encapsulation, agrégation , héritage) à l'aide de : classes, associations entre classes, hiérarchies de classes, messages entre objets, etc.1980: 1er compilateur C++, normalisé par l'ANSI.
Ensuite: de nombreux langages orientés objets académiques ont étayé les concepts objets : Eiffel, Objective C, Loops...
4
Chap.4, Sect.1, p.13 Copyrights Julie Vachon, 2006
Méthodologies orientées objets
UML (notation)Booch, Classe-Relation, Fusion, HOOD, OMT, OOA, OOD, OOM, OOSE…
Chap.4, Sect.1, p.14 Copyrights Julie Vachon, 2006
Chap.4, Sect.1, p.15 Copyrights Julie Vachon, 2006
Analyse orientée objets:Définir tous les types d’objets qui sont manipulés par le système (les entités)identifier toutes les interactions avec le systèmemontrer comment les objets se comportent.
Conception orientée objets:Définir tous les types d’objets nécessaires pour communiquer avec les utilisateurs et les périphériques (interfaces) et pour contrôler l’exécution des tâches dans le système (contrôleurs).Identifier les packages, les composants, l’architecture.Raffiner la définition de chaque type d’objet de façon à pouvoirl’implanter avec un langage de programmation.
Programmation orientée objets:Écrire les instructions dans un langage de programmation pour définir ce que fait chaque type d’objets, y compris les messagesque les objets se transmettent les uns aux autres.
Chap.4, Sect.1, p.16 Copyrights Julie Vachon, 2006
Analyse orientée objetsDiagramme de classes
Diagramme de cas d’utilisationDiagramme d’interactionDiagramme d’activités
Diagramme d’états
Programmation orientée objets
Instructions (Java, C++SmallTalk, etc.)
Conception orientée objetsDiagramme de classes
Diagramme de cas d’utilisationDiagramme d’interactionDiagramme d’activités
Diagramme d’étatsDiagramme de composantsDiagramme de déploiement
5
Chap.4, Sect.1, p.17 Copyrights Julie Vachon, 2006
RemarquesAvantages:
Approche plus intuitive (?)Réutilisation
Critiques:Approche ne convient pas toujours au type de bases de données utilisées (bases de données relationnelles)La frontière entre les phases d’analyse et de conception pas très bien définie.
Chap.4, Sect.1, p.18 Copyrights Julie Vachon, 2006
On parle ici de processus, de procédures & routines, types de données abstraits, de flots
de données
Séparation des données et des processus qui les traitent.« Diviser pour régner »Conception par décomposition et factorisation des processus.
On parle ici d’objets, de méthodes, d’attributs,
d’encapsulation, d’envoi de message (interactions).
Encapsulation des données et leurs traitements dans une même unité.Penser en termes d’objets qui s’envoient des messages
Chap.4, Sect.1, p.19 Copyrights Julie Vachon, 2006
Outils de développementOutils CASE (atelier de génie logiciel)
Outil de génie logiciel assisté par ordinateur conçu pour aider l’analyste à réaliser des tâches de développement.
Saltzinger et al.
p.94-99Chap.4, Sect.1, p.20 Copyrights Julie Vachon, 2006
Vers une approche orientée objetsPour exploiter les concepts objets pour l’analyse et la conceptionDéfinir un langage (syntaxe, sémantique) pour exprimer les concepts objetDéfinir une démarche d’analyse et de conception objet pour
Éviter de retomber dans une analyse fonctionnelleDéfinir des vues qui couvrent tous les aspects d’un logiciel à objets
6
Chap.4, Sect.1, p.21 Copyrights Julie Vachon, 2006
Vers une approche orientée objetsBesoin d’une méthodologie de développement orientée objets
MÉTHODOLOGIE
=
Techniques +
Modèles (notation) +
Outils
N.B. Une méthodologie n’est pas un processus de développement
Chap.4, Sect.1, p.22 Copyrights Julie Vachon, 2006
4.1.2. Introduction à UMLMéthodologies existantes
Les premières méthodologies d'analyse (c.1970)Découpe cartésienne (fonctionnelle et hiérarchique)Exemples : méthode structurée, de Jackson
L'approche systémique (c.1980)Modélisation des données et des traitements Exemples : Merise, Axial, IE
L'émergence des méthodologies objets (c.1990)Plus de 50 méthodes objet sont apparuesExemples : Booch, Classe–Relation, Fusion, HOOD, OMT, OOA, OOD, OOM, OOSE
Aucune ne s'est réellement imposée
Chap.4, Sect.1, p.23 Copyrights Julie Vachon, 2006
Introduction UMLLes premiers consensus (1995)
OMT (James Rumbaugh) : vues statiques, dynamiques et fonctionnelles
À inspiré les diagrammes de classes
OOD (Grady Booch) : vues logiques et physiquesIntroduit le concept de paquetage (élément d'organisation des modèles)À inspiré les diagrammes de composants, de déploiement, de collaboration
OOSE (Ivar Jacobson) : couvre tout le cycle de développement
Repose sur l'analyse des besoins des utilisateursÀ inspiré les diagramme de cas d’utilisation
Chap.4, Sect.1, p.24 Copyrights Julie Vachon, 2006
Introduction UMLFusion et synthèse de méthodes dominantes: Unified Modeling Language
Autres méthodes Booch OMT OOSE Partenaires industriels
UML 0.8 (95)
UML 0.9 (96)
UML 1.0 (Janvier 97)
UML 1.1 (Septembre 97)Standardisation
par l’OMG
UML 2.0 (2004)UML 1.5 (Septembre 03)
7
Chap.4, Sect.1, p.25 Copyrights Julie Vachon, 2006
Introduction UMLUML c’est…
Une norme (OMG)Un langage visuel de modélisation pseudo-formel (rigoureux, non formel)
Diagrammes et éléments de modélisation (classes, association, agrégation, package…)
Chap.4, Sect.1, p.26 Copyrights Julie Vachon, 2006
Introduction UMLUML c’est …
Un support de communication qui facilite la représentation et la compréhension
Notation graphique : facilite la comparaison et l'évaluation de solutionsNotation rigoureuse : limite les ambiguïtés et les incompréhensionsNotation abstraite : indépendante des langages de programmation, domaines d'application et processus de développement
Chap.4, Sect.1, p.27 Copyrights Julie Vachon, 2006
Introduction UMLUML c’est …
Un cadre d’analyse par objetsDifférents types de diagrammes pouvant être regroupés pour offrir différentes vuesL’analyse et la conception se font graduellement par l’élaboration de modèles
Pas de barrière stricte entre analyse et conceptionLes modèles d'analyse et de conception ne diffèrent que par leur niveau d’abstraction (ajout de détails)
Approprié pour une approche de développement incrémentale et itérative
Ajout de diagrammes, raffinement, construction de prototypeChap.4, Sect.1, p.28 Copyrights Julie Vachon, 2006
Introduction UMLDiagrammes UML et vues
Modèle UML = Ensemble de diagrammes décrivant le logiciel développéLe modèle UML d’un logiciel peut être étudié sous différentes perspectives appelées « vues »Vue = Angle particulier sous lequel un participant au développement voit le logiciel
Combinaison de diagrammes intéressant (pour) un participant
8
Chap.4, Sect.1, p.29 Copyrights Julie Vachon, 2006
Introduction UML
Utilisateur
structure implémentation
comportement environnement
Chap.4, Sect.1, p.30 Copyrights Julie Vachon, 2006
Introduction UMLDiagrammes UML et vues
Utilisateur
structure implémentation
comportement environnement
Diagramme de classes
Diagramme d’objets
Diagramme de cas d’utilisation
Diagramme de composants
Diagramme de déploiementDiagramme
d’activitésDiagramme d’états
Diagramme de collaboration
Diagramme de séquence
Chap.4, Sect.1, p.31 Copyrights Julie Vachon, 2006
Introduction UMLLes vues de UML
Vue utilisateurDéfinit les buts et objectifs des utilisateurs du logiciel.Définit les besoins (services & contraintes) requis par la solution.Vue unificatrice des autres vues en ce sens qu’elle sert de référence à leur validation.
Vue structurelleDécrit les aspects statiques représentant la structure du logiciel.Identification des éléments du domaine (classes, attributs, paquetages) et des relations (association, compositions, dépendance) entre eux
Vue comportementaleDécrit les aspects dynamiques et le comportement du logiciel.Spécifie les interactions et collaborations entre éléments du système.Montre la décomposition du logiciel en termes de processus, d’interactions entre processus, de synchronisation et de communication entre activités
Chap.4, Sect.1, p.32 Copyrights Julie Vachon, 2006
Introduction UMLLes vues de UML
Vue implémentationDécrit les aspects de structure et de comportement de la solutionDescription de la réalisation, de l’organisation en composants, des contraintes de développement
Vue environnementaleDécrit les aspects de structure et de comportement du domaine dans lequel la solution est réaliséeDécrit les ressources matérielles (disposition, nature, performance) et comment elles sont utilisées par le logiciel
9
Chap.4, Sect.1, p.33 Copyrights Julie Vachon, 2006
Introduction UMLLes diagrammes de UML
Deux grandes catégories de diagrammesDiagrammes décrivant les aspects statiques
Diagramme de classes : décrit les « données » du logiciel (structure, traitements, relations, contraintes, rôles)Diagramme d’objets : diagramme de classes instancié utilisé pour illustrer un exemple particulierDiagramme de composants : montre l'architecture physique du logiciel et l'affectation des objets aux différents composants de cette architectureDiagramme de déploiement : montre la configuration des différents composants à l'exécution et leur distribution
Chap.4, Sect.1, p.34 Copyrights Julie Vachon, 2006
Introduction UMLLes diagrammes de UML
Deux grandes catégories de diagrammesDiagrammes décrivant les aspects dynamiques
Diagramme de cas d’utilisation : montre à un haut niveau d'abstraction une collection de cas d'utilisation caractérisant le comportement de tout le logicielDiagramme de séquence : montre l'échange de messages entre objets en fonction du tempsDiagramme de collaboration : s'intéresse à la structure de collaboration entre les objets (séquence, itération, concurrence)Diagramme d’états : permet de décrire le comportement dynamique d'un objet (changements d’états)Diagramme d’activités : montre l'ensemble des traitements associés à une classe, une opération ou à un cas d'utilisation (workflow)
Chap.4, Sect.1, p.35 Copyrights Julie Vachon, 2006
Introduction UMLUML ce n’est toutefois pas une méthodologie, ni
un processus de développement : c’est une notation de modélisation.
Le choix du processus de développement dépend des contraintes et du domaine de l’application
Les auteurs de UML suggèrent l’utilisation d’un processus de nature incrémentale, itérative et dirigé par les besoins de l’utilisateur
Chap.4, Sect.1, p.36 Copyrights Julie Vachon, 2006
Introduction UMLProcessus de développement suggéré
Comment développer un logiciel avec UML ?Processus itératif et incrémental
On développe un modèle UML, soit un ensemble de diagrammes de différents types.
À chaque itérationCompléter le modèle par de nouveaux diagrammesRaffiner les diagrammes déjà développés pour graduellement réduire leur degré d’abstractionDévelopper des prototypesValider le système par rapport aux cas d’utilisation spécifiés
Tout au long de l’analyse et de la conception
10
Chap.4, Sect.1, p.37 Copyrights Julie Vachon, 2006
Introduction UMLÉlaboration des diagrammes pendant l’analyse et la conception
En phase d’analyseDéveloppement des diagrammes de cas d’utilisation, de classes, de séquence (ou collaborations), d’activités, d’états
Phase de conceptionRaffinement des diagrammes de l’analyseDéveloppement des diagrammes de paquetages, de composants, et de déploiement.
Chap.4, Sect.1, p.38 Copyrights Julie Vachon, 2006
Introduction UMLRéférences
Documentation sur UMLwww.rational.com/uml/resources/documentation/index.jsp
Rational Unified Process : Best practices for Software DevelopmentteamsQuelques outils CASE supportant UML
Commerciaux : Rational Rose, Together TogetherJ, NoMagic MagicDraw, I-Logix Rhapsody, Objecteering Objecteering/UML, Embarcadero Describe, PragSoft UML StudioGratuits : Poseidon, ArgoUML, ClassBuilderDisponible au DIRO : Rational Rose
Se connecter à une machine sous LinuxTaper « inclure rose »Démarrer à l’aide de la commande « rose & »
Chap.4, Sect.1, p.39 Copyrights Julie Vachon, 2006
4.1.3. Rappel de quelques concepts objets
ObjetCaractéristiques
Un état Poil gris-vert, yeux bruns, heureux, nommé_Adrien
Un comportement Miauler, courir, sauter, manger
IdentitéAdrien_le_chat_de_PierreTremblay_NAS_999999999Deux objets peuvent être égaux mais ne sont jamais identiques
Adrien_le_chat_de_PierreTremblay_NAS_999999999
Chap.4, Sect.1, p.40 Copyrights Julie Vachon, 2006
Rappel de quelques concepts objets
ClasseDescription générale d’un ensemble d’objets
Attributs (état)Opérations (comportements)
Moule (prototype) général sur lequel on crée des objets du même typePartie publique : interfacePartie cachée : implantationInstance : objet crée de la classe
Le chat Adrien est une instance de la classe Chat
Classe Chat
11
Chap.4, Sect.1, p.41 Copyrights Julie Vachon, 2006
Rappel de quelques concepts objets
HéritageRelation entre deux classeSémantique de l’héritage
Enrichissement Substitution
Type d’héritageSimple (hiérarchie)Multiple (risques de conflits)
Classe Chat
Classe Félin
Chap.4, Sect.1, p.42 Copyrights Julie Vachon, 2006
Rappel de quelques concepts objets
MessageCommunication entre deux instances
Instance émettriceNom de l’opérationArguments et paramètres de sortie
fido.attrape(ballon)
roger
Chap.4, Sect.1, p.43 Copyrights Julie Vachon, 2006
Rappel de quelques concepts objets
Variable, méthode d’instance
Variable, méthode de classe
Chap.4, Sect.1, p.44 Copyrights Julie Vachon, 2006
Rappel de quelques concepts objets
Polymorphisme et liaison dynamique Aptitude d'un même message à déclencher des opérations différentes selon le type dynamique (type réel) de l’instance auquel il est destiné
SurchargeDans une classe, un même nom est employé pour définir deux opérations (ou attributs) de signatures différentes
12
Chap.4, Sect.1, p.45 Copyrights Julie Vachon, 2006
Parmi les objectifs d’apprentissageExpliquer ce qu’est une méthodologie.Expliquer la distinction entre processus de développement, méthodologie, modèle, technique et outil.Décrire les techniques et identifier quelques modèles de l’approche structurée.Décrire les techniques et identifier quelques modèles de l’approche orientée objets.Expliquer les différences conceptuelles entre l’approche structurée et l’approche orientée objets.Expliquer ce qu’est un atelier de génie logiciel et comment cet outil est utilisé pour le développement de systèmes.