Conception des systèmes d`information

Transcription

Conception des systèmes d`information
Conception des systèmes
d’information
Objectifs
Initiation à la modélisation des Systèmes d’Information en
utilisant Merise, UML et les méthodes agiles.






2
Structuration de la démarche informatique,
Méthodes d’analyse et de conception,
Méthodes de modélisation,
Assimiler les caractéristiques et les concepts de l’approche
objet,
Apprentissage des concepts de l’approche objet, de la méthode
UML et les fondements des méthodes agiles
Conception des systèmes d’information
Plan
Merise






Vue d’ensemble de la démarche
Le M.C.D (Modèle conceptuel de données)
Le M.C.T (Modèle conceptuel de traitements)
Le M.O.T (Modèle organisationnel de traitements)
Le M.L.D (Modèle logique de données)
UML


Introduction



Diagrammes UML



3
Cycle de vie d’un logiciel
Historique d’UML
Diagrammes de classes et d’objets
Diagrammes des cas d’utilisation
Autres Diagrammes
Conception des systèmes d’information
Plan
Méthodes agiles




Introduction
Concept
Quelques méthodes agiles


4
Scrum
Extreme Programming
Conception des systèmes d’information
Introduction
Introduction
A quoi sert une méthode ?
Une méthode définit une démarche reproductible qui
produit des résultats fiables.



Une méthode d’élaboration de logiciels décrit comment
modéliser et construire des systèmes logiciels de manière
fiable et reproductible.

De manière générale, une méthode définit :
Des éléments de modélisation,
Une représentation graphique,
Du savoir-faire et des règles



6
Conception des systèmes d’information
Introduction
Les objectifs d’une méthode sont les suivants :





Se donner toutes les chances de mener à bien un projet
informatique,
Établir un plan projet réaliste en définissant, estimant et
planifiant les moyens à mettre en œuvre,
Maîtriser le projet en mesurant son avancement et les écarts
éventuels avec les engagements pris,
S'assurer que la qualité définie est respectée.
Parce que



7
Le système d'information des entreprises actuelles est devenu
l'un des principaux piliers sur lesquels repose l'ensemble de
l'activité.
Impossible donc de traiter ce domaine de manière
approximative.
Conception des systèmes d’information
Introduction
Des méthodes fonctionnelles aux méthodes objet
Une évolution des méthodes qui s’est toujours faite de la
programmation vers l’analyse :


Programmation
Conception
Analyse
Les premières méthodes d'analyse (années 70)


Découpe fonctionnelle (fonctionnelle et hiérarchique) d'un système.
L'approche systémique (années 80)


Modélisation des données + modélisation des traitements (Merise, Axial,
..).
L'émergence des méthodes objet (1990-1995)




8
Prise de conscience de l'importance d'une méthode spécifiquement
objet :
comment structurer un système sans centrer l'analyse uniquement sur
les données ou uniquement sur les traitements (mais sur les deux) ?
Plus de 50 méthodes objet sont apparues durant cette période (Booch,
Classe-Relation, Fusion, HOOD, OMT, OOA, OOD, OOM, OOSE...) !
Aucune méthode ne s'est réellement imposée.
Conception des systèmes d’information
Introduction
Des méthodes fonctionnelles aux méthodes objet (suite) :
Les premiers consensus (1995)





OMT (Object Modeling Technique - James Rumbaugh) - Méthode
d'analyse et de conception orientée objet.Vues statiques, dynamiques et
fonctionnelles d'un système.
OOD (Object Oriented Design - Grady Booch).Vues logiques et
physiques du système.
OOSE (Object Oriented Software Engineering - Ivar Jacobson). Couvre
tout le cycle de développement. Une des plus anciennes méthodes objet
focalisée sur le modèle statistique.
L'unification et la normalisation des méthodes (1995-1997)




9
UML (Unified Modeling Language) est né de la fusion de ces 3
méthodes qui ont le plus influencé la modélisation objet au milieu des
années 90
Fin 1997, UML devient une norme OMG (Object Management Group).
L'OMG est un organisme à but non lucratif, créé en 1989 à l'initiative de
grandes sociétés (HP, Sun, Unisys, American Airlines, Philips...). Son rôle
est de promouvoir des standards qui garantissent l'interopérabilité entre
applications orientées objet, développées sur des réseaux hétérogènes.
Conception des systèmes d’information
Vue d’ensemble de la démarche
Merise
Méthode d’Étude et Réalisation Informatique pour les Systèmes de
l’Entreprise
Vue d’ensemble de la démarche Merise

Qu’est ce que Merise ?

Création : 1978-1979

Plus qu’une méthode d’analyse informatique, une démarche de
construction des Systèmes d’information.

A quoi sert Merise ?


En ce qui concerne les données : A identifier le nombre et la nature des
tables, les articulations et la ventilation des informations entre ces tables,
afin que l'ensemble soit le plus efficace et évolutif possible,

Pour les traitements : A identifier les fonctionnalités selon une approche
"top / down" ("du général au particulier"), leur découpages et leurs
enchaînements.

Merise est un travail d'anticipation : Elle sert à préparer les
développements informatiques et à chiffrer (en coût, en temps et en
énergie) ces chantiers, quelle que soit leur échelle.
L'approche Merise n'est pas adaptée aux projets très complexes
11
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

La démarche

12
Merise définit la réalité dont elle prend en compte
comme la résultante d'une progression, menée de
front, selon trois axes, qualifiés de "cycles".
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Les niveaux d’abstraction

Il y a trois niveaux d’abstraction



13
Le niveau conceptuel
Le niveau organisationnel
Le niveau physique
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Le niveau conceptuel

Il consiste à répondre à la question QUOI ?
Quoi faire, avec quelles données ?
A ce niveau, on ne se préoccupe pas de l’organisation du travail
ni du matériel utilisé.

Les deux modèles sont le Modèle conceptuel des données
(MCD) et le Modèle conceptuel des traitements (MCT).
14
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Le niveau organisationnel

Il consiste à répondre à la question QUI ?, OU ?, QUAND ?
C’est à ce niveau que sont intégrés les critères d’organisation
de travail.

On tient compte (ou on propose) des choix d’organisation de
travail comme la répartition des traitements entre l’homme et
la machine, le mode de fonctionnement (temps réel, temps
différé).

Le modèle de représentation est le modèle organisationnel des
traitements.
15
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise
Niveau
Conceptuel
Données
Modèle Conceptuel des Données
(MCD)
Signification des informations
sans contrainte technique ou
économique
Modèle Organisationnel des
Données
(MOD)
Organisationnel
Signification des informations avec
contrainte organisationnelles et
économique
Physique
16
Modèle Physique des Données
(MPD)
Description de la ou des bases de
données dans la syntaxe du
logiciel SGF ou SGBD
Traitements
Choix pris en compte
Modèle Conceptuel des
Traitements
(MCD)
Choix de gestion
Activite du domaine sans
Quoi ?
préciser les ressources ou leur
organisation
Modèle Organisationnel des
Traitements
(MOT)
Fonctionnement du domaine
avec les ressources utilisées
Choix d'organisation
Qui ?, Ou ?, Quand ?
Modèle Physique des
Traitements
(MPT)
Architecture technique des
programmes
Choix technique
Comment ?
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Objectifs de cette décomposition



17
procéder de manière progressive,
distinguer le quoi (plutôt stable) du comment
organisationnel et technique (plutôt instable),
ne prendre en compte qu'une classe de problèmes à chaque
niveau.
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Cycle de vie

Maîtrise de la chronologie des opérations


Succession de phases contrôlables par l’organisation (planning,
échéances, moyens humains, etc.)
4 étapes

Schéma directeur



Il s’agit de la traduction de la stratégie de l’entreprise.
La réalisation d’un schéma directeur répond à un objectif principal :
adapter l’organisation et les moyens de traitement de l’information aux
axes stratégiques de l’entreprise.
Objectifs



18
clarifier les centres d'intérêt,
les pôles de décision,
donner une première idée de la chronologie des évènements
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Etude préalable
 Ce
document doit permettre une première mesure de
l'impact financier et administratif des grandes
orientations définies dans le schéma directeur.
 Il comporte
 L'étude de l'existant
 La définition du "Quoi ?" futur ("MCD" et "MCT")
 Le scénario (coût, impact sur l'organisation etc.)
 Le graphe de circulation de l'information pour les
procédures les plus représentatives.
 Une première approximation quant aux choix de
matériels et de logiciels, ainsi qu'une estimation du
volume de l'information qui sera traitée.
19
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Etude détaillée
 La
définition du "Qui ?", du "Où ?" et du "Quand ? ».
C'est-à-dire la "vision utilisateurs"(soit les MOT et
MLD).
 But
 décrire de façon exhaustive l’application qui devra
être développée, c’est-à-dire les interfaces graphiques,
les traitements et les états imprimés.
 Elle se présente sous la forme d'un descriptif précis
portant sur les données en amont et en aval de
chaque opération, et sur le mode de traitement de
chacune de ces opérations.
 Elle débouche sur un dossier de spécifications
détaillées.
20
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Etude technique
 Les
données sont réajustées et stabilisées, l'essentiel des
traitements (les algorithmes fondamentaux) est décrit.
 C’est seulement à ce stade qu’est censée commencer la
réalisation.
 La réalisation concerne la production du code
informatique correspondant aux spécifications définies
dans l’étude détaillée.
 Elle débouche sur un dossier de réalisation.
21
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Cycle de décision

Fixation de jalon de validation


Importance de la Méthode mise sur un échéancier de
rencontres entre




Les responsables des différents pôles de l’entreprise
Les utilisateurs
On désigne par le terme d'échéancier (éventuellement
jalonnement) l'enchaînement des dates des jalons.
Objectifs des jalons


22
Le terme de jalon est utilisé pour désigner les événements sensibles
de la réalisation du projet nécessitant un contrôle. Chaque jalon
permet de vérifier que les conditions nécessaires à la poursuite du
projet sont réunies.
Faire prendre conscience de la charge de travail
Des difficultés relationnelles que supposent une collaboration, une
compréhension et une implication dans un processus de décision
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Cycle d’abstraction

23
Dissociation des données et des traitements et l’étude de leurs
interactions
Conception des systèmes d’information
Vue d’ensemble de la démarche Merise

Cycle d’abstraction

Il s’agit d’un déroulement de données / traitements,
selon 3 niveaux correspondant à trois groupes de
questions :



