Курсовая работа: Разработка средств моделирования систем
Модель на
языке GPSSдолжна выглядеть так:
GENERATE 10
L3 QUEUE 1
SEIZE B1
DEPART 1
ADVANCE (EXPONENTIAL(1,0,2.1))
RELEASE B1
L1 QUEUE 1
SEIZE B2
DEPART 1
ADVANCE (EXPONENTIAL(1,0,6))
RELEASE B2
TRANSFER 0.9,L2,L1
L2 QUEUE 1
SEIZE B3
DEPART 1
ADVANCE (EXPONENTIAL(1,0,10))
RELEASE B3
TRANSFER 0.9,L4,L3
L4 TERMINATE 1
START 1000
Занесём
данный текст в программу GPSS WORLD и получим стандартный отчёт.
В
отчете собираются следующие статистические данные:
-
START
TIME – начальное значение времени моделирования;
-
END
TIME – конечное значение времени моделирование;
-
BLOCKS
– число блоков, использованных при моделировании;
-
FACILITIES
– число устройств, использованных при моделировании;
-
STORAGE
– число многоканальных устройств, использованных при моделировании.
Информация
об устройствах содержит следующие колонки:
-
FACILITY
- имя устройства;
-
ENTRIES
- количество транзактов, входивших в устройство;
-
UTIL.
- коэффициент загрузки устройства;
-
AVE.TIME
- среднее время пребывания транзакта в устройстве;
-
AVAILABLE
- состояние устройства в момент окончания моделирования (1 - устройство
доступно, 0 - недоступно);
-
OWNER
- номер последнего транзакта, вошедшего в устройство;
-
PEND
- количество транзактов, ожидающих выхода устройства из режима прерывания;
-
INTER
- количество транзактов, пребывание которых в устройстве было прервано;
-
RETRY
- количество транзактов, ожидающих каких-либо условий, зависящих от состояния
данного устройства;
-
DELAY
- количество транзактов, ожидающих возможности входа в устройство (обычно это
транзакты, находящиеся в очереди);
Информация
об очередях содержит следующие колонки:
-
QUEUE
- имя очереди;
-
MAX
- максимальная длина очереди (т.е. количество транзактов в ней) за время
моделирования;
-
CONT.-
длина очереди в момент окончания моделирования;
-
ENTRIES
- количество транзактов, входивших в очередь;
-
ENTRIES(0)
- количество транзактов, которым не потребовалось ждать в данной очереди
(нулевые входы);
-
AVE.CONT.-
средняя длина очереди;
-
AVE.TIME
- среднее время пребывания транзактов в очереди;
-
AVE.(-0)
- среднее время пребывания транзактов в очереди без учета нулевых входов (т.е.
без учета транзактов с нулевым временем пребывания в очереди);
-
RETRY
- количество транзактов, ожидающих каких-либо условий, зависящих от состояния
данной очереди.
3
Проектирование системы
В окончательном
виде любая программа представляет собой набор инструкций процессора. Всё, что
написано на любом языке программирования, - более удобная, упрощённая запись
этого набора инструкций, облегчающая написание, отладку и последующую
модификацию программы. Чем выше уровень языка, тем в более простой форме
записывается одни и те же действия.
С ростом объёма
программы становится невозможным удерживать в памяти все детали, и становится
необходимым структурировать информацию, выделять главное и отбрасывать
несущественное. Этот процесс называется повышением степени абстракции
программы.
Первым шагом к
повышению абстракции является использование функции. Следующий шаг – описание
собственных типов данных, позволяющих структурировать и группировать
информацию.
Объединение в
модули описаний типов данных и функций, предназначенных для работы с ними, со
скрытием от пользователя модуля несущественных деталей, является дальнейшим
развитием структуризации программы.
Введение понятия
класса является естественным развитием идей модульности. В классе структуры
данных и функции их обработки объединяются. Класс используется только через его
интерфейс – детали реализации для пользователя класса несущественны.
Класс является
типом данных, определяемым пользователем. В классе задаются свойства и
поведение какого-либо предмета или процесса в виде полей данных (аналогично
структуре) и функции для работы с ними. Создаваемый тип данных обладает
практически теми же свойствами, что и стандартные типы. В нашей программе мы
использовали три класса:
-
Класс FuncStandart содержит описание всех стандартных
функций, определённых языком имитационного моделирования GPSS.
В зависимости от выбранной пользователем функции вызывается
соответствующий ей метод класса FuncStandart. Вызванный метод отправляет на консоль запрос пользователю на ввод
параметров выбранной функции. В зависимости от введенныхпараметров, метод
генерирует строку, содержащуюописание стандартной функции с уже заданными
параметрами на языке имитационного моделирования GPSS.
-
Класс GPSSOperatori содержит описание операторов языка
имитационного моделирования GPSS.В
зависимости от матрицы, сгенерированной в методе Matrixкласса GPSSText, вызываются соответствующие методы класса GPSSOperatori. Все методы класса возвращают
строковое значение, содержащее описание требуемых операторов языка
имитационного моделирования GPSS.
Причем стандартные функции, которые используются в операторах как параметры,
генерируются в классе FuncStandart.
-
Класс GPSSText описывает сгенерированный текст
языка имитационного моделирования GPSS. Во-первых, метод класса Matrix,
выводит на консоль запрос об операторах узлов, содержащихся в имитационной
модели и о движении транзакта по соответствующим узлам. В зависимости от
полученных данных генерируется матрица переходов. Во-вторых, в методе Programma, по матрице переходов совершается
соответствующий вызов метода классаGPSSOperatori. В конечном итоге, результат работы программы записывается в
файл GPSStext.txt. Этот файл содержит окончательно сгенерированный
текст программы на языке имитациооного моделирования GPSS.
Идея классов
является основой объектно-ориентированного программирования.
Основными
свойствами ООП является инкапсуляция, наследование и полиморфизм.
Объединение
данных с функциями их обработки в сочетании со скрытием ненужной для
использования этих данных информации называется инкапсуляцией.
Наследование –
это возможность создания иерархии классов, когда потоки наследуют все свойства
своих предков, могут их изменять и добавлять новые.
Полиморфизм –
возможность использования в различных классах иерархии одно имя для обозначения
сходных по смыслу действий и гибко выбирать требуемое действие во время
выполнения программы.
В нашей
программе используется первые два свойства ООП.
Проектирование
объектно-ориентированной программы представляет собой весьма сложную задачу,
поскольку в процесс добавляется ещё один важный этап – разработка иерархий
классов.
Представим
иерархию классовнашей программы (рисунок 3.1)
 
