Skip to content

En quoi les objets Simio se distinguent-ils des autres outils de modélisation orientée objet ?

  • AUTHOR
  • C. Dennis Pegden, PhD
Télécharger la version PDF

Simio rend la modélisation beaucoup plus facile et plus rapide en fournissant un nouveau paradigme basé sur les objets qui change radicalement la façon dont les objets sont construits et utilisés. L'objectif de cet article est de décrire comment le cadre de modélisation orienté objet de Simio diffère des autres outils de modélisation orientés objet.

L'idée générale de la modélisation orientée objet n'est pas nouvelle - en fait, le premier outil de modélisation orientée objet - Simula - a été introduit il y a plus de 50 ans et a fourni les idées de base utilisées aujourd'hui dans les outils de modélisation orientée objet. Il existe aujourd'hui sur le marché un certain nombre d'outils de modélisation orientés objet. Lorsqu'il utilise ces outils, l'utilisateur sélectionne des objets dans une bibliothèque et les place dans un modèle. De nombreux utilisateurs de ces outils s'accordent à dire qu'ils fonctionnent bien pour les modèles simples, mais que pour les applications complexes, ils sont difficiles à utiliser parce qu'ils manquent de flexibilité (les utilisateurs ne peuvent pas ajouter ou modifier des objets) ou parce qu'ils atteignent la flexibilité en demandant à l'utilisateur d'écrire un code complexe dans un langage de programmation tel que C++ ou Java. L'une ou l'autre option constitue un obstacle pour l'utilisateur en termes de modélisation rapide de systèmes complexes. Il s'agit là d'un obstacle majeur à l'acceptation généralisée des outils de modélisation orientés objet.

Simio se distingue des autres outils de modélisation orientés objet par le fait que les objets Simio sont basés sur le processus plutôt que sur le code. Un objet Simio est défini en créant un ensemble de flux de processus graphiques qui décrivent le comportement de l'objet. Un processus est un organigramme qui décrit une séquence d'activités et de décisions prises par l'objet. Un processus peut s'étendre dans le temps et être limité par des ressources restreintes. Un exemple simple de processus, familier à de nombreux utilisateurs d'outils de modélisation orientés processus, est le suivant : SAISIE-RETARD-LIBÉRATION. Dans ce processus, l'objet attend de s'emparer d'une ressource, retarde d'une durée d'activité, puis libère la ressource. Il convient de noter que cette activité s'étend dans le temps et que le temps d'exécution du processus dépend à la fois de la disponibilité de la ressource et du délai spécifié.

Dans d'autres outils, les objets sont codés et mis en œuvre dans un langage de programmation. Si l'outil prend en charge des objets définis par l'utilisateur, ce dernier doit mettre en œuvre tout nouvel objet dans le même langage de programmation. L'utilisateur doit maîtriser les concepts de base de l'orientation objet (encapsulation, héritage, polymorphisme, etc.), ainsi que le langage de programmation requis. Par conséquent, la création d'un nouvel objet nécessite un programmeur expert dans un langage de programmation spécifique. Les objets basés sur les processus de Simio présentent un certain nombre d'avantages importants par rapport aux objets basés sur le code d'autres outils. Le premier avantage, le plus évident, est que les objets sont beaucoup plus faciles à créer puisqu'ils ne nécessitent pas de compétences en programmation dans un langage spécifique. En outre, comme la logique d'un objet Simio est définie par des flux de processus graphiques et qu'elle est visible pour l'utilisateur, elle est plus facile à comprendre et à modifier. Mais surtout, le comportement de l'objet dans Simio est défini à l'aide de constructions de modélisation de processus de haut niveau qui s'étendent dans le temps. Cela simplifie grandement la tâche de construction des objets.

Dans la plupart des outils de modélisation orientés objet, l'utilisateur peut agrémenter les objets fournis d'une logique personnalisée pour une application spécifique. Par exemple, il peut être nécessaire de compter le nombre de fois qu'un client effectue un service sur un serveur spécifique, puis d'utiliser ce nombre d'une manière ou d'une autre dans la logique du modèle. Ce type de logique ajoutée par l'utilisateur est très important pour pouvoir modéliser avec souplesse un large éventail de systèmes. Les outils fournissent généralement un moyen d'ajouter une telle logique à des points prédéfinis dans les objets fournis dans leur bibliothèque standard.

Les objets basés sur les processus de Simio présentent des avantages uniques et importants par rapport aux objets basés sur le code lorsqu'il s'agit d'ajouter une logique personnalisée à des objets existants. Un objet basé sur le code aura des "crochets" logiques pour faire des appels à une fonction fournie par l'utilisateur qui est exécutée à des points sélectionnés dans l'objet. L'utilisateur doit coder cette fonction dans le langage de programmation spécifié (par exemple, C++ ou Java). Dans certains cas, un outil de script simplifié est fourni comme alternative pour faire des choses simples telles que des affectations sans codage, mais la flexibilité et la puissance des outils de script sont très limitées. Dans les deux cas, cependant, la logique insérée doit être entièrement exécutée à ce moment précis du temps simulé. La logique ne peut pas être retardée pendant une durée déterminée, attendre qu'une ressource soit disponible ou déplacée, attendre qu'un réservoir atteigne un niveau de remplissage spécifié ou exécuter d'autres types de logique complexe qui s'étendent sur le temps simulé. En revanche, les objets basés sur les processus de Simio offrent une fonctionnalité appelée processus "complémentaires" qui sont exécutés à des points logiques spécifiques de l'objet. Ce sont les équivalents des appels de fonction dans les objets basés sur le code, mais ils sont beaucoup plus puissants puisqu'ils disposent de toute la puissance des processus Simio et peuvent s'étendre dans le temps si nécessaire. Par exemple, il existe un processus complémentaire pour l'objet Serveur dans Simio qui est exécuté chaque fois que le serveur tombe en panne. Ce processus pourrait être créé par l'utilisateur pour inclure une logique d'attente pour saisir le réparateur et attendre que le réparateur arrive au serveur avant de rendre le contrôle à l'objet. Il s'agit d'une capacité extrêmement puissante.

En résumé, les objets basés sur les processus de Simio offrent un certain nombre d'avantages importants par rapport aux objets plus traditionnels basés sur le code que l'on trouve dans d'autres outils de modélisation orientés objet. Ces avantages comprennent à la fois la facilité d'utilisation en éliminant la nécessité d'être un programmeur expert, ainsi que la flexibilité de la modélisation en permettant aux objets d'être définis et embellis en utilisant des processus qui s'étendent dans le temps, par opposition aux fonctions codées qui doivent s'exécuter sans avance de temps simulée. En bref, les objets de Simio basés sur des processus sont à la fois plus simples et plus puissants que les objets basés sur des codes dans d'autres outils de modélisation.

Télécharger la version PDF