Académique Documents
Professionnel Documents
Culture Documents
Note L2 CSI
Note L2 CSI
D’INFORMATION L2
INFO/CONCEPTION
AM I
N Y
ph i n
.R u
CT. MSC Ruphin NYAMI
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
HISTORIQUE
1945 à 1969 : Crise de du logiciel
1970 (OTAN) : Génie Logiciel + 1ère méthodes
1980 : Approche Systémique (MERISE, AXIAL,
I
NIAM,…..)
1990 : Développement Orienté Objet (OOSE,
Y AM
N
OMT, BUCH 98 : UP + UML)
ph i n
2001 : Agilité (Approche Agile)
u
2004 : Gestion de Processus Métier (BPM)
s c .R
T. M
C
1970 à 1979 : Méthodes fonctionnelles : Structured Analysis -
Structured Design (SA - SD)
• SA - Analyse Structurée (Structured Analysis)
- Notations des outils de SA : DFD, dictionnaires, ...
- Mise en oeuvre des outils graphiques
AM I
Y
• SD - Conception Structurée (Structured Design)
i n
- Découpage des programmes en modules
N
u ph
- Différents types de couplage entre modules
.R
- Différents types de cohésions d'un module
M s c
C T.
1970 à 1979 : Méthodes fonctionnelles : Structured Analysis -
Structured Design (SA - SD)
• SD - Conception Structurée (Structured Design)
ont leur origine dans le développement des langages procéduraux
plus orientées vers les traitements que vers les données
I
mettent en évidence la ou les fonctions à assurer
AM
proposent une approche hiérarchique, descendante et modulaire en
Y
précisant les liens entre les différents modules
N
utilisent souvent des modèles/outils de type DFD
i n
avec l'évolution des langages de programmation et des systèmes,
ph
prennent en compte la modélisation des données et les problèmes
u
posés par le temps réel (SA-RT)
.R
méthodes fonctionnelle les plus connues :
s c
SA-SD (Strutured Analysis -Structured Design - Yourdon, DeMarco,
W.P.Stevens, G.J.Myers, Constantine, Gane & Sarson,...)
. M
SADT (Structured Analysis and Design Technique - Softech)
C T
SA-RT (Strutured Analysis / Real Temps- Hatley & Pirbhai 1991)
spécialisé temps réel
1980 : Approche Systémique
• Découpage de l'organisation en domaine
• Analyse indépendante Données / Traitements
• méthodes s'appuyant sur une approche systémique
AM I
Y
• définissent différents niveaux de préoccupation ou d'abstraction
n N
• proposent de nombreux modèles complémentaires sont souvent
i
ph
spécialisées pour la conception d'un certain type de systèmes
.R u
M s c
C T.
1980 : Approche Systémique
• Méthodes systémiques les plus connues :
oMERISE (méthode la plus utilisée en informatique
de gestion en France et grande partie de l'Europe)
I
oAXIAL (IBM - systèmes d'information),
oMEGA (Mega - systèmes d'information),...
Y AM
n N
oOSSAD (systèmes bureautiques)
ph i
oSAGACE (CEA - systèmes complexes (centrales
.R u
atomiques))
c
oGRAI (Productique)
. M s
oNIAM
C T
1990-1997 : Analyse Orientée Objet
AM I
N Y
ph i n
.R u
s c
La méthode OMT de Rumbaugh
. M
La méthode BOOCH'93 de Booch
T
La méthode OOSE de Jacobson (Object Oriented Software
C
Engineering)
1990 : Analyse Orientée Objet
AM I
N Y
ph i n
.R u
M s c
C T.
2001 : Manifeste Agile
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Exemple
Introduction CONCEPTION Outils avec Conclusion
Anaconda
Origine de la conception
AM I
N Y
Aristote
ph i n
Voici quelques exemples des grandes questions ontologiques :
u
– Qu'est-ce que est l'existence?
.R
– Qu'est-ce qu'un objet ?
c
– Quelles sont les propriétés d'un objet et comment sont-elles liées à
M s
l'objet lui-même?
.
– Un objet disparaît-il ou change-t-il ?
C T 16
Exemple
La
Introduction Outils avec Conclusion
Sémiotique
Anaconda
être et Être dans l’ontologie
Grand Être ( essence) : ce qu’on a à l’esprit quand on
I
pense à quelque chose selon le Grec
Exemple. Smartphone
Y AM
i n N
être (observable) : ou objet c’est l’apparence du Grand
ph
Être objet
.R u
M s c
C T. 17
Exemple
La
Introduction Outils avec Conclusion
Sémiotique
Anaconda
AM I
N Y
ph i n
.R u
M s c
C T. 18
RN1
Exemple
La
Introduction Outils avec Conclusion
Sémiotique
Anaconda
Définition de l’ontologie :
I
C’est la spécification formelle d’une
conceptualisation
Y AM
i n N
u ph
s c .R
T. M
C 19
Diapositive 19
AM I
N Y
ph i n
.R u
M s c
C T.
Méthode de Conception
I
- d’un processus de développement,
- de notations permettant la modélisation
Y AM
N
- et d’outils d’aide à la conception,
ph i n
- à la vérification et/ou au suivi du processus.
.R u
M s c
C T.
Eléments d’UML
I
• Les vues : ce sont les observables du système. Elles
AM
décrivent le système d'un point de vue donné, qui
Y
N
peut être organisationnel, dynamique, temporel,
i n
architectural, géographique, logique, etc. En
ph
combinant toutes ces vues, il est possible de définir
.R u
(ou retrouver) le système complet.
M s c
C T.
Eléments d’UML
I
graphiques. Ils décrivent le contenu des vues, qui
AM
sont des notions abstraites. Ils peuvent faire partie de
Y
plusieurs vues.
i n N
• Les modèles d'élément : ce sont les éléments
ph
graphiques des diagrammes.
.R u
M s c
C T.
4 VUES + 1
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Démarche de Conception
AM I
N Y
ph i n
.R u
M s c
C T.
I: LA MODELISATION METIER
L’analyste s’intéresse aux grands processus
métier de l’entreprise:
AM I
N Y
ph i n
.R u
M s c
C T.
II. La capture Initiale de besoins
L’analyste s’intéresse aux services et
processus à automatiser :
AM I
N Y
ph i n
.R u
M s c
C T.
III: L’ANALYSE
L’Analyse s’intéresse à la solution et sa
mise en œuvre :
AM I
N Y
ph i n
.R u
M s c
C T.
III: L’ANALYSE
L’Analyse s’intéresse à la solution et sa
mise en œuvre :
AM I
N Y
ph i n
.R u
M s c
C T.
IV: La Conception
L’analyste adapte la solution dans la
technologie choisie :
AM I
N Y
ph i n
.R u
M s c
C T.
Notions des acteurs avec UML
• Acteur:
- entité externe qui interagit avec le système
I
- Tout ce qui peut interagir avec le système. (Personne physique
M
ou non, Chose, Logiciel, extérieur du système décrit)
A
- Représente un rôle joué (plusieurs rôles possibles pour une
Y
même entité)
i n N
- Identifié par le nom du rôle joué par cette entité.
ph
- Acteur principal : celui qui déclenche un cas d’utilisation
.R u
- Acteur secondaire : celui qui subit ou reçoit l’information
pendant, à la fin de l’exécution d’un cas d’utilisation (flèche
s c
orienté vers l’acteur)
M
Bonne manière : mettre les acteurs secondaires à droite du
T.
système; sinon cette règle n’est pas obligatoire
C
Exemple
Gestion de stock
Acteur secondaire
I
S'authentifier
M
Effectuer
A
transfert «include»
Y
d'argent
N
Emetteur
ph i n
Beneficiare
.R u
c
Acteur principal
. M s
C T
Diagramme de contexte ( A qui le système sera important ? )
• Diagramme non UML
• Hérité de la méthode SADT (actigramme)
• Contient le nom du système (vente, prise en charge médicale). Erreur a éviter : mettre le nom de l’entreprise
• Objectif:
I
- Modéliser le contexte du système avec les acteurs
M
- Définir l’environnement du système : Qui va l’utiliser ou interagir avec lui ? (des humains? Pas forcément. Peut
A
être que d’autres systèmes informatiques comme de capteur,…)
N Y
- Définir les limites du système : où s’arrête sa responsabilité ? (Qu’est ce qui sort de son cadre ?, vat-il délégué
certaines opérations dans un autre système ?
ph i n
- Délimiter les périmètres du système
- Montrer les acteurs qui interagis avec le système
.R u
• Phases
c
- Analyse du domaine (Diagramme de contexte statique) montrant les acteurs et système reliés par des assotions
s
(avec ou sans multiplicités)
M
- Analyse applicative (diagramme de contexte dynamique) : contenant les acteurs et le système dont les associations
T.
sont pondérées par de messages émis et reçus)
C
- Formalisme : rectangle ou ellipse
Diagramme de contexte statique
Légende :
* : plusieurs instances d’acteurs en
un instant donné
I
1 : un et un seul acteur en un
M
instant donné
N Y A
i n
«actor»
ph
Mo bil Bank
*
: : acteur non humain
u
Client
.R
1
Systeme de vente
en ligne (SVE)
c
«actor»
s
Mobil Bank
M
1 : acteur humain
C T.
Service Client
C lie nt
Diagramme de contexte dynamique
AM I
N Y
ph i n
.R u
M s c
C T.
Diagramme de contexte statique
Acteur du métier : un acteur existant à priori au système
informatique (caboche coupée)
«business actor»
I
C lient
AM
Acteur système : un rôle existant grâce au système
Y
informatique
i n N
Administrateur
ph
Travailleur d’interface : un acteur du métier touchant le
u
système en lieu et place d’un autre acteur (ex. Garde,
.R
Guichetier de la banque)
c
Acteur d'interface
C T
Travailleur
interne
processus sans contact avec le monde extérieur
Diagramme de cas d’utilisation UML
Pour réfléchir aux besoins du client;
La réflexion autour des Cu, c’est le point de départ de tout
processus de développement, que ca soit un processus
I
classique en V ou le processus Agile.
AM
La question principale qu’on cherche à répondre est:
N Y
A quoi et à qui va servir le système qu’on cherche à
i n
développer ?
u ph
Comment ce système vat-il être utilisé et pourquoi faire ?
.R
Bref c’est la phase d’analyse de besoins du client
M s c
C T.
Cas d’utilisation : Objectif UML 2/3
• Comprendre les besoins du client pour rédiger un cahier
de charge fonctionnel c’est-à-dire la liste de
fonctionnalités du système.
AM I
• Il faut analyser son interface et la manière dont les
N Y
utilisateurs vont interagir avec lu.
ph i n
.R u
M s c
C T.
Trois questions à répondre sur les cas d’utilisation UML
u ph
3) Définir les limites du système : où s’arrête sa
.R
responsabilité ? (Qu’est ce qui sort de son cadre ?,
s c
vat-il délégué certaines opérations dans un autre
M
.
système ?
C T
Outils sur le cas d’utilisation
• Diagramme de CU;
• Description textuelle des CU;
I
• Diagramme de séquences de scénario d’utilisation
Y AM
i n N
u ph
s c .R
T. M
C
Diagramme de CU 3/4
AM I
N Y
ph i n
.R u
s c
L’association entre CU et acteur signifie que cet acteur a la
M
.
possibilité de déclencher le cas d’utilisation.
C T
Modélisation du métier : Exemple 1
• Guichet automatique de la banque. Où n’importe qui peut retirer de
l‘argent et où certaines opérations sont réservées au client de la
banque, propriétaire de l’automate.
I
• Ce client est reconnu comme client de la banque, dès qu’il insère sa
AM
carte dans l’automate (GAB).
N Y
ph i n
.R u
M s c
C T.
Exemple
AM I
N Y
ph i n
.R u
M s c
C T.
Exemple empiré en chevauchement
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Exemple de Généralisation
Systeme enseignement
Suivre co urs
Etudiant Un cas d’utilisation a un et un seul acteur
Principal qui peut le déclencher sans
I
confusions.
Payer frais
M
Que faire dans ce genre des situations ?
A
La réponse à ce conflit de responsabilité
Y
Est « la généralisation ».
N
Finaliste Passer
i n
exam en
u ph
Rediger
.R
memo ire
s c
Stagiaire
Effectuer
M
stage
C T.
Exemple de Généralisation
Systeme enseignement Systeme enseignement
Rediger
Suivre co urs memoire
Etudiant
Finaliste
I
Payer frais
Payer frais
Y AM
N
Passer
Finaliste Passer Etudiant examen
i n
exam en
u ph
Suivre co urs
Rediger
.R
memo ire
s c
Stagiaire Effectuer
Effectuer Stagiaire stage
M
stage
C T.
Rôle artificiel
Systeme Prise en charge medicale
I
Gerer
hospitalisation
• Créer de rôles artificiels
AM
Car il y en a de structures sanitaires
Gérer
Y
dossier
N
Receptionniste médicale Facturer
soins
Sans médecin ? Où l’infirmier peut jouer
i n
Ce rôle
ph
Etablir plan de
u
Infirmier traitement Solliciter prise en
.R
Traitant charge medicale
Patient
Administrer
c
soins medicaux
s
Gerer
M
examen
.
Laborantin laboratoire
C T
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Extension
AM I
N Y
ph i n
.R u
M s c
C T.
Relation entre cas d’utilisation
Systeme Prise en charge medicale
Recommander
examen
Recommander clinique
examen Dans ce diagramme :
I
- Cas optionnel de Gérer consultation
«extend»
M
• Recommander examen
A
Recommander - Cas particulier de Gérer consultation
Y
Gérer Etablir examen
• Etablir diagnostic
N
consultation diagnostic clinique
Medecin • Prescrire parient
i n
- Cas particulier de recommander examen
ph
• Recommander examen clinique
u
Prescrire • Recommander examen clinique
.R
patient
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Exemple 2
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Contre-exemple
- Un cas d’utilisation doit contenir
plusieurs scénarios et non un seul
M I
- Chaque cas d’utilisation ne peut se
A
déclencher sans s’authentifier
Y
« include »
i n N
- Le cas d’utilisation en formuler en
ph
tenant compte de l’intention de
u
l’acteur et non du système :
.R
« Consulter état du stock"
.
qu’après consultation des articles
C T
Modélisation du Métier : Complément de
Notation sur les cas d’utilisation
Le diagramme de cas d’utilisation est la
description générale fonctionnelle du projet
I
en étude.
Y AM
Exemple 2 : le système de vente de livre en
ligne:
i n N
u ph
s c .R
T. M
C
Etude de cas : Vente de livres en ligne
AM I
N Y
ph i n
.R u
M s c
C T.
Etude de cas : Vente de livres en ligne
Dans le diagramme de Cu ci-haut, il y a des choses un peu plus
compliqué :
Le deux acteurs se disputent deux cas d’utilisation « Parcourir
catalogue et modifier son panier ».
M I
L’ordre d’apparition des CU n’a pas d’importance et ni un Work flow de
de haut en bas ou de bas en haut;
A
N Y
La position des acteurs également influe peu sur la compréhension du
i n
diagramme, on peut le mettre à gauche ou à droite sans signification
ph
particulière.
.R u
Le trait là qui traverse les deux CU ennuient sérieusement le
c
diagramme. Pour ce faire il faut isoler le rôle commun à ces deux
M s
acteurs : L’internaute qui n’est pas connu et le Client qui est connu dans
.
le système.
C T
Etude de cas : Vente de livres en ligne
On généraliser les deux acteurs par visiteur : le Visiteur devient ainsi un concept
plus large que l’Internaute et Client
AM I
N Y
ph i n
.R u
M s c
C T.
Etude de cas : Généralisation sur les USES CASES
Exemple : lorsque le client passe la commande, il faut qu’il paie en ligne
(par CB, PayPal, MobilBanking) et là, les acteurs externes qui vont
intervenir ne sont pas le même : (CB : partenaire banque) et Mobile
Bank,…)
I
Or payer par banque est en lien direct avec le Cu payer qui semble être
A
abstrait. C’est en quelque sorte une spécialisation du CU payer.
Y M
N
La généralisation en CU est à utiliser avec Parcimonie et avec
ph i n
précaution car en UML il n’existe pas de sous processus. Et surtout pas
u
au niveau du métier mais au niveau du développement.
.R
L’extension risque également de noyer le CU si on prenait le cas où
s c
dans chaque page Web on à la possibilité d’aller partout donc plusieurs
M
.
extensions.
C T
Etude de cas : Généralisation sur les USES CASES
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Scénario détaillé et Diagramme de séquence
Le diagramme de CU est :
• Utiles pour les discussions avec le client car intuitif et
concis
I
• Mais pas suffisant pour l’équipe de développement
AM
• Voila la nécessité d’une description textuelle détaillée des
Y
N
scénarios représenter par chacun des CU :
i n
• Description textuelle en langue naturelle et structurée
u ph
• Explication du vocabulaire utilisé dans le diagramme
s c .R
T. M
C
Description textuelle
AM I
N Y
ph i n
.R u
M s c
C T.
Description textuelle : Exemple
AM I
N Y
ph i n
.R u
M s c
C T.
Description textuelle : Exemple
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Diagramme de séquences
• Il fait partie de diagramme dynamique d’UML
• Il est l’un de diagramme d’interaction ( à coter du
I
digramme de communication)
Y AM
i n N
u ph
s c .R
T. M
C
Diagramme de séquences
• Le diagramme de séquence est une représentation graphique
de chronologie des échanges de messages entre les acteurs et
le système.
I
• Le temps « ligne de vie » est représenté verticalement et les
M
échanges de messages horizontalement.
Y
• Les diagrammes de séquences permettent de décrire
N A
COMMENT les éléments du système interagissent entre eux
et avec les acteurs :
ph i n
u
- Les objets au cœur d’un système interagissent en s’échangent
.R
des messages.
s c
Les acteurs interagissent avec le système au moyen d’IHM
M
(Interfaces Homme-Machine).
C T.
Diagramme de séquences : Type de pictogramme
I
Ligne de Vie
Y AM
i n N
ph
Suppression Activation
u
de l’Objet
s c .R
T. M
C
Diagramme de séquences : Type de pictogramme
Acteur participant à Objet anonyme (Système,
un processus Table, Code source,
Ecran,….) participant à un
I
processus
Y AM
N
Objet de
i n
persistance (Table,
ph
BD, fichier)
u
Objet d’interface
.R
Homme Machine
c
Objet de contrôle
s
(Code source,
M
équipement de
T.
contrôle,…)
C
Diagramme de séquences : Type de Messages
Bloque l'expéditeur jusqu'à prise en compte du message par le destinataire. Le
flot de contrôle passe de l'émetteur au récepteur (l'émetteur devient passif et
le récepteur actif) à la prise en compte du message.
M I
N'interrompt pas l'exécution de l'expéditeur. Le message envoyé peut être pris
A
en compte par le récepteur à tout moment ou ignoré (jamais traité).
N Y
n
Réponse à un événement
ph i
u
Un message réflexif : ne représente pas l'envoi d'un message, il représente une
.R
activité interne à l'objet ou une abstraction d'une autre interaction (qu'on peut
s c
détailler dans un autre diagramme de séquence).
C
Diagramme de séquences : Fragments
AM I
N Y
Optionnel : Action à choisir au besoin, non
i n
obligatoire
u ph
s c .R Traitement répétitif, boucle
T. M
C
Diagramme de séquences : Fragments
AM I
N Y
Référence : faire référence ou déléguer certains
i n
fragments à un autre processus
u ph
s c .R
T. M
C
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Ca CU du Gestionnaire
u c Use C ase Mo de l
A jo u te r
pr o du it
I
su ppr im e r
M
pr o du it
Gerer
N Y A
i n
c atalo gu e
ph
de pr o du it G e stio nnair e
.R u
c
m o difie r
s
c ate go r ie A jo u te r
. M
c ate go r ie
C T
Description textuelle de cas d’utilisation
: Gérer Catalogue produit : Créer catégorie
Préconditions : néant.
Scénario nominal :
1. Le Gestionnaire renseigne les informations
AM I
Y
de la catégorie (ID, nom, photo)
2.
i n N
Le système vérifie l’existence de la
ph
catégorie saisie. Si oui, chaque catégorie
.R u
préalablement enregistrée est présentée avec
s c
son nom et sa photo. Sinon le système
M
.
demande à l’utilisateur s’il veut ajouter cette
Préconditions : néant.
I
Scénario nominal :
3. Le Gestionnaire valide l’ajout de la
Y AM
N
catégorie.
Exceptions
ph i n
.R u
2-3a : [Doublon]
c
1. dans ce cas le système affiche un
M s
avertissement de doublon, demande à l’utilisateur
.
T
‘il veut mettre à jour la catégorie actuelle.
C
Diagramme de séquence système :
Créer catégorie
AM I
N Y
ph i n
.R u
M s c
C T.
Diagramme de séquence système :
éditer catégorie
<<System>>
GESCAT
Gestionnaire
ref
I
s' authentifier()
M
1: ID
2: verifictaion
Y A
alt TRUE
N
categorie affichee
i n
3: editer
u ph
confirmation
.R
ELSE
s c
nouvelle categorie
M
ref
.
DS Creer categorie()
C T
Diagramme de séquence système :
delete catégorie
AM I
N Y
ph i n
.R u
M s c
C T.
Diagramme de séquence système :
créer produit
AM I
N Y
ph i n
.R u
M s c
C T.
Diagramme de séquence système :
éditer produit <<System>>
GESCAT
Gestionnaire
ref
s' authenti fi er()
I
1: IDproduit
2: verifier(idp)
AM
alt IF
Y
libelle, prix, photo affichee
i n N
u ph
produit affichee
c .R
ELSE
s
nouveau produit Exception
T. M
ref
DS aj out produi t()
C
Réalisation des cas d’utilisation : analyse
Nous distinguerons trois types de classes d’analyse
(comme proposé par I. Jacobson) :
i n
• les « contrôles » qui contiennent la logique
ph
applicative
.R u
• et les « entités » qui sont les objets métier
s c
manipulés.
T. M
C
Le diagramme de séquence système :
S’authentifier
<<System>>
GESCAT
Gestionnaire
1: seConnecter
2: cadre d'authentification
AM I
N Y
loop [<= 5]
4: verification
n
3: loginMotDePasse
ph i
u
alt ALORS
break
.R
5:[Condi ti on]
connexion reussie
s c
SINON
6: connexion échouée
T. M
C
Création Catégorie
sd C o nceptio n
Gestionnaire
EcranGestio nC atalo gue Gestio nCatalogue cat:
HashMap<C atego rie>
saisieCategorie(id, nom, photo)
I
[FALSE]
M
erreur saisie ()
Y A
[TRUE]
valider()
N
addCategorie(id, nom, photo): Categorie
i n
alt
ph
create()
[IF]
put(nouvelle.id, nouvelle)
nouv elle:
u
create() C atego rie
.R
V ueC o nfirmatio n
c
opt editer()
M s
[ELSE] create()
T.
V ueExceptio n
C
Edition Catégorie
sd C onception
Gestionnaire
EcranGestionC atalogue GestionC atalogue cat:
HashMap<Categorie>
editerCategorie(id, nom, photo)
I
alt Etat saisie verifierChamps(): boolean
M
[FALSE]
erreur saisie ()
[TRUE] editer()
N Y A
n
updateCategorie(id, nom, photo): Categorie
ph i
alt create()
[IF]
u
put(nouvelle.id, nouvelle)nouvelle:
.R
create() C ategorie
c
V ueC onfirmation
M s
[ELSE]
.
create()
T
V ueException
C
Création Produit
sd Conception
Gestionnaire
EcranGestionCatalogue GestionC atalogue produits:
HashMap<Produit>
creerProduit(id, libelle, prix, photo)
I
alt Etat saisie verifierChamps(): boolean
M
[FALSE]
A
erreur saisie ()
N Y
[TRUE] editer()
i n
addProduit(id, nom, photo): Categorie
ph
alt create()
u
[IF]
put(nouveau.id, nouveau) nouveau:
.R
create() Produit
s c
V ueConfirmation
. M
[ELSE]
T
create()
C
VueException
Edition Produit
Gestionnaire
EcranGestionCatalogue GestionCatalogue produits:
HashMap<Produit>
editerProduit(id, libelle, prix, photo)
I
alt Etat saisie verifierChamps(): boolean
M
[FALSE]
A
erreur saisie ()
N Y
[TRUE] editer()
i n
updateProduit(id, nom, photo): Categorie
ph
alt create()
u
[IF]
.R
put(nouveau.id, nouveau) nouveau:
create() Produit
s c
V ueConfirmation
. M
[ELSE]
T
create()
C
VueException
Sous forme de cas d’utilisation
uc Use Case Model
rechercher
par mot-cle
recherche
I
par ID
YAM
n N
Rechercher
i
rechercher
ph
produit par
u
Client
categorie
s c .R
T. M
C
Conception préliminaire
• Intéressons-nous au moment où le Client consulte le Catalogue
de produit. Que se passe-t’il derrière le dialogue concerné ?
M I
• Celui-ci passe la main à un contrôle spécialisé dans la gestion du
A
Y
Catalogue. Ce contrôle a la responsabilité de rechercher les
N
produits dans le catalogue. Il est également responsable
ph i n
d’afficher un dialogue particulier récapitulant le résultat de la
u
recherche.
s c .R
T. M
C
«System»
GESCAT
Client
lo o p
alt
[rapide] rechercheRapide(motCles)
[avancee]
AM I
Y
rechercheAvancee(parametres)
i n N
ph
alt
.R u
[echec] aucun produit trouvé()
M s c[succé]
T.
resultat trouvé()
C
Client
EcranRecherche CtrlCatalogue categorie: produits:
HashMap<Long, HashMap<Long,
Categorie> Produit>
loop produit in HashMap
rechercheParID(id): Produit
produitParId(id): Produit
I
find(id): Produit
AM
init(myCate): Categorie
N Y
alt neant()
i n
[echec] create()
ph
ErreurResultat
.R u
details()
[succé]
c
create()
M s
DetailRecherche
.
opt mettreDansPanier()
C T
Client
EcranRecherche CtrlCatalogue categorie: produits:
HashMap<Long, HashMap<Long,
Categorie> Produit>
loop produit in HashMap
rechercheParMotCles(mc): List<Produit>
produitParMotCles(mc): List<Produit>
I
contains(mc): List<Produit>
AM
init(myCate): Categorie
N Y
alt neant()
i n
[echec] create()
ph
ErreurResultat
.R u
[succé] details()
c
create()
s
DetailRecherche
. M
opt mettreDansPanier()
C T
sd DS Conception
Client
EcranRecherche CtrlCatalogue categorie: produits:
HashMap<Long, HashMap<Long,
Categorie> Produit>
loop cat in HashMap
rechercheParCategorie(cat): List<Produit>
produitParCategorie(cat): List<Produit>
I
myCategorie.nom.equals(cat): List<Produit>
AM
init(myCate): Categorie
N Y
alt neant()
i n
[echec] create()
ph
ErreurResultat
.R u
[succé] details()
create()
s c
DetailRecherche
M
opt
.
mettreDansPanier()
C T
Etude de Cas : Gestion Catalogue Produit
• Créer une application, qui permet de gérer un
catalogue de produits appartenant à des catégories.
• Une catégorie est définie son identifiant, son nom et
I
sa photo
Y
• Un produit, appartenant à une catégorie, est définie
AM
N
par son identifiant, sa désignation, son prix et sa
i n
photo
u ph
• L’application devra permettre les opérations suivantes
.R
:
s c
- Ajouter une nouvelle catégorie
. M
- Ajouter un nouveau produit
AM I
N Y
ph i n
.R u
M s c
C T.
Le Système d’information
• L’ champs d’action de l’informaticien, quel que soit
le niveau d’intervention.
• Un SI est un « Tout constitué d’éléments unis par de
relations.
AM I
Y
• Ces éléments et relations sont munies de propriétés
• Le décrire revient à déterminer :
i n N
ph
- ses éléments (classes) et relations (Associations).
.R u
- Leurs propriétés (attributs et méthodes) et les valeurs
c
qu’elles peuvent prendre
M s
- L’activité
.
T
- Et l’organisation qui en découle
C
SI: Eléments et Relations
• Les éléments d’un SI : Objet, Entité ou Individu
(classes) ou Concept
I
• Le propriétés sont appelées « attributs »
Y
• Les relations entre ses éléments « Associations »
AM
i n N
u ph
Association Navigable Agrégation faible Composition
s c .R
M
Association de
.
Réalisation Héritage direction
C T
Entreprise comme SYSTEME
• On peut dire qu’il est constitué des « employés », de « Services », des
« articles », des « emplacements de stockage »
M
• Les propriétés décrivant ces éléments : matricule, nom employé,
A I
Y
code article, libelle, prix, le stockage
i n N
• Les relations entre ces éléments sont : « est attaché » entre un
ph
employé et un service, la relation « est stocké » entre un article et
u
emplacement de stockage
c .R
• Les propriétés de ces relations seront de type : date d’entrée dans le
s
M
service, la quantité stockée dans l’emplacement de stockage
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Formalisme général et exemple
AM I
N Y
ph i n
.R u
M s c
C T.
Modificateurs de classe
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Objet : Techniquement
• Objet = Etat + Comportement + Identité
• Etat : l’ensemble de valeurs prises par les attributs en un
I
moment donné.
AM
• Exemple:
N Y
ph i n
.R u
M s c
C T.
Objet : Comportement
• Ensemble d’opérations que l’objet peut effectuer.
Chaque opération est déclenchée par l’envoi d’un
message
AM I
N Y
ph i n
. R u
s c
Comportement
M
CT.
AM I
N Y
ph i n
.R u
M s c
C T.
Objet : Identité
• Permet de distinguer les objets
indépendamment de leur état
I
• Exemple:
Y AM
i n N
u ph
s c .R
. M
Chacun a sa référence
T
mémoire différente de
C
l’autre
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Association réflexive
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Classifications
• Classes du domaine (métier) : ne contenant que les
entités ou éléments (documents, concepts, éléments) du
domaine d’étude. Ces classes peuvent contenir quelques
attributs et optionnellement les opérations.
AM I
Y
• Classes participantes (classes d’analyse) : contenant en
i n N
plus des entités, les formulaires et les contrôleurs.
u ph
• Classes de conception : contiennent les contraintes
.R
techniques et prêtes à être traduites en codes sources
s c
• Classes de persistance : contiennent les tables et champs
M
T.
de la base de données.
C
Classes d’analyse
• Il y a trois types de classes à modéliser dans la phase d’analyse :
1. les « dialogues » qui représentent la quasi-totalité des échanges d’information
entre l’utilisateur et le système logiciel (l’entrée de données par l’utilisateur,
affichage de questions posées à l’utilisateur par le système, affichage de résultats
obtenus,…) ;
M I
2. les « contrôles » qui constituent le canal de validation et communication entre le
A
dialogue et la partie données, jouant ainsi le rôle l’intelligence de l’application
Y
cachée ;
N
3. et les « entités » qui sont les concepts issus du métier contenant des données à
i n
persister.
ph
Par respect de protocole de communication, toute modélisation de ces trois classes
u
peut se faire en obéissant aux règles suivantes : les classes « dialogues » dépendant de
.R
« contrôle » et les classes de contrôle dépendant des entités.
c
Par ailleurs, les dialogues peuvent contenir les attributs (représentant les champs de
s
saisies, liste de choix) et les opérations (actions de l’utilisateur sur les différents
M
contrôles graphiques) ; les classes de contrôle contiennent uniquement l’interface
.
de classes entités ; et les entités contiennent les attributs seulement et, les entités
T
peuvent être en relation entre elles.
C
Classes participantes
AM I
N Y
ph i n
.R u
M s c
C T.
Objets métier
<<entity>>
• Catégorie (id, nom, photo) Categorie
- idcat : long
I
- nom : String
• Produit (id, libelle, prix, photo)
M
- photo : String
N Y
1..1
A
ph i n
1..*
u
<<entity>>
.R
Produit
- idp : long
c
- libelle : String
s
- prix : double
M
- photo : String
C T.
Classe participante
<<dialog>>
EcranCatalogue <<entity>>
- idcat : long <<control>> Categorie
- nomCat : String GestionCatalogue - idcat : long
I
- photo : String 1..1 - nom : String
M
- idProduit : long 1..* - photo : String
A
+ creerCategorie ()
- libelle : String
Y
1..1 + editerCategorie () 1..*
- prix : double
N
+ supprimerCategorie ()
- photoProduit : String
n
+ creerProduit () 1..1
ph i
+ ajouterProduit () + editerProduit () 1..*
+ editerProduit () + supprimerProduit ()
u
+ supprimerProduit () ... <<entity>>
.R
1..* Produit
+ creerCategorie ()
1..1
c
+ editerCategorie () - idp : long
s
+ supprimerCategorie () - libelle : String
M
... - prix : double
.
- photo : String
C T
Diagramme de classes de conception
class Use Case Model
Categorie
- idcat: Long
- nom: String
GestionCatalogue - photo: String
EcranCategorie
+ addCategorie(Long, String, String): Categorie + afficher(): List<Categorie>
- idCategorie: Long + addProduit(Long, String, double, String): Produit + creer(Categorie): Categorie
- nomcate: String + editerCategorie(Long, String, String): Categorie + editer(Categorie): Categorie
I
- photp: String + editerProduit(Long, String, double, String): Produit + supprimer(Long): boolean
+ findAllCategorie(): List<Categorie>
M
+ afficherCategorie(): void
+ rechercherCategorieParId(Long): Catgorie 1
+ creerCategorie(): void
A
+ editerCategorie(): void + rechercherProduitParMotCles(String): List<Produit>
Y
+ rechercherCategorie(): void + supprimerCategorie(Long): boolean
1..*
N
+ supprimerCategorie(): void + supprimerProduit(Long): boolean
+ trouverProduitParId(Long): Produit Produit
i n
- idp: Long
ph
- libelle: String
- photo: String
u
EcranProduit - prix: double
.R
- idp: Long + afficher(): List<Produit>
ResultatRecherche Exception + creer(Produit): Produit
c
- libelle: String
s
- photo: String - resultat: String + editer(Produit): Produit
- prix: double + supprimer(Long): boolean
. M
+ afficherTout(): void
+ creerProduit(): t
T
+ editerProduit(): void
C
+ rechercherParId(): void
+ rechercherParMotCle(): void
+ supprimerProduit(): void
D ia lo gu e
Ec r a nP r o du it Ec r a nC a tego r ie
- idp: Long - idCategorie: Long
- libelle: String - nomcate: String
- photo: String - photp: String
- prix: double
+ afficherCategorie(): void
+ afficherTout(): void + creerCategorie(): void
+ creerProduit(): t + editerCategorie(): void
+ editerProduit(): void + rechercherCategorie(): void
+ rechercherParId(): void + supprimerCategorie(): void
+ rechercherParMotCle(): void
+ supprimerProduit(): void
«import»
I
Lo giqu e applic ati v e
M
G estio nC ata lo gu e
A
+ addCategorie(Long, String, String): Categorie
Y
+ addProduit(Long, String, double, String): Produit
+ editerCategorie(Long, String, String): Categorie
N
+ editerProduit(Long, String, double, String): Produit
+ findAllCategorie(): List<Categorie>
n
+ rechercherCategorieParId(Long): Catgorie
i
+ rechercherProduitParMotCles(String): List<Produit>
+ supprimerCategorie(Long): boolean
ph
+ supprimerProduit(Long): boolean
+ trouverProduitParId(Long): Produit
.R u
«import»
c
Mo dels
M s
P r o du it
C a tego r ie
.
- idp: Long
- libelle: String - idcat: Long
T
- photo: String - nom: String
- prix: double - photo: String
C
1..* 1
+ afficher(): List<Produit> + afficher(): List<Categorie>
+ creer(Produit): Produit + creer(Categorie): Categorie
+ editer(Produit): Produit + editer(Categorie): Categorie
+ supprimer(Long): boolean + supprimer(Long): boolean
Classes participantes : exemple
AM I
N Y
ph i n
.R u
M s c
C T.
DIAGRAMME D’ACTIVITE
AM I
N Y
ph i n
.R u
M s c
C T.
DIAGRAMME D’ACTIVITE UML
La logique procédurale par le DAC d’un Workflow
• Permet de décrire la logique procédurale
I
d’une activité
• Modélisation de processus métier
Y AM
i n N
• Prend en charge le comportement parallèle
u ph
• Il est très proche de l’algo, ordinogramme
s c .R
T. M
C
INTRODUCTION
AM I
N Y
ph i n
.R u
M s c
C T.
CONCEPTS DE BASE
AM I
N Y
ph i n
.R u
M s c
C T.
NOTIONS D’ETATS
AM I
N Y
ph i n
.R u
M s c
C T.
NOTION DE TRANSITION
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
FLOW D’OBJET
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
TRANSITION CONDITIONNELLE
AM I
N Y
ph i n
.R u
M s c
C T.
NŒUD DE FUSION TEST
AM I
N Y
ph i n
.R u
M s c
C T.
NOTION DE SYNCHRONISATION
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Diagramme de communication UML
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Diagramme de compo UML
AM I
N Y
ph i n
.R u
M s c
C T.
VUE D’IMPLÉMENTATION
DIAGRAMME COMPOSANTS
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
DIAGRAMME DE COMPOSANT
AM I
N Y
ph i n
.R u
M s c
C T.
VUE DE DÉPLOIEMENT :
DIAGRAMME DE DÉPLOIEMENT
AM I
N Y
ph i n
.R u
M s c
C T.
VUE DE DÉPLOIEMENT :
DIAGRAMME DE DÉPLOIEMENT
AM I
N Y
ph i n
.R u
M s c
C T.
Nœud
AM I
N Y
ph i n
.R u
M s c
C T.
Supports de communication
• Les supports de communication sont symbolises par des
relations entre les nœuds.
I
• La nature du support peut être précisée par un
M
stéréotype : <<mémoire>>, ...
N Y A
• Le support de communication est a priori bidirectionnel
ph i n
.R u
M s c
C T.
Exemple : Vue de déploiement
AM I
N Y
ph i n
.R u
M s c
C T.
Exemple d’un diagramme de Déploiement
PC SERNIE https
Serveur applicatif
I
Navi gateur
M
Apache.2.5.exe
A
tcp : 3306
Y
web_app MySQL.6.exe db_cursus.sql
N
https
i n
PC Chef
ph
etablissement
Navigateur
https
https
.R u
PC Eleve
c
Navi gateur
s
PC Service
M
Scolarite
.
Navigateur
C T
Diagramme de package
AM I
N Y
ph i n
.R u
M s c
C T.
Diagramme de package
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
AM I
N Y
ph i n
.R u
M s c
C T.
Modèle en couche
<<Layer>>
IHM
AM I
<<Layer>>
N Y
i n
Logique du metier
u ph
s c .R <<Data Layer>>
M
Base de données
C T.
Représentation détaillée
Entity
Gestion Catalogue
Dialogue Controleur
AM I
Y
«import» «import» «import» «import»
i n N
Gestion Commande
ph
Gestion Client
u
«import»
s c .R
T. M
C
Travail pratique de Conception Système d’Information
• Groupe 1 : Administration de dossiers médicaux
de manière centralisée dans l’Inspection
Provinciale de la Santé.
AM I
N Y
ph i n
.R u
M s c
C T.
ATELIER DE GENIE LOGICIEL
- Outils de conception (upper-case)
M
- et les environnements de développement
A I
Y
(lower-case)
i n N
u ph
s c .R
T. M
C