II. Analyse et Conception
L'analyse du système se fera en deux étapes :
La première étape est la modélisation de certains
scénarii d'utilisation décrits textuellement dans le dernier
paragraphe de l'expression des besoins (Scénarii d'utilisation : forme
textuelle) ; puis nous passerons à la mise en oeuvre d'une
ébauche du diagramme de classes du système à partir des
différents objets relevés, diagramme que l'on affinera lors de
l'activité de conception notamment en y intégrant les attributs
et les opérations des classes.
1. Scénarii d'utilisation : modélisation
La description textuelle des diverses utilisations du
système servant de domaine de consensus pour la compréhension des
besoins des clients, il est nécessaire de passer à un langage
« plus soutenu » qu'est celui des concepteurs. La modélisation
des scénarii d'utilisation nous permet de franchir ce cap. Elle montre
le comportement des uns et des autres dans le cadre de la réalisation
d'objectifs précis. Elle présente également les
éléments du système en classes décrivant les objets
manipulés.
Précisons que la nature du diagramme à utiliser
pour la modélisation d'un cas d'utilisation donné dépend
de l'aspect que l'on désire mettre en exergue : c'est ce qui explique
que, pour certains cas d'utilisation, seule une vue statique sera
présentée alors que, pour d'autres, nous avons cru
nécessaire d'insister sur les interactions ayant lieu en faisant appel
à un diagramme dynamique.
Cas d'utilisation 1 : « Gérer les
états »

JATYPET

