Modèle conceptuel
La figure 2 présente un modèle d'information conceptuel d'un système de postes de travail, définissant deux types d'objets et quatre types d'événements.
Figure 2 : Modèle d'information conceptuel des systèmes de postes de travail de fabrication.
Comme l'indiquent les associations entre les quatre types d'événements et les deux types d'objets, pour les quatre types d'événements, les deux mêmes types d'objets participent : les pièces et les postes de travail, ce qui implique que chaque événement de ces quatre types implique une pièce et un poste de travail spécifiques.
Notez que le tampon d'entrée (rempli de pièces en attente) est modélisé comme une fin d'association avec le nom des pièces en attente du côté des pièces de l'association entre les pièces et les postes de travail, exprimant le fait qu'à tout moment, un poste de travail a zéro pièce ou plus en attente dans son tampon d'entrée en vue d'être traitée.
Un modèle conceptuel de processus de ce système, décrivant quatre régularités causales sous la forme de règles d'événements, une pour chaque type d'événement, est présenté à la figure 3 sous la forme d'un diagramme de processus BPMN utilisant des cercles d'événements reliés à des flèches de flux de séquences exprimant la causalité (conditionnelle), et des objets de données attachés aux cercles d'événements.
Figure 3 : Modèle conceptuel de processus d'un système de postes de travail de fabrication.
Les quatre règles d'événement décrites par le modèle de la figure 3 sont les suivantes
- Lorsqu'une pièce arrive, elle est ajoutée au tampon d'entrée et, si le poste de travail est disponible, il y aura un événement de début de traitement pour traiter la pièce nouvellement arrivée.
- Lorsqu'un événement de début de traitement se produit, la pièce suivante de la mémoire tampon d'entrée est en cours de traitement et un événement de fin de traitement doit se produire un peu plus tard (après que le temps de traitement s'est écoulé).
- Lorsqu'un événement de fin de traitement se produit, il entraîne un événement de départ de la pièce et, si la mémoire tampon d'entrée n'est pas vide, un autre événement de début de traitement impliquant la pièce suivante de la mémoire tampon.
- Lorsqu'un événement de départ de pièce se produit, la pièce traitée est retirée du poste de travail.
Alors que BPMN exige de classer tous les cercles d'événements dans l'une des trois catégories Début, Intermédiaire ou Fin et d'utiliser une syntaxe visuelle différente pour eux, ce n'est pas le cas dans DPMN.
Modèle de conception
Un modèle de conception de simulation est basé sur un modèle conceptuel. En fonction des objectifs d'une étude de simulation, il peut s'abstraire de certains éléments du domaine réel décrit par le modèle conceptuel et ajouter des éléments de calcul représentant des décisions de conception, telles que des variables aléatoires exprimées sous la forme de fonctions d'échantillonnage de variables aléatoires basées sur des distributions de probabilités spécifiques pour modéliser la variation aléatoire de certaines variables du système.
Ce modèle définit l'association multivaluée waitingParts end comme étant ordonnée, ce qui signifie qu'elle correspond à une propriété de référence multivaluée ayant pour valeur une collection ordonnée (telle qu'une liste de tableaux ou une file d'attente).
Le modèle de conception de l'information de la figure 4 définit qu'un événement PartArrival doit faire référence à la fois à une pièce et à un poste de travail, représentant des situations où des pièces spécifiques arrivent à des postes de travail spécifiques. Notez que, sur le plan informatique, ce modèle nécessite la création de nouveaux objets Part (ou leur récupération à partir d'un pool d'objets) avant qu'un nouvel événement PartArrival ne soit créé (ou programmé), alors qu'il est plus courant dans les modèles de simulation de créer un nouvel objet Part uniquement lorsqu'un événement d'arrivée s'est produit, ce qui peut être modélisé en définissant une multiplicité de 0..1 pour l'extrémité Part de l'association PartArrival-Part (ce qui signifie que Part Arrival a une propriété de référence facultative, au lieu d'obligatoire, avec le nom Part).
Figure 4 : un modèle de conception de l'information.
Remarquez que le modèle définit deux opérations au niveau de la classe (désignées par le stéréotype "rv") mettant en œuvre des fonctions d'échantillonnage de variables aléatoires : PartArrival::recurrence() est conforme à une distribution de probabilité triangulaire avec des valeurs de paramètres minimum, mode et maximum de 3, 4 et 8, tandis queProcessingStart::processingTime() est conforme à une distribution exponentielle avec une valeur de paramètre de taux d'événement de 6.
La figure 5 présente un modèle de conception de processus basé sur les types d'objets et d'événements définis par le modèle de conception d'informations de la figure 4 et dérivé du modèle conceptuel de processus de la figure 3.
Figure 5 : modèle de conception de processus sous la forme d'un diagramme de processus DPMN.
Remarquez que, puisque tous les événements se produisent au même poste de travail, les trois flèches d'ordonnancement d'événements sont annotées avec la même affectation de propriété d'événement workStation := ws, qui propage simplement la référence d'objet au poste de travail donné le long de la chaîne d'ordonnancement d'événements. De telles affectations de propagation de propriété (dans les annotations d'affectation de propriété d'événement), où une valeur de propriété d'un événement de suivi est fixée à la valeur de propriété correspondante de l'événement d'ordonnancement (ou de déclenchement), seront omises (comme l'impliquent les types d'événements ayant les mêmes noms de propriété) pour éviter d'encombrer les diagrammes de modèle de processus.
Un diagramme de processus DPMN, tel que celui illustré à la figure 5, peut être divisé en un ensemble de diagrammes de règles d'événements, un pour chacun de ses cercles d'événements, comme le montre le tableau 1. Cette réduction d'un modèle de conception de processus DPMN en un ensemble de modèles de conception de règles d'événements, ainsi que la sémantique opérationnelle des règles d'événements présentée dans (Wagner 2017), fournit la sémantique des diagrammes de processus DPMN.
Notez qu'un modèle de conception de règles d'événement peut également être exprimé textuellement sous la forme d'un bloc de pseudo-code composé de quatre parties : la partie 1 indique le type d'événement déclencheur et déclare une variable de règle représentant l'événement déclencheur, la partie 2 déclare d'autres variables de règle et les initialise, la partie 3 contient un script de changement d'état composé d'instructions de changement d'état et la partie 4 planifie des événements de suivi.
Tableau 1 : Modèles de conception de règles d'événements.
ACTIVITÉS SIMPLES
Une activité simple est une activité avec zéro participant ou plus, dont aucun n'a de signification particulière (telle qu'être une ressource ou un objet de traitement).
Modélisation conceptuelle des activités simples
D'un point de vue conceptuel, une activité est un événement composite encadré temporellement par une paire d'événements de début et de fin. Par conséquent, chaque fois qu'un modèle contient une paire de types d'événements de début et de fin liés, comme le début et la fin du traitement dans le modèle d'un poste de travail de fabrication illustré dans la partie gauche des figures 6 et 7, ils peuvent être remplacés par un type d'activité correspondant, comme le traitement, tel qu'illustré dans la partie droite.
Figure 6 : introduction d'un type d'activité dans un modèle d'information conceptuelle.
Il est évident que l'application de ce schéma de remplacement conduit à une simplification conceptuelle et visuelle des modèles concernés.
Figure 7 : Introduction d'un type d'activité dans un modèle conceptuel de processus.
Modélisation de la conception d'activités simples
Comme dans un modèle conceptuel, dans un modèle de conception, une paire de types d'événements de début et de fin d'activité (ou cercles d'événements), comme ProcessingStart et ProcessingEnd dans les modèles sources illustrés aux figures 8 et 9, peut être remplacée par un type d'activité correspondant (ou rectangles d'activité), comme Processing, comme dans les modèles cibles illustrés dans ces figures.
Figure 8 : Extension des modèles de base OEM aux modèles de classe OEM-A par l'introduction de types d'activité.
Dans le cas d'un modèle de conception de l'information, ce schéma de remplacement implique l'attribution de toutes les caractéristiques (attributs, associations et opérations) des classes définissant le type d'événement de début et de fin dans la classe définissant le type d'activité correspondant, éventuellement en renommant certaines d'entre elles. Dans l'exemple de la figure 7, il n'y a qu'une seule caractéristique de ce type : l'opération au niveau de la classe ProcessingStart::processingTime, qui est attribuée à Processing et renommée en time.
Dans le cas d'un modèle de conception de processus, le modèle de remplacement implique qu'une paire de cercles d'événements consistant en un cercle d'événements destiné à représenter un type d'événement de début d'activité et un cercle d'événements destiné à représenter un type d'événement de fin d'activité, avec une flèche d'ordonnancement d'événements allant du cercle d'événements de début d'activité au cercle d'événements de fin d'activité annoté par une expression de délai, est remplacée par un rectangle d'activité tel que :
- Tous les objets de données attachés au cercle de fin d'activité sont attachés au rectangle d'activité (puisqu'une activité se termine lorsqu'elle est achevée).
- Toutes les flèches de programmation d'événements sortant du cercle de fin d'activité sont transformées en flèches de programmation d'événements sortant du rectangle d'activité.
- Toutes les flèches de programmation d'événements de début d'activité sont remplacées par des flèches de programmation d'activités correspondantes ayant un paramètre de création supplémentaire pour la durée d'une activité programmée, qui est définie sur l'expression de délai définie pour la flèche de programmation d'événements de fin d'activité. Dans l'exemple ci-dessus, Processing::time() dans le diagramme cible est identique au délai
- ProcessingStart::processingTime dans le diagramme source.
- Lorsque le cercle d'événement de début d'activité comporte un ou plusieurs objets de données attachés ou une flèche d'ordonnancement d'événement sortant qui ne va pas vers le cercle d'événement de fin d'activité, un cercle d'événement de début d'activité doit être inclus dans le rectangle d'activité pour attacher le ou les objets de données et en tant que source de la ou des flèches d'ordonnancement d'événement sortant.
Figure 9 : Extension du DPMN de base aux modèles de processus DPMN-A par l'introduction de rectangles d'activité.
Ce schéma de réécriture Activité-Départ-Fin, qui peut également être appliqué dans le sens inverse, en remplaçant un rectangle d'activité par une paire de cercles d'événement, définit la signification d'un rectangle d'activité dans un diagramme DPMN. Il permet de réduire un diagramme DPMN-A avec des rectangles d'activité à un diagramme DPMN de base sans rectangles d'activité.
Remarquez que le modèle cible de la figure 9 spécifie deux règles d'événement :
- A chaque arrivée de pièce, si le statut de la station de travail est AVAILABLE, la variable de règle wsAllocated prend la valeur true et l'attribut status de la station de travail prend la valeur BUSY, sinon la pièce arrivée est ajoutée au tampon d'entrée waitingParts de la station de travail. Si la variable de règle wsAllocated a la valeur true, une nouvelle activité de traitement est programmée pour démarrer immédiatement avec ses attributs de durée (hérités) fixés à la valeur obtenue en invoquant la fonction de temps définie dans la classe d'activité de traitement.
- Lorsqu'une activité de traitement se termine, si le tampon d'entrée waitingParts de la station de travail est vide, l'attribut status de la station de travail prend la valeur AVAILABLE, sinon la variable de règle wsReallocated prend la valeur true et la pièce suivante est retirée du tampon d'entrée waitingParts. Si la variable de règle wsReallocated a la valeur true, une nouvelle activité de traitement est programmée pour démarrer immédiatement, son attribut de durée (hérité) étant défini sur la valeur obtenue en invoquant la fonction de temps définie dans la classe d'activité Traitement.
Notez qu'un poste de travail est une ressource exclusive de son activité de traitement. Les concepts de ressources et d'activités à ressources limitées sont abordés dans les sections suivantes.
ACTIVITÉS À RESSOURCES LIMITÉES
Une activité à ressources limitées est une activité dans laquelle un ou plusieurs participants jouent un rôle de ressource (tel qu'un exécutant). En règle générale, une activité à ressources limitées est un composant d'un processus métier qui se déroule dans le contexte d'une organisation ou d'une unité organisationnelle, qui est associée à l'activité en tant que propriétaire du processus.
Une activité d'un certain type peut nécessiter certaines ressources pour pouvoir être exécutée. À tout moment, une ressource nécessaire à l'exécution d'une activité peut être disponible ou non.
Une ressource n'est pas disponible, par exemple, lorsqu'elle est occupée ou lorsqu'elle est hors service. Les ressources sont des objets d'un certain type. Les objets ressources d'une activité comprennent son exécutant. Alors que dans un modèle conceptuel, décrivant un système réel, un exécutant est nécessaire pour toute activité, un modèle de simulation peut faire abstraction de l'exécutant d'une activité.
Par exemple, une activité de consultation peut nécessiter un consultant et une salle. Ces contraintes de ressources sont définies au niveau du type. Lors de la définition du type d'activité Consultation, ces contraintes de ressources sont définies sous la forme de deux associations obligatoires avec les types d'objets Consultant et Salle, de telle sorte que les extrémités des deux associations aient la multiplicité 1 ("exactement un"). Ainsi, lors d'une simulation, une nouvelle activité de consultation ne peut être lancée que si un objet Consultant et un objet Salle sont disponibles. Pour toutes les activités à ressources limitées, un simulateur peut automatiquement collecter les statistiques suivantes :
pour chaque type d'activité
- la longueur (moyenne, maximale, etc.) de sa file d'attente d'activités planifiées ;
- le temps de cycle (moyen, maximum, etc.), qui est la somme du temps d'attente et de la durée de l'activité ;
- le pourcentage de temps pendant lequel chaque objet de ressource concerné est occupé par une activité de ce type (son utilisation par des activités de ce type).
Le pourcentage de temps pendant lequel chaque objet de ressource est inactif ou hors service.
Pour modéliser les activités à ressources limitées, nous devons définir leurs types. Un type d'activité sous contrainte de ressources est composé
- d'un ensemble de propriétés et d'un ensemble d'opérations, comme tout type d'entité
- d'un ensemble de rôles de ressources, chacun ayant la forme d'une propriété de référence avec un nom, un type d'objet comme plage, et une multiplicité qui peut définir une contrainte de ressource comme, par exemple, "exactement un objet de ressource de ce type est requis" ou "au moins deux objets de ressource de ce type sont requis".
Les rôles de ressources définis pour un type d'activité peuvent inclure le rôle de l'exécutant. Un langage de simulation d'activités doit permettre de définir des types d'activités avec deux types de propriétés : les propriétés ordinaires et les rôles de ressources. Au moins pour ces derniers, il doit être possible de définir des multiplicités pour définir les contraintes de ressources. Ces exigences sont satisfaites par les diagrammes de classes de l'OEM, dans lesquels les rôles de ressources sont définis comme des propriétés stéréotypées à l'aide du stéréotype "rôle de ressource" ou, plus brièvement, "res".
L'extension de l'OEM de base par l'ajout des concepts nécessaires à la modélisation des activités à ressources limitées (en particulier, les rôles de ressources avec contraintes, les pools de ressources et les flèches de démarrage d'activité dépendant des ressources) est appelée OEM-A.
Modélisation conceptuelle des activités à ressources limitées
La modélisation des activités à ressources limitées est un problème majeur dans le domaine de la simulation d'événements discrets (DES) depuis sa création dans les années soixante, alors qu'elle a été négligée et est toujours considérée comme un sujet avancé dans le domaine de la modélisation des processus d'entreprise (BPM). Par exemple, si le BPMN permet d'affecter des ressources aux activités, il ne permet pas de modéliser des pools de ressources, ni de spécifier des contraintes de cardinalité des ressources ou des contraintes de multiplicité des participations parallèles.
Dans le paradigme DES des réseaux de traitement, Gordon (1961) a introduit les opérations de gestion des ressources Seize et Release dans le langage de simulation GPSS pour l'allocation et la désallocation (libération) des ressources. Ainsi, le GPSS a établi un modèle de modélisation standard pour les activités à ressources limitées, qui est devenu populaire sous le nom de Seize-Delay-Release, indiquant que pour simuler une activité à ressources limitées, ses ressources sont d'abord allouées, puis, après un certain délai (représentant la durée de l'activité simulée), elles sont désallouées (libérées).
Rôles des ressources et propriétaires de processus
À titre d'exemple, nous considérons un hôpital composé de services médicaux où les patients arrivent pour subir un examen médical effectué par un médecin dans une salle du service. Un examen médical, en tant qu'activité, compte quatre participants : un patient, un service médical, un médecin et une salle, mais seuls deux d'entre eux jouent un rôle de ressource : les médecins et les salles. Ceci peut être indiqué dans un diagramme de classes OEM en utilisant le stéréotype "rôle de ressource" pour catégoriser les extrémités d'association qui représentent les rôles de ressource, comme le montre la figure 10.
Remarquez que le type d'événement "arrivée de patients" et le type d'activité "examens" ont tous deux une propriété de référence (fonctionnelle obligatoire) "propriétaire du processus". Cela implique que les événements d'arrivée de patients et les activités d'examen se produisent dans un service médical spécifique, qui est leur propriétaire de processus dans le sens où il possède les types de processus qui les composent. Un propriétaire de processus est appelé "Participant" en BPMN (dans le sens d'un participant à une collaboration) et représenté visuellement sous la forme d'un rectangle contenant appelé "Pool". Dans la figure 10, le rôle de ressource des médecins est désigné comme le rôle d'exécutant. Dans le BPMN également, l'exécutant est considéré comme un type spécial de rôle de ressource. Selon la section 10.2.2 de la spécification BPMN 2.0 (BPMN 2011), un exécutant peut être "un individu spécifique, un groupe, un rôle ou une position d'organisation, ou une organisation".
L'une des principales raisons de considérer certains objets comme des ressources est la nécessité de collecter des statistiques d'utilisation (soit dans un système d'information opérationnel, comme un système de gestion des flux de travail, soit dans un modèle de simulation) en enregistrant l'utilisation des ressources dans le temps (leur utilisation) par type d'activité. En désignant les rôles des ressources dans les modèles d'information, ces modèles fournissent les informations nécessaires aux simulations et aux systèmes d'information pour collecter automatiquement des statistiques d'utilisation.
Pools de ressources et allocation des ressources
Dans l'exemple de l'hôpital, un service médical, en tant que propriétaire du processus, est l'unité organisationnelle chargée de réagir à certains événements (ici : l'arrivée de patients) et de gérer l'exécution de certains processus et activités (ici : les examens médicaux), y compris l'allocation de ressources à ces processus et activités. Pour pouvoir allouer des ressources aux activités, un responsable de processus doit gérer des pools de ressources, normalement un pour chaque rôle de ressource de chaque type d'activité (si les pools ne sont pas partagés entre les rôles de ressources). Un pool de ressources est une collection d'objets de ressources d'un certain type. Par exemple, les trois salles de radiologie d'un service d'imagerie diagnostique constituent un pool de ressources de ce service.
Les pools de ressources peuvent être modélisés dans un diagramme de classes OEM au moyen d'associations spéciales entre les classes d'objets représentant les propriétaires de processus (comme les départements médicaux) et les classes de ressources (comme les médecins et les salles), où les extrémités de l'association, correspondant aux propriétés à valeur de collection représentant les pools de ressources, sont stéréotypées avec "pool de ressources", comme le montre la figure 10. À tout moment, les objets ressources d'un pool de ressources peuvent être en panne (comme une machine défectueuse ou un médecin qui n'est pas dans les temps), occupés ou disponibles.
Figure 10 : Le type d'activité "examens" avec deux rôles de ressources et deux pools de ressources.
Un responsable de processus dispose de procédures spéciales pour allouer les ressources disponibles des pools de ressources aux activités. Par exemple, dans le modèle de la figure 10, un service médical dispose des procédures "allouer un médecin" et "allouer une salle" pour allouer un médecin et une salle à un examen médical. Ces procédures d'affectation des ressources peuvent utiliser diverses politiques, en particulier pour l'affectation des ressources humaines, telles que la détermination de l'adéquation des ressources potentielles (par exemple, sur la base de l'expertise, de l'expérience et des performances antérieures), puis leur classement et enfin la sélection des ressources les plus adéquates (au hasard ou en fonction de leur tour de rôle). Voir également (Arias et al 2018).
Dans le modèle de processus conceptuel présenté à la figure 11, un médecin et une chambre sont toujours attribués et libérés (désattribués) ensemble.
Figure 11 : Modèle conceptuel de processus basé sur le modèle d'information de la figure 10.
Ce modèle de processus décrit deux régularités causales sous la forme des deux règles d'événement suivantes, chacune énoncée avec deux puces : une pour décrire tous les changements d'état et une pour décrire tous les événements de suivi provoqués par l'application de la règle.
Lorsqu'un nouveau patient arrive :
- si une chambre et un médecin sont disponibles, ils sont affectés à l'examen de ce patient ; sinon, si une chambre ou un médecin n'est pas disponible, le patient est ajouté à la file d'attente ;
- si un médecin et une chambre ont été attribués, l'examen du patient commence.
Lorsqu'un examen est terminé par un médecin dans une salle donnée :
- si la file d'attente est vide, la salle et le médecin sont libérés ; sinon, s'il y a encore des patients dans la file d'attente, le patient suivant est appelé pour être examiné par ce médecin dans cette salle ;
- si un autre patient a été appelé, l'examen de ce patient commence.
Ces règles conceptuelles décrivent la dynamique réelle d'un service médical en fonction des décisions de gestion des processus d'entreprise. Les modifications de la file d'attente et les (dé)attributions de chambres et de médecins sont considérées comme des changements d'état (dans le système d'information, pas nécessairement informatisé) du service, tels qu'ils sont exprimés dans les rectangles d'objets de données, qui représentent les changements d'état des objets concernés provoqués par un événement dans le DPMN.