Modélisation et Construction d’un Système d’Information

Slides:



Advertisements
Présentations similaires
Analyse et définition des besoins
Advertisements

MOT Éditeur de modèles de connaissances par objets typés
Langage de modélisation objet unifié
Génie Logiciel 2 Julie Dugdale
Systèmes en temps réel Modélisation du comportement en temps réel avec UML.
LOG4430 : Architecture logicielle et conception avancée
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Urbanisation de Systèmes d'Information
Les cas d’utilisation (use cases)
Modélisation des flux La méthode Merise Yves Giovannangeli
UML - Présentation.
Introduction à UML NFE108 CNAM – LILLE Madame DELECLUSE
UML (Unified Modeling Langage)
Système de gestion de bases de données. Modélisation des traitements
Leçon 3 : Héritage IUP 2 Génie Informatique
Langage SysML.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
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.
FSAB1402: Informatique 2 Techniques de Programmation Orientée Objet
UML : GENERALITES Rappel Diagrammes Niveaux de visions
Diagrammes d’activités
UML : DIAGRAMME D’ACTIVITES
le profil UML en temps réel MARTE
Les Cas d’utilisation.
Analyse et Conception des Systèmes d’Informations
Modélisation des bases de données avec UML
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.
Chapitre 3 Les diagrammes de classes
Vers la conception objet
Modèle, Méthode et Conception
Outils pour la modélisation des systèmes distribués
Modélisation orientée objet UML
Analyse et conception orientée objet
MOT Éditeur de modèles de connaissances par objets typés
Unified Modeling Langage
Introduction au paradigme orienté-objet (suite)
Portée, arrimages et intervenants Évolution des méthodes
UML (2) Modèle dynamique le diagramme de séquence
Sensibilisation a la modelisation
Langage de modélisation graphique de systèmes
GENIE LOGICIEL Détermination du périmètre cible d’une application
Introduction au langage de modélisation Unifié UML
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
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.
Nouvelles Technologies Internet & Mobile
ENSTA : cours IN204 Introduction à JAVA et UML
2 Processus de conception de BD
La programmation par objets Principes et concepts Etude de Smalltalk.
Unified Modeling Language
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Chapitre 5 Les diagrammes d’interaction (collaboration et séquence)
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Les cas d’utilisation.
(UML) Unified Modeling Language
Nouvelles Technologies Internet & Mobile
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.
Initiative pour une méthode publique   +33 (0) 
Les bases de données Séance 3 Construction du Modèle Conceptuel de Données.
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
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.
USE CASE Présentation. Technique importante ● Pilotage par cas d'utilisation (use case) ● Spécifications des besoins fonctionnels des acteurs ● Unité.
Transcription de la présentation:

Modélisation et Construction d’un Système d’Information UML 2.0

Bibliographie [005.117FOW] [005.117VAL] « UML 2.0 », Martin FOWLER, ed. Campus Press [005.117VAL] « UML pour les débutants », Franck VALLEE, ed. Eyrolles

Introduction Bref historique UML proposée en 1995 par BOOCH, RUMBAUGH et JACOBSON L’OMG adopte UML 1.1 en 1997 UML 2.0 déposée à l’OMG en 2003

Introduction Spécifier Concevoir Construire Documenter Caractéristiques d’UML C’est un langage avec des notations graphiques pour: Spécifier Concevoir Construire Documenter Ce n’est pas une méthode ou un processus C’est un standard stable (OMG) Facilite l’utilisation d’outils d’aide à la modélisation Ne résoud pas tous les problèmes !!!

Introduction Les diagrammes

Diagramme de classes Diagramme centrale du modèle du SI Montre les classes et leurs relations statiques Le plus riche en notations Équivalent du modèle E-A Les erreurs dans ce diagramme ont souvent un impact sur les autres diagrammes

Diagramme de classes Concepts fondamentaux Classe

Diagramme de classes Commentaires

Diagramme de classes Attributs Visibilité nom:type multiplicité=valDefaut {contrainte} Visibilité : + public, - privé, # protégé Nom : eq. nom d’un champ Type : eq. type d’un champ Multiplicité : indique la nature du champ ([0..1] pointeur, [1] valeur, [x..*] conteneur) valDefaut : valeur par défaut… Contrainte : information supplémentaire sur l’attribut Exemple : -insee:string[1]="" {readOnly}

Diagramme de classes Multiplicité Équivalent aux cardinalités du modèle E-A Attention au sens de lecture! 0..x : optionnel 1 : unique et obligatoire x..* : multiple A..B : borné

