Copyright D. Revuz
1998 Top level Autres
Cours
Glossaire
Acteurs Cas
d'Utilisation Controles Domaine
Flots d'évènements
Entité Extend
Interfaces Objets
du domaine Langage du Domaine
scénario stéréotypes
Uses
Acteurs
Un acteur est une personne ou un système extérieur
au système en cours de modélisation qui
interagit avec notre système. Pour plus de détails
voire la page Acteurs.
Cas d'Utilisation
Les cas d'utilisations décrivent les fonctionnalités fournies
par le système à un acteur
. Pour plus de détails voire la page Cas
D'utilisation.
Controles
Nous avons partitionné nos services en Interface et Entité.
Il est parfois possible pour certains services que l'ensemble du service
soit défini par des objets de ces types. Dans ce cas, aucun Contrôle
n'est nécessaire dans ce service. Mais dans les cas complexes, il
reste des comportements qui n'ont pu être placés dans aucun
des deux types d'objets. Ces comportements sont placés dans les
Contrôles. Il est possible de distribuer ces comportements
dans les deux autres types d'objet mais cela n'est pas idéal pour
l'adaptation au changement et le principe de localité. Un changement
de comportement défini sur plusieurs objets demande un gros travail
de correction. Nous étudirons ce problème plus en détail
dans la construction du modèle de conception.
Le rôle des Contrôles est de servir de ciment
pour relier les autres objets de façon à réaliser
le service en entier. Ils sont en général très éphémères,
et leur durée est souvent celle du service.
Nous allons donner ici quelques heuristiques pour le découpage
souvent délicat des services sur nos trois types d'objets.
Comme les autres objets, c'est la description du service qui va nous
permettre de trouver la première génration de Contrôles.
Nous avons déjà extrait de nos services les Interface
et les Entité , les comportements restant doivent être
alloués à des Contrôles.
De cette règle initiale quelques déviations peuvent être
réalisées.
Premièrement : il ne reste plus de comportement à modéliser.
Ensuite : si le comportement qui reste est extrèmement complexe,
plus d'un Contrôle sera nécessaire. Ces Contrôles
auront des tâches limitées et seront donc plus simples à
décrire et comprendre. Si par exemple un Contrôle
est connecté à plusieurs acteurs, il est possible que ce
soit une preuve que le comportement est différent pour les différents
acteurs, il est donc nécessaire de multiplier les Contrôles.
Le but est d'attacher un seul Contrôle à chaque acteur.
La raison est que les changements sont souvent liés à un
seul acteur, d'où une meilleure localisation du travail (meilleure
détection des zones) en cas de changement.
Les compoprtements les plus typiques liés à un Contrôle
sont les comportements transactionels, des contrôles de séquences
liés à un ou plusieurs services, ou des fonctionalités
qui séparent les interfaces des entités. Les Contrôles
relient des suites d'évènements et réalisent ainsi
les communications entre les différents objets.
La description des Contrôles est trouvée de façon
indirecte à partir des services en vérifiant comment les
services consomment les autres types d'objets. Là où un Contrôle
est trouvé on explicite par une description le rôle et ce
qu'implique ce rôle.
Les associations d'utilisation entre services sont souvent associées
à des communications à travers les objets correspondants.
Si les services ont une relation d'extention elles se retrouvent
dans une relation d'extention entre les objets.
Domaine
L'environnement dans lequel le système doit être
construit, c'est l'environnement dans lequel le client est le spécialiste,
on parle des Objets du domaine, c'est
à dire les entités réelles ou conceptuelles que manipule
le client et le système, il est plus facile en effet de travailler
avec ces objets pour le clients et il vous seras plus facile de concevoir
le système si vous connaissez et comprenez les Objets du Domaine.
Flots d'évènements
Associé a un cas d'utilisation, le flot d'évènements
est une description dans le langage du domaine
avec les Objets du Domaine de la suite
des évènements qui permettent d'accomplir la fonctionnalité
requise du cas d'utilisation.
Entité
Les Entités sont les objets qui modèlisent les informations
que le système doit manipuler sur une longue periode de temps.
Ces informations survivent aux Cas d'Utilisation. Aux information
nous associons évidement le comportement qui va avec ces informations.
Les Entités sont identifées à partir des Cas d'Utilisation,
comme les Interfaces. La plus part des Entités sont trouvés
dès le début et sont souvent apparants dans Les Objets du
Domaine. D'autre peuvent être plus coriaces. Les Entités sont
en général associé a des concept extérieur
au système, mais ce n'est pas toujour le cas. La plus grande difficulté
est de modulisé la bonne quantité d'Entités seulment
ceuxc qui sont necéssaires. Seuls les Entités qui sont utiles
aux Cas d'Utilisation doivent apparaitrent.
Pour stoker des informations les objets utilisent un ou plusieurs attributs
. Chaque attribut à un type soit prédéfini soit plus
complexe et spécialement défini. Un attribut est défini
comme une association de l'objet avec (étiquette d'un nom et d'une
cardinalité) un type.
Une des difficultés est en général de trouver
la limite entre Entité et Attributs.
Les attributs d'un objet Entité évoluent avec l'analyse
des Cas d'Utilisation.
Extend (Stéréotype)
XXX a définir Voir Diagrammes
de Cas d'utilisation
Interfaces
Toutes les fonctionnalités des services qui dépendent directement
de ce que fait l'extérieur du système doit être placé
dans un Interface2.1. C'est à travers ses objets que les acteurs
communiquent avec le système. Le rôle des Interfaces est de
traduire les entrées de l'acteur en évènements pour
le système, et de traduire les évènements qui intéresse
cet acteur en sorties. L'interface décrit une communication bi-directionnelle
entre les utilisateurs et le
système.
Les objets Interfaces sont assez faciles à identifier.
Trois stratégies. Soit il sont clairement identifiés dans
les descriptions d'interface fournies dans le modèle d'interfaces,
soit nous pouvons partir des acteurs, soit nous pouvons lire les descriptions
de services et extraire les fonctionnalités qui sont spécifiques
à l'interface.
Commençons par utiliser les acteurs.
Chaque acteur concret nécessite sa propre interface pour communiquer
avec le système. Dans de nombreux cas l'acteur utilise plusieurs
Interfaces. Dans notre cas les deux acteurs utilise un Interface commun
et tous deux ont un ou deux Interfaces spécifiques. Trouver un Interface
associé à un acteur Abstrait n'est pas toujours possible.
Utilisons maintenant la stratégie qui consiste à lire les
descriptions de services pour trouver les Interfaces.
l est évident que les Interfaces ne sont pas indépendants
les un des autres, ils doivent se connaitre pour
résoudre certains travaux. Nous introduisons une relation de
connaissance2.2, pour modéliser cette information.
Cette relation de connaissance est une relation statique.
Elle ne signifie pas un droit d'échange d'information mais une
possibilité de relation dynamique (exemple : Figure
2.4).
Un objet peut associer plusieurs objets du même type d'où
une relations défini avec une arité (cardinalité).
Cette
cardinalité indique le nombre d'objets du type que l'on peut
associer.
Deux grands types d'Interface.
Il faut distinguer entre les Interface vers d'autres systèmes
et les Interface pour les utilisateurs humains (I.H.M.).
Protocoles :
Il faut toujours définir un objet Interface
pour les protocoles avec des parties extérieur au système
ceci de
façons à pouvoir changer de
protocole facilement (changement de couche OSI par exemple), ceci que l'objet
ait un gros traitement à réaliser
où ne fait que transférer un stimuli. Un cas d'importance
est le cas des
transformations de signaux continus venant
de l'extérieur, en informations discrètes pour le système,
ceci
doit être spécifié et
géré dans l'Interface2.3.
I.H.M. :
Les I.H.M. graphiques sont souvent des objets
extrêmement complexes et doivent être modélisés
par des
structures complètes internes à
nos Interfaces. Le problème de l'I.H.M. peut se révélé
été un des points
fondementaux de votre système jusqu'a
80% pour des applications qui utilisent l'interface intensivement. On
cherchera alors à utiliser un outil
de développement d'interface graphique sur un support graphique
bien
distribué.
Le rôle des différents types d'objet sera discuté
plus en détail plus loing, mais il est normal qu'une part de contrôle
et une part d'information apparaissent dans les interfaces. Mais ce
qui doit être placé dans les interfaces doit
être étudier cas par cas.
Comment dans un service extraire ce qui doit être placé
dans un Interface donné? Tout changement de
fonctionalité dans l'interface doit être local a un Interface.
De même les autres changements ne doivent pas
affecté les Interfaces. Les développeur expérimentés
sont ingénieux pour trouver des changement possible, c'est
un savoir-faire à développer et à utiliser dans
toutes les techniques de modélisation. Toutes les approches d'un
modèle donné doivent être éclairée
par les possibilités de changement.
Allocation de fonctionalités aux Interfaces
Pour identifer les partie du service qui sont allouée aux Interfacesnous
devons regarder attentivement les
interractions entre les acteurs et le service. Nous cherchons des unités
qui ont les caractèristiques suivantes :
Elles presente des informations à l'acteur
ou lui en demande.
Leurs fonctionnalités changent si le
comportement de l'acteur change.
Leurs parcour est dépendant du type
de l'interface.
Contrôle dominé par le Calcul
Les fonctionalités de contrôle sont placées uniquement
dans les contrôles et les entités.
Pour
Approche efficasse
Contre
Difficile à prototyper (Comme le contenu de effectif de l'interface
n'est connu que tard dans le développement).
Contrôle dominé par le Dialogue
Les fonctionalités de contrôle sont placées dans les
interface.
Pour
Prototype aisé, qui modélise une partie importante du système.
Contre
Acroissement de la complexité de l'interface, manque de contrôle
sur notre modèle.
Contrôle Mixte
Répartion des deux cotés.
Pour
la flexibilité.
Contre
requière beaucoup de discipline de la part des développeurs
pour rester indépendant du dialogue entre interface et calcul.
Contrôle Equilibré
Le contrôle est indépendant de l'interface et du calcul.
Pour
la flexibilité, le contrôle, la réutilisation, la modularité.
Contre
?
Objets du Domaine
Les Objets du domaine sont les entités
réelles ou conceptuelles que manipule le client et le système.
Il sont utilisé a la fois pour écrire le modèle des
besoins mais aussi sont un bon point de départ pour trouver les
classes de notre système.
Langage du Domaine
Le langage du domaine est le langage du
Clients ou du spécialiste avec lequel on écrit le modèle
des Besoins.
Il est en général de bon goût
de créer un Glossaire de termes utilisé par tous dans l'écriture
du modèle des besoins, ce glossaire défini le langage du
domaine.
scénario
Un scénario est un chemin particulier au travers
de la description abstraite et général fournie par le cas
d'utilisation. Les scénarios traverse le cas d'utilisation, en suivant
le chemin nominal des chemins alternatifs et exceptionnels. L'explosion
combinatoire fait qu'il est bien souvent impossible de dérouler
tous les scénarios (toutes les combinaison du chemin principal avec
les chemins alternatifs et exceptionnels).
stéréotypes
XXX
Uses (stéréotype)
XXX a définir Voir Diagrammes
de Cas d'utilisation