24
Le "niveau conceptuel" (le "Quoi ?"), aboutissant aux M.C.D.
("Modèle conceptuel des données") et M.C.T. ("Modèle
conceptuel des traitements"). A ce stade, données et
traitements sont étudiés de manière parallèle, dissociée.
Le "niveau logique" (pour les données) et le "niveau
organisationnel" (pour les traitements) (le "Qui?", le
"Quand ?", le "Où ?") correspondants aux M.O.T ("modèle
organisationnel des traitements") et M.L.D. ("Modèle
logique des données").
Le "niveau physique" (pour les données) aboutissant à la
création des tables, et le "niveau opérationnel" (pour les
traitements) enclenchant analyse détaillée de chaque
traitement, et développements
Conception des systèmes d’information
Vue d’ensemble de la démarche
Merise
Le M.C.D
Le M.C.D (Modèle Conceptuel de Données)



Représentation statique, sous forme schématique, de la
situation respective des données d'un domaine de gestion.
Ce schéma est conçu pour être très stable dans le temps.
Objectif


Définir (identifier) toutes les données utilisées, les
regrouper en ensembles appelés entités, et de lier ces
entités par des relations, dans un modèle définit et
compréhensible par toute personne connaissant la
"syntaxe" du MCD.
Le MCD regroupe les informations à traiter, le
"quoi" du système.
26
Conception des systèmes d’information
Le M.C.D (Modèle Conceptuel de Données)

Les étapes du MCD






27
Catalogue des données
Épuration (polysèmes et synonymes)
Détermination des entités
Détermination et affectation des propriétés
Recensement des associations (avec, éventuellement, les
propriétés non encore affectées
Détermination des cardinalités
Conception des systèmes d’information
Le M.C.D (Modèle Conceptuel de Données)

Entité

28
Représentation d'un objet réel, ayant une existence et
une raison d'être dans le système d'information.
Conception des systèmes d’information
Le M.C.D (Modèle Conceptuel de Données)

Entité



29
Une entité est pourvue d’une existence propre et est
conforme aux choix de gestion de l’entreprise.
Une entité peut être un acteur : client, usine, produit
Une entité peut être un flux : commande, livraison
Conception des systèmes d’information
Le M.C.D (Modèle Conceptuel de Données)

Les propriétés

30
Une propriété est une donnée élémentaire qui qualifie
l’entité à laquelle elle se rapporte :
 Chaque propriété prend des valeurs qui sont
appelées occurrences de la propriété,
 Chaque propriété a un domaine de définition
(ensemble de valeurs possibles),
 Chaque propriété se rattache toujours à une entité.
 Identification d’une Entité :
Conception des systèmes d’information
Le M.C.D (Modèle Conceptuel de Données)

Identification d’une entité

31
C’est une propriété (ou ensemble de propriétés)
particulière qui permet d’identifier de façon unique une
occurrence de l’entité.
 Pour être identifiant, la propriété ou le groupe de
propriétés ne doit pas prendre plusieurs fois la même
valeur sur l’ensemble des occurrences de l’entité.
 L’identifiant figure en premier dans la liste des
propriétés
 Il est souligné
Conception des systèmes d’information
Le M.C.D (Modèle Conceptuel de Données)

Association (ou Relation)


32
Objet permettant d'associer deux ou plusieurs entités. Ce lien est nommé
et est, par convention, très souvent un verbe à l'infinitif.
Exemple :
 entre deux entités, Personne et Ordinateur, une relation nommée
Posséder peut être mise, et on lit "une personne possède un
ordinateur" et, dans l'autre sens, 'un ordinateur est possédé par une
personne".
Conception des systèmes d’information
Le M.C.D (Modèle Conceptuel de Données)

Association (ou Relation)


33
Objet permettant d'associer deux ou plusieurs entités. Ce lien est nommé
et est, par convention, très souvent un verbe à l'infinitif.
Exemple :
 entre deux entités, Ouvrage et Auteur, une relation nommée Écrire
peut être mise, et on lit "un Auteur a écrit un Ouvrage" et, dans l'autre
sens, 'un Ouvrage est écrit par un Auteur".
Conception des systèmes d’information
Le M.C.D (Modèle Conceptuel de Données)

Cardinalité d’une Association

34
C'est le nombre d'occurrences, minimal et maximal, d'une association par
rapport à chaque occurrence d'une entité donnée. D'une entité donnée
vers une association donnée.
Conception des systèmes d’information
Le M.C.D (Modèle Conceptuel de Données)

Exemple 1

Un employé a une et une seule société. Une société a 1 ou n employés.
1,1

1,n
Exemple 2

Une commande est composée de 1 ou n produits distincts en certaine
quantité. Un produit est présent dans 0 ou n commandes en certaine
quantité.
Produit
compose
Commande
1,n

Société
a
Employé
quantité Entier
0,n
Exemple 3

Un étudiant parle une ou plusieurs langues avec un niveau. Chaque
langue est donc parlée par 0 ou n étudiants avec un niveau. Pour chaque
niveau, il y a 0 ou plusieurs étudiants qui parlent une langue.
Langue
Etudiant
1,n
parle
0,n
0,n
35
Niveau
Conception des systèmes d’information
Le M.C.D (Modèle Conceptuel de Données)

Une centrale d’achat : les cardinalités
T YPE
0 ,n
a p p a rti e n t
1 ,1
O UV RA G E
é d i te
q u a n ti té
E n ti e r
E n ti e r
sto cke
q u a n ti té
E n ti e r
0 ,n
0 ,n
36
A UT E UR
0 ,n
1 ,n
q u a n ti té
0 ,n
0 ,n
0 ,n
ve n d
é cri t
E DIT E UR
Conception des systèmes d’information
0 ,n
L IB RA IRIE
Le M.C.D (Modèle Conceptuel de Données)

Cas des associations de dimension 1 (réflexives)

Cas des associations de dimension 3
37
Conception des systèmes d’information
Vue d’ensemble de la démarche
Merise
Le M.C.T
Le M.C.T (Modèle Conceptuel de Traitements)

Représentation, sous forme schématique, de phénomènes
de réactions du type et ceci indépendamment de toute
préoccupation d'organisation interne :


Évènement déclenchant -> Transformation du système
d'information -> Résultat
Implication du monde extérieur au niveau de chaque
opération :


39
Soit au niveau des évènements déclenchant
Soit au niveau des résultats
Conception des systèmes d’information
Le M.C.T (Modèle Conceptuel de Traitements)

Les étapes du MCT




40
Identification des acteurs (Rappel : il s'agit des acteurs
extérieurs à l'entreprise).
Identification et classement chronologique des flux.
Construction du M.C.T.
Description détaillée des règles de gestion.
Conception des systèmes d’information
Le M.C.T (Modèle Conceptuel de Traitements)

Processus


Définition

Ensemble structuré d’événements, opérations et résultats consécutifs
qui concourent à un même but.

Il représente généralement un sous ensemble d ’activités de
l ’organisation dont les événements initiaux et les résultats finaux
délimitent un état stable du domaine.

Il est en général caractéristique du secteur d ’activité de
l ’organisation et constitue de ce fait un invariant pour le concepteur.
Exemple (Processus Prêt)

Ensemble des opérations consécutives à la demande de prêt :



41
Élaboration devis,
Instruction d ’un dossier de prêt,
Mise en place du prêt.
Conception des systèmes d’information
Le M.C.T (Modèle Conceptuel de Traitements)

Exemple : Processus Prêt
Demande Client
Demande Client
Demande de prêt
PROPOSITION
Elaboration du devis
Elaboration de la
proposition
DEVIS
Elaboration du devis
Demande de prêt
ET
PROPOSITION
Elaboration de la
proposition
DEVIS
42
Conception des systèmes d’information
DEVIS
Le M.C.T (Modèle Conceptuel de Traitements)

Exemple : Processus Prêt
43
Conception des systèmes d’information
Le M.C.T (Modèle Conceptuel de Traitements)

Exemple : Processus Prêt

Les relations entre « acteurs » peuvent être traduites soit par
un « graphe des flux » soit par une « matrice des flux ».
CLIENT
BANQUE
BDF
DGI
Demande de
renseignements
Déclaration
ouverture de
compte
Demande du
client
CLIENT
BANQUE
BDF
Accord ou Refus
Réponse BDF
DGI
MATRICE DES FLUX
44
Conception des systèmes d’information
Le M.C.T (Modèle Conceptuel de Traitements)

Exemple : Processus Prêt

Evènement
 Collection de faits, susceptibles de déclencher une
Opération dans les conditions précisées par la
Synchronisation.

Synchronisation
 Condition booléenne traduisant les règles d'activation
d'une opération.

Opération
 Ensemble d'actions dont l'enchaînement ininterruptible
n'est conditionné par l'attente d'aucun évènement
autre que le déclencheur initial.

Règles d'émission
 Condition traduisant les règles de gestion, à laquelle
est soumise l'émission des résultats d'une opération.

Résultats
 Collection de faits, produits par l‘Opération, dans les
conditions prévues par la (ou les) "règles d'émission".
45
Conception des systèmes d’information
Le M.C.T (Modèle Conceptuel de Traitements)

Exemple : Processus Prêt
46
Conception des systèmes d’information
Vue d’ensemble de la démarche
Merise
Le M.O.T
Le M.O.T (Modèle Organisationnel de
Traitements)



Le M.O.T a pour objectif de représenter les traitements en prenant en
compte les choix et les contraintes liées à l’organisation.
La modélisation s’effectue en faisant abstraction du COMMENT faire
technologique.
Qui est qui? Qui fait quoi?




Quand?


Analyse des postes de travail.
Partage des traitements entre l’homme et la machine.
Type d’individu qui réalisera les traitements.
Influence du temps et comment structurer les traitements en
conséquence.
Où?

48
Comment les traitements sont-ils organisés dans l’espace ?
Conception des systèmes d’information
Le M.O.T (Modèle Organisationnel de
Traitements)

Le M.O.T se concentre sur le COMMENT




Il s’agit ici de



Définition des différentes ressources à mettre en œuvre
(moyens techniques ou humains, espace, temps, données)
Décomposition des opérations spécifiées au niveau conceptuel
en des éléments plus fins et homogènes, les tâches
Organisation de l’ensemble des ressources permettant
d’assurer l’exécution des tâches envisagées
spécifier le contenu de chaque opération conceptuelle,
construire une ou plusieurs solutions organisationnelles
La difficulté réside dans la diversité des solutions
d’organisation envisageables
49
Conception des systèmes d’information
Le M.O.T (Modèle Organisationnel de
Traitements)

Formalisme du M.O.T

Le MOT reprend les concepts du MCT, parfois réadaptés,
auxquels sont ajoutés de nouveaux concepts tels que :




50
le poste de travail : entité physique comprenant des ressources sur un
lieu donné et un responsable.
la tâche/opération : affectation des traitements d’une opération
conceptuelle à une unité organisationnelle de type site ou service.
la procédure organisationnelle : enchaînement de traitements (tâches
et/ou phases) affectés à un ou plusieurs sites ou services au sein d’un
même processus.
Le MOT cerne l'activité de chaque poste de travail
(informatique ou non), et de chaque service, en tenant compte
du "planning", du type de ressources (manuel, automatisé), du
type de support (document écrit, magnétique etc.)
Conception des systèmes d’information
Le M.O.T (Modèle Organisationnel de
Traitements)
MOT = MCT + Lieu + Moment + Nature



Lieu : qui exécute ? Acteurs.
Moment : Quand exécute t-on l’opération ? Agencement
temporel.
Nature : Manuelle,Automatique, Interactive
51
Conception des systèmes d’information
Le M.O.T (Modèle Organisationnel de
Traitements)

Construction du M.O.T






52
Faire le choix des postes, en spécifiant les ressources humaines
et informatiques
Décomposer chaque opération conceptuelle en opérations
organisées, les ordonner, les affecter aux postes, préciser les
différentes caractéristiques (degré d’automatisation, délai de
réponse, mode de travail)
S’assurer de la faisabilité des opérations organisées par rapport
aux ressources composant le poste
Préciser les différentes phases
Évaluer l’ergonomie générale de chaque poste de travail par
rapport à l’ensemble des phases à assurer
Envisager des solutions alternatives: variantes de procédures
Conception des systèmes d’information
Le M.O.T (Modèle Organisationnel de
Traitements)
Procédure décomposée en opérations et par poste de travail
Partenaire
Poste 1
Poste 2
Poste 3
Partenaire
Message externe
enclanchant
Un MOT analyse les réactions des postes de travail à un message externe
53
Conception des systèmes d’information
Le M.O.T (Modèle Organisationnel de
Traitements)
Il est possible de représenter le temps sous forme d’une colonne
comme un acteur
Temps
Poste 1
Poste 2
Poste 3
T0
TO + 10 jours
54
Conception des systèmes d’information
Partenaire
Le M.O.T (Modèle Organisationnel de
Traitements)
55
Conception des systèmes d’information
Vue d’ensemble de la démarche
Merise
Le M.L.D
Le M.L.D (Modèle Logique de Données)

C'est grâce à toutes les opérations précédentes que
l'ensemble des tables de la base de donnée vont pouvoir
être structurées de manière simple et très rapide :



le M.C.D, ayant été corrigé à la fin de l'étape du M.O.T, ce sont
les cardinalités maximales qui vont jouer le rôle essentiel.
les entités deviennent des tables (sauf des cas particuliers
comme les "dates")
Si l'une des cardinalités maximales est à "1" et l'autre à
"n", l'association disparaît et l'identifiant de l'entité
marquée "n" vient s'ajouter à la liste des propriétés de
l'entité marquée "1" (Cas 1).
57
Conception des systèmes d’information
Le M.L.D (Modèle Logique de Données)

Si toutes les cardinalités maximales sont à "n",
l'association se transforme en une table qui permettra la
correspondance entre les enregistrements des tables
reliées (tout en pouvant comporter ses propres
propriétés) (Cas 2).

Ces règles s'appliquent aussi bien pour les associations
"réflexives" (Cas 3).

Pour les associations de dimension "3" ou plus, elles sont
toujours transformées en table (Cas 4).
58
Conception des systèmes d’information
Le M.L.D (Modèle Logique de Données)
59
Conception des systèmes d’information
Le M.L.D (Modèle Logique de Données)
60
Conception des systèmes d’information
Le M.L.D (Modèle Logique de Données)
61
Conception des systèmes d’information
Le M.L.D (Modèle Logique de Données)
62
Conception des systèmes d’information
Le M.L.D (Modèle Logique de Données)
63
Conception des systèmes d’information
Le M.L.D (Modèle Logique de Données)
64
Conception des systèmes d’information
Le M.L.D (Modèle Logique de Données)
65
Conception des systèmes d’information
Le M.L.D (Modèle Logique de Données)
66
Conception des systèmes d’information
UML
Cycle de vie d’un logiciel
68



Processus (ensemble d’activités) nécessaire au
développement et à la maintenance d’un logiciel
Composé de plusieurs phases autonomes mais
dépendantes (interdépendantes).
Chaque étape se termine par la remise de un ou
plusieurs documents validé conjointement par
l’utilisateur et le développeur.
68
Conception des systèmes d’information
Cycle de vie d’un logiciel
69
Étapes nécessaires à la réalisation d’un logiciel:






69
Analyse
Conception
Codage (Implémentation)
Tests
Livraison
Maintenance
Conception des systèmes d’information
Cycle de vie d’un logiciel
Modèle en Cascade (WaterFall)
70
Analyse
Conception
Implémentation
Tests
Maintenance
70
Conception des systèmes d’information
Cycle de vie d’un logiciel
Analyse
71




Elle a pour but de dégager le problème à étudier.
Le résultat de l'analyse est le cahier de charges
(exprimé dans une langue naturelle) contenant les
besoins du futur système.
Cette spécification est informelle.
3 phases:(Faisabilité, Spécifications des besoins,
Organisation du projet)
71
Conception des systèmes d’information
Cycle de vie d’un logiciel
Faisabilité
72


Première étape du cycle de vie d’un logiciel
Répondre à deux questions :
 Est-ce que le logiciel est réalisable ?
 Est-ce que le développement proposé vaut la
peine d’être mis en œuvre ?
►► Étudier le marché pour déterminer s’il existe
un marché potentiel pour le produit.
72
Conception des systèmes d’information
Cycle de vie d’un logiciel
Spécification des besoins
73


Permet de définir ce que doit faire le logiciel et non
comment il le fait
Quatre types de spécifications




73
Spécifications générales
Spécifications fonctionnelles
Spécifications d’interface
Spécifications techniques
Conception des systèmes d’information
Cycle de vie d’un logiciel
Spécification des besoins
74
La spécification générale consiste à identifier :
 Objectifs à atteindre
 Contraintes (utilisation du matériel et outils
existants)
 Règles de gestion à respecter
74
Conception des systèmes d’information
Cycle de vie d’un logiciel
Spécification des besoins
75
Spécification fonctionnelles est la description des
fonctionnalités du futur logiciel de manière aussi
détaillée que possible
Spécification d’interface décrit les interfaces du
logiciel avec le monde extérieur : homme (IHM),
autres logiciel (Middleware), machines
75
Conception des systèmes d’information
Cycle de vie d’un logiciel
Spécification des besoins
76
Spécification technique :(Étude de l’existant)




76
Moyens d’accès (local, distant, Internet, …)
Temps de réponse acceptable (gestion des GAB, gestion des
emplois de temps, …)
Plateforme (Windows, Unix, …)
Quantité d’informations à stocker (choix du SGBDR, …)
Conception des systèmes d’information
Cycle de vie d’un logiciel
Organisation du projet
77



Appelée aussi Planification et gestion de projet
Permet de déterminer la manière de développer le logiciel
La phase de planification permet de :



77
découper le projet en tâches
décrire leur enchaînement dans le temps,
affecter à chacune une durée et un effort
Conception des systèmes d’information
Cycle de vie d’un logiciel
Organisation du projet
78
Plusieurs étapes :



78
Analyse des coûts: estimation du prix du projet
Planification: calendrier pour le développement (jours
ouvrables, jours fériés, nombre d’heures de travail par jours,
…)
Répartition des tâches: distribuer les tâches et les sous tâches
(affectation des ressources aux tâches)
Conception des systèmes d’information
Cycle de vie d’un logiciel
Conception
79



Permet de fournir une description fonctionnelle
(formelle) du système en utilisant une méthode.
Les méthodes proposent des formalismes (dans la
plupart des temps graphiques) pour concevoir le
système.
Deux types de conception :


79
Conception générale
Conception détaillée
Conception des systèmes d’information
Cycle de vie d’un logiciel
Conception générale
80
Appelée aussi : ‘Conception architecturale’
 Se focaliser sur l’architecture générale du système :
décomposition du système en sous système
Exemple, pour la gestion scolaire :




80
Étudiants (étudiants, notes, prof, filières, …)
Administration (personnel administratif, …)
…
Conception des systèmes d’information
Cycle de vie d’un logiciel
Conception détaillée
81


Produire une description externe de chacune des
procédures, fonctions et des structures de données
(conception classique)
Produire de manière précise les contenus des
objets en terme de propriétés et de méthodes
(conception Orientée Objet)
81
Conception des systèmes d’information
Cycle de vie d’un logiciel
implémentation (Réalisation)
82


Des programmes seront élaborés afin de mettre en
œuvre des solutions techniques précédemment
retenues
Plusieurs types langages sont utilisés:


82
Langages classiques (C, Pascal, Fortran, …)
Langages orientés objets (C++, Java, C#, …)
Conception des systèmes d’information
Cycle de vie d’un logiciel
Codage et Tests
83
On distingue plusieurs types de tests :






83
Test unitaire: tester les parties du logiciel par les développeurs
Test d’intégration: tester pendant l’intégration des modules
Test système: tester dans un environnement proche à celui de
production
Test alpha: tests faits par le client sur le site de développement
Test bêta: tests faits par le client sur le site de production
Test de régression: enregistrer les résultats des tests et les comparer
avec ceux des anciennes versions pour déterminer si la nouvelle n’a pas
apporté de dégradation de performance.
Conception des systèmes d’information
Cycle de vie d’un logiciel
Livraison
84


Fournir au client une solution logicielle qui
fonctionne correctement.
Plusieurs tâches :



84
Installation: rendre le logiciel opérationnel sur le site du client
Formation: enseigner aux utilisateurs à se servir de ce logiciel
Assistance: répondre aux questions de l’utilisateur
Conception des systèmes d’information
Cycle de vie d’un logiciel
Maintenance
85


Mettre à jour et améliorer le logiciel
La maintenance comprend :



85
Corrective : correction des erreurs et anomalies
Adaptative : adaptation à de nouveaux environnements
Évolutive ou Perfective : ajout de nouvelles fonctionnalités
Conception des systèmes d’information
Cycle de vie d’un logiciel
Documents
86


Cahier des charges : description des fonctionnalités
désirées (décrites par l’utilisateur)
Spécifications : décrit ce que doit remplir le logiciel
(décrites par le développeurs) :



86
Modèle Objet : Classes et objets
Scénarios des cas d’utilisation : différents enchaînements possibles du
point de vue de l’utilisateur
…
Conception des systèmes d’information
Cycle de vie d’un logiciel
Documents
87



Calendrier du projet: indique les tâches, les délais et
les ressources
Plan de test: indiquent les procédures de tests à
appliquer
Manuel d’utilisateur: mode d’emploi du logiciel dans
sa version finale
87
Conception des systèmes d’information
Cycle de vie d’un logiciel
Documents
88



Code source: code complet du produit fini
Rapport des tests: décrit les tests effectués et les
réactions du système
Rapport des défauts: décrit les comportements du
système qui n’ont pas satisfait le client.
88
Conception des systèmes d’information
Historique
Deux approches

Approche fonctionnelle



1960 – fin 1970
l'important c'est les traitements
Séparation nette des données et traitements
Approche objet




89
1980 – début 1990 : premières génération
L'important c'est l'objet
Objet = données + traitements
Conception des systèmes d’information
Historique
Début des années 1990


les premiers processus de développement OO apparaissent
prolifération des méthodes et notations étaient la cause de
grande confusion :






90
méthode OOD de Grady Booch (1991)
méthode OMT de James Rumbaugh (1991)
méthode OOSE de Ivar Jacobson (1991)
méthode OOA/OOD de Coad and Yourdon (1992)
méthode de Schlaer and Mellor (1992)
Etc.
Conception des systèmes d’information
Historique
Fin 1994
 J. Rumbaugh rejoint G. Booch chez Rational Software
 OMT + OOD  Unified Method (oct 1995)
Fin 1995
 I. Jacobson les rejoint chez Rational Software
 Unified Method + OOSE  UML 0.9 (juin 1996)
Début 1997
 Partenaires divers : Microsoft, Oracle, IBM, HP et autres leaders
collaborent

 UML 1.0 (jan 1997)
Fin 1997
 l’OMG (Object Management Group) retient UML 1.1 comme norme
de modélisation
M.A1
91
Conception des systèmes d’information
Diapositive 91
M.A1
OMG (fondée en 1989) Organisation Internationale regroupant plus de 800 membres : vendeurs de systèmes, développeurs de logiciels,
utilisateurs, ...
Madani; 01/06/2006
Historique
Les versions se succèdent :





Début 1998
 UML 1.2
En 1998
 UML 1.3
En 2001
 UML1.4
En 2003
 UML 1.5
En 2005
 UML 2.0
M.A2
92
Conception des systèmes d’information
Diapositive 92
M.A2
OMG (fondée en 1989) Organisation Internationale regroupant plus de 800 membres : vendeurs de systèmes, développeurs de logiciels,
utilisateurs, ...
Madani; 01/06/2006
Qu’est ce que UML ?
UML(Unified Modeling Language) un langage de
modélisation unifié
 Langage = syntaxe + sémantique :


93
syntaxe : notations graphiques consistant essentiellement en
des représentations conceptuelles d'un système
sémantique : sens précis pour chaque notation
Conception des systèmes d’information
Qu’est ce que UML ?

UML est caractérisé par :





un travail d'expert
utilise l’approche orientée objet
normalisé, riche
Formel : sa notation limite les ambiguïté et les incompréhensions
langage ouvert



94
INDÉPENDANT du langage de programmation
Domaine d'application : permet de modéliser n'importe quel système
Supporté par plusieurs outils (AGL) : Objecteering, Open tools,
Rational Rose, PowerAMC, WinDesign, …
Conception des systèmes d’information
Qu’est ce que UML ?
Apports de UML
favorise la communication entre :



95
développeurs et futurs utilisateurs
 analyse des besoins, spécification
équipes de conception et de développement
 conception
Conception des systèmes d’information
Qu’est ce que UML ?
Attention
UML est un langage (et non pas une méthode) qui :
 permet de représenter les modèles
 ne définit pas le processus d'élaboration des modèles.
96
Conception des systèmes d’information
Diagrammes d'UML
UML comprend 9 diagrammes :
Diagramme
Est sorte de
’utilisation
CasCasd d’utilisation
Collaboration
97
Classes
Classes
Composants
EtatsTransitions
Transitions
États
Déploiement
Séquence
Séquence
Activité
Conception des systèmes d’information
Objets
Diagrammes d'UML
UML définit deux types de diagrammes, structurels (statiques)
et comportementaux (dynamiques)


Modélisation de la structure
 diagramme de classes
 diagramme d’objets
 diagramme de composants
 diagramme de déploiement
Modélisation du comportement
 diagramme de cas d'utilisation
 diagramme d’états
 diagramme d’activités
 diagramme de collaboration
 diagramme de séquence
98
Conception des systèmes d’information
Diagramme d’UML
Les diagramme d’UML peuvent être utilisés pour
représenter différents points de vues :
 Vue externe : vue du système par ses utilisateurs finaux
 Vue logique statique : structure des objets et leurs
relations
 Vue logique dynamique : comportement du système
 Vue d’implémentation : composants logiciels
 Vue de déploiement : répartition des composants
99
Conception des systèmes d’information
Diagramme d’UML
Cas d’utilisation
Composants
Objets
Classes
Vue logique statique
(Structure des objets)
Vue Implémentation
(composants logiciels)
Vue externe
(fonctions système)
Séquence
Vue logique dynamique
(Comportement)
Collaboration
États transitions
100
Vue déploiement
(Environnement
d’implantation)
Activités
Conception des systèmes d’information
Déploiement
UML
Diagrammes de classes et d’objets
Diagramme de classes

Permet de donner une vue statique du système en terme
de :


Classes d'objets
Relations entre classes




Associations
agrégation/composition
héritage
La description du diagramme de classes est centrée sur
trois concepts :



102
Le concept d’objets
Le concept de classes d’objets comprenant des attributs et des
opérations
Les différents types de relations entre classes.
Conception des systèmes d’information
Concept d'objet
Objet = un concept, abstraction ou une chose autonome
qui a un sens dans le contexte du système à modéliser




103
une personne : le client « Louizi M. »
un objet concret : le livre intitulé « Initiation à… »
un objet abstrait : le compte bancaire n° 1915233C
…
Conception des systèmes d’information
Concept d'objet
Remarque
 Un objet doit :





Être autonome
Avoir une signification dans le système
En relation avec d'autres objets
Ne pas confondre "autonomie" avec "indépendance"!!
Exemples


104
Gestion de stock : Clients, Commandes, Articles, …
Gestion scolaire : Étudiants, Modules, Filières, …
Conception des systèmes d’information
Concept d'attribut

Un attribut est une propriété, caractéristique d’un objet.
Par exemple :



un client a un nom, un prénom, une adresse, un code
client, …
un compte bancaire a un numéro, un solde, …
Un attribut doit (généralement) avoir une valeur
atomique
105
Conception des systèmes d’information
Concept d'attribut
La description d’un attribut comporte :
Visibilité attribut:type[= valeur initiale]
Où :
 Visibilité :






+ (publique, public) : visible par tous
- (privée, private) : visible seulement dans la classe
# (protégée, protected) : visible seulement dans la classe et dans
les sous-classes de la classe.
Nom d’attribut
Type de l’attribut
Valeur initiale (facultative)
106
Conception des systèmes d’information
Concept d'attribut
Le type d’un attribut peut être :



Un type de base : entier, réel, …
Une expression complexe : tableaux, enregistrements, …
Une classe
Exemples d’attributs :



107
- couleur : enum{Rouge,Vert, Bleu}
# b : boolean = vrai
- Client : Personne
Conception des systèmes d’information
Concept d'attribut
Lorsqu’un attribut peut être dérivé ou calculé à partir
d'autres attributs, il est précédé d’un /. Par exemple, une
classe « Rectangle » peut contenir les attributs suivants :



longueur : réel,
largeur : réel,
/surface : réel.
Rectangles
- Largeur
: float
- Longueur : float
- /Surface : float
108
Conception des systèmes d’information
= 10
Concept d'attribut
On distingue deux types d'attributs :
 Attribut d'instance :



Chaque instance de la classe possède une valeur particulière pour
cet attribut
Notation : Visibilité attribut:type[= valeur initiale]
Attribut de classe



109
Toutes les instances de la classe possède la même valeur pour cet
attribut
Notation : Visibilité attribut:type[= valeur initiale]
Équivalent en C++, Java : static
Conception des systèmes d’information
Concept d'attribut
Window
-
taille
visibilité
taille_defaut
taille_max
:
:
:
:
Rectangle
boolean
Rectangle
Rectangle
= (100,100)
= true
+ <<Constructor>> Window ()
+
afficher ()
+
cacher ()
+
getTaille_max ()
+
getTaille_defaut ()
110
Attributs d'instances
Attributs de classes
:
:
:
:
void
void
Rectangle
Rectangle
Conception des systèmes d’information
Opérations d'instances
Opérations de classes
Concept d'opération et méthode
Une opération est :
 un service offert par la classe
 une fonction ou une transformation qui peut être
appliquée aux objets d’une classe.
 permet de décrire le comportement d’un objet. Par
exemple, « Embaucher », « Licencier » et « Payer » sont
des opérations de la classe « Société ».
111
Conception des systèmes d’information
Concept d'opération et méthode
Une méthode est
 l’implémentation d’un service offert par la classe
(opération).
 de différents types :



112
accesseurs (get...): renvoie une information sur l'état
d'un objet (fonction)
modifieurs (set...): modifie l'état de l'objet (procédure)
constructeurs: initialise une nouvelle instance
Conception des systèmes d’information
Concept d'opération et méthode
La description d’une opération comporte :
Visibilité opération([arguments:type[=valeur
initiale]]):type de résultat




113
Visibilité de l’opération (-, +, #)
Nom de l’opération
Liste des arguments avec leurs types et éventuellement leurs
valeurs par défaut
Le type du résultat retourné
Conception des systèmes d’information
Concept d'opération et méthode
Exemples d'opérations :
Compte
- N°Compte : String
: float
- Solde
: Personne
- Client
+ <<Constructor>> Compte ()
Deposer (float somme) : void
+
Retirer (float somme) : float
+
+
: String
AvoirSolde ()
114
Conception des systèmes d’information
Concept de classes d’objets

Classe = ensemble d’objets ayant les mêmes propriétés
(attributs) et le même comportement (opérations)




tous les clients sont décrits par un nom, un prénom, … et
peuvent marcher, parler,courir, …
tous les comptes bancaires ont un numéro, un solde, … et sur
lesquels on peut déposer ou retirer l'argent, ou les consulter
…
Un objet est instance d’une classe, et le fait de créer un
objet d'une classe est dite instanciation.
115
Conception des systèmes d’information
Concept de classes d’objets
Classe représentée par un rectangle à trois parties :



116
Partie 1 : Nom de la classe
Partie 2 : Attributs (propriétés, champs)
Partie 3 : Méthodes (fonctions, opérations)
Conception des systèmes d’information
Concept de classes d’objets
Compte
- N°Compte : String
- Solde
: float
# Client
: Personne
= 100
+ <<Constructor>> Compte ()
+
Deposer (float somme) : void
+
Retirer (float somme) : float
AvoirSolde ()
: String
+
117
Conception des systèmes d’information
Concept de classe d'objets
On peut ne pas visualiser les attributs et/ou les opérations,
afin de ne pas alourdir inutilement le schéma.
Nom de la classe
Nom de la classe
Nom de la classe
Attributs
Attributs
Opérations
Opérations
118
Conception des systèmes d’information
Nom de la classe
Encapsulation, visibilité et interface



Encapsulation est le mécanisme de regrouper les attributs
et les opérations au sein d’une même entité (classe)
Ce regroupant permet d’empêcher d’accéder
directement aux données par un autre moyen que les
services proposés (opérations)
Ces services offerts aux utilisateurs définissent ce que
l’on appelle l’interface de la classe.
119
Conception des systèmes d’information
Encapsulation, visibilité et interface
Données
Traitement
}
}
•Partie statique, passive
•Partie cachée, privée
•Partie dynamique, comportementale
•Partie visible, publique
•Interface avec l’extérieur
User
120
Conception des systèmes d’information
Méthodes et classes abstraites


Une méthode est dite abstraite si on connaît son entête,
mais pas la manière dont elle peut être réalisée
Une classe est dite abstraite lorsqu’elle définit au moins
une méthode abstraite
FormeGéométrique
{abstract}
- abs : int
- ord : int
+
+
+
+
121
{abstract}surface () : double
getAbs ()
: int
getOrd ()
: int
... ()
Conception des systèmes d’information
Classe « Interface »


Une interface est une classe spéciale dont toutes les
méthodes sont abstraites
Une interface se note en UML avec le stéréotype
<<interface>> ou symbole
Forme
122
Conception des systèmes d’information
Package


Un package permet de regrouper des classes, des
interfaces et des packages.
Les classes, les interfaces et les packages ne peuvent
qu’un seul package dans lequel ils sont regroupés
123
Conception des systèmes d’information
Package

Un package est représenté par un rectangle possédant un
onglet dans lequel est inscrit le nom du package
124
Conception des systèmes d’information
Import des packages


La relation d’import permet à une classe d’un package
d’utiliser les classes d’un autre package.
La relation est monodirectionnelle : elle comporte un
package source et un package cible.
125
Conception des systèmes d’information
Import de packages


La relation d’import s’exprime avec une flèche en
pointillé
Dans l’exemple, la classe ‘Afficheur’ a besoin des classes
du package ‘Dessin’
126
Conception des systèmes d’information
Associations



Relation existant entre une, deux ou plusieurs classes.
Une association porte un nom (signification)
Représentée par une ligne rectiligne
127
Conception des systèmes d’information
Associations
Remarques
 une association fonctionne (généralement) dans les 2 sens
(bidirectionnelle)
 termes associés : Nom, Sens de lecture, degré (arité),
Multiplicité, Rôle, navigabilité et le qualificateur
128
Conception des systèmes d’information
Associations
Nom et sens de lecture


Décrit la nature (signification) de l’association
Montre la direction de lecture de l’association
129
Conception des systèmes d’information
Associations
Rôle d’une association
Décrit le rôle d’une classe dans une association
130
Conception des systèmes d’information
Associations
Rôle d’une association
Utile surtout dans deux cas :


Lorsqu’on a plusieurs associations entre deux classes avec des
rôles différents
une relation réflexive : relation entre deux instances d’une
même classe
Avion
Pilote
Personne
Personne
0..4
femme
Passager
0..1
mari
131
Conception des systèmes d’information
Associations
Classe association
Une association peut avoir des attributs = classe-association
132
Conception des systèmes d’information
Associations
Classe association

Les classes association sont utiles quand il y a des
attributs qui sont pertinents à l’association, mais à aucune
des classes impliquées.
Personne
Entreprise
1..*
0..1
Emploi
- Période : int
- Salaire : float
133
Conception des systèmes d’information
Associations
 degré d’une association = nombre de classes participantes
Association unaire : relie 2 instances d'une classe
association binaire : relie 2 classes
 association ternaire : relie 3 classes
 association n-aire : relie n classes
134
Conception des systèmes d’information
Associations
Multiplicité = nombre de participations d’une classe dans une
association
 indiquée à chaque extrémité d’une association
 sous la forme min..max
 min, max = 0, 1, *
 Exemple général
 Exemple concret
135
Conception des systèmes d’information
Associations
 Exemple ternaire
 Pour un couple d’instances de la classe A et de la classe B,
il y a au min. r1 instances de la classe C et au max. r2 instances,
…
…
136
Conception des systèmes d’information
Associations
Notation abrégée des multiplicités :
1

1..1 (exactement 1)
*

0..* (0 ou plusieurs)
n

n .. n (exactement n)
1..*  1 ou plusieurs (1 ou plus)
0..1  0 ou 1 (au plus un)
1..100  entre 1 et 100
2,4,5  2, 4 ou 5
137
Conception des systèmes d’information
Association
Navigabilité

Une association est par défaut bidirectionnelle.
Commandes
Clients
1..*
1

Cependant, il peut être utile de se limiter à une seule
direction  association navigable
138
Conception des systèmes d’information
Association
Navigabilité (Exemple)


Spécification : on doit être en mesure de savoir le client
qui a fait la commande et non toutes les commandes d’un
client
Conception :
Commandes
Clients
1..*
1

Implémentation : la classe commande doit avoir un champ
faisant référence à la classe client
139
Conception des systèmes d’information
Association
Navigabilité (Exercice)
Un étudiant peut avoir jusqu’à 5 copies d’examens. À un
étudiant sont associées ses copies d’examens, mais on ne
doit pas autoriser l’accès à l’auteur de la copie
(notamment avant la correction des copies)
140
Conception des systèmes d’information
Qualification d'une association


La qualification d’une association permet de restreindre la
multiplicité d’une association.
La qualification se représente par un rectangle placé au
niveau de la classe source du qualificatif.
141
Conception des systèmes d’information
Qualification d'une association
Exemple : une banque contient plusieurs comptes, d'où le
diagramme :
Banque
Compte
1..*
1
Par contre, si on connaît le N°Compte, il y a un
et un seul compte, on obtient alors :
Compte
Banque
NCompte
1
142
1
Conception des systèmes d’information
Qualification d'une association
Exercice
 Un avion est composé de plusieurs sièges, mais dans une
rangée il y a seulement quatre sièges.
143
Conception des systèmes d’information
Agrégation
Type particulier d’association dans laquelle :


Classe agrégat (composé), classes agrégée (composant)
Entre les deux, il existe une relation de type « est composé de »
Agrégat
144
Agrégée
Conception des systèmes d’information
Agrégation


Les parties (les composants) sont séparables de L’agrégat
(le tout)
La suppression d’une équipe n’implique pas la suppression
des personnes qui la composent
145
Conception des systèmes d’information
Agrégation
Titre
0..1
Un agrégat (composé) peut être multiple.
1..1
Destinataire
1..*
E-Mail
0..*
0..*
*
Ici, on exprime qu'un fichier peut être attaché à un email (ou a
plusieurs, ou même à aucun) et qu'un email peut (ou non)
attacher (contenir une copie) une ou plusieurs fichiers.
1..1
0..1
Texte
146
Conception des systèmes d’information
Fichier
Composition



La composition est un cas particulier d’une agrégation
dans laquelle la vie des composants (élément) est liée à
celle de l’agrégat (composé) : si l’agrégat est détruit (ou
déplacé), ses composants le sont aussi.
D’un autre côté, et contrairement à l’agrégation, une
instance de composant ne peut être liée qu’a un seul
agrégat.
La composition se représente par un losange noir (plein).
147
Conception des systèmes d’information
Composition
 la suppression d’un objet agrégat entraîne la suppression des
objets agrégés
148
Conception des systèmes d’information
Composition


Un document est composé de plusieurs paragraphes, qui,
à son tour, est composé de plusieurs phrases
Remarquer la propagation des opérations (copie,
suppression,…)
149
Conception des systèmes d’information
Généralisation / Spécialisation et
héritage




La généralisation est la relation entre une classe et une
ou plusieurs de ses versions raffinées.
On appelle la classe dont on tire les précisions la superclasse et les autres classes les sous-classes.
C’est une relation de type « est un (is a) » ou « est une
sorte de ».
La notation utilisée pour la généralisation est le triangle
150
Conception des systèmes d’information
Généralisation / Spécialisation et
héritage
 généraliser = mettre en facteur des classes  « super-classe »
 spécialiser = décrire de nouveaux détails
 « sous-classes »
 comparable à une association de type « est un, is a, kind of »
 une sous-classe hérite des attributs et opérations de sa super-classe
(classe mère)
151
Conception des systèmes d’information
Généralisation / Spécialisation et
héritage
La classe spécialisée (sous-classe)
 hérite les méthodes et les attributs de la classe générale
(super-classe)
 peut ajouter ses propres attributs et méthodes.
 peut redéfinir le comportement d’une méthode.
152
Conception des systèmes d’information
Généralisation / Spécialisation et
héritage
Compte
- N°Compte : String
- Solde
: float
+ <<Constructor>> Compte ()
+
Déposer (float Somme) : void
+
Retirer (float Somme) : float
+
AvoirSolde ()
: String
CompteEpargne
- Taux : float
+ AvoirSolde () : String
153
Conception des systèmes d’information
Généralisation / Spécialisation et
héritage
Remarques
 La généralisation et la spécialisation sont deux façons
pour voir la même relation, top-down (spécialisation) ou
bottom-up (généralisation).
 L'héritage est l’implémentation de la relation de la
généralisation/spécialisation.
 Une classe peut hériter de plusieurs classes, on parle
alors d’un héritage multiple.
154
Conception des systèmes d’information
Généralisation / Spécialisation et
héritage
Personnes
- Code : int
- Nom : String
+ <<Constructor>> Personnes (int Code, String Nom)
+
getNom ()
: String
+
getInf ()
: String
Spécialisation
Super classe, classe mère
Généralisation
Etudiants
- Salaire : float
+ <<Constructor>> Etudiants (int Code, String Nom, float Salaire)
+
getInf ()
: String
+
getSalaire ()
: float
Sous classes
Classes filles
Classes dérivées
155
Employes
- Filiere : String
+ <<Constructor>> Employes (int Code, String Nom, String Filiere)
+
getInf ()
: String
+ Conception des systèmes
getFiliere ()
: String
d’information
Généralisation / Spécialisation
 une classe peut hériter de plusieurs super-classes
= héritage multiple
156
Conception des systèmes d’information
Généralisation / Spécialisation
 polymorphisme = opérations de même nom, polymorphisme
= comportement spécifique
157
Conception des systèmes d’information
Contraintes sur les associations




Concepts avancés des associations
Permettent d’imposer des règles à respecter lors du
passage à l’implémentation
Il est possible d’attribuer toutes sortes de contraintes à
une association
Les contraintes sont représentées entre accolades et
peuvent être exprimées dans n’importe quel langage
158
Conception des systèmes d’information
Contraintes sur les associations
Les contraintes (prédéfinies) souvent utilisées :





159
{ordonné}
{sous ensemble}
{xor}
{addOnly}
{frozen}
Conception des systèmes d’information
Contraintes sur les associations
contrainte {ordonné}
Indique que les objets seront ordonnés à chaque opération
de création, modification, suppression, …
Personne
1
0..*
{Ordonné}
Les comptes d’une personne sont ordonnés
160
Conception des systèmes d’information
Compte
Contraintes sur les associations
contrainte {sous-ensemble}


Indique qu’une collection est incluse dans une autre
Nécessite la présence d’au moins deux relations
Ecole
Parent d’élève
1..*
{sous-ensemble}
Personnes
Délégué
1..*
Les personnes qui jouent le rôle de délégué font partie des personnes
qui jouent le rôle de parents d’élèves
161
Conception des systèmes d’information
Contraintes sur les associations
contrainte {xor}
Indique que parmi un groupe d’associations, une seule est
valide à la fois
Batterie
1
PC Portable
1
{xor}
1
Un PC Portable est alimenté soit à partir
d’une batterie, soit à partir d’un secteur
1
162
Secteur
Conception des systèmes d’information
Contraintes sur les associations
contrainte {addOnly}
La contrainte prédéfinie {addOnly} autorise l’ajout de
nouveaux objets, mais pas leur suppression ni leur mise
à jour.
Personne
1..*
Liste
1
1
0..*
{addOnly}
Enfants
163
Conception des systèmes d’information
Contraintes sur les associations
contrainte {frozen}
La contrainte prédéfinie {frozen} interdit l’ajout, la
suppression ou la mise à jour des liens d’un objet vers
les objets de la classe associée, après l’initialisation du
premier.
Personne
{frozen}
2
parent
164
0..*
enfant
Conception des systèmes d’information
Contraintes sur les associations
Exercices
Modéliser sous forme de diagrammes de classes :
1.
Le président d’un comité doit être membre du comité
2.
Une personne qui soumet un article à un journal ne
peut pas évaluer son propre article
165
Conception des systèmes d’information
Contraintes sur les associations
Exercices
Modéliser sous forme de diagrammes de classes :
1.
Un véhicule est composé d’au moins 2 roues. Le
nombre de roues d’un véhicule ne peut pas varier
2.
Les employés de l’hôtel n’ont pas le droit de prendre
une chambre dans le même hôtel.
166
Conception des systèmes d’information
Contraintes sur les associations
Exercices
Une personne
 Est née dans un pays (ce pays ne peut être modifié)
 A visité un certain nombre de pays, dans un ordre donné,
et que le nombre de pays visités ne peut que croître
 Aimerait encore visiter toute une liste de pays, et que
cette liste est ordonnée.
167
Conception des systèmes d’information
Exemple de diagramme de classes
(Distributeur Automatique de Banque : DAB)
168
Conception des systèmes d’information
Diagramme d’objets


Représente les objets (instances de classes) et les liens
(instances de relations) à un instant donné
Peut être utilisé pour :




169
Illustrer le modèle de classes en montrant un exemple qui
explique le modèle
Préciser certains aspects du système
Exprimer une exception en modélisant des cas particuliers
Etc.
Conception des systèmes d’information
Diagramme d’objets

Le nom d’un objet est souligné



170
Nom : Classe
Nom
:Classe
Conception des systèmes d’information
Diagramme d’objets
Exemple :
 Une entreprise emploie au moins deux personnes
 Une personne travaille dans au plus deux entreprises
171
Conception des systèmes d’information
Diagramme d’objets
Exemple
Entreprise
:Entreprise
e1:Entreprise
0..2
2..*
Personne
:Personne
172
p1:Personne
p2:Personne
p3:Personne
Conception des systèmes d’information
p4:Personne
Etapes pour établir un diagramme de
classes
A partir d’une description du système :
1. Identifier un premier ensemble de classes candidates
2. Identifier les associations et les attributs
3. Identifier les généralisations
4. Lister les traitements, choisir les opérations
5. Vérifier le modèle obtenu
a.
Supprimer les transitivités
b.
S’assurer que le schéma répond à la demande
6. Itérer jusqu’à satisfaction …
173
Conception des systèmes d’information
UML
Diagrammes de cas d'utilisation
Diagramme des cas d’utilisation


Décrit, sous forme d’actions et de réactions, le
comportement d’un système du point de vue d’un
utilisateur.
Permet de définir les limites du système et ses relations
avec l’environnement.
175
Conception des systèmes d’information
Diagramme de cas d'utilisation



Sert à modéliser les aspects dynamiques d'un système
(Contrairement aux diagrammes de classes).
Fait ressortir les acteurs et les fonctions offertes par le
système.
Utilisé pour modéliser les exigences (besoins) du client
176
Conception des systèmes d’information
Diagrammes des cas d'utilisation
Comportent plusieurs éléments :
 Acteurs
 Cas d'utilisation
 Relations de dépendances, de généralisations et
d'associations
177
Conception des systèmes d’information
Acteurs



UML n’emploi pas le terme d’utilisateur mais d’acteur.
Le terme acteur ne désigne pas seulement des utilisateurs
humains mais également les autres systèmes (machines,
programmes, …)
Un acteur est un rôle joué par une entité externe qui agit
sur le système (Comptabilité, service commercial, …), en
échangeant de l’information (en entrée et en sortie)
178
Conception des systèmes d’information
Acteurs
Remarques
 La même personne physique peut jouer le rôle de
plusieurs acteurs (Chef d’agence est un client de la
banque).
 D’autres part, plusieurs personnes peuvent jouer le
même rôle, et donc agir comme un même acteur
(plusieurs personnes peuvent jouer le rôle
d’administrateur).
179
Conception des systèmes d’information
Acteurs
Peut être représenté de deux manières différentes :

Petit personnage (stick man)

Classe stéréotypée
Nom Acteur
<<Acteur>>
Nom Acteur
180
Conception des systèmes d’information
Acteurs
Les acteurs peuvent être de trois types :
 Humains : utilisateurs du logiciel à travers son interface
graphique, par exemple.
 Logiciels : disponibles qui communiquent avec le système
grâce à une interface logicielle (API, ODBC, …)
 Matériels : exploitant les données du système ou qui sont
pilotés par le système (Imprimante, robots, automates, …)
181
Conception des systèmes d’information
Acteurs
<<acteur>>
Site Web de l'établissement
Secrétaire
Système de Gestion
Scolaire
Etudiant
<<acteur>>
Imprimante
182
Conception des systèmes d’information
Acteurs
Mais du point de vue système on distingue deux types :
 Acteurs principaux : utilisent les fonctions principales du
système. Par exemple, le client pour un distributeur de
billets.
 Acteurs secondaires : effectuent des tâches
administratives ou de maintenance. Par exemple, la
personne qui recharge la caisse contenue dans le
distributeur.
183
Conception des systèmes d’information
Acteurs
Un acteur peut être une spécialisation
d'un autre acteur déjà défini.
Acteur général
Dans ce cas, on utilise la relation de
généralisation/spécialisation.
Acteur spécialisé
184
Conception des systèmes d’information
Cas d'utilisation



Introduit par Ivar Jacobson en 1992 dans sa méthode
Object-Oriented Software Engineering (OOSE).
Technique de description du système étudié privilégiant le
point de vue de l'utilisateur.
Repris par UML dans la but de :


185
Effectuer une bonne délimitation du système
Améliorer la compréhension de son fonctionnement interne
Conception des systèmes d’information
Cas d'utilisation
Les cas d’utilisations
 Permettent de modéliser les attentes (besoins) des
utilisateurs
 Représentent les fonctionnalités du système
 Suite d’événements, initiée par des acteurs, qui
correspond à une utilisation particulière du système
 L’image d’une fonctionnalité du système, déclenchée en
réponse à la stimulation d’un acteur externe.
186
Conception des systèmes d’information
Cas d'utilisation
Un cas d'utilisation est représenté par une ellipse en trait
plein, contenant son nom.
Nom Cas Utilisation
187
Conception des systèmes d’information
Structuration des cas d'utilisation
Après avoir identifié les acteurs et les cas d'utilisation, il est
utile de restructurer l'ensemble des cas d'utilisation que
l'on a fait apparaître afin de rechercher les :



188
Comportements partagés
Cas particuliers, exceptions, variantes
Généralisations/spécialisations.
Conception des systèmes d’information
Structuration des cas d'utilisation
UML définit trois types de relations standardisées entre cas
d'utilisation :
 Une relation d'inclusion, formalisée par la dépendance
«include»
 Une relation d'extension, formalisée par la dépendance
«extend»
 Une relation de généralisation/spécialisation
189
Conception des systèmes d’information
Relation d'inclusion
Lors de la description des cas d'utilisation, il apparaît qu'il
existe des sous-ensembles communs à plusieurs cas
d'utilisation, il convient donc de factoriser ces
fonctionnalités en créant de nouveaux cas d'utilisation qui
sont utilisés par les cas d'utilisation qui les avaient en
commun.
190
Conception des systèmes d’information
Relation d'inclusion


A inclut B : le cas A inclut obligatoirement le
comportement définit par le cas B; permet de factoriser
des fonctionnalités partagées
Le cas d'utilisation pointé par la flèche (dans notre cas B)
est une sous partie de l'autre cas d'utilisation (A, dans
notre exemple).
B
<<include>>
A
191
Conception des systèmes d’information
Relation d'inclusion
Retirer de l'argent
<<include>>
Les cas d'utilisation "Déposer de
l'argent", "Retirer de l'argent",
"Effectuer des virements" et "Consulter
solde" incorporent de façon explicite le
cas d'utilisation "S'authentifier", à un
endroit spécifié dans leurs
enchaînements.
Déposer de l'argent
<<include>>
S'authentifier
<<include>>
Effectuer des virements
<<include>>
Consulter solde
192
Conception des systèmes d’information
Relation d'inclusion
On utilise cette relation pour éviter de décrire plusieurs
fois un même enchaînement d'actions. Ainsi, on est amené
à factoriser un comportement commun à plusieurs cas
d'utilisation dans un cas d'utilisation à part.
193
Conception des systèmes d’information
Relation d'inclusion
Remarques
 La relation include n’a pour seul objectif que de factoriser
une partie de la description d’un cas d’utilisation qui
serait commune à d’autres cas d’utilisation.
 Le cas d’utilisation inclus dans les autres cas d’utilisation
n’est pas à proprement parlé un vrai cas d’utilisation car il
n’a pas d’acteur déclencheur ou receveur d’évènement. Il
est juste un artifice pour faire de la réutilisation d’une
portion de texte.
194
Conception des systèmes d’information
Relation d'inclusion
Résumé
 Une instance du cas source inclut obligatoirement le
comportement décrit par le cas d’utilisation destination
 Permet de décomposer des comportements et de définir
les comportements partagées entre plusieurs cas
d’utilisation
▬► Factoriser
195
Conception des systèmes d’information
Relation d'extension
La relation stéréotypée «extend» permet d'étendre les
interactions et donc les fonctions décrites dans les cas
d'utilisation, mais sous certaines contraintes.
196
Conception des systèmes d’information
Relation d'extension


Le CU source (B) ajoute, sous certaines conditions, son
comportement au CU destination (A)
En d’autres termes, le CU B peut être appelé au cours de
l’exécution du CU A
A
B

<<extend>>
Point d'insertion
Le comportement ajouté s’insère au niveau d’un point
d’extension définit dans le CU destination
197
Conception des systèmes d’information
Relation d'extension


Le cas d'utilisation de destination peut fonctionner tout
seul, mais il peut également être complété par un autre
cas d'utilisation, sous certaines conditions.
On utilise principalement cette relation pour séparer le
comportement optionnel (les variantes) du
comportement obligatoire.
198
Conception des systèmes d’information
Relation d'extension
Exemple :
Au moment de l'authentification, il se peut que le guichet
retient la carte.
S'authentifier
Retenir la carte
199
<<extend>>
Conception des systèmes d’information
Relations d’inclusion VS d'extension


La relation « extend" montre une possibilité d'exécution
d'interactions qui augmenteront les fonctionnalités du cas
étendu, mais de façon optionnelle, non obligatoire,
La relation "include" suppose une obligation d'exécution
des interactions dans le cas de base.
200
Conception des systèmes d’information
Relation d'héritage


Il peut également exister une relation d'héritage entre cas
d'utilisation.
Cette relation exprime une relation de
spécialisation/généralisation au sens classique.
201
Conception des systèmes d’information
Relation d'héritage : Exemple
Dans un système d'agence de voyage, un acteur
"Touriste" peut participer à un cas d'utilisation de
base qui est "Réserver voyage", qui suppose par
exemple, des interactions basiques au comptoir de
l'agence. Une réservation peut être réalisée par
téléphone ou par Internet.
202
Conception des systèmes d’information
Relation d'héritage : Exemple



On voit qu'il ne s'agit pas d'une relation "extend", car la
réservation par Internet n'étend pas les interactions ni les
fonctionnalités du cas d'utilisation "Réserver voyage".
Les deux cas d'utilisation "Réservation voyage" et "Réserver
voyage par Internet" sont liés : la réservation par Internet
est un cas particulier de réservation.
De façon générale en objet, une situation de cas particulier
se traduit par une relation de généralisation/spécialisation.
203
Conception des systèmes d’information
Relation d'héritage : Exemple
Reserver voyage
Réserver voyage par téléphone
204
Réserver voyage par Internet
Conception des systèmes d’information
Structuration entre cas d’utilisation
Résumé
Les cas peuvent être structurées par des relations :
 A inclut B : le cas A inclut obligatoirement le
comportement définit par le cas B; permet de factoriser
des fonctionnalités partagées
 A étend B : le cas A est une extension optionnelle du cas
B à un certain point de son exécution.
 A généralise B : le cas B est un cas particulier du cas A.
205
Conception des systèmes d’information
Relations entre cas d’utilisation :
Exemple
Un client peut effectuer un virement bancaire. Le retrait
peut être effectué sur place ou par Internet. Le client
doit être identifié (en fournissant son code d’accès)
pour effectuer un virement, mais si le montant dépasse
500DT, la vérification du solde de son compte est
réalisée.
206
Conception des systèmes d’information
Relations entre cas d’utilisation
Virement
<<extend>>
Vérification solde compte
Montant > 500 DH
<<include>>
Virement par Internet
Virement sur place
Identification
Client distant
207
Client local
Conception
des systèmes d’information
Description des cas d’utilisation



Le diagramme de cas d’utilisation décrit les grandes
fonctions d’un système du point de vue des acteurs.
Mais il n’expose pas de façon détaillée le dialogue entre
les acteurs et les cas d’utilisation.
 nécessité de décrire ce dialogue
208
Conception des systèmes d’information
Description des cas d’utilisation
Deux façons sont couramment utilisées pour décrire les cas
d’utilisation :
 Description textuelle
 Description à l’aide d’un diagramme de séquence (voir
chapitre suivant)
209
Conception des systèmes d’information
Description des cas d’utilisation
(description textuelle)

Identification



210
Nom du cas : retrait d’argent
Objectif : détaille les étapes permettant à un guichetier
d’effectuer des opérations de retrait par un client
Acteurs : Guichetier (Principal), Système central (Secondaire)
Conception des systèmes d’information
Description des cas d’utilisation
(description textuelle)
Scénarios


1.
2.
3.
4.
5.
6.
7.
211
Scénario nominal
Le Guichetier saisit le numéro de compte client
L’application valide le compte auprès du SC
L’application demande le type d’opération au Guichetier
Le Guichetier sélectionne un retrait de 200 DT
Le système interroge le SC pour s’assurer que le compte est
suffisamment approvisionné.
Le SC effectue le débit du compte
Le système notifie au guichetier qu’il peut délivrer le montant
demandé
Conception des systèmes d’information
Description des cas d’utilisation
(description textuelle)
Scénarios


1.
212
Scénario alternatif (exception)
En (5) : si le compte n’est pas suffisamment approvisionné
….
Conception des systèmes d’information
Description des cas d’utilisation
(description par diagramme de séquence)
S ys tè m e
G u i c h e ti e r
S a is ie d u n u m é r o d e c o m p te c lie n t
S ys tè m e C e n tra l
D e m a n d e d e v a lid ité d e c o m p te
OK
V é r fific a tio n
D e m a n d e ty p e o p é r a tio n
R e tr a it(s o m m e )
C o m p te s u ffis a m m e n t a p p r o v io s io n n é
C o m p te d é b ité
A u to r is a tio n d e d é liv r e r s o m m e
213
Conception des systèmes d’information
D é b ite r le c o m p te
Intérêts des cas d’utilisation
Les CU obligent les utilisateurs à :
 Définir la manière dont ils voudraient interagir avec le
système
 Préciser quelles informations ils entendent échanger avec
le système
 Décrire ce qui doit être fait pour obtenir le résultat
escompté
214
Conception des systèmes d’information
Diagramme des cas d'utilisation


Le diagramme des cas d'utilisation regroupe dans un
même schéma les acteurs et les cas d'utilisation en les
reliant par des relations. Le système étant délimité par un
cadre rectangulaire.
La représentation de base d'un cas d'utilisation est une
ellipse contenant le nom du cas. L'interaction entre un
acteur et un cas d'utilisation se représente comme une
association. Elle peut comporter des multiplicités comme
toute association entre classes.
215
Conception des systèmes d’information
Diagramme des cas d'utilisation
Déposer de l 'argent
Reteni r l a carte
Cl i ent
<<i ncl ude>>
Reti rer de l 'argent
<<extend>>
<<i ncl ude>>
Consul ter l e sol de
<<i ncl ude>>
S'authenti fi er
<<i ncl ude>>
Effectuer des vi rements entre comptes
Fourni r un l ogi n et un mot
de passe
Agent
Ravi tai l l er
T echni ci en
Réparer
216
Conception des systèmes d’information
Étapes de construction du diagramme des
cas d'utilisation
Pour modéliser le diagramme des cas d'utilisation, il faut :
 Identifier les acteurs qui entourent le système. Certains acteurs
utilisent le système pour accomplir des tâches (acteurs principaux),
d'autres effectuent des tâches de maintenance ou d'administration
(acteurs secondaires).
 Organiser les acteurs selon une hiérarchisation de
généralisation/spécialisation
 Intégrer les acteurs au diagramme en spécifiant les cas d'utilisation
auxquels ils se rapportent
 Structurer les cas d'utilisation pour faire apparaître les comportement
partagés (relation d'inclusion), les cas particuliers
(généralisation/spécialisation) ou options (relation d'extension)
217
Conception des systèmes d’information
UML
Diagrammes de séquences
Diagramme de séquences




Représenter les interactions entre objets en précisant la
chronologie des échanges de messages
Représente une instance d’un cas d’utilisation (les
scénarios possible d’un cas d’utilisation donné)
Montre sous forme de scénarios, la chronologie des
envoies de messages issus d’un cas d’utilisation
Le diagramme de séquence fait ressortir :



219
Les acteurs
Les objets
Les messages
Conception des systèmes d’information
Diagramme de séquences
O b j e t_ 1
O b j e t_ 2
O b j e t_ 3
M e ssa g e _ 1
M e ssa g e _ 2
L ig n e d e vie d e
l 'o b j e t
220
Conception des systèmes d’information
Diagramme de séquences



Un objet est représenté par un rectangle et une ligne
verticale (ligne de vie de l’objet)
Les objets communiquent en échangeant des messages
représentés par des flèches orientées de l’émetteur au
récepteur
L’ordonnancement vertical des messages indique la
chronologie
221
Conception des systèmes d’information
Diagramme de séquences


Un message reçu par un objet déclenche l’exécution d’un
opération
Un message envoyé par objet correspond :


222
Demander un service d’un autre objet
Renvoyer le résultat d’un opération
Conception des systèmes d’information
Diagramme de séquences : Exemple
Compte
- N°Compte : String
- Solde
: float
+ <<Constructor>> Compte (int n, float s)
déposer (float somme) : void
+
retirer (float somme) : float
+
: float
consulter ()
+
Le client demande un service (déposer de l’argent) à l’objet Compte
Le compte reçoit le message et déclenche l’opération de même nom
Le compte retourne le résultat (le solde actuel)
223
Conception des systèmes d’information
Diagramme de séquences
Plusieurs concepts additionnels :
 Période d’activité
 Types de messages
 Création et destruction d’objets
 Structures de contrôles
224
Conception des systèmes d’information
Période d’activité


Correspond au temps pendant lequel un objet fait une
action
Représentée par une bande rectangulaire superposée à la
ligne de vie de l’objet
Objet_2
Objet_1
Message_1
225
Conception des systèmes d’information
Messages



Traduisent les interactions (échange d’informations) entre
objets
Représentés par des flèches orientées de l’émetteur au
récepteur
Plusieurs types :





226
Message simple
Message minuté (Timeout)
Message synchrone
Message asynchrone
Message récursif
Conception des systèmes d’information
Message simple
Message pour lequel on ne spécifie aucune information
d’envoi ou de réception
Objet_1
Objet_2
Message_1
227
Conception des systèmes d’information
Message minuté (Timeout)


Bloque l’expéditeur pendant un temps donné, en
attendant la prise en compte du message par le récepteur
Après le délai, l’expéditeur est libéré et peut envoyer
O b j e t_ 2
O b j e t_ 1
M e ssa g e _ 1 (2 0 se c o n d e s)
228
Conception des systèmes d’information
Message minuté (Timeout) : Exemple
La porte d’un ascenseur s’ouvre pendant un certain délai
avant d’être refermée.
Ascenseur
Porte
ouvrir (2 secondes)
fermer
229
Conception des systèmes d’information
Message synchrone (appel de
procédure)


Bloque l’expéditeur jusqu’à la prise en compte du
message par le récepteur
Le contrôle est passé de l’émetteur au récepteur qui
devient à son tour émetteur (actif)
O b j e t_ 2
O b j e t_ 1
M e ssa g e _ 1
230
Conception des systèmes d’information
Message synchrone (appel de
procédure) : Exemple
Communication client serveur : Sockets
Client
Serveur
Sollitation
Acceptation
Requête
Réponse
231
Conception des systèmes d’information
Message asynchrone


N’interrompt pas l’exécution de l’expéditeur
L’expéditeur peut émettre sans attendre la réponse du
récepteur
O b j e t_ 2
O b j e t_ 1
M e ssa g e _ 1
232
Conception des systèmes d’information
Message récursif


Appelé aussi message réflexif
Message envoyé d’un objet vers lui-même.
Objet_1
Message_1
233
Conception des systèmes d’information
Message récursif : Exemple
Lorsque le client introduit sa carte de guichet, ce dernier
vérifie la validité de la carte avant de demander le code
d’accès
Client
GAB
Introduire carte
Vérification validité
Demande code accès
234
Conception des systèmes d’information
Création et destruction d’objets
Un message peut créer ou détruire un objet
Objet_1
Objet_3
Message_1
Création d’objet
Objet_2
Message_2
Objet créé au cours de l’exécution du scénario
Destruction d’objet
Objet détruit dans un scénario
235
Conception des systèmes d’information
Traduction des messages


Envoyer un message c’est demander un service d’un autre
objet (sauf le cas d’un message de retour).
Les messages sont traduits par des opérations dans la
classe de l’objet ayant reçu le message
236
Conception des systèmes d’information
Traduction des messages
class Voiture{
Public void demarrer(){}
}
class Conducteur{
private Voiture voiture;
public void conduire(){
voiture.demarrer();
}
}
… main(String[] arg){
conducteur.conduire();
}
237
Conception des systèmes d’information
Structures de contrôle
Le diagramme de séquences peut inclure un certain nombre
de structures
 Branchements (tests)
 Répétitions (itérations, boucles)
238
Conception des systèmes d’information
Les test (branchements)
La condition précédée le message et elle est délimitée par
des crochets
Objet_1
Objet_2
[condition]: Message
239
Conception des systèmes d’information
Objet_3
Les test (branchements) : Exemple
Pour accéder au centre de recherche, l’utilisateur doit
présenter son badge. S’il a droit d’accès, un voyant
vert est allumé et la porte s’ouvre
Utilisteur
Système
Présente son badge
Vérifier droit d'accès
[OK]voyant vert
ouvrir porte
240
Conception des systèmes d’information
Les boucles (répétitions)
La boucle se note comme le test, mais la condition est
précédée d’un astérisque
Objet_1
Objet_2
* [condition]: Message
241
Conception des systèmes d’information
Objet_3
Fragments



Permet de décomposer une interaction complexe en
fragments simples
Représenté par un rectangle dont le coin supérieur
gauche contient un pentagone
Dans le pentagone figure le type du fragment




242
loop : boucle
alt : alternative
ref : référence
…
Conception des systèmes d’information
Fragments
Tant que x>0 faire
Si x>0 alors
Si x<0 alors
243
Conception des systèmes d’information
UML
Diagrammes de collaboration
Diagramme de collaboration


Représente les interactions entre objets et relations
structurelles permettant celles-ci.
Permettent la description:




Du comportement collectif d’un ensemble d’objets
Des connexions entre ces objets
Des messages échangés par les objets
Interaction réalisée par un groupe d’objets qui
collaborent en échangeant des messages
245
Conception des systèmes d’information
Diagrammes de collaboration


Représentation graphique de l’évolution d’un ensemble
d’objets pour effectuer une action
Différences avec diagrammes de séquence


246
pas d’axe temporel
temps modélisé par numérotation
Conception des systèmes d’information
Diagrammes de collaboration
Éléments d’une interaction
 Instances



liens



qui collaborent avec d'autres objets en échangeant des
informations
:Classe
Objet:Classe
Représentés par
qui sont des supports de messages
Représentés comme des associations
messages


247
déclenchant les opérations
Indiqués par des flèches
Conception des systèmes d’information
Diagrammes de collaboration

Exemple : Appel téléphonique
:Appelant
248
1. Décrocher
:Ligne
2. Tonalité
3. Numérotation
4.1a. Tonalité sonnerie
6.1a. Arrêt tonalité
4.1b. Sonnerie
5. Décrocher
6.1b. Arrêt sonnerie
Conception des systèmes d’information
:Appelé
Diagrammes de collaboration

Aspect temporel


modélisé par numérotation des messages
Type et Sémantique des numérotations

1, 2, 3, 4 : Numérotation simple


1, 1.1, 1.2, 1.2.1, 1.2.2, 1.2.3 : Dot notation


séquencement + un point : ne peut être terminé que si ses sous
points le sont aussi
1, 1.1a, 1.1b, 1.2, 1.3 : Dot notation + concurrence

249
séquencement des messages
idem dot notation, mais les points 1.1a et 1.1b peuvent être effectués
en parallèle
Conception des systèmes d’information
Diagrammes de collaboration

Mêmes types de contraintes que pour les diagrammes de
séquence



Itération : *[condition]
Conditions : [condition]
Exemple : réservation d’articles
1. commander(n, item)
:Client
:Vendeur
4. livrer(n, item)
250
2. vérifier(n, item)
:Stock
3. [disponible]réserver(n, item)
Conception des systèmes d’information
Diagrammes de collaboration



Les objets crées ou détruits au cours d’une interaction
peuvent respectivement porter les contraintes :
{Nouveau}
{Détruit}
251
<<{Détruit}>>
<<{Nouveau}>>
Objet_1
Objet_2
Conception des systèmes d’information
Diagrammes de collaboration
Conclusion
 Représentation spatiale



Aspect temporel plus difficile à suivre que pour les Diagrammes
de séquence
Durée d’exécution d’une contrainte difficile à évaluer
Diagramme niveau instance

Limite : taille des diagrammes

252
Plus d’instances peuvent être représentées sur un même diagramme
que pour les diagrammes de séquence
Conception des systèmes d’information
Exemple : Ascenseur (Séquence)
253
Conception des systèmes d’information
Exemple : Ascenseur (Collaboration)
254
Conception des systèmes d’information
UML
Diagramme état-transition
Diagramme état-transition
Le diagramme état-transition :
 Fait partie des modèles dynamiques
 Décrit l'enchaînement de tous les états d'un objet
 Propre à une classe donnée. Il décrit :



256
Les états des objets de cette classe
Les événements auxquels ils réagissent
Les transitions qu'ils effectuent
Conception des systèmes d’information
Diagramme état-transition
Le diagramme état-transition manipule plusieurs concepts :
 État
 Transition
 Événement
 Garde
 …
257
Conception des systèmes d’information
État



L'état d'un objet est défini par l'ensemble des valeurs de
ses attributs (fenêtre affichée, fenêtre cachée, …)
Un état dépend de l'état précédent et de l'événement
survenu
Un état est représenté par un rectangle aux coins
arrondis
Fenêtre
- ID
: int
- Visible : boolean
258
Affichée
= True
Conception des systèmes d’information
Transition



C'est le passage d'un état à un autre
Peut être nommé par un événement
Représenté par une flèche orientée de l'état source vers
l'état cible
Restaurée
Réduire
Réduite
259
Conception des systèmes d’information
Événement




Fait (externe) survenu qui déclenche une transition
(changement d'états)
Peut être réflexif et conduire au même état
Conduit à l'appel d'une méthode de la classe de l'objet
Peut posséder des attributs :


260
paramètres portés par des événements
Représentés entre parenthèses
Conception des systèmes d’information
Exemple
Soit le diagramme d’états/transitions de l’objet ‘Fenêtre’
261
Conception des systèmes d’information
Gardiens



Conditions ou fonctions booléennes associées à une
transition
Une transition gardée ne peut être effectuée que si le
gardien est vérifié
Un gardien est représenté entre crochets
Etat1
262
Evénement [Condition]
Conception des systèmes d’information
Etat2
Formalisme et exemple
Etat1
Employé recruté
263
Evénement [Condition]
Prise fonction [Date embauche échue]
Conception des systèmes d’information
Etat2
Employé en activité
Actions et activités


Un objet qui reçoit un événement déclenche une ou
plusieurs opérations
On distingue deux types d'opérations :


264
Action : associée à un état ou à une transition
Activité : associée à un état
Conception des systèmes d’information
Activité



Opération d'une certaine durée, qui est exécutée tant
que l’objet se trouve dans l’état
Associée à un état d'un objet
Représentée dans l'état précédée par la notation "do/"
265
Conception des systèmes d’information
Action



Opération instantanée non interrompue
Peut être associée aussi bien à l'état d'un objet qu'a une
transition
Elle peut intervenir soit

En entrée de l'état (préfixe : "entry/")
En sortie de l'état (préfixe : "exit/")
En réponse à un événement (préfixe :"evt/")
Au cours d'une transition (préfixe : "evt/")
266
Conception des systèmes d’information



Formalisme et exemple
Etat 2
Etat_1
entry / Action_1
do / Action_2
Evénement() / Action_3
exit / Action_4
Evénement [Cond]/ Action
entry / Act1
do / Act2
Evénement() / Act3
exit / Act4
Embauché
entry / Signer contrat
do / Assurer fonction
Arrivée proposition() / Réponde à la proposition
Mutation() / Changer d'affectation
exit / Rompre contrat de travail
267
Conception des systèmes d’information
Exercice
Modéliser l’état de saisie d’un mot de passe :
 Au début, la zone de saisie est masquée
 À chaque saisie d’un caractère, il est stocké
 La touche F1 permet d’afficher l’aide
 Le bouton Annuler permet de fermer la fenêtre
 À la fin de la saisie (validation) le mot de passe est testé
(valide ou invalide)
268
Conception des systèmes d’information
État initial et états finaux
Un diagramme état-transition


Débute toujours par un état initial
Se termine par un ou plusieurs états finaux (sauf où le
diagramme représente une boucle)
Etat_1
Etat_2
269
Conception des systèmes d’information
Exemple (Feu de signalisation)
Feu
- ID
: int
- Couleur : {Vert, Orange, Rouge}
Orange
Vert
Rouge
270
Conception des systèmes d’information
Point de décision


Permettent de représenter des partages de transitions ou
des alternatives pour le franchissement d’une transition
On utilise deux mécanismes :


271
Points de jonction (petit cercle plein) : pour partager des
segments de transition
Points de choix (losange) : pour choisir une ou une autre
transition
Conception des systèmes d’information
Point de jonction
272
Conception des systèmes d’information
Points de choix
273
Conception des systèmes d’information
État composite



Un état composite (#état simple) est décomposé en deux
ou plusieurs sous états
Cette décomposition est récursive
Un état composite est représenté comme un état simple,
sauf que les sous états sont contenus dans le
compartiment inférieur.
274
Conception des systèmes d’information
Exemple
275
Conception des systèmes d’information
Historique



On représente le pseudo état historique par un H cerclé
Une transition ayant pour cible l’état historique est
équivalente à une transition ayant pour cible le dernier
état visité dans la région contenant le H
H* (historique profond) est un état valable pour tous les
niveaux
276
Conception des systèmes d’information
Concurrences

Pour représenter la concurrences dans un diagramme
d’états/transitions, on utilise :


277
États concurrents
Transitions concurrentes
Conception des systèmes d’information
États concurrents



État composite pour représenter l’exécution de plusieurs
automates s’exécutant indépendamment
On utilise un séparateur en pointillés
L’objet peut être simultanément dans plusieurs états
concurrents
278
Conception des systèmes d’information
États concurrents
279
Conception des systèmes d’information
Transitions concurrentes




Deux transitions particulières : fork et join
La transition fork correspond à la création de deux états
concurrents
La transition join permet de supprimer la concurrences
(barre de synchronisation)
Pour pouvoir franchir la barre de synchronisation, toutes
les tâches concurrentes doivent être achevées
280
Conception des systèmes d’information
Transitions concurrentes
281
Conception des systèmes d’information
UML
Diagramme d'activités
Introduction


Variante des diagrammes d'état-transition
Permet de décrire le flot de contrôle entre les opérations
:






Choix
Séquences
Itérations
Parallélisme
Au niveau macroscopique : décrit les enchaînements des
opérations
Au niveau microscopique : décrit l'algorithme d'une action
du diagramme d'états
283
Conception des systèmes d’information
Concepts de base
Plusieurs concepts sont manipulés :
 État
 Activité
 Transition (séquentielle, alternatives ou conditionnelle)
 Synchronisation (disjonction et conjonctions d’activités)
 Itération
 Swimlanes
284
Conception des systèmes d’information
Comportement conditionnel


Appelé aussi le branchement
Symbolise une transition entrante gardée par une
condition et plusieurs transitions sortantes mutuellement
exclusives
285
Conception des systèmes d’information
Comportement conditionnel :
Exemple
Demander l'addition
[Prix<=Somme disponible]
Régler la note
286
[Else]
Faire la vaisselle
Conception des systèmes d’information
Synchronisation


Fusion (conjonction) : plusieurs transitions entrantes et
une seule sortante
Comportement parallèle :



287
La barre de synchronisation permet d'ouvrir et de fermer les
branches parallèles au sein d'un flot d'exécution
Les transitions partantes d'une barre ont lieu en même temps
La barre n'est franchie qu'après réalisation de toutes les
transitions qui s'y rattachent
Conception des systèmes d’information
Synchronisation : Exemple
Déserrer le frein à main
Barre de synchronisation
Fusion (conjonction)
Appuyer sur l'embrayage
Enclencher la 1ère vitesse
Comportement parallèle
Disjonction
Relâcher l'embrayage
288
Conception des systèmes d’information
Itération : Exemple
Re ce vo ir co m m a n d e
V é ri f i e r a rt i c l e
C o m m a n d e r a rt i c l e
[ s'i l re st e d e s a rt i c l e s]
[ p l u s d 'a rt i c l e ]
289
Conception des systèmes d’information
Swimlanes


Extension des diagrammes d'activités permettant de
représenter l'organisation.
Représente le lieu, le responsable des activités.
290
Conception des systèmes d’information
Résumé notation
291
Conception des systèmes d’information
Exemple récapitulatif
292
Conception des systèmes d’information
Exemple récapitulatif
R é c e p ti o n c o m m a n d e
A n n u le r co m m a n d e
V é ri f i e r c a rt e c ré d i t
V é r i f i e r d i sp o n i b i l i t é p r o d u i t
[ E l se ]
[ E l se ]
[ D i sp o n i b l e ]
[V a l i d e ]
P ré p a re r c o m m a n d e
E xp é d ie r co m m a n d e
293
D é b i t e r c a rt e c ré d i t
P o st e r f a c t u r e
Conception des systèmes d’information
Exercice 1
Représenter les états suivants sous forme de diagramme
d'activité :
 Vérification commande
 Enregistrement commande
 Rejet commande
 Informer erreur au client
294
Conception des systèmes d’information
Exercice 1 : solution
Vérifier commande
Valide
[oui]
Enregistrement commande
[non]
Rejet commande
Informer erreur au client
295
Conception des systèmes d’information
Exercice 2
Dans le domaine de gestion de stock, on considère les états
suivants indiquant le flot de contrôle de réception d'une
livraison :
Réception livraison, contrôle qualité, contrôle quantité et
enregistrement livraison.
Proposez un diagramme d'activité représentant ce flot
d'information
296
Conception des systèmes d’information
Exercice 2 : solution
297
Conception des systèmes d’information
Exercice 3
Construire un diagramme d’activité pour modéliser le
processus de commande d’un produit. Le processus
concerne les acteurs suivants:
 Comptable : enregistrement commande, envoi de la
facture et enregistrement paiement du client
 Client : paiement de la facture
298
Conception des systèmes d’information
Exercice 3 : solution
299
Conception des systèmes d’information
Exercice 4
Construire un diagramme d’activité pour modéliser le
processus de commande d’un produit. Le processus
concerne les acteurs suivants:
 Client: qui commande un produit et qui paie la facture
 Caisse: qui encaisse l’argent du client
 Vente: qui s’occupe de traiter et de facturer la
commande du client
 Entrepôt: qui est responsable de sortir les articles et
d’expédier la commande.
300
Conception des systèmes d’information
Exercice 4 : solution
301
Conception des systèmes d’information
UML
Diagrammes de Composants et de Déploiement
Diagrammes de Composants/
Déploiement
Permettent de modéliser les aspects physiques d’un
système orienté-objet
 Diagramme de Composants : se focalise sur
l’organisation et les dépendances entre un
ensemble de composants
 Diagrammes de Déploiement : se focalise sur la
configuration en temps d'exécution des nœuds de
traitement et de composants qui sont actifs
303
Conception des systèmes d’information
Diagramme de composants


Dans le monde de bâtiment, tout ce qui est proposé par
l’architecte (plan) constitue une vue logique : visualiser,
spécifier, documenter
Lors de la construction, on utilise des composants
physiques du monde réel : murs, fenêtres, portes, …
304
Conception des systèmes d’information
Diagramme de composants


De même, tout ce que nous avons vu jusqu’à présent
constitue le modèle logique : visualiser, spécifier et
documenter la structure et le comportement des objets
La construction va s’appuyer sur les composants du
monde réel de l’ordinateur : fichiers, tables, librairies, …
305
Conception des systèmes d’information
Diagramme de composants



Permet de décrire l'architecture physique et statique d'une application
en terme de composants :
 code source,
 bibliothèques,
 exécutables,
Il montre la mise en oeuvre physique des modèles de la vue logique
dans l'environnement de développement
Permet de spécifier :
 Composants
 Interfaces
 Relations (dépendance, généralisation, association, réalisation).
306
Conception des systèmes d’information
Composant


Un composant est une partie physique et remplaçable
d’un système qui sait faire et fournit la réalisation d’un
ensemble d’interface
Les composants peuvent être organisés en paquetages
307
Conception des systèmes d’information
Composant
Nom du composant
Component1

Nom du composant :
 Permet de distinguer un composant des autres composants
 Il peut être un nom simple ou un nom composé qui indique le paquetage auquel
appartient le composant

Stéréotypes : spécifient un composant qui désigne:
 « executable »: un programme pouvant s’exécuter sur un nœud
 « library » : une bibliothèque statique ou dynamique
 « table »: une table de base de données
 « file » : un fichier contenant du code source ou des données
 « document » : un document
308
Conception des systèmes d’information
Concepts

Interface :


Est une collection d’opérations utilisées pour spécifier les
services d’une classe ou d’un composant
Relations avec les interfaces

Réalisation :



Dépendance :


309
Définie entre l’interface et le composant qui fournit les services
pour les autres composants
Cette interface est appelée « interface exportée »
Définie entre l’interface et le composant qui utilise les services
fournis par un autre composant
Cette interface est appelée « interface importée ».
Conception des systèmes d’information
Interface
Component1
Component2
Interface1
dépendance
réalisation
« Interface »
Interface1
Component1
Attributs
Opérations
310
Conception des systèmes d’information
Component2
Relations entre les composants

Dépendance :


Cela signifie qu’un des éléments d’un composant a besoin des
services que les élément de l’autre composant réalisent
Notation UML
Component1
311
Conception des systèmes d’information
Component2
Relations entre les composants

Contenance :


Un composant peut être contenu dans un autre composant
Notation UML
Component 1
Component 2
312
Conception des systèmes d’information
Système Vente
(diagramme de classes)
enregistre
Ligne de vente
SpécificationProduit
*
1
-Description : string
-Prix : real
+getDescritption(In Item:undefined):string
+getPrix(In Item:undefined):real
-quantité : integer
+setQuantité(In quantité:integer)
1..*
*
contenu dans
Contient
1
Vente
-Date : undefined
-Heure : undefined
+initierPaiement(In montant:real)
1
1..*
Magasin
+nom : string
+adresse : string
utilise
1
Catalogue
1
+ObtenirSpec(In Item:undefined):SpécificationProduit
est payée par
1
Paiement
-montant : real
-mode : string
313
Conception des systèmes d’information
Diagramme de composants
(Exemple)

Système Vente
<<executable>>
IHM_Caisier
<<interface>>
InterfaceProduit
InterfacePaiement
<<library>>
JavaSwing
<<executable>>
Enregistrement-Produits
<<executable>>
GestionPaiement
InterfaceAutorisation
InterfaceImpôts
<<executable>>
Gestion d'autorisation
Gestion d'Impôts
InterfaceCatalogue
<<utility>>
CatalogueProduits
314
Conception des systèmes d’information
Diagramme de déploiement



Montre la configuration des nœuds de exécution et des
composants qu’y résident
Montre les relations physiques entre les composants
logiciels et matériels d’un système
Permet de spécifier


315
Nœuds
Relations : (dépendance, associations)
Conception des systèmes d’information
Nœud




Est un élément physique qui existe pendant l’exécution
et représente une ressource informatique dans la
plupart de cas il s’agit d’un élément matériel
En général un nœud possède sa propre mémoire et une
capacité de traitement
L’ensemble de composants qui est associé aux nœuds
est appelé « unité de répartition »
Les nœuds prennent en charge l’exécution des
composants.
316
Conception des systèmes d’information
Nœud
Nom du nœud

Nœud 1
Nom du nœud :
Permet de distinguer un nœud des autres nœuds
 Le nom peut être composé du nom de paquetage qui contient le
nœud
Stéréotypes : un nœud peut posséder un stéréotype qui permet de le
distinguer des autres types de ressources (permettant de spécifier le types
de ressources)





317
« CPU » : une unité de calcul
« memory » : une unité de stockage
« device »: un dispositif tel qu’un capteur
Conception des systèmes d’information
Relations entre nœuds et composants
Dépendance :
 Montre la capacité d’un nœud de supporter un composant
 Peut être également exprimée entre les composants résidant dans
un même nœud
 Notation UML

Nœud 1
Client
IHM
Composant1
318
Conception des systèmes d’information
Composant 2
Relations entre deux nœuds

Association


Indiquent une voie physique entre deux nœuds
Exemple:



Une connexion Ethernet
Un bus de communication
Notation UML
TCP / IP
1
Nœud 1
319
1..*
Nœud 2
Conception des systèmes d’information
Diagramme de déploiement
(Exemple)

Système Vente
Serveur de Calcul
InterfaceAutorisation
<<executable>>
<<executable>>
Enregistrement-Produits
InterfaceImpôts
<<executable>>
Gestion d'Impôts
GestionPaiement
Gestion d'autorisation
InterfacePaiement
1
1
LAN
1
LAN
Serveur de Données
Ventes
<<executable>>
InterfaceCatalogue
1..*
IHM_Caisier
<<utility>>
CatalogueProduits
320
Conception des systèmes d’information
<<library>>
JavaSwing
Diagramme de déploiement
Serveur
Base <<utility>>
de Données
Base de
Données
Ordonnanceur
interface
TCP / IP
1
1..*
Client
IHM
321
Conception des systèmes d’information
Diagramme de déploiement
322
Conception des systèmes d’information
Correspondance UML et Java
Traduction d’une classe



La classe est le concept fondamental de toute technologie
objet.
Le mot-clé correspondant existe bien sûr également en
Java.
De plus, chaque classe UML devient par défaut un fichier
.java.
324
Conception des systèmes d’information
Traduction d’une classe
class Personne{
Personne
325
…
…
….
}
Conception des systèmes d’information
Traduction d’une classe


Une classe abstraite est simplement une classe qui ne
s’instancie pas directement mais qui représente une pure
abstraction afin de factoriser des propriétés.
Elle se note avec {abstract} en UML et se traduit par le
mot-clé abstract en Java.
326
Conception des systèmes d’information
Traduction d’une classe
abstract class Personne{
Personne
{abstract}
327
….
….
….
}
Conception des systèmes d’information
Traduction d’une classe



Une interface est une classe spéciale dont toutes les
méthodes sont abstraites
Une interface se note en UML avec le symbole
En java, elle traduite par le mot clé ‘interface’
328
Conception des systèmes d’information
Traduction d’une classe
interface Forme {
Forme
329
…
…
…
}
Conception des systèmes d’information
Traduction des attributs




Les attributs UML deviennent simplement des attributs
en Java
Leur type est soit un type primitif (int, etc.), soit une
classe.
La visibilité des attributs est montrée graphiquement en
UML en les faisant précéder par + pour public, # pour
protégé (protected), - pour privé (private).
Les attributs de classe en UML deviennent des membres
statiques en Java (static).
330
Conception des systèmes d’information
Traduction des opérations




Les opérations UML deviennent très directement des
méthodes en Java.
Leur visibilité est définie graphiquement avec les mêmes
conventions que les attributs.
Les opérations de classe deviennent des méthodes
statiques (static).
Les opérations abstraites (en italiques) se traduisent par le
mot-clé abstract en Java.
331
Conception des systèmes d’information
Traduction des opérations
class Personne {
private int code;
private String nom;
private static int nombre;
public Personne() {
}
public static int getNombre(){
}
public String getInf(){
}
}
332
Conception des systèmes d’information
Traduction des relations
Les relations UML entre concepts statiques sont très riches.
On peut distinguer les relations de :
 Généralisation (héritage)
 Réalisation
 Association, avec ses variantes : agrégation et
composition.
333
Conception des systèmes d’information
Traduction des relations
(La généralisation)


Le concept UML de généralisation se traduit directement
par le mécanisme de l’héritage dans les langages objets.
Java, contrairement à C++ interdit l’héritage multiple
entre classes.
334
Conception des systèmes d’information
Traduction des relations
(La généralisation)
Class Personne{
…
…
…
Personne
Employe
}
Class Employe extends
Personne{
…
…
…
}
335
Conception des systèmes d’information
Traduction des relations
(La réalisation )


Une classe UML peut implémenter plusieurs interfaces.
Contrairement à C++, le langage Java propose
directement ce mécanisme.
336
Conception des systèmes d’information
Traduction des relations
(Réalisation)
interface A{
…
…
A
B
}
interface B{
…
…
}
class C implements A, B {
C
…
…
}
337
Conception des systèmes d’information
Traduction des relations
(Les associations)

Les associations navigables UML se traduisent par du
code Java qui dépend de :



la multiplicité de l’extrémité concernée (pointée par la flèche)
mais aussi de l’existence ou pas d’une contrainte {ordered} ou
d’un qualificatif.
Nous allons voir tout cela du plus simple au plus
complexe :


338
Une association navigable avec une multiplicité 1
Une association navigable avec une multiplicité *
Conception des systèmes d’information
Traduction des relations
(Les associations)


Une association navigable avec une multiplicité 1 se
traduit par une variable d’instance de type référence vers
une instance de classe.
Une multiplicité « * » va se traduire par un attribut de
type collection de références d’objets au lieu d’une simple
référence sur un objet.
339
Conception des systèmes d’information
Traduction des relations
(Les associations)
La difficulté consiste à choisir la bonne collection parmi les
très nombreuses classes de base que propose Java.
 Bien qu’il soit possible de créer des tableaux d’objets, ce
n’est pas forcément la bonne solution.
 En pratique, on préfère plutôt recourir à des collections,
parmi lesquelles les plus utilisées sont : ArrayList, SortedList
et HashTable.


340
Utilisez ArrayList si vous devez respecter un ordre et récupérer
les objets à partir d’un indice entier
Utilisez HashTable si vous souhaitez récupérer les objets à partir
d’une clé arbitraire.
Conception des systèmes d’information
Traduction des relations
(Les associations)
341
Conception des systèmes d’information
Traduction des relations
(Les associations)


Une association bidirectionnelle se traduit simplement
par une paire de références, une dans chaque classe
impliquée dans l’association.
Les noms des rôles aux extrémités d’une association
servent à nommer les variables de type référence.
342
Conception des systèmes d’information
Traduction des relations
(Les associations)
343
Conception des systèmes d’information
Traduction des relations
(Les associations)
344
Conception des systèmes d’information
Traduction des relations
(La classe association)


Elle possède tout à la fois les caractéristiques d’une
association et d’une classe et peut donc porter des
attributs qui se valorisent pour chaque lien.
Ce concept UML avancé n’existe pas dans les langages de
programmation objet, il faut donc le traduire en le
transformant en classe normale, et en ajoutant des
variables de type référence.
345
Conception des systèmes d’information
Traduction des relations
(La classe association)
346
Conception des systèmes d’information
UML
De UML vers le modèle relationnel
De UML vers le modèle relationnel


Cette partie traite le passage de la conception faite par
UML vers le modèle relationnel
La traduction concerne


Classes, instances, attributs
Relations entres classes :




348
Associations,
Agrégation,
Composition,
Généralisation spécialisation
Conception des systèmes d’information
348
Classe en Relationnel



Dans le cas général une classe est traduite par une table
Chaque objet est conservé dans une ligne de la table
Un champ jouant le rôle de clé primaire est ajouté même
s'il n'existait pas dans la classe
349
Conception des systèmes d’information
349
Traduction d'une classe

En Relationnel
Compte(NCompte, Solde)

En SQL
Create table Compte(
Compte
- N°Compte : int
- Solde
: float
NCompte smallint,
+ <<Constructor>>
+
Solde decimal,
+
+
Primary key PK_Compte (NCompte)
Compte (int N°Compte, float Solde)
deposer (float Solde)
: void
retirer (float Solde)
: float
avoirSolde ()
: String
)
350
Conception des systèmes d’information
350
Généralisation/spécialisation en
Relationnel
Plusieurs méthodes de traduction en Relationnel :
 Représenter toutes les classes d’une arborescence
d’héritage par une seule table relationnelle
 Représenter chaque classe par une table
351
Conception des systèmes d’information
351
Généralisation/spécialisation en
Relationnel



La solution la plus simple est de modéliser toute une
hiérarchie de classes dans une même table
Chaque classe ajoutant ses propres attributs comme de
nouveaux champs.
Il nous suffit alors d’ajouter un champ contenant le type
de l’instance pour pouvoir charger les champs
correspondants.
352
Conception des systèmes d’information
352
Généralisation/spécialisation en
Relationnel
353
Conception des systèmes d’information
353
Associations en Relationnel
(Association un-à-un)
Deux solutions sont possibles :
 une clé étrangère dans chacune des tables associées
 la fusion des deux tables dans une seule
354
Conception des systèmes d’information
354
Associations en Relationnel
(Association un-à-un)

1ère Solution



Pays(IdPays, NomP,#IdCapitale)
Capitales(IdCapitale, NomC, #IdPays)
2ième Solution

355
Pays(IdPays, NomP, NomC)
Conception des systèmes d’information
355
Associations en Relationnel
(Association un-à-un)
1ère Solution

create table Pays(IdPays integer primary key,
…
IdCapitale integer foreign key references capitales (IdCapitale))
et
create table Capitales(IdCapitale integer primary key,
…,
IdPays integer foreign key refernces pays(IdPays))

2ième Solution
Pays(IdPays integer primary key,
NomP varchar(20),
NomC varchar(20))
356
Conception des systèmes d’information
356
Associations en Relationnel
(Association un-à-plusieurs)
Une seule solution est possible :
 migration de la clé du côté de 1 vers la table du côté de
plusieurs
 La clé migrée jouera le rôle de clé étrangère
357
Conception des systèmes d’information
357
Associations en Relationnel
(Association un-à-plusieurs)

En Relationnel



Dept(IdDept, Nomdept)
Emp(IdEmp, NomEmp, #IdDept)
En SQL


Create table dept(…)
Create table emp(IdEmp integer primary key,
NomEmp varchar(20),
IdDept integer foreign key references Dept(IdDept)
)
358
Conception des systèmes d’information
358
Associations en Relationnel
(Association plusieurs-à-plusieurs)


L’association est traduite par une table dont la clé
primaire est la concaténation des clés primaires des
tables associées
La table résultante aura :


359
Une seule clé primaire
Deux clés étrangères
Conception des systèmes d’information
359
Traduction des associations en Relationnel
(Association plusieurs-à-plusieurs)
En Relationnel
 Articles(Ref, Des, PU)
 Commandes(NBC, DateC, Client)
 Détails(#NBC, #Ref, Qté)
360
Conception des systèmes d’information
360
Traduction des associations en Relationnel
(Association plusieurs-à-plusieurs)
En SQL
1. create table Article(Ref integer primary key, …)
2. create table Cde(NBC integer primary key, …)
3. create table Detail(NBC integer, Ref integer,…,
constraint PK primary key(NBC, Ref),
constraint FK1 foreign key(NBC) references cdes(NBC),
Constraint FK1 foreign key(NBC) references cdes(NBC))
361
Conception des systèmes d’information
361
OCL
Contraintes



Une contrainte est une condition ou une restriction
sémantique exprimée sous forme d’instructions dans un
langage textuel qui peut être naturel ou formel
Elle doit être appliquée lors de l’implémentation
Représentée sous forme d’une chaîne placée entre
accolades({})
363
Conception des systèmes d’information
Contraintes

Nous avons vu comment exprimer certaines contraintes
avec UML





364
{ordered}
{subset}
{frozen}
{xor}
…
Conception des systèmes d’information
Contraintes – Exemple 
Dans cet exemple, on exprime le fait qu’un ‘solde’ doit
rester toujours positif (utilisation d’un langage formel).
365
Conception des systèmes d’information
Contraintes – Exemple 
Dans cet exemple, on exprime un contrainte avec un
langage textuel non formel
366
Conception des systèmes d’information
Introduction


OCL est un langage de contraintes associé à UML
Il peut être utilisé pour contraindre n’importe quel
diagramme
367
Conception des systèmes d’information
Contexte



Une contrainte est toujours associée à un élément du
modèle
Cet élément constitue le contexte de la contrainte
Deux manières pour exprimer le contexte d’une
contrainte :


368
En écrivant la contrainte entre {} dans une note (voir exemple
précédent)
En utilisant le mot clé ‘context’ dans un document accompagnant
le modèle
Conception des systèmes d’information
Contexte

Syntaxe
context <élément>
Où : <élément> : peut être une classe, un attribut, une opération,
etc.

Pour faire référence à un élément d’une classe, il faut
utiliser les ‘::’
369
Conception des systèmes d’information
Contexte



Le contexte de la classe ‘Compte’
context Compte
Le contexte de l’opération getSolde() de la classe
Compte
context Compte::getSolde():Real
Le contexte de l’opération deposer() de la classe Compte
context Compte::deposer(somme:Real)
370
Conception des systèmes d’information
Invariants



Un invariant exprime une contraintes sur un objet ou un
groupe d’objets qui doit être respectée en permanence
Syntaxe :
inv : <expression_logique>
L’expression logique doit être toujours vraie
371
Conception des systèmes d’information
Invariants
Exemple :
Le solde d’un compte doit être toujours positif

context Compte
inv : solde>0
372
Conception des systèmes d’information
Préconditions et postconditions


Une précondition permet de spécifier une condition qui
doit être vérifiée avant l’appel d’une opération.
Une postcondition permet de spécifier une condition
qui doit être vérifiée après l’appel d’une opération.
373
Conception des systèmes d’information
Préconditions et postconditions

Dans l’expression de la contrainte de la postcondition,
deux éléments particuliers sont utilisés :


374
result : la valeur retournée par l’opération
<attribut>@pre : la valeur de l’attribut avant l’appel de
l’opération
Conception des systèmes d’information
Préconditions et postconditions

Syntaxe de la précondition
pre : <expression logique>

Syntaxe de la postcondition
post : <expression logique>
375
Conception des systèmes d’information
Préconditions et postconditions
Exemples :
context Compte::debiter(somme : Real)
pre : somme>0
post : solde=solde@pre-somme

context Compte::getSolde():Real
post : result=solde
376
Conception des systèmes d’information
Résultat d’une opération
L’expression de contrainte ‘body’ permet définir
directement le résultat d’une opération

Syntaxe :
body : <requête>
<requête> : expression qui retourne le résultat dont le type
est compatible avec le type de retour de l’opération

377
Conception des systèmes d’information
Résultat d’une opération
Exemple
La méthode getSolde() de la classe ‘Compte’ retourne le
solde actuel

context Compte::getSolde():Real
body : solde
378
Conception des systèmes d’information
Définition des attributs et de
méthodes

Motivation :


une sous expression peut être utilisée plusieurs fois dans une
expression
Deux expressions de contraintes :


379
let : permet de déclarer et d’initialiser un attribut qui peut être
utilisé dans l’expression qui suit le mot clé in
def : fait la même chose que let.
Conception des systèmes d’information
Définition des attributs et de
méthodes

Syntaxes :
let <déclaration>=<requête> in <expression>
L’attribut déclaré recevra le résultat de la <requête>
dans toute l’<expression>
def : <déclaration>=<requête>
380
Conception des systèmes d’information
Définition des attributs et de
méthodes

1.
2.
3.
381
Exemples
context Personne
inv : let argent=compte.solde->sum() in
age>=18 implies argent>0
context Personne
def : argent : Real = compte.solde->sum()
context Personne
inv : age>=18 implies argent>0
Conception des systèmes d’information
Initialisation et évolution des
attributs



Le type de contrainte init permet de préciser la valeur
initiale d’un attribut ou d’une terminaison d’association
La valeur d’un attribut dérivé est définie par la contrainte
derive.
Syntaxes :
init : <requête>
derive : <requête>
382
Conception des systèmes d’information
Initialisation et évolution des
attributs
Exemple
Quand on crée une personne, la valeur initiale de l’attribut
marié est faux, et la personne ne possède pas
d’employeur.
context Personne::marié:Boolean
init : false
context Personne::employeur:Set(Société)
init : set{}

383
Conception des systèmes d’information
Initialisation et évolution des attributs
Exemple
 L’âge d’une personne est la différence entre la date
courante et la date de naissance de la personne.
context Personne::age:Integer
derive : Date::current() – date_de_naissance

384
Conception des systèmes d’information
Types et opération OCL
Le langage OCL possède un certain nombre de types
prédéfinis et d’opérations prédéfinies sur ces types :




385
Boolean
Integer
Real
String
Conception des systèmes d’information
Types et opération OCL
Type
opérateurs
Boolean And, or, xor, not, implies, if…then…else…endif
Integer
+,-, *, /, abs(), …
Real
+,-, *, /, abs(), floor(), …
String
Concat(), size(), substring(), …
386
Conception des systèmes d’information
Types et opération OCL
a
b
a and b
a or b
a xor b
a implies b
V
V
V
V
F
V
V
F
F
V
V
F
F
V
F
V
V
V
F
F
F
F
F
V
387
Conception des systèmes d’information
Types et opération OCL
not
If <exp_log0>
Then <exp_log1>
V
F
Else <exp_log2>
F
388
V
Endif
Conception des systèmes d’information
Collections

Le langage OCL manipule plusieurs collections :




389
Set : collection non ordonnée d’éléments uniques
orderedSet : collection ordonnée d’éléments uniques
Bag : collection non ordonnée d’éléments
Sequence : collection ordonnée d’éléments
Conception des systèmes d’information
Collections
Collection
Éléments ordonnées Éléments uniques
Set
Non
Oui
OrderedSet Oui
Oui
Bag
Non
Non
Sequence
Oui
Non
390
Conception des systèmes d’information
Quelques opérations sur les collections
- Opération de base 









La syntaxe : collection->operation()
size() : nombre d’éléments
count() : nombre d’occurrences
sum() : somme des éléments
isEmpty() : est vide
notEmpty() : non vide
includes(el) : appartenance
excludes(el) : non appartenance
includesAll(col) : inclusion
excludesAll(col) : exclusion
391
Conception des systèmes d’information
Quelques opérations sur les collections
- Filtrage 





select(cond) : retient les éléments qui vérifient la condition
reject(cond) : élimine les éléments qui vérifient la condition
any(cond) : retourne l’un des éléments qui vérifie la condition
forAll(cond) : true si tous les éléments vérifient la condition
exists(cond) : true si au moins un élément vérifie la condition
isUnique(exp) : true si une et une seule valeur de la collection
qui vérifie la condition
392
Conception des systèmes d’information
Opération ensembliste
- Set ou OrederedSet 



union(ens) : union
- : différence (ens1 – ens2)
including(el) : ajoute un élément
excluding(el) : retire un élément
393
Conception des systèmes d’information
Accès aux données de l’objet courant
Pour faire référence à une donnée (attribut ou
opération) d’un objet désigné par le contexte :

1.
2.
394
Utiliser le nom de l’élément
Faire précéder le nom de l’élément du mot clé ‘self’
Conception des systèmes d’information
Accès aux données de l’objet courant
Exemple
 Dans le contexte de la classe ‘Compte’ :
Context Compte
Inv : solde > 0

Context Compte::debiter(somme : Real)
Pre : somme > 0
Post : self.solde = self.solde@pre - somme
395
Conception des systèmes d’information
Navigation à travers une association

Pour faire référence à un objet (ou un groupe d’objets)
associé via une association, On utilise :


396
Le nom de la classe associée en minuscule
Le nom du rôle côté de la classe associée
Conception des systèmes d’information
Navigation à travers une association

Dans le contexte de la classe ‘Personne’, on fait référence
à la classe société avec l’une des deux méthodes :



employeur
société
De même pour accéder à l’adresse de la société :


397
employeur.adresse
société.adresse
Conception des systèmes d’information
Navigation à travers une association
L’utilisation du rôle est indispensable si :
1.
2.
398
Il existe plusieurs associations entre l’objet désigné par le
contexte et l’objet auquel on désire accéder
L’association est réflexive
Conception des systèmes d’information
Navigation à travers une association

Le type du résultat dépend de :



la multiplicité de l’objet référencé
type de l’objet référence proprement dit.
Si l’objet référencé est T, alors le résultat est de type :



399
T, si la multiplicité est 0..1 ou 1..1
Set(T), si la multiplicité est *
OrderedSet(T), si la multiplicité est * avec {ordered}
Conception des systèmes d’information
Navigation à travers une association

Exemple : Type du résultat
400
Conception des systèmes d’information
Navigation à travers une association
qualifiée
Dans une association qualifiée, on utilise les valeurs (les
instances) des qualificatifs entre crochets ([])
context Banque
inv : self.compte[8900].solde>0

401
Conception des systèmes d’information
Navigation vers une classe association


Dans le contexte de Société, self.poste.salaire:
salaire de tous les employés
Dans le contexte de Personne,
self.mariage[epouse].date : dates de mariages des
femmes
402
Conception des systèmes d’information
Navigation depuis une classe
association
context Poste
inv : self.employe.age>21
(ou aussi, self.personne.age>21)
403
Conception des systèmes d’information
Accès à une méthode redéfinie


Une sous classe peut redéfinir une méthode de sa classe
mère
L’accès à la méthode de la classe parente est toujours
possible et se fait par : oclAsType()
404
Conception des systèmes d’information
Accès à une méthode redéfinie
Dans le contexte de B :
 Self.f() : accès à f() de B
 Self.oclAsType(f()) : accès à la
méthode de A
405
Conception des systèmes d’information
Les méthodes agiles
Agile



Approche réactive et itérative d’organisation de travail
Focalisée sur la fonctionnalité et satisfaction client
Construit en adéquation avec les capacités et limites
humaines
407
Conception des systèmes d’information
Pourquoi Agile ?

En réaction des problèmes avec des approches
‘traditionnelles’ :
Besoins
Spécifications
Conception
Code
Test
408
Conception des systèmes d’information
Les constats

Les meilleures idées ne viennent pas forcément au début
du projet




Il est plus facile de construire par étape que tout imaginer dès
le début
Les besoins peuvent évoluer pendent le projet
Le formalisme n’est pas naturel
Chiffrages et Reste à Faire sont difficiles à évaluer
409
Conception des systèmes d’information
Un projet informatique … la réalité

On ne sait pas estimer la charge restante
100%
% Complété
T
410
Conception des systèmes d’information
Problèmes avec cascade

Les méthodes prédictives fonctionnent bien, à condition
d’avoir:



Stabilité et prévisibilité
Communication et compréhension parfaite
Choix parfaits dès le départ

411
Aucun humain!
Conception des systèmes d’information
Agile : un juste milieu
Très réactive
Peu focalisé, aucune maitrise
Réactivité
Peu réactive
Focalisation
Objectifs clairs
Méthodes
prédictives
Absence de
méthode
412
Conception des systèmes d’information
Agile : une catégorie de méthodes

‘Agile’ regroupe plusieurs méthodologies :






Scrum
Extreme Programming (XP)
DSDM
Crystal
…
Notion officialisée en 2001 avec le Manifeste Agile
413
Conception des systèmes d’information
Le manifeste Agile
Personnes et interactions
Plutôt que
Processus et outils
Un produit opérationnel
Documentation
exhaustive
Collaboration
avec le client
Négociation d'un contrat
Adaptation au
changement
Suivi d'un plan
414
Conception des systèmes d’information
Agile : Libérer le génie Humain
Pour l’auto-organisation dans un contexte qu’il peut maîtriser :


La taille de l’équipe est limitée
le domaine du problème est limité
Petites équipes autogérées
 Portée fonctionnelle restreinte à un moment donné
 Garder un rythme de travail soutenable
 Avancement par itération

415
Conception des systèmes d’information
Méthodes Agiles
Expression des besoins
Conception
Développement
Tests, recette & debugage
416
Conception des systèmes d’information
Les solutions Agiles
i1
417
i2
i3
Conception des systèmes d’information
in
Les solutions Agiles

Toujours focalisées sur le produit final



Découper le projet autrement


Une vision commune pour l’équipe
La satisfaction du client
par fonctionnalité
Organiser en cycles de développement réduits

418
itérations
Conception des systèmes d’information
Les solutions Agiles

Collaboration avec le client

Pourquoi on veut des contrats ?

Instaurer la confiance autrement

Eviter les effets pervers d’un contrat
419
Conception des systèmes d’information
Les solutions Agiles



Adaptables
Réactives aux nouveaux besoins
Réceptives aux nouvelles solutions

Prendre les décisions définitives le plus tard possible

De courtes itérations permettent de changer de direction sans
laisser des éléments à moitié fait
420
Conception des systèmes d’information
Agile : Planification

L’estimation de charge est difficile, mais les courtes
itérations nous aident



421
On est plus précis sur les petites tâches
Feedback très rapide
Plus facile à s’adapter face aux dérives, surprises
Conception des systèmes d’information
Exemple de méthode agile
SCRUM
Introduction à Scrum





Source : http://commons.wikimedia.org
Scrum = mêlée en rugby
Objectifs :
 Satisfaire au mieux les besoins du
client
 Maximiser les chances de réussite du
projet
Méthode itérative et incrémentielle
Equipes de 8 personnes. Mécanismes
d’extension
Méthode agile la plus utilisée avec
eXtreme Programming
1986 : « The new new product development game »
 2001 : K. Schwaber et M. Beedle publient « Agile software development with Scrum ».

423
Conception des systèmes d’information
Rappel sur les méthodes agiles (% Scrum)
Manifeste de l’agilité publié en 2001
4 valeurs :


1.
2.
3.
4.
424
Les personnes et les interactions plutôt que
les outils et les processus
Le logiciel fonctionnel plutôt que
de la documentation exhaustive
La collaboration avec le client plutôt que
la négociation de contrat
L’adaptation au changement plutôt que
le respect d’un plan pré-établi
Conception des systèmes d’information
Scrum – Principes clés


Conforme au manifeste de l’agilité
Met l’accent sur :







425
Auto-organisation de l’équipe
Pouvoir de décision donné à l’équipe
Délais fixes
Sprint en isolement
Réunions quotidiennes
Livrer un logiciel fonctionnel - démonstration du résultat du
sprint
Planning adaptatif
Conception des systèmes d’information
Scrum – Les rôles


Les poules et les cochons
Les cochons :




Les poules :


Le product owner
Le scrummaster
L’équipe
Tous ceux qui ont un intérêt dans le projet
Certifications
426
Conception des systèmes d’information
Scrum – Planifier un projet
Source : http://fr.wikipedia.org


Constitution du backlog produit par le product owner.
Répartition en sprints et en releases.
427
Conception des systèmes d’information
Scrum – Organisation 1/5
Source : www.scrumalliance.org
1. Backlog produit (ou catalogue des besoins)

Besoins priorisés par le product owner

Besoins évalués par l’équipe
428
Conception des systèmes d’information
Scrum – Organisation 2/5
Source : www.scrumalliance.org
2. Backlog de sprint
 Extrait du backlog produit
 Besoins éclatés en tâches
429
Conception des systèmes d’information
Scrum – Organisation 3/5
Source : www.scrumalliance.org
3. Sprint
 Développement des fonctionnalités du backlog de sprint
 Aucune modification du backlog de sprint possible
430
Conception des systèmes d’information
Scrum – Organisation 4/5
Source : www.scrumalliance.org
4. Mêlée quotidienne
 Point de contrôle quotidien de l’équipe
 Interventions régulées – 2 min. par personne
431
Conception des systèmes d’information
Scrum – Organisation 5/5
Source : www.scrumalliance.org
5. Incrément logiciel : livré au product owner à la
fin du sprint.
432
Conception des systèmes d’information
Scrum – Indicateurs de projet 1/2

Le tableau des tâches
Source : « Scrum and XP from the trenches » de H. Kniberg, 2007
433
Conception des systèmes d’information
Scrum – Indicateurs de projet 2/2

Le burndown chart
Source : « Summary of Scrum », Signifikant Svenska A.B., 2007
434
Conception des systèmes d’information
Scrum – Ingénierie logicielle



Scrum est une méthode de gestion de projet
Doit être complétée par des techniques d’ingénierie
logicielle
Complémentaire avec eXtreme Programming :


435
Test Driven Development
Intégration continue
Conception des systèmes d’information
Scrum – Equipes plus grandes
Principes :

1.
2.
Commencer par une équipe Scrum standard
Création de plusieurs équipes – essaimage
Adaptation de la méthode :



Scrum des scrums
Rôle de team lead
Problèmes à traiter :



436
Dispersion géographique
Développement off-shore
Conception des systèmes d’information
Les outils



Outils traditionnels
 Tableau blanc et post-its
 Excel – Backlog produit et backlog de sprint
Outils dédiés
 Outils commerciaux / Open source
 Gèrent une charge de travail
 Absence de PERT / Gantt
 Intégration avec : IDE, contrôle de sources, gestion des tests, bug
tracking, intégration continue.
Autres outils
 Connexion large bande
 Wiki, webcams, messagerie instantanée…
437
Conception des systèmes d’information
Perspectives


Pas d’évolution, peu de critiques
Défauts à palier
Absence de dépendance entre les tâches
 Polyvalence des programmeurs
 Productivité équivalente supposée
 Grande maturité nécessaire



Contrats à adapter
Stratégie d’introduction de Scrum en entreprise
438
Conception des systèmes d’information
Conclusion






Méthode de gestion de projet – développement
logiciel
A compléter avec des techniques d’ingénierie
logicielle
Rien de totalement nouveau
Méthode à la mode. Conditions propices nécessaires
Expérimentations prometteuses
Principal bénéfice : des équipes motivées
439
Conception des systèmes d’information
Exemple de méthode agile
Extreme Programming
Extreme Programming : Caractéristiques


Méthodologie de développement basée sur des valeurs,
principes et pratiques
Propose des pratiques d’ingénierie comme le binomage et
TDD.
441
Conception des systèmes d’information
Extreme Programming : Caractéristiques


Méthodologie de développement basée sur des valeurs,
principes et pratiques
Propose des pratiques d’ingénierie comme le binomage et
TDD.
442
Conception des systèmes d’information
Extreme Programming : Valeurs

Communication




Entre les membres de l’équipe
Verbale
Facilité par colocalisation de l’équipe
Simplicité

Cherche la solution la plus simple qui convient au problème du
jour.

443
Le refactoring n’est pas un échec, mais une étape normale !
Conception des systèmes d’information
Extreme Programming : Valeurs

Feedback


Des tests unitaires, fonctionnels
Du client


De l’équipe

444
Revue avec le client toutes les deux à trois semaines
Grace à la communication continuelle
Conception des systèmes d’information
Extreme Programming : Valeurs

Courage




De s’attaquer aux problèmes tout de suite
D’appliquer les valeurs XP
De jeter du code lorsque nécessaire
Respect

445
Tous les membres de l’équipe apportent quelque chose, peu
importe leurs années d’expérience
Conception des systèmes d’information
Extreme Programming : Pratiques

Pair programming




Partage des idées, bonnes pratiques
Partage des expériences
Partage des compétences
Le code appartient à tout le monde


446
Règles de codage
Utilisation de patterns, métaphores
Conception des systèmes d’information
Extreme Programming : Pratiques

Tests




Unitaires
Intégration continue
Test-driven development
Conception incrémentale
447
Conception des systèmes d’information
Bibliographie

Ce cours a été inspiré de :





448
François Potentier, « Scrum, Etat de l’art », Présentation, 2008
Arnaud Pasquiers & Chris Ozanne, « Découvrir l’agilité » Agile Tour, Rennes, 2011
Omar El Beqqali, « Unified Modeling Language – Modélisation
Objet », support de cours, EMSI, 2009-2010
« Merise – UML », Support de cours de l’Université de Pise,
2008
Abdellah Madani, « UML : Unified Modeling Language », Support
de cours, Université Nancy 2, 2007
Conception des systèmes d’information