1
Master M1 MIAGE/SIC
http://formationmiage
.univ
- paris1.
fr/
Domaine ‘Maths, Info & Applications’ , Domaine ‘Maths, Info & Applications’ , Mention ‘Informatique des Organisations’, Mention ‘Informatique des Organisations’, Spécialité ‘MIAGE’
UE ISI1 : Ingénierie des Systèmes d’information
2
De la modélisation des objets à celle de leur
comportement
I. Rappel sur la modélisation des objetsI. Rappel sur la modélisation des objets
II. De la modélisation des objets à celle de leur II. De la modélisation des objets à celle de leur comportementcomportement
III. L’ontologie causaleIII. L’ontologie causale
IV. Le modèle causalIV. Le modèle causal
V. Le sous-schéma dynamique et sa documentationV. Le sous-schéma dynamique et sa documentation
VI. Expression dans les notations UMLVI. Expression dans les notations UML
VII. EntraînementVII. Entraînement
3
I- Modélisation des objets
• Objectif :Représenter certains aspects de la
réalité d’intérêt pour l’organisation
{Colette skie vite, Elle porte des pantalons rouges
Et un pull bleu}
Un objet réel Représentation de l’objet réel
Monde Réel Monde de l’information
4
« La réalité est faite d’objets différentiables par leurs propriétés et ayant entre eux (elles) des relations qui
évoluent dans le temps »
•Paradigme :
I- Modélisation des objets
5
• ApprocheReprésenter les objets réels, leurs propriétés et leurs relations par leurs équivalents O&R dans le monde de l’information
Observer le monde réel, Identifier les
objets & relations pertinentes,Selectionner les propriétés
d’intérêt
Monde RéelMonde RéelMonde de l’informationMonde de l’information
Représenter les O&R réelspar des objets informationnels
en relation les uns avec les autresLeur associer les propriétés de leurs homologues réels
Stocker les valeurs des propriétés dans un base de données
I- Modélisation des objets
6
Univers du
Discours
Schéma
Modélise
Modèle
Langage
Utilise
concevoir
Analyse
Base de données
Réaliser
Concevoir = Modéliser =Abstraire : gommer volontairement
certains détails pour se concentrer sur les aspects considérés essentiels
•Moyen
I- Modélisation des objets
7
• Moyen Un modèle : un ensemble cohérent de concepts
(Entity Type, Relationship Type and Attribute) et de contraintes (Key, Cardinality) assorti de notations graphiques (langage)
Un processus de conceptualisation : élaboration d’un schéma par instanciation de concepts
Voiture
NomP…..
NumMatricule…..
Possède
RT
Propriétaire
ET
NumP
AttributClé
1.1
Cardinalités
I- Modélisation des objets
Schéma:Schéma:
8
• Moyen De nombreux modèles :
Relationnel UML (diagramme de classes) MCD (Merise) NIAM Etc.
I- Modélisation des objets
Schéma Relationnel:Voiture (NumMatricule, .,. NumP)Propriétaire (NumP, NomP,.,)
PropriétairePossède
Voiture
NumMatricule….
NumPNomP
….
Schéma UML
9
• RésultatUn schéma conceptuel qui projète la réalité dans le monde de l’information et sert à développer une base de données
SchemaConceptuel
SchemaInterne
Correction
Acquisition de la connaissance de domaine &
spécification du SI
Validation
Univers duDiscours
ConceptualisationConceptualisation
TransformationTransformation
MappingMapping
I- Modélisation des objets
10
La représentation conceptuelle de la réalité permet le développement de SI qui apportent la connaissance
de l’état des objets à un instant donné »
I- Modélisation des objets
Objet : ‘barbamam’Propriétés: coquette, aime les bijoux,
porte un chignon, solitaire
Humain
style: /coquet,68ard, ../coiffure: /chignon, rasé./
bijoux: booléen
lié à
Etattoday : barbamam.style = ‘coquette’^ barbamam.bijoux= ‘beaucoup’^ barbamam.coiffure = ‘chignon’^ barbamam.statut = ‘solitaire’
Ex1
11
Exercice 1
Décrire l’état de l’avion 232 par un ensemble de valeurs conformes au schéma précédent. Donner le schéma de relation correspondant et répondre à la même question. Donner le schéma de classes UML et répondre à la même question.Commentez les trois exemples. En déduire votre définition de l’état d’un objet dans le cas où il est (a) instance d’une ET, (b) instance d’une relation et (c) une instance de classe.
HANGARAVION
DATE
N°hangarNomaeroportLocalisation
N°AvionTypeNhvoltotalSurnom
Date
Rapport de révisionNhvol entre deux revisions
1.11.N
1.N
1.N
Représenter les faits suivants par un schéma E/R un schéma relationnel
&UML diagramme de classes
Le schéma E/R ci-dessous définit un avion par ses attributs propres,
sa relation avec les hangars de stationnement et ses passages successifs dans les ateliers de
réparation.
12
« La réalité change sous l’impulsion d’événements qui aboutissent à des changements d’état d’objets »
Barbapapa et barbamaman tombent amoureux !!!!
Objet : ‘barbamam’Propriétés: coquette, aime les bijoux, porte un chignon, amoureuse de barbapapa
Etattoday : barbaman.style = ‘coquette’^ barbamam.bijoux= ‘beaucoup’^ barbamam.coiffure = ‘chignon’^ barbamam.statut = ‘amoureuse’^ barbamam.lié-à = ‘barbapapa’
II- De la modélisation des objets à celle de leur comportement
13
Objets
Ont une dimension statique
Se Traduit
Structure État
Objets
Et une dimension dynamique
Se Traduit
ComportementChangement d ’état
Les deux facettes statique et dynamique des objets sont indissociables
II- De la modélisation des objets à celle de leur comportement
14
Le comportement est modélisé par l'interaction causale des objets, événements et opérations
OBJET
EVENEMENT
OPERATION
Les opérations changent l ’état des objets
MODIFIEMODIFIE
Les événements déclenchent les opérations
DECLENCHEDECLENCHE
CONSTATECONSTATE
Les changements d ’états peuvent être événementiels
Fait, stimulus
Objet
Action
III- Ontologie Causale
15
L’ontologie insiste sur la dépendance entre les trois éléments
Exemple : C ’est parce que je repeins la voiture de toto
qu ’elle change de couleur. Constater que la voiture vient d ’être emboutie
(constater un changement d ’état) permet d ’identifier l ’événement survenu.
Faire réparer sa voiture est une opération conséquente (déclenchée par) de l ’événement d ’accident
Ex2
III- Ontologie Causale
16
Exercice 2
Ontologie : objet, événement, opération
Donner un exemple pris dans la réalité quotidienne
de chacun des 3 concepts et
de chacune des 3 relations entre concepts.
17
Lawful Unlawful
LawThing
Property
Event
Stable
Unstable
Environment
State
Attribute
Transition
perceived as
has
*
1
1 1
**
1
1
*
*
Bunge, M (1977) Treatise on Basic Philosophy: Ontology I. The Furniture of the World, Reidel.Bunge, M (1979) Treatise on Basic Philosophy: Ontology II. A World of Systems, Reidel.
composed of
III- Ontologie fondatrice de Bunge et son méta-modèle UML
18
Ontologie du Réel
Monde RéelMonde Réel Monde des artéfactsMonde des artéfacts
Ontologie du SI
III- Ontologie Causale
Transposer l’ontologie du réel au monde des artéfacts informationnels
19
Modéliser les causes et les conséquences des changements d’état d’objets informationnels
OBJET
EVENEMENT
OPERATION
Les opérations changent l ’état des objets
MODIFIEMODIFIE
Les événements déclenchent les opérations
DECLENCHEDECLENCHE
CONSTATECONSTATE
Les changements d ’états peuvent être événementiels
Stimulus initiateur de la transition d’état des objets d’information
Objet informationnelreprésentant un objet réel
Opération sur des objets informationnels
III- Ontologie Causale
Ex3
20
Exercice 3
Ontologie : objet, événement, opération
Appliquer l’ontologie et sa causalité, cette fois dans le monde informationnel.
21
Lawful Unlawful
LawThing
Property
Event
Internal External
Stable
Unstable
Input Output
Environment
System
State
Attribute
Class
Transition
perceived as
has
*
1
1 1
0..*
1
**
1
1
*
*
characterized
1..*
1
[Wand Y, Weber R (1989) An ontological evaluation of systems analysis and design methods, in E.D. Falkenberg, P. Lindgreen (Eds), Information System Concepts: An In-depth Analysis, North-Holland, Amsterdam, pp79-107[Rosemann M., Green P. (2002) Developing a meta model for the Bunge-Wand-Weber ontological constructs, Information Systems Journal, Vol 27, pp 75-91
III- Ontologie Causale de Bunge adaptée au SI
22
mon compte 351818
Comptes créditeurs
Comptes débiteurs
mon compte 351818
J’ai achetéun tableau
opération :débiter
A125
Le changement d ’état résulte de l ’exécution d ’une opération
Le changement d’état du compte 351818 résulte de l ’opération A125 de débit
1. Changement d ’état = résultat d ’opération
III- Ontologie CausaleIllustration
23
Un changement d ’état particulier peut être un événement‘ Mon compte est débiteur ’ est un événement qui résulte du constat que le compte a franchi la barre ‘ zéro ’ du solde
2. Événement = constatation d ’un changement d ’état
III- Ontologie CausaleIllustration
24
Tout événement provoque l ’exécution d ’opérations. Un événement est un stimulus.
L ’événement ‘ le compte 351818 devient débiteur ’ déclenche l ’opération R258
3. Événement = déclencheur d’opération
III- Ontologie CausaleIllustration
25
La trilogie Objet, Opération, Événement permet d ’exprimer la causalité entre la source du changement (événement) et la conséquence (changement d ’état de l ’objet par exécution d ’opération)
Etapes : a. L ’opération de débitb. provoque le changement d ’état de mon compte qui devient débiteur et,c. ce changement d ’état est un événement du type « le compte devient débiteur »
Ex4
III- Ontologie Causale: Illustration
26
Exercice 4 (1)
Représenter de manière graphique en vous inspirant de l’ exemple du cours, les situations suivantes :
la mise à jour du stock d’un produit suite à une livraison peut faire passer le stock en ‘rupture’,
c’est à dire en dessous du seuil de réapprovisionnement.Le passage de la quantité en stock en dessous du seuil
est un événement dit ‘rupture de stock’.La rupture de stock déclenche l’émission d’un ordre électronique
de réapprovisionnement auprès du fournisseur du produit qui est archivé dans le SI.
27
Exercice 4 (2)
Représenter de manière graphique en vous inspirant de l’ exemple du cours, les situations suivantes :
72 heures avant le départ d’un vol international de retour, la réservation de siège est annulée si le client n’a pas confirmé
sa réservation, à son arrivée à destination et au moins 72 heures avant le départ.
L’agence qui a délivré le billet reçoit par e-mail une justification de l’annulation de la réservation
qui est stockée dans le SI.
28
A. Événement interne : Changement d’état des objets gérés dans le SI
Rupture de stockDisponibilité d’un exemplaire de livre
B. Événement temporel: Changement d’état lié à la flèche du temps
Demain à 18hTous les lundis
C. Événement externe: Arrivée d’un stimulus externe décrit dans un message
Arrivée d’une commandeArrivée d’une demande de réservation
Typologie des événements
N.B. conforme à Bunge/WW qui considèrent que l’horloge est un objet du SI
III- Ontologie Causale:
29
Environnement du SI
StimuliRéponses
Système d’Information ‘vu comme une machine à états’
(messages de description
d’événements)(messages dechangements d’états perçus
comme événements)
Interaction Système/Environnement
Les événements externes fonctionnent comme des stimuli qui activent les objets du SI. En retour, les réponses fournies par le SI génèrent des événements dans l’environnement.
Ex5
III- Ontologie Causale:
30
Exercice 5
Illustrer un cycle d’interaction dans le cas d’une livraison de produits en faisant le parallèle entre ce qui se passe dans le réel
et ce qui se passera dans le SI :- identifier les opérations, événements et objets réels
- montrer la relation entre les entités réelles et leur représentation dans le SI
- identifier les acteurs de l’environnement qui sont impliqués dans les opérations et événements réels et ceux qui servent d’interfaces avec le SI.
Si possible continuer le cycle précédent par un cycle qui le suit.
31
Il s’appuie sur 3 concepts pour représenter les classes d’objets (c-objet), d’opérations (C-opération) et d’événements (c-événement)
Il permet de modéliser le comportement d’un ensemble d’objets par la causalité <objet-opération-événement>
Il aboutit à un sous-schéma dynamique, complément du sous schéma statique de description des objets
C-OBJETC-OBJET
C-OPERATIONC-OPERATION
C-EVENEMENTC-EVENEMENT
IV- Le modèle causal
32
Nom
IV- Le modèle causal: C-objet
Représente une classe d’objets ayant un comportementLes c-objets sont décrits selon le formalisme retenu dans le projet (relationnel, diagramme de classes,
ET&RT, etc…)
Sous-Schéma dynamiqueSous-Schéma dynamique
Voiture (NumMatricule, .,. NumP)Propriétaire (NumP, NomP,.,)
Sous-Schéma statique: exempleSous-Schéma statique: exemple
Propriétaire
Voiture
et représentation dans le et représentation dans le sous-schéma dynamiquesous-schéma dynamique
33
C-ob
IV- Le modèle causal: C-opération
Représente une classe d’opérations agissant sur les objets d’un même c-objet et provoquant leurs changements
d’étatUne opération est atomique et n’agit que sur un seul objet
Sous-Schéma dynamiqueSous-Schéma dynamique
Nom C-opération
VoitureOp1: Insérer
ExempleOp2: Changer proprio.
34
IV- Le modèle causal: C-événement
Représente une classe d’événements. Un événement constate le changement d’état d’un objet et déclenche une
ou plusieurs opérations
C1
F1
Facteur de déclenchement Condition de
déclenchement
C-Objet
C-Evénement
C-Objet C-Objet
Sous-Schéma dynamiqueSous-Schéma dynamique
Le C-Evénement est visualisé par un triangleIl est accolé à une forme ronde (c-objet) ce qui représente l’association ‘constate’ et, à des flèches représentant les c-opérations déclenchées, ce qui traduit l’association ‘déclenche’ le déclenchement peut être conditionnel et/ou itératifLa condition et le facteur de déclenchement sont visualisés.
35
Exemple: Une disponibilité d’exemplaire venant d’être identifiée permet de faire sortir une demande d’emprunt de livre de la liste d’attente
Exemplaire
NouvelleDisponibilité OP3 : réserver
AbonneDemande
OP1 : satisfaireOP2 : prêter
C1 C1 C1
C1 : un abonné en attente du livre dont l’exemplaire est devenu disponible et qui peut emprunter cet exemplaire
IV- Le modèle causal: C-événement
EV1
36
IV- Le modèle causal: C-événement
UN EVENEMENT EST DECRIT PAR
- UN NOM
- UN PREDICAT DEFINISSANT SA CONDITION D’OCCURRENCE
- UN DECLENCHEMENT INCLUANT LES C-OPERATIONS DECLENCHEES, LEURS CONDITIONS DE DECLENCHEMENT ET LEURS FACTEURS D’ITERATION
Nom (survenance) Prédicat (changt d’état): un exemplaire non disponible
l’est devenu
Déclenchement(des c-op): OP1 & OP2 et OP3
sous C1
Exemplaire
NouvelleDisponibilité OP3 :
réserver
AbonneDemande
OP1 : satisfaire OP2 : prêter
C1 C1 C1
EV1
37
Exemple l’événement ‘nouvelle disponibilité’ constaté sur
des objets EXEMPLAIRE se définit par: Pré-condition : OLD.Etat=‘disponible’ Post-condition : NEW.Etat = ‘disponible’
OLD et NEW sont deux mot-clés caractérisant respectivement:
l’état de l’objet avant et l’état après l’opération induisant le changement
CONDITION D ’OCCURRENCE ou PREDICAT: Elle CONDITION D ’OCCURRENCE ou PREDICAT: Elle permet de savoir si un changement d ’état d ’objet permet de savoir si un changement d ’état d ’objet est événementiel ou nonest événementiel ou non
IV- Le modèle causal: C-événement
38
DECLENCHEMENTDECLENCHEMENT: le déclenchement d’un opération par un événement peut être CONDITIONNEL : il se produit si et seulement si la condition de déclenchement est vraieUne condition fait référence à l ’état du système; elle peut être simple (atomique) ou composée (de sous conditions)
IV- Le modèle causal: C-événement et transition dynamique
Exemplaire
NouvelleDisponibilité OP3 : réserver
AbonneDemande
OP1 : satisfaire OP2 : prêter
C1 C1 C1
C1 : une demande en attente du livre dont l’exemplaire est devenu disponible et dont l’abonné remplit les conditions d’emprunt (moins de trois emprunts et ‘actif’)
39
L’ensemble des c-opérations déclenchées par un c-évènement constitue une transition dynamique. Elle est un module cohésif et autonome dont l’exécution fait passer le système d’un état cohérent à un autre état cohérent.
La transition est atomique : elle n’est pas décomposable et comporte la collection minimale des transformations nécessaires et suffisantes pour réagir logiquement à un événement de ce type.
Les opérations n’ont pas d’ordre : elles sont exécutables en parallèle
IV- Le modèle causal: C-événement et transition dynamique
40
QUID de cette modélisation : est elle correcte OUI/NON?
et Pourquoi ?
Exemplaire
NouvelleDisponibilité
AbonneDemande
OP1 : satisfaireOP2 : prêter
C1 C1
C1 : un abonné en attente du livre dont l’exemplaire est devenu disponible et qui peut emprunter cet exemplaire
IV- Le modèle causal: C-événement
Ex6
41
Exercice 6
On vous donne les relations suivantes décrivant l’information que souhaite gérer une compagnie aérienne sur certains de ses composants:
Avion ( Nav, Typav, NhVolcourant) EtatAvion (Datet, Nav, etatav)
Planning revisions (Numplan, Nav, DateRev)TypeAvion (Typav, Nbstdrev, Libtype)
Un avion a un numéro unique (Nav), un type (Typav), un nombre d’ heures depuis la dernière révision (NhVolcourant) et un état (etatav):
‘en service’, ‘hors service’, ‘en révision’..Lorsqu’un avion a un nombre d’heures de vol courant supérieur
au nombre standard d’heures de son type (Nbstdrev) il est programmé pour une révision à l’atelier.
On vous demande de modéliser la situation événementielle qui détecte que l’avion doit être envoyé en révision car son nombre d’heures vient de dépasser le standard.
Son entrée dans le planning de révision est calculée et son état passe alors à ‘en révision’.
Dessiner le graphe tri-alterné, définir le prédicat et les c-opérations .
42
InterneInterne Changement d’état défini sur un C-Objet du SI Ex: nouvelle disponibilité
TemporelTemporel Changement lié à la flèche du temps; il se produit sur
le calendrier (C-Objet prédéfini) Ex: 72h avant le début d’un vol
ExterneExterne A l’ arrivée d’un message venant de l’environnement
du SI : il est induit par le comportement des acteurs extérieurs au SI
Ex: à l’arrivée d’une demande de réservation de siège dans un vol
IV- Le modèle causal: Typologie des événements
43
C-Ob2: Ordre de réapprovisionnement
Un article en stock a passé le
seuil de rupture
EV2
C-Ob1: Article en stock
Mail fournisseur
OP1 : Réapprovisionner
OP2 : Informer fournisseur
IV- Le modèle causal: C-Evénement interne
Ex7
Un C-évènement interne est défini sur un c-objet du SI
Le prédicat d’un C-Ev interne se formule par une pré et une post conditions caractérisant l’état avant (OLD) et
l’état après (NEW) le changement de l’objet provoqué par une opération
Le C-Ob est C-Ob1:Article en Stock (Nart, Qtstk, Seuil, NomArt)
Le prédicat de EV2 :OLD.Qtstk >= SeuilNEW.Qtstk < Seuil
44
Exercice 7 On vous demande de contribuer à la modélisation d’un système de gestion
des caravanes transportant du matériel à travers le désert.Les caravanes utilisent des chameaux qui leur sont affectés en fonction des besoins;
le reste du temps les chameaux sont en ‘stock’!Chameau (Num, Nom, Etat, propriétaire)
On vous demande de modéliser les deux situations événementielles suivantes:Il y a ‘ rupture du stock de chameaux’
lorsque le nombre de chameaux disponibles vient de passer à six.Il y a ‘surplus de stock de chameaux’
lorsque le nombre de chameaux disponibles est de trente.
Un événement du premier type provoque l’envoi d’un bon d’achat au fournisseur de chameaux préféré de l’organisme.
Un événement du deuxième type émet un ordre de mise en vente de chameaux aux enchères sur le Web.
La définition que vous devez faire pour chaque événement doit comporter :- Le graphe tri-alterné
- La définition du prédicat,- La description des C-Ops et celle des C-Objets correspondants (manquants)
45
Un évènement temporel est défini par référence a un c-objet temporel prédéfini : le calendrier
Le prédicat d’un événement temporel est une assertion temporelle telle que : chaque jour, chaque 25 du mois, etc..
IV- Le modèle causal: C-événement temporel
F2
EV2
OP1 : Annuler :Mettre EtatDem à ‘annulée’)
Demande
Échéance demandesen attentePrédicat :
chaque jourCalendrier
C-ob prédéfini : calendrier
C-Ev temporel
46
DECLENCHEMENTDECLENCHEMENT: le déclenchement d’un opération par un événement peut être ITERATIF: il se produit sur une collection d’objets défini par le facteur de déclenchement.
IV- Le modèle causal: C-événementet déclenchement
F2
EV2
OP1 : Annuler :Mettre EtatDem à ‘annulée’)
Demande
Échéance demandesen attentePrédicat :
chaque jour
Le facteur est une collection structurée de tuples de données
F2 {NumDem}
Il se calcule dynamiquement au moment où l’événement se produit par une formule : Select NumDem from DemandeWhere EtatDem = ‘en attente’ AND DateDem = date du jour – 21jours Ex8
47
Exercice 8
Modéliser la situation suivante :
Une fois par an, au début de l’année (par exemple, le 5 Janvier à 18heures), après la mise à jour des salaires des employés de la société EMSI,
le SI doit marquer les employés qui gagnent plus que leur chef de service.
Employé( NumEmp, NomEmp, AdrEmp, Sal, Numchef, Marque)NumChef est un numéro d’employé (NumEmp);
Marque est un booléen (gagne + ou – que le chef)
La modélisation doit comporter :-Le graphe tri-alterné
-La définition prédicat du c-événement,-Celle des C-Op déclenchées et,
-Celle du facteur de déclenchement : (structure de données et procédure de calcul
des tuples du facteur par un SELECT)
48
C-Évènement temporel en temps absolu Demain à 17 heures Pendant { 070703-090703 } Après 18 heures aujourd’hui Chaque 25ème jour d’un mois
Par intervalle ; par semi-intervalle ; périodique
C-Evenement temporel en temps relatif Pred ev1 : 7 jours après EV2.Date-occurrence Pred ev2 : 8 jours avant EV3.Date-occurrence. M3.
DebdemrésaEV3 : une demande arrive!
C-Événement complexe Pred ev4 : 1 mois après EV1.Date-occurrence (l’accord du
prêt)chaque 23ème jour du mois, pendant 2 ans
Le modèle dynamique causal I. Concepts du modèle C. C-Événement Typologies d ’Événements
IV- Le modèle causal: Typologie des Cevts temporels
49
OP10 :Annuler / Mettre État de Demande à "Annulée"/
F2 : { demandes en attente qui sont "aujourd'hui" à 3 semaines de debdemrésa}
F2
EV2
OP10 : Annuler
Etat-Demande
Chaque jour
Exemple des réservations
IV- Le modèle causal: C-événement temporel (absolu)
EV2 est en temps absolu
50
OP10 :Annuler / Met État de Demande à "Annulée"/
C4 : La demande est toujours en attente
EV2 3 semainesavant debdemrésa
C4OP10 : Annuler
Etat-Demande
EV2 est relatif à EV3
Exemple des réservations
Ex9
IV- Le modèle causal: C-événement temporel (relatif)
51
Exercice 9
Modéliser (a) par un C-Ev temporel relatif et (b) par un C-Ev temporel absolu la règle suivante :
- la cotisation d’abonnement à une vidéothèque est valable un an. - Au bout d’un an et un jour, un abonné ‘actif’
est ‘suspendu’ s’il n’a pas payé sa nouvelle cotisation.
- Un abonné actif peut faire des emprunts à la borne de distribution de DVD tandis que les abonnés suspendus n’en auront pas le droit.
On admettra que l’abonnement (comme le ré abonnement) est représenté par un C-Ev EV1 :‘Un abonné s’abonne’.
52
IV- Le modèle causal: C-Evénement externe
Un évènement externe traduit l’ interaction du système avec son environnement. Il permet de prendre en compte les
changements du monde extérieur que le SI doit connaître car ils affectent les états de ses objets
Un événement externe constate l’arrivée d’un message d’information émis par un acteur extérieur
M1
Acteur(un rôle
inter-agissant avec les sI) Evénement externe
(constate l’arrivée d’un message)
Message(Forme ronde
avec double cercle)
53
IV- Le modèle causal: C-Evénement externe
Le message M1 vient de l’environnement du SI et donne l’information nécessaire à la reconnaissance d’un événement que le SI doit gérerIl est émis par un acteur de l’environnement qui a observé le fait événementielLe prédicat du c-événement
est la constatation de l’arrivée d’un nouveau message Le déclenchement est conforme à tout événement
Demande d'emprunt
Demande
Prêt
Exemplaire
OP1 : créer-demande
OP2 : accorder-prêt
C1C1
M1
Arrivée demande d'emprunt
OP3 : prêter
Abonné
C1 : l'abonné est à jour de cotisation,il a moins de 3 emprunts en cours et il y a un exemplaire de livre disponible
Exemple de l’arrivée d’une demande d’emprunt de livre
émise par un abonné de la bibliothèque
54
Les interactions entre le SI et son Environnement opérationnel sont basés sur des envois/réceptions de
messages
Environnement du SI dans lequel il opère
Stimuli Réponses
SI vu comme une ‘machine à états’
(messages de description
d’événements)
(messages dechangements d’états perçus
comme événements)
IV- Le modèle causal: Interactions SI et Monde Réel
La communication SI - Environnement par message est un choixElle fonctionne dans les deux sens : Environnement vers SI et Si vers environnement Le message Environnement/SI donne l’information nécessaire au fait qui s’est produit en réel et auquel le SI doit réagir Le message SI/Environnement informe l’acteur concerné par la décision/action du SI
55
Titre Auteurs
Auteur
Nom IPrénom
NumAbonné
M1
Ensembleou liste
Agrégat
Un message est décrit par agrégation et/ou liste d’en semble de champs
Le prédicat de l’événement externe donne les conditions de validité des champs du message
M1: { Titre : char;
Auteurs : list-of ({nom: char; iprénom : char});
NumAbonné : entier }Prédicat : Abonne.NumAB =M1.NumAbonné
IV- Le modèle causal: message C-Evt externe
Ex10
56
Exercice 10
Modéliser la situation suivante relative à l’analyse d’une demande d’emprunt de livre faite par un abonné d’une bibliothèque :
-la demande d’emprunt d’un livre par un abonné de la bibliothèque n’est acceptable que si l’abonné est dans l’état ‘actif’ et si son nombre d’emprunts est inférieur à trois .
-la demande est refusée si l’abonné n’est pas en situation d’emprunter, c’est-à-dire s’il est ‘suspendu’ ou ‘exclu’.
- une demande acceptable est mise en attente s’il n’y a pas d’exemplaire du livre disponible à cet instant.
La modélisation doit comporter :-la définition (partielle) des C-Ob concernés,
-celle du C-Ev EV1 déclencheur,-celle des C-Op relatives à l’acceptation, la mise en attente et le refus
de la demande qui sont partie de la transition dynamique déclenchée par EV1-Celle des conditions de déclenchement qui sont complexes et
doivent être décomposées composition de conditions atomiques
57
Distinguer clairement : Etat Changement d’état Evènement
Processus causal versus Processus téléologique
ÉvénementsObjets
DéclencheModifie
Ont des changements d‘état qui sont des
Opérations
IV- Le modèle causal: Retour sur la causalité
58
V. Schéma dynamique Graphe tri-alterné
Le graphe tri-alterné regroupe toutes les transitions dynamiques dans un même graphe.
Il permet de visualiser les événements externes, leurs impacts sur les objets du SI et les événements internes résultants. Il montre les événements temporels auxquels le système réagit.
Il est un instrument puissant de représentation synthétique du comportement attendu du système
Le modèle dynamique causal IV. Schéma dynamique
59
OB4
C1
C1
OB5
M1 M2
F1
OB2
OB1
OB3
EV2
EV1
M3 F2
EV3
V. Schéma dynamique Graphe tri-alterné
C-Ev temporel EV4
C-Ev externe
C-Ev interne
Interaction SI-environnement
Interaction Environnement-SI
C1
60
Exercice 11 (1) L’application centralisée de réservations de chambres d'hôtel concerne la région alpine qui englobe plusieurs stations ayant chacune plusieurs hôtels. Les hôtels ont déjà fait l’objet d’une codification qui devra être maintenue dans l’application automatisée. Un code d’hôtel est unique pour toute la région. Les chambres devront être référencées par leurs numéros.Toute personne désireuse de faire une réservation peut téléphoner afin de réserver des chambres; l'opérateur chargé de la réservation lui demande plusieurs renseignements : nom, prénom, adresse, numéro de téléphone, numéro de carte de crédit, type carte, date d’expiration (s’il n’est pas déjà client) et diverses indications sur la demande : la période de réservation, le nombre de chambres, la catégorie d'hôtel et la station désirée. Il affecte à chaque demande un numéro d'ordre. L'opérateur demande à l’application de vérifier si la demande peut-être satisfaite ; s'il n'y a pas de possibilité de la satisfaire, il sollicite le demandeur pour formuler éventuellement une nouvelle demande ou lui suggère de mettre sa demande en attente. S'il est possible de satisfaire la demande, il y a introduction éventuelle d'un nouveau client dans le SI et génération d'une réservation qui comporte tous les renseignements permettant d’envoyer une lettre de confirmation au client. Les annulations de réservation sont acceptées sans contrepartie financière si elles parviennent au système de réservation au moins une semaine avant le début de la réservation. Sinon, 75% de la réservation est exigé du client et sont automatiquement débités par paiement au moyen de la carte bancaire. Chaque hôtel devra être décrit par au moins son nom, son numéro, son adresse, la station à laquelle il appartient, sa catégorie, le nombre de chambres disponibles, le prix unitaire de chaque chambre (prix haute saison, prix basse saison).
61
Exercice 11 (2)
On vous demande de construire et de commenter le schéma conceptuel de cette application,
comprenant le sous-schéma statique et le sous-schéma dynamique.Le sous schéma statique peut être modélisé avec E/R ou UML (diagramme de classes)
Le sous-schéma dynamique est un diagramme causal commenté.
Vous pouvez reprendre la solution élaborée l’an passé pour le schéma statiqueet donc poursuivre
par l’élaboration du sous-schéma dynamique c-événement par c-événement.
62
EV3
OP7 : EmprunterOP5 : initialiser
OP6 : emprunts
Comptabiliser
M3
PRET
ABONNE
DISQUE
Un abonné emprunte un disque
Message de demanded’emprunt d’un disque
C2 C3 C2 C3
C2 C3
Nom de l’Evénement : Un abonné emprunte un disqueReprésentation graphique de la transition dynamique :
Commentaire : Un événement du type EV3 "Un abonné emprunte un disque" se produit lorsque l’abonné choisit un DVD et déclare son intention d’emprunt.Si l’abonné est actif et s’il a moins de 5 emprunts en cours, le prêt est enregistré, l’emprunt est comptabilisé pour l’abonné et l’état du disque est mis à "prêté ". Plus précisément : Si L ’abonné est actif (condition C2) et il a moins de 5 prêts en cours (condition C3) alors :- créer un prêt comme occurrence du C-Objet PRET et renseigner la date et heure de début du prêt (InstantPret) et la référence du disque prêté (IdDisque), (C-Opération OP5)(a) comptabiliser un prêt supplémentaire dans l’attribut NbPretEnCours du C-Objet ABONNE (C-Opération OP6)(b) enregistrer l’emprunt du DVD par modification de l’attribut EtatDisque du C-Objet DISQUE qui prend la valeur "prêté " (C-Opération OP7).
V. Schéma dynamique Documentation
63
Message M3 : { Numéro Abonné: Entier IdDisque: { NuméroFilm: Entier;NuméroDisque: Entier;}; }
Prédicat : Il existe dans le C-Objet ABONNE un abonné ayant l’attribut NumeroAbonne = MESSAGE.NumeroAbonne Il existe dans le C-Objet DISQUE un disque ayant comme identifiant le champ MESSAGE.IdDisque l ’attribut EtatDisque = « Disponible »
C-Opérations :
OP5 : Créer un prêt dans PRET avec - NumeroAbonne = Message.NumeroAbonne- InstantPret = InstantCourant- NumeroFilm = Message.NumeroFilm- NumeroDisque=Message.NumeroDisque
OP6 : Incrémenter le nombre de prêts en cours de l’abonné dans ABONNE avec - NumeroAbonne = Message.NumeroAbonne - NbPretEnCours = NbPretEnCours+1
OP7 : Mettre à jour l ’état du Disque dans DISQUE avec- NumeroFilm = Message.IdDisque.NumeroFilm- NumeroDisque= Message.IdDisque.NumeroDisque- EtatDisque = «prété»Conditions de déclenchement :- Condition C2 : L’attribut EtatAbonne relatif à l’abonné du message est égal à « suspendu » - Condition C3 : L’attribut NbPretEnCours relatif à l’abonné mentionné dans le message < 5
V. Schéma dynamique Documentation
64
Exercice 12
On vous demande de documenter au moins une transition dynamique du sous-schéma dynamique.du cas des réservations;
On recommande de prendre le c’événement EV1 ‘arrivée d’une demande de réservation’ et si possible
le c’événement EV2 ‘un client annule sa réservation’.
65
Identifier C-ev externe ou temporel
C1Construiretransitiondynamique
C2 IdentifierC-ev interne
C4
4 étapes C1, C2, C3 et C4 répétées autant de fois qu’on ne découvre un C-Ev externe
ou temporel
Jusqu’à ce que tous les C-Ev soient identifiés
**
V. Schéma dynamique Méthode événementielle de construction
Une démarche dirigée par les événements qui conduit à construire en parallèle le sous-schéma statique et le sous-schéma dynamique mais en partant des événements et de leur modélisation
Construirefragmentstatique C3
66
C2 : Construire transition dynamique
1- Identifier les cas de sortie de la transition les associer à des C-Objets et identifier les C-Opérations associées
2- Vérifier si les C-Objets existent dans le schéma statique sinon prendre mesure corrective
3- Identifier les conditions de déclenchement4- Déterminer si les déclenchements sont itératifs et si oui
identifier les facteurs5- Ajouter les C-Opérations concomitantes des précédentes et
procéder comme précédemment pour 2, 3, 4)6- Vérifier la complétude de la transition (pas d’oubli des
conséquences du C-Ev) et vérifier sa cohérence (appliquer les règles de vérification)
Le modèle dynamique causal IV. Vérification et validation B. Suggestions de contrôles pratiques
Ex13
V. Schéma dynamique heuristique méthodologique
67
Exercice 13 (1) Il s’agit d’un cas de gestion de prêts bancaires. L’ensemble des règles de gestion en vigueur dans l’organisationpour le SI à développer est présenté dans le texte ci-dessous. Ces règles doivent être considérées commeles exigences à l’égard du système (cahier des charges).Une banque prête de l’argent à ses clients avec les modalités d’attribution et de remboursement suivantes :Attribution des prêts : un client ne peut avoir plus d’un prêt à la fois. Les prêts sont accordés aux clients ayant fait la demande seulement si le client a un revenu mensuel régulier géré par la banque et si le client n’a pas été ‘suspendu’ au cours d’un prêt précédent -voir ci après). L’accord définitif du prêt fixant le montant, la durée et le taux est décidé par un responsable de la banque après un délai d’environ un mois.Remboursement : Le remboursement réel du prêt est à la discrétion du client. Celui-ci peut effectuer des versements d’une somme inférieure ou supérieure à la mensualité théorique (menstheo) à n’importe quel moment et pas nécessairement à la date d’exigibilité mensuelle fixée à l’attribution du prêt. En revanche, chaque mois, le jour du mois qui correspond au jour d’exigibilité du prêt, la banque effectue un contrôle et Détermine des actions correctrices si nécessaire. La banque compare la somme totale effectivement remboursée TotRemb à la somme théorique TotTheo (calculée sur la base d’un remboursement régulier).Révision du prêt : lorsque TotRemb>= TotTheo + 3*menstheo, le prêt est révisé. On recalcule sa nouvelle durée et son nouveau montant mais au même taux. Il s’agit d’une version nouvelle du même prêt. Pénalité sur le prêt : lorsque TotRemb< TotTheo - 3*menstheo, le prêt est pénalisé (une taxe est appliquée). Le montant de la taxe est proportionnel à la somme due. Un client ayant une pénalité impayée à l’échéance est ‘suspendu’. Lors d’un versement du client, la taxe est acquittée en priorité. La taxe doit être acquittée en une seule fois. Un client ayant un prêt en cours en situation régulière est dit actif. Un client n’ayant pas encore de prêt ou plus de prêt en cours est dit non-actif. Lorsqu’un client a un prêt en cours et une taxe non acquittée, il est dit suspendu. Un prêt est soldé lorsque le client a remboursé la somme due+ les intérêtsÉchéance normale : lorsque le prêt à l’échéance est dans la fourchette <TotTheo - 3*menstheo, TotTheo + 3*menstheo>, le prêt suit son cours et aucune action n’est entreprise par la banque.
68
Exercice 13 (2)
On vous demande de construire et de commenter le schéma conceptuel de cette application, comprenant le sous-schéma statique et le sous-schéma dynamique.
Le sous schéma statique peut être modélisé avec E/R ou UML (diagramme de classes)Le sous-schéma dynamique est un diagramme causal commenté.
Pour expérimenter une autre façon de concevoir, on vous suggère une démarche dirigée par les événements qui se schématise ainsi:
1- construire simultanément dans la même itération, une transition dynamique (c-événement, c-opérations, conditions, c-objets )
et la partie du sous-schéma statique correspondant aux c-objets identifiés par la modélisation de la transition
2- recommencer l’étape 1 tant qu’il y a un c-événement à modéliser
Présenter le résultat itération par itérationPour chaque itération :
-Présenter le graphe tri-alterné-Présenter le diagramme de classes associé (ou l’extension du diagramme déjà construit)
-Décrire le prédicat du c-evt, les c-opérations, le message (s’il y en a un), les conditions et les facteurs de déclenchement (si ] )
69
Vérifier la complétude de la description du cycle de vie de chaque objet de son évènement de naissance a son événement de mort
Utiliser le graphe de transition d’états des C-classes comme support de description du cycle de vie
Vérifier que toutes les transitions du graphe sont bien représentées par des C-Opérations déclenchées par des C-Évènements du schéma dynamique
V. Schéma dynamique contrôle de complétude
Contrôle de cycle de vie
70
Exemple de la c-classe Demande du cas des réservations :
1-Construire le graphe du cycle de vie
Attente
OKAnnulée
État de non existence
Mettre en Attente
Accepter
Accepter
Annuler
Archiver
Archiver
V. Schéma dynamique contrôle de complétude
Contrôle de cycle de vie
71
2 : labeller les arcs par des couples <c-événement, c-opération>3- identifier les c-ev et c-op manquantes
Attente
OKAnnulée
État de non existence
EV1, Mettre en Attente
EV1, Accepter
EV3, Accepter
EV4', Annuler
EV4, Annuler
EV1 : Arrivée demande EV4 : 3 semaines avant debdemresEV3 : Les disponibilités EV4’ : le demandeur annule augmentent
?
?
V. Schéma dynamique contrôle de complétude
Contrôle de cycle de vie
72
Exemple du cas bibliothèque
Les demandes peuvent être mises en attente mais elles doivent pouvoir sortir de cet état. Ceci survient lorsqu’un exemplaire de livre devient disponible. Il peut alors être réservé a l’abonne qui l’attend et peut venir le retirer a la bibliothèque dans la semaine qui suit
Modifier-état
Exemplaire
Nouvelle disponibilité
Demande
Arrivéedemande
RelancerMettre en attente
C1
C3
Contrôle par les états transitoires
V. Schéma dynamique contrôle de complétude
73
Exercice 14
On vous demande d’appliquer les contrôles de complétude au cas des prêts bancaires.
Déterminer les C-événements manquants et compléter le schéma conceptuel
74
VI. Expression dans les notations UML
A. Cas d’utilisation
B. Diagramme de collaboration
C. Cas des C-évènements temporels
D. Cas des C-évènements internes
E. Cas des C-évènements externes
75
Hôtelier Personne
Système de Réservations
Faire Réservation
Annuler Réservation
AjouterRessources
Schéma dynamique par des cas d'utilisation
Nom Transition DynamiqueNom Transition Dynamique
Un hôtel vient d’ouvrir
Une demandede résa survient!
Un clientannule sa résa
C-EvénementC-EvénementActeurActeur
VI. Expression dans les notations UML
Un cas par transition dynamique et donc c-evt.
76
Une transition dynamique peut être visualisée par un diagramme de collaboration
Satisfaire
: Exemplaire
: Abonné
: Exemplaire
: Demande
Prêter
Réserver
Collaborationentre objetsMessage (opération)
VI. Expression dans les notations UML
77
: Stock
: Fournisseur
P1:[Stock < seuil minimum] Rupture de stock
: Commande
1 :[P1] P
asser ord
re
réappro
visionnem
ent
1 : [P1]Prévenir Fournisseur
VI. Expression dans les notations UML
Le prédicat est introduit comme une condition de collaboration
78
: Horloge : Employé[Predev] * // : Payer
Facteur d'itération
parallélisme
Le modèle dynamique causal V. Notations UML
VI. Expression dans les notations UML
Une transition temporelle peut être visualisée par un diagramme de collaboration entre l’horloge et les objets du SI
79
: Prêt : Exemplaire
: Demanded'emprunt1 : [PredEV1]Saisir
2 [C1] :
Accorder2 [C1] : Prêter
: Demande
2: Créer-d
ema
nd
eNuméro d'ordre
Dans une transition de c-evt externe: Le message est représenté comme un objet créeL'opération de création du message devient
expliciteLe prédicat est visualisé comme une condition
VI. Expression dans les notations UML
80
VII- Entraînement (1/4)
Définir le concept d’ Évènement. Illustrer.
Donner et illustrer la typologie des événements.
Donner un exemple d’occurrence d’événement ?
Qu’est ce que le prédicat d’un Évènement? Préciser les trois types de prédicats correspondant à chacun des types d’évènement.
Comment recommanderiez vous de désigner un Évènement ?
Définir une Opération; Donner des exemples.
81
VII- Entraînement (2/4)
Comment suggéreriez vous de désigner une Opération ?
Expliquer comment la représentation graphique du schéma permet de représenter la causalité des concepts Objet, Évènement et Opération.
Qu’est ce qu’une transition dynamique ? Illustrer.
Quelles sont les propriétés attendues d’une transition dynamique ?
Expliquer pour quelle raison il n’y a pas d’ordre sur les Opérations d’une transition dynamique.
82
VII- Entraînement (3/4)
Qu’est ce qu’une condition de déclenchement ? Illustrer.
Pourquoi la condition de déclenchement n’est elle pas contenue dans l’Opération ?
Qu’est ce qu’un facteur de déclenchement ? Définir et illustrer.
Pourquoi le facteur de déclenchement est-il extériorisé ?
En quoi la transition atomique est elle atomique ?
83
VII-Entraînement (4/4)
Qu’est ce que le graphe de la dynamique tri-alterné ? Pourquoi est-il tri-alterné ?
Pensez vous que l’on puisse se passer du concept d’ Événement?
Définissez le cycle de vie d’un objet en termes d’événements. Appliquez à un objet réel, à un objet informationnel et au SI dans son ensemble.
Un évenement peut il déclencher une Opération productrice d’un message ? Dans quel cas est ce utile/nécessaire ? Faites la relation avec le fonctionnement de la machine à états dans son environnement.