« Simscript III/Dictionnaire des instructions/CLASS » : différence entre les versions

Contenu supprimé Contenu ajouté
Nouvelle page : Un bloc <font color="#0000FF">begin class .. end </font>declare une classe et doit apparaître dans le préambule (<font color="#0000FF">preamble</font>). Il est suggéré de termine...
(Aucune différence)

Version du 14 novembre 2008 à 08:57

Un bloc begin class .. end declare 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, 
			a 	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 dattente 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