IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti à UML 3. Rappel de quelques concepts objets p.2 1
6.1.1. Vers une approche orientée objets Approche classique DFD-0 F0 Objet C Données + Traitements DFD-1 DFD-2 F4 F1 F5 F2 F6 F7 Données AB F3 F8 Objet A Données + Traitements Message Objet B Données + Traitements Message Données A Données B Approche orientée objets p.3 Vers une approche orientée objets Pour exploiter les concepts objets pour l analyse et la conception Définir un langage (syntaxe, sémantique) pour exprimer les concepts objets Définir une démarche d analyse et de conception par les objets pour Avoir une cohérence entre le paradigme de programmation par les objets (non utilisation de l approche structurée) Définir des vues qui couvrent tous les aspects d un logiciel à objets p.4 2
Vers une approche orientée objets Besoin d une méthodologie de développement orientée objets MÉTHODOLOGIE = Techniques + Modèles (notation) + Outils p.5 6.1.2. Introduction à UML p.6 Mé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 apparues Exemples : Booch, Classe Relation, Fusion, HOOD, OMT, OOA, OOD, OOM, OOSE Aucune ne couvre réellement tout le cycle de développement 3
Les premiers consensus (1995) OMT (James Rumbaugh) : vues statiques, dynamiques et fonctionnelles Diagrammes de classes, séquences, OOD (Grady Booch) : vues logiques et physiques Introduit le concept de paquetage (élément d'organisation des modè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 Diagramme de cas d utilisation p.7 Fusion et synthèse de méthodes dominantes: Unified Modeling Language UML 2.0 (2004) Standardisation par l OMG UML 1.0 (Janvier 97) UML 1.1 (Septembre 97) UML 0.9 (96) UML 0.8 (95) Autres méthodes Booch OMT OOSE Partenaires industriels p.8 4
UML 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 ) p.9 UML c est Un support de communication qui facilite la représentation et la compréhension Notation graphique : facilite la comparaison et l'évaluation de solutions Notation rigoureuse : limite les ambiguïtés et les incompréhensions Notation abstraite : indépendante des langages de programmation, domaines d'application et processus de développement p.10 5
UML c est Un cadre d analyse par les objets Différents types de diagrammes pouvant être regroupés pour offrir différentes vues L analyse et la conception se font graduellement par l élaboration et le raffinement de modèles Pas de barrière stricte entre analyse et conception Les 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 prototype p.11 Diagrammes 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 l un participant au développement voit le logiciel Combinaison de diagrammes intéressant (pour) un participant p.12 6
structure implémentation Utilisateur comportement environnement p.13 Diagramme d objets Diagrammes UML et vues Diagramme de classes structure Diagramme de cas d utilisation implémentation Diagramme de composants Diagramme de collaboration comportement Utilisateur environnement p.14 Diagramme de séquence Diagramme d états Diagramme d activités Diagramme de déploiement 7
Vue utilisateur Les vues de UML Dé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 structurelle Dé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 comportementale Dé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 p.15 Les vues de UML Vue implémentation Décrit les aspects de structure et de comportement de la solution Description de la réalisation, de l organisation en composants, des contraintes de développement Vue environnementale Décrit les aspects de structure et de comportement du domaine dans lequel la solution est réalisée Décrit les ressources matérielles (disposition, nature, performance) et comment elles sont utilisées par le logiciel p.16 8
Les diagrammes de UML Deux grandes catégories de diagrammes Diagrammes 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 particulier Diagramme de composants : montre l'architecture physique du logiciel et l'affectation des objets aux différents composants de cette architecture Diagramme de déploiement : montre la configuration des différents composants à l'exécution et leur distribution p.17 Les diagrammes de UML Deux grandes catégories de diagrammes Diagrammes 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 logiciel Diagramme de séquence : montre l'échange de messages entre objets en fonction du temps Diagramme 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) p.18 9
UML n est toutefois pas une méthodologie, ni un processus de développement : c est cest un ensemble de notations 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 p.19 Processus 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ération Tout au long de l analyse et de la conception Compléter le modèle par de nouveaux diagrammes Raffiner les diagrammes déjà développés pour graduellement réduire leur degré d abstraction Développer des prototypes Valider le système par rapport aux cas d utilisation spécifiés p.20 10
Élaboration des diagrammes pendant l analyse et la conception En phase d analyse Développement des diagrammes de cas d utilisation, de classes, de séquence (ou collaborations), d activités, d états Phase de conception Raffinement des diagrammes de l analysel Développement des diagrammes de composants et de déploiement, ainsi que l architecture en packages. p.21 Références Documentation sur UML www.rational.com/uml/resources/documentation/index.jsp Rational Unified Process : Best practices for Software Development teams Quelques outils CASE supportant UML Commerciaux : Rational Rose, Together TogetherJ, NoMagic MagicDraw, I-Logix Rhapsody, Objecteering Objecteering/UML, Embarcadero Describe, PragSoft UML Studio Gratuits : Poseidon, ArgoUML, ClassBuilder Disponible au DIRO : Rational Rose Se connecter à une machine sous Linux Taper «inclure rose» Démarrer à l aide de la commande «rose &» p.22 11
6.1.3. Rappel de quelques concepts objets Objet Caractéristiques i ti Un état Poil gris-vert, yeux bruns, heureux, nommé Estomac Un comportement Miauler, courir, sauter, manger Identité Estomac_le_chat_de_PierreTremblay_NAS_999999999 Deux objets peuvent être égaux mais ne sont jamais identiques Estomac_le_chat_de_PierreTremblay_NAS_999999999 p.23 Rappel de quelques concepts objets Classe Description i 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 type Partie P publique : interface Classe Chat Partie cachée : implantation Instance : objet crée de la classe Le chat Adrien est une instance de la classe Chat p.24 12
Rappel de quelques concepts objets Héritage Relation l entre deux classe Sémantique de l héritage Enrichissement Substitution Type d héritage Simple (hiérarchie) Multiple (risques de conflits) Classe Félin Classe Chat p.25 Rappel de quelques concepts objets Message Communication i entre deux instances Instance émettrice Nom de l opération Arguments et paramètres de sortie roger fido.attrape(ballon) p.26 13
Rappel de quelques concepts objets Variable, méthode d instance Variable, méthode de classe p.27 Rappel de quelques concepts objets Polymorphisme et liaison dynamique Aptitude d d'un même message à déclencher des opérations différentes selon le type dynamique (au moment de l exécution) de l instance auquel il est destiné Surcharge Dans une classe, un même nom est employé pour définir deux opérations (ou attributs) de signatures différentes p.28 14