La modélisation avec UML

Slides:



Advertisements
Présentations similaires
Langage de modélisation objet unifié
Advertisements

Génie Logiciel 2 Julie Dugdale
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Modélisation II.
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Le processus unifié UML est un langage de modélisation et n ’impose pas de démarche de développement Le processus unifié : méthodologie de développement.
Diagram-Based Techniques
UML - Présentation.
UML (Unified Modeling Langage)
Introduction à la POO: Les classes vs les objets
Diagrammes de communication
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
Initiation au système d’information et aux bases de données
Initiation au système d’information et aux bases de données
Présentation SysML (Systems Modeling Language ) est basé sur UML et remplace la modélisation de classes et d'objets par la modélisation de blocs pour un.
Diagramme de Classes Bonjour,
La programmation Orienté Objet
Introduction au Génie Logiciel
le profil UML en temps réel MARTE
Analyse et Conception des Systèmes d’Informations
Analyse et Conception orientée objet
Initiation à la conception de systèmes d'information
Réalisée par :Samira RAHALI
Modélisation E/R des Données
Introduction à la conception de Bases de Données Relationnelles
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 5: Modelling with Classes.
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
RDF(S)
Outils pour la modélisation des systèmes distribués
Analyse et conception orientée objet
SYSTEMES D’INFORMATION
Unified Modeling Langage
1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.
Hiver 2011SEG Chapître 11 Chapître 1 (partie 1) Revision de cours précédants Sujet 1: Le processus de développement de logiciel.
Initiation à la conception des systèmes d'informations
Portée, arrimages et intervenants Évolution des méthodes
Sensibilisation a la modelisation
Patrons de conceptions de créations
Paradigmes des Langages de Programmation
UML - Présentation.
Les principes de la modélisation de systèmes
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
UML : un peu d’histoire H. Lounis.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Unified Modeling Langage
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
2 Processus de conception de BD
Unified Modeling Language
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
( ) Collège de Maisonneuve
Chapitre 5 Les diagrammes d’interaction (collaboration et séquence)
2 Tracks Unified Process
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
(UML) Unified Modeling Language
Nouvelles Technologies Internet & Mobile
Les concepts d’UML - Le Processus Unifié -
UML : DIAGRAMME DE CLASSES
Introduction à la Programmation Orientée Objet
UML support à la COO 2ème année IUT Calais-Boulogne Bénédicte Talon
TP D’UML Groupe N° 3.
La Modélisation : représenter la réalité dans un système informatisé
Document de spécification d’exigences Normes IEEE et 29148:2011
Les bases de données Séance 2 Méthodologies d’analyse.
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
UML Unified Modeling Language. UML : 8 diagrammes 1.Classes 2.Activités 3.Séquences 4.Collaboration 5.Etats transition 6.Cas d’utilisation 7.Composants.
Transcription de la présentation:

La modélisation avec UML

Qu’est-ce que UML? Le « Unified Modelling Language » est un langage graphique pour la modélisation par objets Vers la fin des années 1980, début 1990 apparaissent les premiers processus de développement orienté-objet La prolifération des méthodes et notations alors introduites est la cause de grande confusion Deux méthodologistes bien connus, Rumbaugh et Booch décident de fusionner leurs approches en 1994. Ils travaillent ensemble à la corporation Rational Software En 1995, un autre méthodologiste, Jacobson, se joint à l’équipe Son travail met l’emphase sur l’analyse par cas d’usage En 1997, le « Object Management Group » (OMG) lance le processus de standardisation UML

Les diagrammes UML Diagrammes de classes Diagrammes d’interactions décrit les classes et leurs interrelations Diagrammes d’interactions montre le comportement du systèmes par l’interaction des objets qui le compose Diagramme d’états montre comment le système se comporte de façon interne Diagramme de composantes et de déploiement montre comment les différentes composantes du système sont organisés physiquement et logiquement

Caractéristiques de UML Une sémantique détaillée Un mécanisme intégré d’extension Un langage textuel associé utilisé pour la description des contraintes L’objectif de UML est d’assister le développement du logiciel Ce n’est pas une méthodologie