Diagramme de classes Opérations Visibilité nom(liste param):type_retour{propriété} Liste param : chaque paramètre peut être détaillé comme un attribut On ne modélise que les opérations qui correspondent à des responsabilités particulières de la classe (pas d’accesseurs, etc.) Exemple : +fact(n:int):int {récursive}

Diagramme de classes Représentation détaillée (conception)

Diagramme de classes Associations unidirectionnelles Permet de représenter les attributs dont le type est une classe du problème Supporte les mêmes informations qu’un attribut (cardinalités, visibilité, contraintes, etc.)

Diagramme de classes Associations bidirectionnelles Lien structurel fort Nécessite la synchronisation des deux classes Ou bien

Diagramme de classes Possibilité de ne nommer que l’association Utilisation d’un verbe accompagné d’un sens de lecture

Diagramme de classes Composition Exprime « une partie de » Une classe composant peut faire l’objet de plusieurs compositions Un objet de la classe composant ne peut appartenir qu’à un seul objet d’un composé Cycles interdits! Durées de vie identiques (destructions synchronisées) La « navigabilité » peut être bidirectionnelle ou non

Diagramme de classes Agrégation Sémantique identique à la composition Le partage des objets composants est autorisé Durées de vie différentes

Diagramme de classes Identification d’une composition (ou agrégation) Assemblage-parties Collection-membres Contenant-contenu Modéliser autant que possible les compositions/agrégations Augmente la lisibilité du modèle Simplifie l’implémentation

Diagramme de classes Généralisation = héritage

Diagramme de classes Attention à ne pas confondre héritage et instanciation NON!

Diagramme de classes Concepts avancés Attributs et opérations statiques Correspondent aux membres static en C++ ou Java Indiqué par un souligné

Diagramme de classes Classes utilitaires Structuration des variables (et constantes) globales Représentées par des classes stéréotypées Les données membres sont statiques

Diagramme de classes Opérations et classes abstraites Notés en italique Les classes abstraites ont les mêmes relations que les autres classes

Diagramme de classes Concrétisation = héritage

Diagramme de classes Interfaces « Sorte » de classe définie exclusivement par des fonctions abstraites Sert à l’implémentation d’autres classes et non à leur structure Deux notations :

Diagramme de classes Une interface ne peut avoir d’association Elle peut avoir: Des implémentations

Diagramme de classes Des dépendances

Diagramme de classes Association qualifiée Assimilable à une table associative Le qualificateur (ex: produit) permet d’identifier 0 ou une ligne de la commande Pour manipuler (ajouter, consulter, etc.) une ligne d’une commande, il faut obligatoirement un produit

Diagramme de classes Classes-associations Permet d’ajouter des attributs, des opérations, etc. sur des liens

Diagramme de classes Implémentation équivalente à :

Diagramme de classes Association n-aire

Diagramme de classes Contraintes Information supplémentaire sur un élément Placée entre accolade Peut être un texte en langage naturel Ou bien OCL (Object Constraint Language) Repose sur la logique propositionnelle Évite les ambiguïtés du langage naturel Il existe des outils pour OCL Permet de décrire les pré et post-conditions, ainsi que les invariants sur un élément du modèle (attribut, rôle, opération, etc.)

Diagramme de classes Exemples : soit le diagramme de classes

Diagramme de classes On peut exprimer les contraintes : // Jamais de treizième étage context Chambre inv:  self.étage <> 13 // Pas plus de résidents que de lits sauf s’il y a un enfant de moins de 4 ans context Chambre inv:  lesRésidents->size <= nbLits or  (lesRésidents>size = nbLits + 1 and   lesRésidents->exists(p : Personne | p.âge < 4))

Diagramme de classes Contraintes entre associations

Diagramme de classes Contraintes de l’héritage {incomplete} : les classes dérivées ne couvrent pas toute la classe de base {complete} : les classes dérivées couvrent toutes les possibilités de la classe de base {disjoint} : les classes dérivées sont disjointes donc pas d’héritage multiple {overlapping} : l’héritage multiple est possible

Diagramme de classes Exemples

Diagramme de classes Dépendances Relation sémantique mais non structurelle La modification de la cible peut avoir des répercussions sur la source À éviter en analyse car faible intérêt sémantique

Diagramme de classes Plusieurs stéréotypes : « call » : la source appelle une opération de la cible « create » : la source crée une instance de la cible « permit » : le source est amie de la cible « use » : la source a besoin de la cible pour être implémentée

