Département de génie logiciel et des TI
Systèmes d’information dans les entreprises
Chargé: JF Couturier
Cours # 6
GTI515 Automne 2012 JF Couturier 1
Département de génie logiciel et des TI
Retour sur le dernier cours Les Patrons (Patterns) Architecture d’application Stéréotype Modèle d’analyse / Diagramme de
robustesseDe l’analyse vers la conceptionDu diagramme des CU vers le
diagramme de séquence
GTI515 Automne 2012 JF Couturier 2
Département de génie logiciel et des TI
Plan du cours 6
Correction du quiz 2 Correction du quiz 1 (retour) Évaluation du cours Archétype Modélisation en couleur
GTI515 Automne 2012 JF Couturier 3
Département de génie logiciel et des TI
Plan du cours 6
Correction du quiz 2 Correction du quiz 1 (retour) Évaluation du cours Archétype Modélisation en couleur
GTI515 Automne 2012 JF Couturier 4
Département de génie logiciel et des TI
Plan du cours 6
Correction du quiz 2 Correction du quiz 1 (retour) Évaluation du cours Archétype Modélisation en couleur
GTI515 Automne 2012 JF Couturier 5
Département de génie logiciel et des TI
Archétype Définitions:
Type idéal; type primitif. Œuvre, ouvrage, original qui sert de modèle. Don
Quichotte est l’archétype du roman picaresque. [BIOLOGIE] Modèle idéal, invariant, permettant de
reconnaître les organismes appartenant au même groupe naturel.
[PHILOSOPHIE] Selon Platon, idée ou forme du monde intelligible à partir desquelles sont construits les objets du monde sensible.
GTI515 Automne 2012 JF Couturier 6
Département de génie logiciel et des TI
Archétype
L’archétype du hérosest un modèle de héros,mais peu changer de culture en culture
L’archétype du vendeurEffectuer une vente (existe depuis fort
longtemps)C’est un archétype d’affaires
GTI515 Automne 2012 JF Couturier 7
Département de génie logiciel et des TI
Stéréotype vs. Archétype
StéréotypeAnnotation à un diagramme UML Catégorisation d’une classe
ArchétypeUn modèle à partir duquel toutes les
choses du même genre se suivent plus ou moins
GTI515 Automne 2012 JF Couturier 8
Département de génie logiciel et des TI
Archétype d’affaires
Survient constamment et universellement dans un domaine donné
Exemple: un parti au sens légal (dans un contrat, par exemple)Représente une personne ou une
organisation
GTI515 Automne 2012 JF Couturier 9
* Ref: Arlow, Neustadt, Enterprise patterns and MDA
Département de génie logiciel et des TI
Archétype d’affaires Une collaboration entre un archétype d’affaires qui se retrouve
constamment et de façon universelle dans un environnement donné et le système informatique (logiciel)
Caractéristiques: Universel: doit se retrouver constamment à travers le domaine d’affaires
et le système informatique
Omniprésent (pervasive): dans le domaine d’affaires et dans le système informatique
Longue histoire: reconnue depuis « longtemps »
Autoévident: tous les experts d’un domaine donné s’entendent sur la nature de l’archétype
GTI515 Automne 2012 JF Couturier 10
* Ref: Arlow, Neustadt, Enterprise patterns and MDA
Département de génie logiciel et des TI
Archétypes
Définition: une forme dont on peut à peu près déduire toutes les choses d’une même catégorie
L’expérience a prouvé que toutes les classes d’objets d’un modèle d’affaires sont bien décrites par quatre archétypes
Pourquoi les archétypes?Habiller le modèle du domaine
GTI515 Automne 2012 JF Couturier 11
Département de génie logiciel et des TI
Les 4 Archétypes 4 blocs de construction élémentaires
Événement-Activité (Moment-interval) représente les événements et activités métier a un état cimente le modèle du cas d’utilisation
Groupe, Place ou Chose (Party, Place or Thing)
objets d’intérêt en tant qu’individus Description
une description de type entrée de catalogue Rappelez-vous de la classe de description
Rôle une façon de participer
GTI515 Automne 2012 JF Couturier 12
Département de génie logiciel et des TI
Les 4 Archétypes
Quatre types d’archétype: Basé sur le temps: Intervalle-moment (moment-interval) Basé sur le rôle Basé sur le catalogue - The "catalog-entry-like
description" archetype. Basé sur les parties, lieux ou choses ("party, place or
thing“)
GTI515 Automne 2012 JF Couturier 13
Département de génie logiciel et des TI
Identification d’un archétype
GTI515 Automne 2012 JF Couturier 14
<<party>>
Person
legalName
dateOfBirth
authorizedFor
<<role>>
Cashier
authorizedFor
<<role>>Owner
authorizedFor
<<moment-interval>>Sale
number
date
calcTotal
Département de génie logiciel et des TI
L’archétype « MI »
Quelque chose que l’on doit suivre dans le temps, pour une raison d’affairesFacture, vente, location, tâches dans un
projet Astuce: S’il y a une date ou une heure
comme attribut, c’est souvent un MI
GTI515 Automne 2012 JF Couturier 15
Département de génie logiciel et des TI
L’archétype « MI » connaissent leur priorité, leur statut,
leur total ont souvent des détails
MI-Detail calculent leur total (en délégant à leurs
parties), se terminent, se suppriment, se comparent et s’évaluent vs. leurs prédécesseurs et successeurs
GTI515 Automne 2012 JF Couturier 16
Département de génie logiciel et des TI
L’archétype « MI-DETAIL »
Souvent, un MI va contenir des éléments de détails
On utilise alors une extension de l’archétype MI, MI-DETAILLes items d’une ventePartagent généralement le même
moment ou le même intervalle
GTI515 Automne 2012 JF Couturier 18
Département de génie logiciel et des TI
L’archétype « MI-DETAIL »
GTI515 Automne 2012 JF Couturier 19
Département de génie logiciel et des TI
Prior and Next Moment-Intervals
GTI515 Automne 2012 JF Couturier 20
http://knol.google.com/k/stephen-palmer/the-moment-interval-class-archetype
Département de génie logiciel et des TI
L’archétype « rôle » Le rôle est le chapeau que va porter une
personne, une chose ou un lieu pour réaliser une action.
Une personne peut porter les chapeaux de développeur, analyste ou architectes.
Le rôle aura donc des attributs et des méthodes qui ne varient pas selon le porteur du chapeau.
GTI515 Automne 2012 JF Couturier 21
Département de génie logiciel et des TI
L’archétype « rôle »
Une banque (qui est un endroit) peut jouer plusieurs rôlesFonction de prêteurFonction d’assureurFonction de marketing
Un aéroport peut joueur le rôle d’aéroport de freight, de passager ou un aéroport militaire
GTI515 Automne 2012 JF Couturier 22
Département de génie logiciel et des TI
L’archétype « rôle »
GTI515 Automne 2012 JF Couturier 23
<<party>>Person
legalName
dateOfBirth
authorizedFor
<<role>>Cashier
authorizedFor
<<role>>Owner
authorizedFor
<<moment-interval>>Sale
number
date
calcTotal
Département de génie logiciel et des TI
L’archétype « description »
GTI515 Automne 2012 JF Couturier 24
Entrées de cataloguesValeurs qui s’appliquent de façon
répétitive EX. : numéro de série, couleurs du modèle
Penser à la classe de description
Département de génie logiciel et des TI
L’archétype « parties, lieux, choses »
GTI515 Automne 2012 JF Couturier 25
Quelqu’un ou quelque chose qui joue un rôle.EX. Une personne ou une chose peut
jouer plus qu’un rôle selon le contexte.
Département de génie logiciel et des TI
Éléments génériques des archétypes les objets (« Party, Place or Thing »)
connaissent leur numéro de série, leurs valeurs spécifiques
s’évaluent selon leurs rôles ont souvent une description
les descriptions connaissent leur type, leur numéro de modèle, leurs
valeurs par défaut recherchent des objets individuels, s’évaluent selon eux
les rôles s’évaluent selon leurs événements-activités
GTI515 Automne 2012 JF Couturier 26
Département de génie logiciel et des TI
Identifier les archétypes Est-ce que c’est un moment dans le temps, un intervalle dans
le temps, quelque chose dont le système doit suivre pour des raisons légales ou d’affaires? Oui?
Moment-Interval Sinon, est-ce que c’est un rôle? Oui?
Role Sinon, est-ce que c’est une entrée de catalogue? Oui?
Description Sinon c’est une partie, une place ou une chose
Thing, Party, Place
GTI515 Automne 2012 JF Couturier 27
Département de génie logiciel et des TI
Exemple – Abonnement (1)
GTI515 Automne 2012 JF Couturier 28
http://edn.embarcadero.com/article/29697
Département de génie logiciel et des TI
Exemple – Abonnement (2)
GTI515 Automne 2012 JF Couturier 29
http://edn.embarcadero.com/article/29697
Département de génie logiciel et des TI
Demande de prêt
GTI515 Automne 2012 JF Couturier 30
http://www.uidesign.net/1999/papers/UML_UI.html
Département de génie logiciel et des TI
Plan du cours 6 Correction du quiz 2 Correction du quiz 1 (retour) Évaluation du cours Archétype Modélisation en couleur
GTI515 Automne 2012 JF Couturier 31
Département de génie logiciel et des TI
Sans couleur…
GTI515 Automne 2012 JF Couturier 32
aggregation link
0..*
1
association link
link role
0..*1
0..1
0..*
1
0..*1
0..*
0..1
0..1
0..*
0..1
0..*actual
plan
0..*
0..1
smaller
larger
0..*
0..1
1
0..*
aggregation link
1 0..*
link role
association link
0..1
1
0..*
1 0..*
0..1
0..*
0..*
0..1
0..*
0..1
0..1
0..*
plan
actual
0..1
0..*
larger
smaller
Class3
attribute
method
Class2
attribute
method
Usualcardinalitiesfor associationand aggregationlinks:0..1 10..* 1..*
Class4
attribute
method
Inheritance link (points from specialization to generalization)
interface
Interface1
methodImplementslink (points fromimplementer tointerface)
Class5
attribute
method
classMethod
A Class5 object mighthold an Interface1implementer.
The 0..* cardinalityindicates that a class2object holds a collectionof some number ofclass3 objects.
The 1 cardinalityindicates that aclass3 object holdsexactly one class2object.
An interface specifiesmethod signatures; it'sup to an implementer toimplement that method.
Class1
attribute
method
A class with an italicizedname is an abstract class(a class without objects).
An underlined method is astatic method (class method), a method performed by the class rather than by the objects in the class. (Such methods often delegate work to a corresponding data management object.)
<<text label, called a stereotype>>Class6
attribute
method
Class7
attribute
Class8
attribute
method
Association linkfrom one objectto others in thesame class (withexample "link role"labels)
Aggregation linkfrom one objectto others in thesame class (withexample "link role"labels)
Component This is a UML package.Convention: use it as acomponent symbol.
...Component.Class9
attribute
method
...Component.Class10
attributemethod
Convention: A clipped class-symbol indicates the class isfrom another component. It listsattributes and methods whensome of them might be helpfulin understanding the componentyou are looking at.
Département de génie logiciel et des TI
Identifier les archétypes Est-ce que c’est un moment dans le temps, un intervalle dans
le temps, quelque chose dont le système doit suivre pour des raisons légales ou d’affaires? Oui?
Moment-Interval Rose Sinon, est-ce que c’est un rôle? Oui?
Role Jaune Sinon, est-ce que c’est une entrée de catalogue? Oui?
Description Bleu Sinon c’est une partie, une place ou une chose
Thing, Party, Place Vert
GTI515 Automne 2012 JF Couturier 33
Département de génie logiciel et des TI
Les 4 archétypes en couleur
1
actual
plan
0..*
0..1
0..*1
10..*
0..*
1
1..*1
1
0..110..*
this 0..*1
1
0..*
1..*1
actual
plan
0..*
0..1
1
0..1
1
0..1
0..*
plan
actual
1 0..*
0..* 1
1
0..*
1 1..*
1
0..10..* 1
1 0..*this
0..*
1
1 1..*
0..1
0..*
plan
actual
1
0..1
<<description>>Description
<<role>>Role
<<thing>>PartyPlaceThing
<<description>>Description
assessAcrossPPTs
findAvailable
calcQtyAvailable
calcTotalFor
listPPTs
listDescs
assessAcrossDescs
<<moment-interval>>MomentInterval
number
dateOrDateTimeOrInterval
priority
total
status
<<role>>Role
assignedNumber
status
<<thing>>PartyPlaceThing
serialNumber
name
address
customValue
<<description>>Description
type
description
itemNumber
defaultValue
<<role>>Role
assessAcrossMIs
listMIs
listRoles
assessAcrossRoles
<<thing>>PartyPlaceThing
assess
assessAcrossRoles
getCustomElseDefaultValue
listRoles
listPPTs
assessAcrossPPTs
<<moment-interval>>MomentInterval
makeMomentInterval
addDetail
calcTotal
recalcTotal
complete
cancel
mi_generateNext
mi_assessWRTPrior
mi_assessWRTSubsequent
mi_comparePlanVsActual
listMIs
assessAcrossMIs
<<thing>>PartyPlaceThing
interface
<<plug-in point>>IMakeMomentInterval
makeMomentInterval
<<role>>Role
interface
<<plug-in point>>IAssess
assess
<<moment-interval>>MomentInterval
makeMomentInterval
<<description>>Description
assessWithPlugInElseDefault
<<thing>>PartyPlaceThing
serialNumber
name
address
customValue
assess
assessAcrossRoles
getCustomElseDefaultValue
listRoles
listPPTs
assessAcrossPPTs
<<role>>Role
assignedNumber
status
assessAcrossMIs
listMIs
listRoles
assessAcrossRoles
<<moment-interval>>MomentInterval
number
dateOrDateTimeOrInterval
priority
total
status
makeMomentInterval
addDetail
calcTotal
recalcTotal
complete
cancel
mi_generateNext
mi_assessWRTPrior
mi_assessWRTNext
mi_comparePlanVsActual
listMIs
assessAcrossMIs
<<description>>Description
type
description
itemNumber
defaultValue
assessWithPlugInElseDefault
assessAcrossPPTs
findAvailable
calcQtyAvailable
calcTotalFor
listPPTs
listDescs
assessAcrossDescs
interface
<<plug-in point>>IAssess
assess
interface
<<plug-in point>>IMakeMomentInterval
makeMomentInterval
<<mi-detail>>MIDetail
qty
calcTotal
<<mi-detail>>MIDetail
calcTotal
<<mi-detail>>MIDetail
qty
<<mi-detail>>MIDetail
<<moment-interval>>MomentInterval
<<mi-detail>>MIDetail
Not shown:- Link attributes- "Class as collection" attributes
Not shown:- Getters/setters- Adders/removers
A party (person ororganization),place, or thing
A catalog-entry-likedescription
A moment in time oran interval of time thatyou need to track ordo something about
A way ofparticipatingin something
What color is that class?- Is it a moment or interval? It's pink.- Is it a role played? It's yellow.- Is it a catalog-entry-like description? It's blue.- Otherwise, it's a party, place, or thing. It's green.
The "mi" method-name prefixindicates a method that interactswith pink moment-intervals.
For example,IMakeSale
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class; adjust methodnames accordingly.
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class; adjust methodnames accordingly.
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class.
Often, pinkmoment-intervalshave parts,called mi-details.
Often, pinkmoment-intervalshave parts,called mi-details.
GTI515 Automne 2012 JF Couturier 34
Département de génie logiciel et des TI
Archétypes - Attributs et liens
GTI515 Automne 2012 JF Couturier 35
1
actual
plan
0..*
0..1
0..*1
10..*
0..*
1
1..*1
1
0..110..*
this 0..*1
1
0..*
1..*1
actual
plan
0..*
0..1
1
0..1
1
0..1
0..*
plan
actual
1 0..*
0..* 1
1
0..*
1 1..*
1
0..10..* 1
1 0..*this
0..*
1
1 1..*
0..1
0..*
plan
actual
1
0..1
<<description>>Description
<<role>>Role
<<thing>>PartyPlaceThing
<<description>>Description
assessAcrossPPTs
findAvailable
calcQtyAvailable
calcTotalFor
listPPTs
listDescs
assessAcrossDescs
<<moment-interval>>MomentInterval
number
dateOrDateTimeOrInterval
priority
total
status
<<role>>Role
assignedNumber
status
<<thing>>PartyPlaceThing
serialNumber
name
address
customValue
<<description>>Description
type
description
itemNumber
defaultValue
<<role>>Role
assessAcrossMIs
listMIs
listRoles
assessAcrossRoles
<<thing>>PartyPlaceThing
assess
assessAcrossRoles
getCustomElseDefaultValue
listRoles
listPPTs
assessAcrossPPTs
<<moment-interval>>MomentInterval
makeMomentInterval
addDetail
calcTotal
recalcTotal
complete
cancel
mi_generateNext
mi_assessWRTPrior
mi_assessWRTSubsequent
mi_comparePlanVsActual
listMIs
assessAcrossMIs
<<thing>>PartyPlaceThing
interface
<<plug-in point>>IMakeMomentInterval
makeMomentInterval
<<role>>Role
interface
<<plug-in point>>IAssess
assess
<<moment-interval>>MomentInterval
makeMomentInterval
<<description>>Description
assessWithPlugInElseDefault
<<thing>>PartyPlaceThing
serialNumber
name
address
customValue
assess
assessAcrossRoles
getCustomElseDefaultValue
listRoles
listPPTs
assessAcrossPPTs
<<role>>Role
assignedNumber
status
assessAcrossMIs
listMIs
listRoles
assessAcrossRoles
<<moment-interval>>MomentInterval
number
dateOrDateTimeOrInterval
priority
total
status
makeMomentInterval
addDetail
calcTotal
recalcTotal
complete
cancel
mi_generateNext
mi_assessWRTPrior
mi_assessWRTNext
mi_comparePlanVsActual
listMIs
assessAcrossMIs
<<description>>Description
type
description
itemNumber
defaultValue
assessWithPlugInElseDefault
assessAcrossPPTs
findAvailable
calcQtyAvailable
calcTotalFor
listPPTs
listDescs
assessAcrossDescs
interface
<<plug-in point>>IAssess
assess
interface
<<plug-in point>>IMakeMomentInterval
makeMomentInterval
<<mi-detail>>MIDetail
qty
calcTotal
<<mi-detail>>MIDetail
calcTotal
<<mi-detail>>MIDetail
qty
<<mi-detail>>MIDetail
<<moment-interval>>MomentInterval
<<mi-detail>>MIDetail
Not shown:- Link attributes- "Class as collection" attributes
Not shown:- Getters/setters- Adders/removers
A party (person ororganization),place, or thing
A catalog-entry-likedescription
A moment in time oran interval of time thatyou need to track ordo something about
A way ofparticipatingin something
What color is that class?- Is it a moment or interval? It's pink.- Is it a role played? It's yellow.- Is it a catalog-entry-like description? It's blue.- Otherwise, it's a party, place, or thing. It's green.
The "mi" method-name prefixindicates a method that interactswith pink moment-intervals.
For example,IMakeSale
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class; adjust methodnames accordingly.
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class; adjust methodnames accordingly.
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class.
Often, pinkmoment-intervalshave parts,called mi-details.
Often, pinkmoment-intervalshave parts,called mi-details.
Département de génie logiciel et des TI
Archétypes - Méthodes
1
actual
plan
0..*
0..1
0..*1
10..*
0..*
1
1..*1
1
0..110..*
this 0..*1
1
0..*
1..*1
actual
plan
0..*
0..1
1
0..1
1
0..1
0..*
plan
actual
1 0..*
0..* 1
1
0..*
1 1..*
1
0..10..* 1
1 0..*this
0..*
1
1 1..*
0..1
0..*
plan
actual
1
0..1
<<description>>Description
<<role>>Role
<<thing>>PartyPlaceThing
<<description>>Description
assessAcrossPPTs
findAvailable
calcQtyAvailable
calcTotalFor
listPPTs
listDescs
assessAcrossDescs
<<moment-interval>>MomentInterval
number
dateOrDateTimeOrInterval
priority
total
status
<<role>>Role
assignedNumber
status
<<thing>>PartyPlaceThing
serialNumber
name
address
customValue
<<description>>Description
type
description
itemNumber
defaultValue
<<role>>Role
assessAcrossMIs
listMIs
listRoles
assessAcrossRoles
<<thing>>PartyPlaceThing
assess
assessAcrossRoles
getCustomElseDefaultValue
listRoles
listPPTs
assessAcrossPPTs
<<moment-interval>>MomentInterval
makeMomentInterval
addDetail
calcTotal
recalcTotal
complete
cancel
mi_generateNext
mi_assessWRTPrior
mi_assessWRTSubsequent
mi_comparePlanVsActual
listMIs
assessAcrossMIs
<<thing>>PartyPlaceThing
interface
<<plug-in point>>IMakeMomentInterval
makeMomentInterval
<<role>>Role
interface
<<plug-in point>>IAssess
assess
<<moment-interval>>MomentInterval
makeMomentInterval
<<description>>Description
assessWithPlugInElseDefault
<<thing>>PartyPlaceThing
serialNumber
name
address
customValue
assess
assessAcrossRoles
getCustomElseDefaultValue
listRoles
listPPTs
assessAcrossPPTs
<<role>>Role
assignedNumber
status
assessAcrossMIs
listMIs
listRoles
assessAcrossRoles
<<moment-interval>>MomentInterval
number
dateOrDateTimeOrInterval
priority
total
status
makeMomentInterval
addDetail
calcTotal
recalcTotal
complete
cancel
mi_generateNext
mi_assessWRTPrior
mi_assessWRTNext
mi_comparePlanVsActual
listMIs
assessAcrossMIs
<<description>>Description
type
description
itemNumber
defaultValue
assessWithPlugInElseDefault
assessAcrossPPTs
findAvailable
calcQtyAvailable
calcTotalFor
listPPTs
listDescs
assessAcrossDescs
interface
<<plug-in point>>IAssess
assess
interface
<<plug-in point>>IMakeMomentInterval
makeMomentInterval
<<mi-detail>>MIDetail
qty
calcTotal
<<mi-detail>>
MIDetail
calcTotal
<<mi-detail>>MIDetail
qty
<<mi-detail>>MIDetail
<<moment-interval>>MomentInterval
<<mi-detail>>MIDetail
Not shown:- Link attributes- "Class as collection" attributes
Not shown:- Getters/setters- Adders/removers
A party (person ororganization),place, or thing
A catalog-entry-likedescription
A moment in time oran interval of time thatyou need to track ordo something about
A way ofparticipatingin something
What color is that class?- Is it a moment or interval? It's pink.- Is it a role played? It's yellow.- Is it a catalog-entry-like description? It's blue.- Otherwise, it's a party, place, or thing. It's green.
The "mi" method-name prefixindicates a method that interactswith pink moment-intervals.
For example,IMakeSale
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class; adjust methodnames accordingly.
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class; adjust methodnames accordingly.
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class.
Often, pinkmoment-intervalshave parts,called mi-details.
Often, pinkmoment-intervalshave parts,called mi-details.
GTI515 Automne 2012 JF Couturier 36
Département de génie logiciel et des TI
Archétypes - Sommaire
1
actual
plan
0..*
0..1
0..*1
10..*
0..*
1
1..*1
1
0..110..*
this 0..*1
1
0..*
1..*1
actual
plan
0..*
0..1
1
0..1
1
0..1
0..*
plan
actual
1 0..*
0..* 1
1
0..*
1 1..*
1
0..10..* 1
1 0..*this
0..*
1
1 1..*
0..1
0..*
plan
actual
1
0..1
<<description>>Description
<<role>>Role
<<thing>>PartyPlaceThing
<<description>>Description
assessAcrossPPTs
findAvailable
calcQtyAvailable
calcTotalFor
listPPTs
listDescs
assessAcrossDescs
<<moment-interval>>MomentInterval
number
dateOrDateTimeOrInterval
priority
total
status
<<role>>Role
assignedNumber
status
<<thing>>PartyPlaceThing
serialNumber
name
address
customValue
<<description>>Description
type
description
itemNumber
defaultValue
<<role>>Role
assessAcrossMIs
listMIs
listRoles
assessAcrossRoles
<<thing>>PartyPlaceThing
assess
assessAcrossRoles
getCustomElseDefaultValue
listRoles
listPPTs
assessAcrossPPTs
<<moment-interval>>MomentInterval
makeMomentInterval
addDetail
calcTotal
recalcTotal
complete
cancel
mi_generateNext
mi_assessWRTPrior
mi_assessWRTSubsequent
mi_comparePlanVsActual
listMIs
assessAcrossMIs
<<thing>>PartyPlaceThing
interface
<<plug-in point>>IMakeMomentInterval
makeMomentInterval
<<role>>Role
interface
<<plug-in point>>IAssess
assess
<<moment-interval>>MomentInterval
makeMomentInterval
<<description>>Description
assessWithPlugInElseDefault
<<thing>>PartyPlaceThing
serialNumber
name
address
customValue
assess
assessAcrossRoles
getCustomElseDefaultValue
listRoles
listPPTs
assessAcrossPPTs
<<role>>Role
assignedNumber
status
assessAcrossMIs
listMIs
listRoles
assessAcrossRoles
<<moment-interval>>MomentInterval
number
dateOrDateTimeOrInterval
priority
total
status
makeMomentInterval
addDetail
calcTotal
recalcTotal
complete
cancel
mi_generateNext
mi_assessWRTPrior
mi_assessWRTNext
mi_comparePlanVsActual
listMIs
assessAcrossMIs
<<description>>Description
type
description
itemNumber
defaultValue
assessWithPlugInElseDefault
assessAcrossPPTs
findAvailable
calcQtyAvailable
calcTotalFor
listPPTs
listDescs
assessAcrossDescs
interface
<<plug-in point>>IAssess
assess
interface
<<plug-in point>>IMakeMomentInterval
makeMomentInterval
<<mi-detail>>MIDetail
qty
calcTotal
<<mi-detail>>MIDetail
calcTotal
<<mi-detail>>MIDetail
qty
<<mi-detail>>MIDetail
<<moment-interval>>MomentInterval
<<mi-detail>>MIDetail
Not shown:- Link attributes- "Class as collection" attributes
Not shown:- Getters/setters- Adders/removers
A party (person ororganization),place, or thing
A catalog-entry-likedescription
A moment in time oran interval of time thatyou need to track ordo something about
A way ofparticipatingin something
What color is that class?- Is it a moment or interval? It's pink.- Is it a role played? It's yellow.- Is it a catalog-entry-like description? It's blue.- Otherwise, it's a party, place, or thing. It's green.
The "mi" method-name prefixindicates a method that interactswith pink moment-intervals.
For example,IMakeSale
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class; adjust methodnames accordingly.
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class; adjust methodnames accordingly.
Drop a class alongthe links when youdon't need the level ofspecificity provided bythat class.
Often, pinkmoment-intervalshave parts,called mi-details.
Often, pinkmoment-intervalshave parts,called mi-details.
GTI515 Automne 2012 JF Couturier 37
Département de génie logiciel et des TI
Avec nos stéréotypes
GTI515 Automne 2012 JF Couturier 38
Département de génie logiciel et des TI
Archétypes - Itération 1
GTI515 Automne 2012 JF Couturier 39
Département de génie logiciel et des TI
Archétypes - Itération 2
GTI515 Automne 2012 JF Couturier 40
Département de génie logiciel et des TI
Diagramme de classes: Cas Demande Formation (Réf. Figure 7-20)
GTI515 Automne 2012 JF Couturier 41
Département de génie logiciel et des TI
Résumé Nous développons des composantes
d’entreprises et un processus pour construire, appliquer et adapter ces composantes.
L’ajout d’une couche d’information supplémentaire, via les couleurs (rôles, description, moments-intervalles, choses), fournit une information supplémentaire.
GTI515 Automne 2012 JF Couturier 42
Département de génie logiciel et des TI
Allons plus loin
Les archétypes permettent d’aller plus loin
Il y a des patrons que nous pouvons utiliser pour identifier des attributs et des méthodes pour chaque catégorie d’archétype
GTI515 Automne 2012 JF Couturier 43
Département de génie logiciel et des TI
Moment-Interval Attributs
Date, heure, intervalle Statut Priorité Total
Méthodes Complete, Confirm Cancel generateNextMI
GTI515 Automne 2012 JF Couturier 44
http://knol.google.com/k/stephen-palmer/moment-interval-class-archetype-typical
Département de génie logiciel et des TI
Rôle Attributs
AssignedNumber, code d’autorisation, numéro de licence…
Statut
Méthodes isAvailable listMIs
GTI515 Automne 2012 JF Couturier 45
http://knol.google.com/k/stephen-palmer/role-class-archetype-typical#
Département de génie logiciel et des TI
Thing-Place-Party Attributs
IdentityNumber Name Adresse
Méthodes assessAcrossRoles listRoles
GTI515 Automne 2012 JF Couturier 46http://knol.google.com/k/stephen-palmer/party-place-thing-class-archetype/3e0t9wv30hso7/13
Département de génie logiciel et des TI
Description Attributs
Type Description itemNumber
Méthodes listPPTs findAvailable calculateQuantityAvailable CalculateTotalFor
GTI515 Automne 2012 JF Couturier 47
Département de génie logiciel et des TI
Exemple de description
GTI515 Automne 2012 JF Couturier 48http://knol.google.com/k/stephen-palmer/the-description-class-archetype#
Département de génie logiciel et des TI
Exemple de description
GTI515 Automne 2012 JF Couturier 49http://knol.google.com/k/stephen-palmer/the-description-class-archetype#
Département de génie logiciel et des TI
1
actu al
p lan
0 ..*
0 ..1
0 ..*1
10 . .*
0 ..*
1
1 ..*1
1
0 ..110 ..*
1 ..*1
actu al
p lan
0 ..*
0 ..1
1
0 ..1
0 ..*1
1
0 ..*
1
0 ..1
0 ..*
p lan
actu al
1 0 ..*
0 . .* 1
1
0 ..*
1 1 ..*
1
0 ..10 ..* 1
1 1 ..*
0 ..1
0 ..*
p lan
actu al
1
0 ..1
1 0 ..*
0 ..*
1
<<d escrip tio n >>
Descriptio n
<<ro le>>
Ro le
<<th in g >>
Pa rty Pla ceTh ing
<<d escrip tio n >>
Descriptio n
assessAcro ssPP Ts
fin d Av ailab le
calcQty Av ailab le
calcTo talF o r
listP P Ts
listDescs
assessAcro ssDescs
<<mo men t-in terv al>>MomentInterv a l
n u mb er
d ateOrDateTimeOrIn terv al
p rio rity
to tal
statu s
<<ro le>>
Ro le
assig n ed Nu mb er
statu s
<< th in g >>Pa rty Pla ceThing
serialNu mb er
n ame
ad d ress
cu sto mValu e
<<d escrip tio n >>Descrip tio n
ty p e
d escrip tio n
itemNu mb er
d efau ltValu e
<<ro le>>
Ro le
assessAcro ssMIs
listM Is
listRo les
assessAcro ssRo les
<< th in g >>
Pa rty Pla ceTh ing
assess
assessAcro ssRo les
g etCu sto mElseDefau ltValu e
listRo les
listPP Ts
assessAcro ssP P Ts
<<mo men t-in terv al>>
MomentInterv a l
mak eMo men tIn terv al
ad d Detail
calcTo tal
recalcTo tal
co mp lete
can cel
mi_ g en erateNex t
mi_ assessWRTPrio r
mi_ assessWRTSu b seq u en t
mi_ co mp arePlan VsActu al
listM Is
assessAcro ssMIs
No t sh o wn :- Lin k attrib u tes- "Class as co llectio n " attrib u tes
No t sh o wn :- Getters/setters- Ad d ers/remo v ers
<< th in g >>
Pa rty Pla ceThing
in terface
<<p lu g -in p o in t>>
IMa k eMomen tInterva l
ma keMomen tIn terva l
<<ro le>>Ro le
in terface
<<p lu g -in p o in t>>
IAssess
a ssess
<<mo men t-in terv al>>MomentInterv a l
mak eMo men tIn terv al
<<d escrip tio n >>
Descrip tio n
assessWith P lu g In ElseDefau lt
A p arty (p erso n o ro rg an izatio n ),p lace, o r th in g
A catalo g -en try -lik ed escrip tio n
A mo men t in time o ran in terv al o f time th aty o u n eed to track o rd o so meth in g ab o u t
A way o fp articip atin gin so meth in g
Wh at co lo r is th at class?- Is i t a mo men t o r in terv al? It ' s p in k .- Is i t a ro le p lay ed ? It' s y ello w.- Is i t a catalo g -en try -lik e d escrip tio n ? It' s b lu e.- Oth erwise, it' s a p arty, p lace, o r th in g . It' s g reen .
Th e "mi" meth o d -n ame p refixin d icates a meth o d th at in teractswith p in k mo men t-in terv als.
Fo r ex amp le,IM ak eSale
<<th in g >>
Pa rty Pla ceThing
serialNu mb er
n ame
ad d ress
cu sto mValu e
assess
assessAcro ssRo les
g etCu sto mElseDefau ltValu e
listRo les
listP PTs
assessAcro ssP P Ts
<<mo men t-in terv al>>
MomentInterv a l
n u mb er
d ateOrDateTimeOrIn terv al
p rio rity
to tal
statu s
mak eMo men tIn terv al
ad d Detail
calcTo tal
recalcTo tal
co mp lete
can cel
mi_ g en erateNex t
mi_ assessWRTPrio r
mi_ assessWRTNex t
mi_ co mp areP lan VsActu al
listMIs
assessAcro ssM Is
<<d escrip tio n >>
Descrip tio n
ty p e
d escrip tio n
itemNu mb er
d efau ltValu e
assessWith P lu g In ElseDefau lt
assessAcro ssP PTs
fin d Av ailab le
calcQty Av ailab le
calcTo talF o r
listP PTs
listDescs
assessAcro ssDescs
in terface
<<p lu g -in p o in t>>
IAssess
a ssess
in terface
<<p lu g -in p o in t>>
IMa k eMomentIn terva l
ma keMomen tIn terva l
<<mi-d etail>>
MIDeta il
q ty
calcTo tal
Dro p a class alo n gth e lin k s wh en y o ud o n ' t n eed th e lev el o fsp ecificity p ro v id ed b yth at class; ad ju st meth o dn ames acco rd in g ly.
Dro p a class alo n gth e lin k s wh en y o ud o n ' t n eed th e lev el o fsp ecificity p ro v id ed b yth at class; ad ju st meth o dn ames acco rd in g ly.
Dro p a class alo n gth e lin k s wh en y o ud o n ' t n eed th e lev el o fsp ecificity p ro v id ed b yth at class.
<<mi-d etail>>
MIDeta il
calcTo tal
<<mi-d etail>>
MIDeta il
q ty
<<mi-d etail>>MIDeta il
<<mo men t-in terv al>>
MomentInterv a l
Often , p in kmo men t-in terv alsh av e p arts,called mi-d etails.
<<mi-d etail>>
MIDeta il
Often , p in kmo men t-in terv alsh av e p arts,called mi-d etails.
<< ro le>>Ro le
assig n ed Nu mb er
statu s
assessAcro ssM Is
listMIs
listRo les
assessAcro ssRo les
GTI515 Automne 2012 JF Couturier 50
Département de génie logiciel et des TI
Patron pour Activité Métier
GTI515 Automne 2012 JF Couturier 51
Département de génie logiciel et des TI
Patron pour Entité Métier
GTI515 Automne 2012 JF Couturier 52
Département de génie logiciel et des TI
Étude de cas
Le système de gestion d’un hôtel
GTI515 Automne 2012 JF Couturier 53
Département de génie logiciel et des TI
Hotel Management System Processus d’affaires
RéservationLocationFacturePaiementService aux chambresEntretien aux chambres
Un cas d’utilisation par PMÉ
GTI515 Automne 2012 JF Couturier 54
Département de génie logiciel et des TI
Les éléments d’une réservation
Processus d’affairesRéserver une chambre
Entités d’affairesClientChambreEmployé (optionel)
Identifier les archétypes
GTI515 Automne 2012 JF Couturier 55
Département de génie logiciel et des TI
Les éléments d’une réservation Processus d’affaires
Réserver une chambre MIMI
Detail Entités d’affaires
Client RoleChambre Thing
DescriptionEmployé Role
GTI515 Automne 2012 JF Couturier 56
Département de génie logiciel et des TI
1
0..*
0..*
1..*
1
1..*
1
0..*
1
0..*
0..*
1
<<moment-interval>>
Reservation
<<mi-detail>>
ReservationDetail
<<role>>
Employee
<<thing>>
Room
<<role>>
Customer
<<description>>
RoomDescription
Reservation (1)
GTI515 Automne 2012 JF Couturier 57
Département de génie logiciel et des TI
Étude de cas – Voyage scolaire
GTI515 Automne 2012 JF Couturier 58
Département de génie logiciel et des TI
Étude de cas – Voyage scolaire
GTI515 Automne 2012 JF Couturier 59
Diagramme des CU
Département de génie logiciel et des TI
Étude de cas – Voyage scolaire
GTI515 Automne 2012 JF Couturier 60
Cas d’utilisation
Département de génie logiciel et des TI
Étude de cas – Voyage scolaire
GTI515 Automne 2012 JF Couturier 61
Modèle du domaine
Département de génie logiciel et des TI
Étude de cas du garage
GTI515 Automne 2012 JF Couturier 62
Département de génie logiciel et des TI
Qu’est-ce que cela apporte
Les archétypes apportent un niveau de détail supplémentaire au niveau du modèle du domaine ou du diagramme de classeUne perspective dynamique à un
diagramme statique
GTI515 Automne 2012 JF Couturier 63
Département de génie logiciel et des TI
Qu’est-ce que cela apporte Les transactions d’affaires ou les interactions
à l’aide des MI Les parties, choses ou places qui participent
à ces transactions/interactions (Qui, Quoi, Où)
Le rôle du partie, de la chose ou de la place La description du partie, de la chose ou de la
place Identification des attributs et des méthodes
GTI515 Automne 2012 JF Couturier 64
Département de génie logiciel et des TI
Conclusion L’utilisation des patrons et archétypes peut
faciliter sensiblement la construction des modèles d’analyse de systèmes indépendants de la technologie (les PIMs)
permettre d’automatiser la transformation du modèle des processus (le CIM) en le modèle d’analyse du système (le PIM)
GTI515 Automne 2012 JF Couturier 65
Département de génie logiciel et des TI
Ressources
Java Modeling in color Object modeling in color Wiki : UML Colors
GTI515 Automne 2012 JF Couturier 66
Département de génie logiciel et des TI
Prochain cours
BPMN Workflow patterns Modélisation des flux de données
DFD Lecture
chapitres 5, 6 et 7 d’UML2 par la pratique.
GTI515 Automne 2012 JF Couturier 67