Un bon modèle, c’est quoi? Un bon modèle devrait utiliser une notation standard être compris des clients et utilisateurs permettre aux ingénieurs logiciel de bien saisir le système procurer une vue abstraite du système Les modèles sont utilisés pour: faciliter la création de designs permettre l’analyse et la révision des ces designs constituer la base de la documentation du système

Éléments essentiels des diagrammes de classe de UML Les principaux symboles présents dans les diagrammes de classes sont: Les classes Représentant les types de données disponibles Les associations Représentant les liens entre les instances des classes Les attributs De simples données se trouvant dans les classes et leurs instances Les opérations Représentant les fonctions exécutées par les classes et leurs instances Les généralisations Groupant les classes en hiérarchie d’héritage

Les classes Une classe se représente à l’aide d’une boîte comprenant le nom de la classe Le diagramme peut aussi montrer les attributs et les opérations operationName(parameterName: parameterType …): returnType

Associations et Multiplicité Une association est utilisée afin de montrer comment deux classes sont liées entre elles Différents symboles sont utilisés pour indiquer la multiplicité à chaque extrémité d’une association

Étiqueter les associations Une association peut être étiquettée afin de rendre explicite la nature de cette association

Analyser et valider les associations Une à plusieurs Une compagnie a plusieurs employés Un employé ne peut travailler que pour une seule compagnie Qu’en est-il des employés occupant un double emploi! Une compagnie peut n’avoir aucun employé Un employé associé à une compagnie travaille pour cette compagnie worksFor Employee 1 * Company

Analyser et valider les associations Plusieurs à plusieurs Un(e) secrétaire peut travailler pour plusieurs superviseurs Un superviseur peut avoir plusieurs secrétaires Les secrétaires peuvent travailler en équipes Les superviseurs peuvent avoir recours à un groupe de secrétaires Certains superviseurs peuvent n’avoir aucun(e) secrétaires Est-il possible qu’un(e) secrétaire puisse se retrouver, ne serait-ce que temporairement, sans superviseur? * supervisor 1..* Assistant Manager

Analyser et valider les associations Une à une A chaque compagnie est associé un conseil d’administration Un conseil d’administration gère une seule compagnie Une compagnie doit avoir un conseil d’administration Un conseil d’administration est toujours attaché à une et une seule compagnie 1

Analyser et valider les associations Attention aux associations une-à une injustifiées Éviter ceci Cela est préférable

Un exemple plus complexe Une réservation est pour un passager Pas de réservations sans passager Une réservation ne devrait jamais compter plus d’un passager Un passager peut effectuer plusieurs réservations Un passager peut aussi n’avoir fait aucune Le cadre autour du diagramme est une nouvelle option de UML 2.0

Association directionnelle Les associations sont, par défaut, bi- directionnelles Il est toutefois possible de donner, à l’aide d’une flèche, une direction à une association

5.4 Généralisation Une super-classe se spécialise en sous-classes

Éviter les généralisations inutiles Exemple de hiérarchie inappropriée Éviter les généralisations inutiles

Hiérarchie à plusieurs niveaux En créant des généralisations à plusieurs niveaux

Éviter les changements de classes En fait, une instance ne peut jamais changer de classes

Le processus de développement des diagrammes de classes Des diagrammes UML sont créés à différents moments et à différents niveaux de détails Modèle exploratoire du domaine: Développé durant l’analyse de domaine dans le but d’en apprendre un peu plus sur le domaine Modèle du domaine appartenant au système: Afin de modéliser certains aspects du domaine faisant partie du système Modèle du système: Inclut les toutes les classes, y incluant les classes d’architecture des interfaces utilisateurs

Séquence d’activités suggérée Identifier un premier ensemble de classes candidates Ajouter les associations et attributs Trouver les généralisations Lister les responsabilités principales de chacune des classes Décider quelles seront les opérations Effectuer quelques itérations jusqu’à satisfaction: Ajouter ou retirer des classes, associations, attributs, généralisations, responsabilités ou opérations Il ne faut être ni trop rigide ni trop désorganisé