Diagramme de classes Classe paramétrable Le type d’un champ est un paramètre de la classe Doit être liée (bind) avec une classe qui instancie le paramètre

Diagramme de classes Attributs dérivés Attribut dont la valeur est calculée à partir d’autres attributs Souvent associé à une contrainte qui donne la règle de calcul

Diagramme de classes Quelques anomalies Classes sans relations Classes sans attribut Classes sans opérations Relation 1-1 Pas forcément à supprimer, mais toujours se poser la question

Diagramme de classes La pratique Ne pas utiliser systématiquement toutes les notations En phase d’analyse : concepts fondamentaux En phase de conception/implémentation : concepts avancés Bien utiliser UML ne veut pas dire bien modéliser! La théorie ne remplace pas l’expérience Les design pattern peuvent améliorer le modèle de conception

Diagramme de classes Exemple : Un contrat d’édition est un accord entre un auteur (éventuellement collectif) et un éditeur. Les conditions générales d’un contrat sont stipulées dans un contrat type. Les clauses particulières sont ajoutées au contrat. Le contrat ne concerne qu’un ouvrage, qui ne peut être édité chez un autre éditeur.

Diagramme de classes

Diagramme d’objets Montre les objets et leurs relations L’état des objets est indiqué Utile lorsque les structures de classe sont complexes

Diagramme d’objets

Diagramme de paquets Paquet = regroupement d’éléments Paquet de classes, de cas d’utilisation, de paquets, etc. Parfois appelé paquetage, ou package Renforce la modularité et la cohérence du modèle global Un élément ne peut appartenir qu’à un seul paquet

Diagramme de paquets Diagramme de paquet = dépendances entre les paquets Un paquet A dépend d’un paquet B si au moins un élément de A dépend d’un élément de B La modification du paquet utilisé peut entraîner la modification du paquet utilisateur  mises à jour synchronisées

Diagramme de paquets Intérêts: Conserver une vue synthétique Plus d’une douzaine d’éléments dans un diagramme  décomposition en paquets = découpage ascendant Organiser l’analyse d’un problème Montrer les parties (paquets) cohérentes Chaque partie est ensuite raffinée = découpage descendant

Diagramme de paquets Isoler des parties réutilisables Contribue à la vue architecturale Les paquets représentent les couches logicielles Ont parfois une traduction directe dans les LOO (package en JAVA, espace de noms en C++, etc.)

Diagramme de paquets Décomposer n’est pas simple Conserver la logique métier Les structures d’un modèle guident la décomposition. Par exemple: Un arbre d’héritage Une arborescence de composition de classes

Diagramme de paquets Éviter les dépendances circulaires  couplage fort entre les paquets

Diagramme de transitions d’états Montre l’évolution du comportement d’un objet Un diagramme de T.E. par classe Le fonctionnement de certaines opérations dépend de l’état de l’objet

Diagramme de transitions d’états Un état représente une situation caractéristique d’un objet à laquelle correspond un comportement donné Nom État initial État final

Diagramme de transitions d’états Action Opération atomique instantanée non interruptible Peut être associé à l'entrée ou à la sortie d'un état Transition interne Identique à une auto-transition (voir ci-après) Ne déclenche pas les actions « entry » et « exit » État entry: Action exit : Action Transition interne

Diagramme de transitions d’états Une transition est provoquée par un événement (une opération) La durée d’une transition est considérée comme nulle donc non interruptible 4 catégories d'événements Les appels d'opérations Les signaux (clic de souris, etc.) Les conditions (quand x>10) Les délais (après 5 sec.)

Diagramme de transitions d’états L’étiquette d’une transition est composée de: un événement = opération qui provoque la transition une condition = indique s’il faut accepter la transition ou pas une action = fonction non interruptible exécutée au moment de la transition Les "auto-transitions" sont possibles Utiles pour répéter les actions associées [Cond]Evénement/Action

Diagramme de transitions d’états Exemple : alarme de voiture

Diagramme de transitions d’états Super état État A B Disjoints Parallèle Un seul sous-état est actif Tous les sous-états sont actifs A et B peuvent être des super états

Diagramme de transitions d’états État historique Lorsqu’une transition s’arrête à la frontière d’un super état, l’objet revient dans le dernier sous-état considéré Pseudo-état historique : indique l’état lors de la première transition (lorsqu’il n’y avait pas d’historique)

Diagramme de transitions d’états Exemple Pseudo-état historique