Рисунок 3.1
4
РЕАЛИЗАЦИЯ СИСТЕМЫ
Как ранее уже
описывалось, программа состоит из трёх классов:
-
Класс FuncStandart содержит описание всех стандартных
функций, определённых языком имитационного моделирования GPSS.
-
Класс GPSSOperatori содержит описание операторов языка
имитационного моделирования GPSS.
-
Класс GPSSText описывает сгенерированный текст
языка имитационного моделирования GPSS.
4.1 Класс FuncStandart
-
-
Метод
stringfBETA() задает параметры функцииBETA(Stream,Min,Max,Shape1,Shape2) и
возвращает строку содержащую описание этой функции с уже заданными
пользователем параметрами.
-
Метод
stringfBINOMIAL()задает параметры функции
BINOMIAL(Stream,TrialCount,Probability) и возвращает строку содержащую описание
этой функции с уже заданными пользователем параметрами.
-
Метод
stringfDUNIFORM()задает параметры функции DUNIFORM(Stream,Min,Max) и возвращает
строку содержащую описание этой функции с уже заданными пользователем
параметрами.
-
Метод stringf_1() задает параметры функций EXPONENTIAL(Stream,Locate,Scale), EXTVALA(Stream,Locate,Scale), EXTVALB(Stream,Locate,Scale),
LAPLACE(Stream,Locate,Scale), LOGISTIC(Stream,Locate,Scale)и
возвращает строку содержащую описание этих параметров с уже заданными пользователем
значениями.
-
Методstring f_2() задаетпараметрыфункцийGAMMA(Stream,Locate,Scale,Shape),
INVGAUSS(Stream,Locate,Scale,Shape), INVWEIBULL(Stream,Locate,Scale,Shape),
OGLAPLACE(Stream,Locate,Scale,Shape), LOGLOGIS(Stream,Locate,Scale,Shape),LOGNORMAL(Stream,Locate,Scale,Shape),PEARSON5(Stream,Locate,Scale,Shape),WEIBULL(Stream,Locate,Scale,Shape)ивозвращаетстрокусодержащуюописаниеэтихпараметровсужезаданнымипользователемзначениями.
-
Метод
stringfGEOMETRIC()задает параметры функции GEOMETRIC(Stream,Probability) и
возвращает строку содержащую описание этой функции с уже заданными
пользователем параметрами.
-
Метод
stringfNEGBINOM()задает параметры функции
NEGBINOM(Stream,SuccessCount,Probability) и возвращает строку содержащую
описание этой функции с уже заданными пользователем параметрами.
-
Метод
stringfNORMAL()задает параметры функции NORMAL(Stream,Mean,StdDev) и возвращает
строку содержащую описание этой функции с уже заданными пользователем
параметрами.
-
Метод
stringfPARETO()задает параметры функции PARETO(Stream,Locate,Scale) и
возвращает строку содержащую описание этой функции с уже заданными
пользователем параметрами.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 |