Identifier les classes Lors du développement du modèle du domaine, les classes sont découvertes Lorsque le reste du système est élaboré, de nouvelles classes sont inventées Ce sont les classes requises pour obtenir un système fonctionnel L’invention de classes peut se produire à n’importe quel stage du développement La réutilisation doit toujours demeurer une priorité Les cadres d’application Les possibles extensions du système Les systèmes similaires

Une technique simple pour découvrir les classes du domaines Examiner un document écrit telle qu’une description des exigences Extraire les noms et en faire des classes candidates Éliminer les noms qui: sont redondants représentent des instances sont vagues ou trop généraux sont inutiles dans le contexte de l’application Porter attention aux classes qui, dans le domaine, représentent des catégories d’utilisateurs.

Identifier les associations et les attributs Débuter avec les classes considérées centrales dans le système. Déterminer les données que chacune de ces classes devrait contenir et les relations avec les autres classes. Ajouter graduellement les autres classes. Éviter d’ajouter trop d’attributs ou d’associations à une classe Un système manipulant peu d’information est toujours plus facile à maitriser

Quelques trucs permettant d’identifier des associations Une association devrait exister si une classe possède contrôle est connecté à est relié à est une partie de est fait de parties de est membre de a comme membres une autre classe dans le modèle Spécifier ensuite la multiplicité à chaque extrémité de l’association Étiquetter clairement cette association

Identifier les attributs Déterminer l’information qui doit être maintenu dans chacune des classes Plusieurs noms ayant été rejetés comme classes deviennent alors des attributs Un attribut contient en général une valeur simple E.g. chaîne de caractères, nombre

5.11 Difficultés et risques dans la création des diagrammes de classes La modélisation est partoculièrement difficile Même d’excellents programmeurs peuvent avoir de la difficulté à réfléchir au bon niveau d’abstraction La formation traditionnelle met l’accent sur le design et la programmation plutôt que sur la modélisation Remède Assurer que les membres de l’équipe recoivent une formation appropriée Des modeleurs expérimentés devrait être présents dans l’équipe Réviser les modèles créés avec soin

Modèle de Domaine– Exercice Un pays a une seule capital et une capitale peut juste appartenir à un seul pays. Pays Modèle de domaine 1 Capital Un pays est dans une planète et une planète consiste de zero, un, ou plusieurs pays. Capitale Country 0..* 1 1..* 1 0..* Un pays a zero, une ou plusieurs rivières et une rivière appartient à, zero, un ou plusieurs pays. River Planète  fill in the sentences and relationships for the given entities talk about navigability: river & planet, capital & city Rivière  Planet City Un pays a une ou plusieurs villes et une ville appartient à un seul pays. Ville

Modèle de Domaine– Exercise (2) Système pour AirCanada Avion Passager Baggage Vol 1 0..* 1..*

Modèle de Domaine– Exercise (3) Designez un système pour gérer la réservation des places dans un Ferry (bateau) des voitures d’un port à l’autre. Une voiture peut avoir plusieurs reservations dans le système si elles ont été effectuées pour des dates différentes. Ferry Vehicle Reservation 1 0..* 1 1..*

Modèle de Domaine– Exercice (5) L’Université du Plateau veut implémenter un système (IRS) pour gérer les inscriptions au programme intra-muros. Le système doit permettre d’inscrire une équipe ou d’abandonner. L’IRS permet aux étudiants de s’inscrire aux ligues de soccer, hockey, voleyball et basketball. Un étudiant peut s’inscrire à une seule équipe par ligue. Cependant, il peut s’inscrire à plusieurs équipes dans différentes ligues. L’IRS utilise le nom de la ligue comme code. Une ligue se joue un jour de la semaine. Un nombre maximal de joueurs est permis dans une équipe et un nombre maximal de équipes est permis dans une ligue. L’IRS doit pouvoir enregistrer le nom de l’étudiant, son ID et numéro de téléphone. Finalement, un étudiant peut être exclut d’une ligue à cause d’un mauvais comportement.

Modèle de Domaine– Exercice(6) Étudiant Registration 1 0..* 1 0..* Equipe Ligue 1 0..*