Diagramme de cas d’utilisation Donne une vue externe du comportement du système Décomposition du système en termes de cas d’utilisation et d’acteurs Utile pour inventorier les fonctionnalités du système

Diagramme de cas d’utilisation Acteur Ne fait pas partie du système Quelqu’un ou quelque chose qui interagit avec le système En relation avec au moins un cas d’utilisation Un acteur peut jouer plusieurs rôles Cas d’utilisation Représente une fonctionnalité du système

Diagramme de cas d’utilisation Relation « Communique » Relation non directionnelle entre un acteur et un cas d’utilisation Exprime les fonctionnalités primaires du système

Diagramme de cas d’utilisation Relation « Utilise » Le comportement de B est inclus dans le comportement de A La fonctionnalité B est nécessaire pour réaliser la fonctionnalité A Permet d’exprimer une fonctionnalité commune à plusieurs fonctionnalités (factorisation) A B « uses »

Diagramme de cas d’utilisation Relation « Étend » Équivalent à l’héritage entre classes B hérite du comportement de A, et le spécialise B hérite des relations de communication décrites pour A A B « extends » Rq : certains auteurs déconseillent d’employer « uses » et « extends ». Moi aussi !

Diagramme de cas d’utilisation Description textuelle d’un cas d’utilisation : <titre> Intention générale Résumé, acteurs concerné Description détaillée Pré-conditions Scénario principal Étape 1 : description Étape 2 : description Etc. Extensions Étape 2.1 : description Étape 2.2 : description Post-conditions Contraintes non fonctionnelles Exigences de persistance Exigences d’IHM Exigences de performances Les descriptions textuelles sont plus utiles que les diagrammes !!!

Diagramme d’activités Logique procédurale, enchaînement des activités (flot) Concepts principaux: Activité : peut correspondre à un message ou un cas d’utilisation selon le niveau de détail Arc : matérialise le flot Débranchement : séparation d’un flot en flots parallèles Jonction : synchronisation de flots parallèles Décision : aiguillage conditionnel du flot Fusion : marque la fin d’un comportement conditionnel

Diagramme d’activités

Diagramme d’activités Partition : montre qui est responsable de quelle activité

Diagramme d’activités Les signaux La réception d’un signal déclenche une activité Lors du déroulement d’un flot, un signal peut être émis Un délai est un signal émis automatiquement

Diagramme de séquence Montre la collaboration des objets impliqués dans un cas d’utilisation Insiste sur la chronologie Permet de décrire le scénario principal et ses extensions Attention à conserver la lisibilité du diagramme!

Diagramme de séquence Concepts principaux : Les participants (le plus souvent des objets) Une ligne de vie Des zones d’activation Les messages L’opération et éventuellement ses paramètres Éventuellement son résultat Des structures de contrôle Alt : conditionnelle Loop : boucle Réf : référence à un autre diagramme de séquence (=appel de fonction) Etc.

Diagramme de séquence

Diagramme de séquence Création et destruction de participants

Diagramme de communication Idem diagramme de séquence Insiste sur les relations entre les objets Permet de montrer un scénario particulier Chronologie indiquée par la numérotation des messages Possibilité de faire apparaître des boucle, des conditions (à éviter)

Diagramme de communication Les objets Pas de ligne de vie associé à d'autres objets La nature de l'association est décrite par un stéréotype « association » : l'objet est un attribut « global » : l'objet est une variable globale « local » : l'objet est une variable locale « paramètre » : l'objet est un paramètre d'un message Les messages Un message ne peut être envoyé que si une association existe

Diagramme de communication

Diagramme de composants Montre la répartition physique du code Souvent répartis dans des packages Les relations s’expriment à travers leurs interfaces et des dépendances

Diagramme de composants

Diagramme de composants Minimiser les dépendances augmente la réutilisabilité Des dépendances hiérarchiques facilitent le développement Les feuilles peuvent être développées en parallèle Permet de déduire le makefile

Diagramme de déploiement Montre la répartition des processus qui composent le système Important dans le cas d’architecture distribuée Concepts fondamentaux: Les nœuds : dispositifs capables d’héberger une partie du logiciel Les arcs : liens physiques connectant les noeuds

Diagramme de déploiement

Diagramme de timing Montre l’évolution de l’état d’un objet ou d’un groupe d’objets en fonction d’évènements temporels

Diagramme de vue d’ensemble des interactions Mélange du diagramme d’activités et du diagramme de séquence