JAETAT
1--1
0--*
Figure 5.2 : Diagramme de classes « Gérer
les états »
JATYPET
Champ
|
Type
|
Description
|
CDTYPET
|
CHAR(3)
|
Code de la catégorie
|
CODEFONCT
|
CHAR(20)
|
Code fonctionnalité
|
LIBTYPET
|
CHAR(25)
|
Libellé de la catégorie d'états
|
NIVET
|
INTEGER
|
A la présentation, n° d'ordre du type
d'état.
|
|
Tableau 5 .1 : Détails de la classe «
JATYPET »
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 69
JAETAT
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement
|
NUMORD
|
INTEGER
|
Rang de l'état
|
NUMETAT
|
INTEGER
|
N° d'état, identifiant de l'état
|
CODETAT
|
CHAR(9)
|
Identifiant de l'état, utile pour codifier les
états suivant leur fonction
|
LIBETAT
|
CHAR(50)
|
Libellé de l'état
|
CODEFONCT
|
CHAR(20)
|
Code fonctionnalité
|
CDTYPET
|
CHAR(3)
|
Code de la catégorie d'état (table JATYPET)
|
UNIQAUTO
|
CHAR(1)
|
{`O', `N'} : la valeur `O' indique que l'état ne
pourra être choisi que dans les transitions automatiques.
|
RESTRIC
|
CHAR(1)
|
Paramètre de présentation intervenant dans le
traitement de visualisation du graphe du Workflow de la
fonctionnalité.
|
|
Tableau 5.2 : Détails de la classe «
JAETAT »
Cas d'utilisation 6 : « Gérer les traitements
»

JARESFT
1--1
1--*
JATRAIT
Figure 5.3 : Diagramme de classes « Gérer
les traitements »
JARESFT
Champ
|
Type
|
Description
|
FONCTION
|
CHAR(20)
|
Code de la fonction prédéfinie
|
CODEISSUE
|
CHAR(20)
|
Code d'identification de l'issue du traitement
|
DESCISSUE
|
CHAR(100)
|
Descriptif de la fonction
|
|
Tableau 5.3 : Détails de la classe «
JARESFT »
JATRAIT
Champ
|
Type
|
Description
|
NUMORDRE
|
INTEGER
|
N° d'ordre du traitement (ordre d'affichage)
|
IDENT
|
INTEGER
|
Compteur d'enregistrement
|
NOMTABLE
|
CHAR(20)
|
Code fonctionnalité de rattachement
|
CODETRAIT
|
CHAR(20)
|
Code traitement (unique par fonctionnalité)
|
LIBTRAIT
|
CHAR(50)
|
Libellé du traitement
|
FONCTION
|
CHAR(20)
|
Code fonction Sunshine
|
|
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 70
TYPETRAIT
|
CHAR(3)
|
Type traitement : {`M','A'} Interactif ou Batch
|
DESCTRAIT
|
CHAR(100)
|
Description du traitement
|
PARAMS
|
CHAR(500)
|
liste des valeurs des paramètres de la fonction.
|
PROG
|
CHAR(30)
|
nom du programme de la fonction prédéfinie
|
MODEAPP
|
CHAR(1)
|
valeur du paramètre de même nom de JAPROG
|
OPTMENU
|
CHAR(1)
|
{O','N'}: Accessibilité à partir du menu
|
NIVAUT
|
INTEGER
|
Niveau d'autorisation du traitement. Le traitement est
accessible à tous les utilisateurs dont le niveau d'autorisation pour le
sous-domaine fonctionnel est >= à la valeur de ce champ.
|
|
Tableau 5.4 : Détails de la classe « JATRAIT
» Cas d'utilisation 6 : « Gérer les Workflow
»

JAWRKFT
1--1
1--1
1--*
1--1
JAFONCT
JAWRKPR
Figure 5.4 : Diagramme de classes « Gérer
les Workflow »
JAFONCT
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement système
|
CODEFONCT
|
CHAR(20)
|
Code de la fonctionnalité
|
NOMTABPRIN
|
CHAR(20)
|
Nom de la table principale
|
DATCRT
|
INTEGER
|
Date de création
|
DATMOD
|
INTEGER
|
Date de dernière modification
|
LIBFONC
|
CHAR(50)
|
Libellé de la fonctionnalité
|
DESCFONC
|
CHAR(200)
|
Description de la fonctionnalité
|
REDAC
|
CHAR(10)
|
Code rédacteur
|
CODEDOM
|
CHAR(2)
|
Domaine fonctionnel
|
SOUSDOM
|
CHAR(2)
|
Sous-domaine fonctionnel
|
CODEWRK
|
CHAR(10)
|
Code Workflow par défaut
|
TYPEFONCT
|
CHAR(1)
|
Interactif ou batch
|
TYPEWRK
|
CHAR(1)
|
Type de Workflow : cyclique ou non cyclique
|
|
Tableau 5.5 : Détails de la classe «
JAFONCT »
JAWRKPR
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement système
|
|
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 71
CODEFONCT
|
CHAR(20)
|
Code de la fonctionnalité
|
CODEWRK
|
CHAR(10)
|
Code du Workflow (unicité par
fonctionnalité)
|
LIBWRK
|
CHAR(50)
|
Libellé du Workflow
|
REDAC
|
CHAR(3)
|
Code rédacteur ayant créé le Workflow
|
DCREAT
|
INTEGER
|
Date de creation du Workflow
|
DMODIF
|
INTEGER
|
Date de dernière modification
|
FICPARAM
|
Long Binary
|
Fichier XML de paramétrage
|
|
Tableau 5.6 : Détails de la classe «
JAWRKPR »
JAWRKFT
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement système
|
CODEFONCT
|
CHAR(20)
|
Code de la fonctionnalité
|
CODEWRK
|
CHAR(10)
|
Code du Workflow (unicité par
fonctionnalité)
|
CRIT1
|
CHAR(60)
|
1er critère de validité du Workflow
|
VALCRIT1
|
CHAR(20)
|
Valeur du 1er critère
|
CRIT2
|
CHAR(60)
|
2ième critère de validité du Workflow
|
VALCRIT2
|
CHAR(20)
|
Valeur du 2ieme critère
|
CRIT3
|
CHAR(60)
|
3ieme critère de validité du Workflow
|
VALCRIT3
|
CHAR(20)
|
Valeur du 2ième critère
|
|
Tableau 5.7 : Détails de la classe «
JAWRKFT »
Cas d'utilisation 12 : « Paramétrer Workflow
»
0--*
1--1
1--1
0--*
1--1

1--1
0--*

JAWRKFL
1--1
0--*

JAACPFP

JACRTRN
JACTLSP
0--*

JAWRKCD

JAINFET
Figure 5.5 : Diagramme de classes «
Paramétrer Workflow »
JAWRKFL
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur Sunshine d'enregistrement
|
|
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 72
ETATDEP
|
INTEGER
|
N° d'état de départ de la transition
|
TRAITDEP
|
CHAR(20)
|
Code du Traitement appliqué
|
CODEISSUE
|
CHAR(20)
|
Code issue du traitement
|
DESCACT
|
CHAR(100)
|
Description de la transition
|
CHOIXFIN
|
CHAR(1)
|
{`A','M','C'} : type de transition
|
ETATISSUE
|
INTEGER
|
n° d'état final (transition automatique), n°
de l'état par défaut pour les transitions manuelles et
sous-conditions.
|
TRAITISSUE
|
CHAR(20)
|
code du traitement sur lequel on enchaîne
|
CODEFONCT
|
CHAR(20)
|
Code de la fonctionnalité
|
CODEWRK
|
CHAR(10)
|
Code du Workflow
|
ANNEE
|
CHAR(20)
|
formule de calcul de l'année associée à
l'état ANNEE + x : année de l'état de départ + x
|
|
Tableau 5.8 : Détails de la classe «
JAWRKFL »
JAWRKCD
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement système
|
IDTRANS
|
INTEGER
|
n° de l'enregistrement JAWRKFL (IDENT).
|
ETATDEP
|
INTEGER
|
Reprennent les champs de JAWRKFL de
même nom pour l'enregistrement dont l'IDENT vaut
IDTRANS
|
TRAITDEP
|
CHAR(20)
|
|
CHAR(20)
|
|
CHAR(100)
|
Liste des états qui seront proposés à
l'utilisateur
|
LISTANNEE
|
CHAR(200)
|
Liste des formules de calcul
|
CONDT
|
CHAR(200)
|
code du programme à vérifier (transition SC)
|
CODEFONCT
|
CHAR(20)
|
Code de la fonctionnalité
|
CODEWRK
|
CHAR(20)
|
Code du Workflow
|
|
Tableau 5.9 : Détails de la classe «
JAWRKCD »
JACRTRN
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement système
|
REDAC
|
CHAR(3)
|
Code rédacteur
|
IDTRANS
|
INTEGER
|
N° de l'enregistrement de JAWRKFL
|
ETATISSUE
|
INTEGER
|
N° état final pour lequel on aura à
générer un document
|
CONDT
|
CHAR(200)
|
Reprend la condition décrite dans JAWRKCD
|
TYPTRANS
|
CHAR(1)
|
Indique le type de transition, {`A','M','C'}
|
CRIT
|
CHAR(60)
|
nom du critère de sélection des dossiers.
|
VALCRIT
|
CHAR(20)
|
Valeur du critère de sélection des dossiers
|
CDGEN
|
CHAR(10)
|
Code script de génération de documents
|
|
Tableau 5.10 : Détails de la classe «
JACRTRN »
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 73
JAINFET
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement
|
REDAC
|
CHAR(3
|
Code rédacteur
|
GESAC
|
CHAR(3)
|
Code gestionnaire
|
ETAAC
|
CHAR(2)
|
Flag enregistrement
|
IDTRANS
|
INTEGER
|
N° de l'enregistrement de JAWRKFL
|
ETATISSUE
|
NUMBER
|
L'état final des dossiers
|
CONDT
|
CHAR(200)
|
Restriction des dossiers
|
TYPTRANS
|
CHAR(1)
|
Type de transition
|
CRIT
|
CHAR(60)
|
Critère spécifique
|
VALCRIT
|
CHAR(20)
|
Valeur critère
|
RECUPDOS
|
CHAR(200)
|
Requête de sélection de dossiers
|
PROGRECUP
|
CHAR(20)
|
Programme de récupération
|
PREDRECUP
|
CHAR(200)
|
Prédicat de récupération
|
ETATFONCT
|
CHAR(200)
|
L'état de la fonctionnalité où mettre les
dossiers
|
PROGRECAUT
|
CHAR(20)
|
Programme de récupération avec prédicat
|
PREDRECAUT
|
CHAR(200)
|
Prédicat
|
ANNEE
|
CHAR(20)
|
formule de calcul de l'année de l'état
|
CODEFONCT
|
CHAR(20)
|
Code de la fonctionnalité
|
CODEWRK
|
CHAR(20)
|
Code du Workflow
|
|
Tableau 5.11 : Détails de la classe «
JAINFET »
JACTLSP
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement système
|
REDAC
|
CHAR(3)
|
Code Rédacteur
|
CDTYPET
|
CHAR(3)
|
Niveau bloquant de la règle
|
CODAC
|
CHAR(6)
|
Code règle d'acceptation du catalogue
|
CODEFONCT
|
CHAR(20)
|
Code Fonctionnalité
|
LIBAC
|
CHAR(30)
|
Libellé Règle Acceptation
|
DESCAC
|
CHAR(60)
|
Descriptif règle
|
PRGCTL
|
CHAR(10)
|
Nom du programme
|
REGLE
|
CHAR(200)
|
Règle exprimée sous forme de prédicat
|
PARAMS
|
CHAR(200)
|
Liste des paramètres du catalogue auxquels on doit
attribuer une valeur à ce niveau.
|
LIBELS
|
CHAR(500)
|
Liste des libellés des paramètres
|
VALEURS
|
CHAR(300)
|
Liste des valeurs des paramètres
|
MSGACC
|
CHAR(150)
|
Liste des messages d'erreurs
|
CODACCT
|
CHAR(6)
|
Code de la règle dans la fonctionnalité
|
TYPEREGACC
|
CHAR(8)
|
Catégorie de traitements pour lesquels la règle
sera testée.
|
|
Tableau 5.12 : Détails de la classe «
JACTLSP »
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 74
JAACPFP
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement
|
REDAC
|
CHAR(3
|
Code rédacteur
|
GESAC
|
CHAR(3)
|
Code gestionnaire
|
ETAAC
|
CHAR(2)
|
Flag enregistrement
|
CDTYPET
|
CHAR(3)
|
Niveau d'état bloquant
|
CODEFONCT
|
CHAR(20)
|
Code fonctionnalité
|
MTFAC
|
CHAR(4)
|
Code motif attente
|
PIECE
|
CHAR(25)
|
Pièce correspondant à l'attente s'il s'agit
d'une attente de pièce
|
CDTAB
|
CHAR(8)
|
Code table des réponses de levée des attentes
|
INDMA
|
CHAR(1)
|
Type motif attente : P- demande de pièces et A :
lié à une règle d'acceptation
|
CODACCT
|
CHAR(6)
|
Code règle d'acceptation si INDMA='A'
|
TYPEATT
|
CHAR(8)
|
Catégorie de traitements pour lesquels
l'attente sera vérifiée.
|
|
Tableau 5.13 : Détails de la classe «
JAACPFP »
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 75

Diagramme de Sequence :
Paramétrer Workflow
Repeter
: Administrateur
liste code retour traitement
choix traitement à
enchainer
Appel fonction parametrage
Proposition liste workflow
Interface de paramétrage
Validation paramétrage
autoriser traitements
ajouter transition
choix code retour
choix etat initial
Définir courriers
Choix workflow
choix état final
définir attentes
définir règles
définir liens
:Système
Génération fichier
xml
Sauvegarde paramétrage
Figure 5.6 : Diagramme de séquences «
Paramétrer Workflow »
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 76
Cas d'utilisation 17 : « Visualiser un Workflow
»

Diagramme de Sequence :
Visualiser Workflow
: Visiteur
Appel traitement
représentation
Proposition liste workflow
visualisation du workflow
représentation workflow
demander détails
résultat détails
Choix workflow
:Système
Figure 5.7 : Diagramme de séquences «
Visualiser Workflow »
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 77
Cas d'utilisation 18 : « Faire le suivi du Workflow
»

Diagramme de Sequence :
Faire le suivi du Workflow
: Visiteur
demander liste dossiers d'un
état
Proposition liste workflow
Appel traitement suivi
liste dossiers de l'état
histogramme de suivi
Choix workflow
:Système
Figure 5.8 : Diagramme de séquences « Faire
le suivi du Workflow » Cas d'utilisation 22 : «
Gérer les règles d'acceptation »

0..*
JACTLSP
1..1
0..1
JACRCTL
0..*
1..1
JACLCTL
0..*
JAFONCT
JAACPFP
Figure 5.9 : Diagramme de classe « Gérer
les règles d'acceptation »
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 78
JACLCTL : Catalogue des règles d'acceptation
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement système
|
REDAC
|
CHAR(3)
|
Code rédacteur
|
CODAC
|
CHAR(6)
|
Code d'identification de la règle
|
LIBAC
|
CHAR(30)
|
Libellé de la règle
|
DESCAC
|
CHAR(60)
|
Descriptif de la règle
|
PRGCTL
|
CHAR(10)
|
Nom du programme vérifiant la règle
|
REGLE
|
CHAR(200)
|
Règle exprimée sous forme de prédicat.
|
MSGACC
|
CHAR(150)
|
Liste des codes des messages d'erreurs
|
PARAMS
|
CHAR(200)
|
Liste des paramètres de la fonction
|
LIBPARAMS
|
CHAR(500)
|
Liste des libellés des paramètres de la
fonction
|
|
Tableau 5.14 : Détails de la classe «
JACLCTL »
JACTLSP : Catalogue des règles par
fonctionnalité (conférer tableau 5.12)
JACRCTL
Champ
|
Type
|
Description
|
CODEFONCT
|
CHAR(20)
|
Code Fonctionnalité
|
CODACCT
|
CHAR(6)
|
Code de la règle dans la fonctionnalité
|
TYPECRIT
|
CHAR(3)
|
{`IN','OUT'}. `IN' indique si la règle doit être
testée pour les dossiers répondant aux critères qui
suivent
|
CRIT1
|
CHAR(60)
|
nom du 1er critère de sélection des
dossiers
|
VALCRIT1
|
CHAR(20)
|
Valeur du 1er critère
|
CRIT2
|
CHAR(60)
|
nom du 2ième critère
|
VALCRIT2
|
CHAR(20)
|
Valeur du 2ième critère
|
CRIT3
|
CHAR(60)
|
nom du 3ième critère
|
VALCRIT3
|
CHAR(20)
|
Valeur du 3ième critère
|
IMTFAC
|
INTEGER
|
Utilisé pour le paramétrage des attentes,
critères de sélection des attentes mais cette fois-ci le lien se
fait avec la table JAACPFP.
|
|
Tableau 5.15 : Détails de la classe «
JACRCTL »
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 79
Cas d'utilisation 19 : « Gérer les attentes
»

JAFONCT
0..*
0..*
JAACPFP
0..1
JAACPTP
0..1
0..*
JACTREP
JAFTREP
0..*
1..1
0..*
JAACCRP
Figure 5.10 : Diagramme de classes « Gérer
les attentes »
JAACPTP : Catalogue des motifs d'attentes
Champ
|
Type
|
Description
|
REDAC
|
CHAR(3)
|
Code rédacteur
|
MTFAC
|
CHAR(4)
|
Code motif d'attente
|
LM1AC
|
CHAR(60)
|
Libellé motif d'attente
|
LIBEDT
|
CHAR(100)
|
Libellé d'édition de l'attente
|
|
Tableau 5.16 : Détails de la classe «
JAACPTP »
JAACPFP : Motifs d'attentes par fonctionnalité
(conférer tableau 5.13) JAACCRP : Paramétrage des
relances
Champ
|
Type
|
Description
|
IDENT
|
INTEGER
|
Compteur d'enregistrement Système
|
REDAC
|
CHAR(3)
|
Code rédacteur
|
GESAC
|
CHAR(3)
|
Code gestionnaire
|
ETAAC
|
CHAR(2)
|
Flag enrégistrement
|
IMTFAC
|
INTEGER
|
N° enregistrement de JAACPFP
|
NUMREL
|
INTEGER
|
N° de relance paramétré
|
DURAP
|
INTEGER
|
Nombre de « UNRAP » au bout duquel on
considère que l'attente a expiré
|
UNRAP
|
CHAR(1)
|
{`J','M'...}Unité durée attente
|
CDGEN
|
CHAR(10)
|
Code de génération du courrier lié à
l'attente
|
CDMSG
|
CHAR(10)
|
Code de génération des messages à envoyer
aux user
|
|
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 80
ETATWL
INTEGER
N° Etat du Workflow où mettre le dossier
Tableau 5.17 : Détails de la classe «
JAACCRP »
JAFTREP : Paramétrage de la levée des
attentes
Champ
|
Type
|
Description
|
REDAC
|
CHAR(3)
|
Code Rédacteur
|
GESAC
|
CHAR(3)
|
Code Gestionnaire
|
ETAAC
|
CHAR(2)
|
Flag de Position
|
IMTFAC
|
INTEGER
|
Identifiant définition motif attente de rattachement
|
CDTAB
|
CHAR(10)
|
Code Table Réponses
|
CDREP
|
CHAR(10)
|
Code réponse
|
INDSUP
|
CHAR(1)
|
Indicateur motif à supprimer suite à la
réponse
|
INDCL
|
CHAR(1)
|
Indicateur clause à rajouter
|
CHPCL
|
CHAR(35)
|
Nom champ clause si clause à rajouter
|
INMTFAC
|
INTEGER
|
Identifiant nouveau motif si nouveau motif à
générer
|
ETATWL
|
INTEGER
|
N° Etat du Workflow si réponse entraîne
changement
|
TRAIT
|
CHAR(20)
|
Code traitement à lancer si traitement à
exécuter
|
|
Tableau 5.18 : Détails de la classe «
JAFTREP »
JACTREP : Catalogue des réponses de levée
d'attente
Champ
|
Type
|
Description
|
REDAC
|
CHAR(3)
|
Code Rédacteur
|
GESAC
|
CHAR(3)
|
Code Gestionnaire
|
ETAAC
|
CHAR(2)
|
Flag de Position
|
CDTAB
|
CHAR(10)
|
Code Table Réponses
|
LIBTAB
|
CHAR(35)
|
Libellé table
|
CDREP
|
CHAR(10)
|
Code réponse
|
LIBREP
|
CHAR(35)
|
Libelle Réponse
|
|
Tableau 5.19 : Détails de la classe «
JACTREP »
« Mise en place d'un système de gestion de
workflow : Paramétrage, suivi et représentation graphique »
| Page 81
|