Simscript III/Dictionnaire des instructions/CLASS
Un bloc begin class .. end déclare une classe et doit apparaître dans le préambule (preamble). Il est suggéré de terminer l’énoncé end par un commentaire identifiant la classe. Les attributs, les méthodes et les ensembles sont spécifiés à l’intérieur du bloc.Pour chaque déclaration de classe, un mode référence du nom de la classe (reference) est implicitement défini.
Une classe peut comporter une partie publique et une partie privée. La partie publique est déclarée dans le préambule public (public preamble) et la partie privée est déclarée dans le préambule privé (private preamble). Les attributs, les méthodes, les ensembles peuvent être déclarés dans un préambule public, auquel cas, ils sont publics et peuvent être importés par d’autres modules ou sous-systèmes ; dans le cas contraire (déclarés dans le préambule privé), ils sont privés. Les classes de base d’une classe publique peuvent être déclarées dans un préambule privé.
Exemple :
begin class Ressource
every Ressource
has a Unités_Totales,
an Unités_Acquises,
an Unités_Disponibles method,
an Attendre_Pour method,
a nettoyer method, and
owns a Requête'FileAttente
define Unités_Totales as an integer variable
define Unités_Acquises as an integer variable monitored on the left
define Unités_Disponibles as an integer method
define attendre_Pour as a method
given 2 integer values''Unités requises et priorité
before destroying a Ressource, call nettoyer
end ‘‘Ressource
begin class Requête
every Requête
has a Unités,
a Priorité,
a Le_Processus, and
belongs to a FileAttente
define Unités, Priorité as integer variables
define Le_Processus as a pointer variable
define FileAttente as a set ranked by high Priorité
end‘‘Requête
begin class Caissier
every Caissier
is a Ressource,
has a Nom,
a Servir_Client method
define Servir_Client as a method
yielding 1 real value ‘‘Temps d’attente en minutes
define Nom as a text variable
accumulate Travail_Moyen_Journalier as the Journalier mean,
Travail_Moyen as the mean of Unités_Acquises
accumulate Longueur_Moy_File_Journalière as the Journalier mean,
Longueur_Max_File_Journalière as the Journalier maximum,
Longueur_Moy_File as the mean,
Longueur_Max_File as the maximum,
Histo_File ( 0 to 20 by 1) as the histogram of N.FileAttente
the class
has a Temps_Moyen_Service ‘‘En minutes
define Temps_Moyen_Service as a real variable
end ‘‘Caissier