Объектно-ориентированный подход в имитационном моделировании
Реферат, 17 Августа 2015, автор: пользователь скрыл имя
Описание работы
Объектом разработки является программный продукт, имитирующий производственную линию с пунктами технического контроля.
Целью данной курсовой работы является создание программного обеспечения - системы имитационного моделирования на тему "Производственная линия с пунктами технического контроля".
В ходе решения поставленной задачи были проведены OOA, OOD и OOP предметной области с помощью метода Аббота и диаграмм Гради Буча.
Файлы: 1 файл
Иммитационное моделирование.docx
— 283.50 Кб (Скачать файл)
Реферат
по дисциплине: "Имитационное моделирование"
Тема: " Объектно-ориентированный подход в имитационном моделировании.
Объектом разработки является программный продукт, имитирующий производственную линию с пунктами технического контроля.
Целью данной курсовой работы является создание программного обеспечения - системы имитационного моделирования на тему "Производственная линия с пунктами технического контроля".
В ходе решения поставленной задачи были проведены OOA, OOD и OOP предметной области с помощью метода Аббота и диаграмм Гради Буча.
Данный программный продукт отличается удобством, простотой в использовании, высокой скоростью выполнения, низким требованием к аппаратному обеспечению. К недостаткам отнесем отсутствие графического интерфейса.
В качестве имитационной модели, продукт может быть использован для проектирования, анализа и оценки функциональности рассматриваемого объекта.
Перечень условных обозначений, символов, единиц, сокращений и терминов
OOA - объектно-ориентированный анализ
OOD - объектно-ориентированное проектирование
OOP - объектно-ориентированное программирование
ПО - программное обеспечение
ПП - программный продукт
CRC - Class-Responsibilities-
ПрО - Предметная область
Содержание
Введение
Данная модель позволит
с имитировать работу
Актуальность данного решения вполне очевидна, создания симулятора с помощью ПО, позволяет не просто получить статистические данные рассматриваемого объекта, но и существенно сэкономить как время, так и ресурсы, которые могли бы быть потрачены для создания материальной модели.
При моделировании работы производственной линии с пунктами конечного контроля нас интересует главным образом статистика.
1. Постановка задачи
1.1 Описание предметной области
Собранные телевизоры, на заключительной стадии их производства, проходят ряд пунктов технического контроля. В последнем из этих пунктов осуществляется проверка настройки телевизоров. Если при проверке обнаружилось, что телевизор работает некачественно, он направляется в пункт настройки, где настраивается заново. После перенастройки телевизор снова направляется в последний пункт контроля для проверки качества настройки. Телевизоры, которые сразу или после нескольких возвратов в пункт настройки прошли фазу заключительной проверки, направляются в цех упаковки.
Время между поступлениями телевизоров в пункт контроля для заключительной проверки распределено равномерно на интервале 3.5-7.5 мин. В пункте заключительной проверки параллельно работают два контролера. Время, необходимое на проверку одного телевизора, распределено равномерно на интервале 6-12 мин. В среднем 85% телевизоров проходят проверку успешно с первого предъявления и направляются на упаковку. Остальные 15% возвращаются в пункт настройки, обслуживаемый одним рабочим. Время настройки распределено равномерно на интервале 20-40 мин.
Выделим главные сущности в заданной работе. Для заданной предметной области сущности таковы: Конвейер (производственная линия), Очередь контроля, Очередь настройки, Контролер 1, Контролер 2, Настройщик, TV (телевизор).
Конвейер характеризуется текущим состоянием: занят или свободен. Занят - означает, что в данный момент на конвейере выполняет работа. Свободен - означает, что производственная линия сейчас пуста и работа не выполняется.
Очередь характеризуется текущим количеством телевизоров в очереди.
Контролер характеризуется текущим состоянием: занят или свободен, временем конца проверки и проверяемым TV.
Настройщик характеризуется текущим состоянием: занят или свободен, временем конца настройки и TV, которые в данный момент настраивается.
TV, обслуживаемый на конвейере,
можно охарактеризовать
1.2 Цели и задачи
Объектом разработки данной работы является программное обеспечение системы имитационного моделирования производственной линии с пунктами технического контроля. Целью является разработка программного обеспечения системы имитационного моделирования и получения следующих статистических данных:
- время, затрачиваемое на обслуживание каждого телевизора на последнем этапе производства;
- загрузка контролеров;
- загрузка настройщика.
Для достижения поставленной цели необходимо решить следующие задачи.
- Проведение объектно-ориентированного анализа предметной области;
- Проведение объектно-ориентированного проектирования разрабатываемой системы;
объектное ориентированное программирование модуль
- Реализация программы с применением объектно-ориентированного программирования;
- Проведение имитационного моделирования и сбор статистических данных.
1.3 Выбор средств
Для достижения поставленной цели и решения поставленных задач был выбран объектно-ориентированный подход, так как данный подход является оптимальным решением подобного рода задач и является наиболее простым способом достижения поставленной цели.
В процессе объектно-ориентированного анализа были использованы методы Аббота и CRC карточек. Данные методы как нельзя лучше подходят для выбора объектов и действий, которые в будущем станут операциями и классами нашей программы. Использование данных инструментов ООА существенно упрощают разработку структуры программы, и дают представление из каких модулей будет состоять разрабатываемое ПО.
ОО проектирование включает в себя использование метода диаграмм Гради Буча. За счет использования данных диаграмм, мы наглядно видим отношения составных частей программы и протекающих в ней процессов.
2. Выбор метода решения
2.1 Теоретические сведения
Технология программирования включает в себя совокупность методов и средств разработки ПО и порядок применения этих методов и средств.
В основе ООП лежат следующие положения.
- ООА. Метод анализа, согласно которому требования рассматриваются с точки зрения классов и объектов, составляющих словарь предметной области.
- ОО проектирование. Методология проектирования, соединяющая процесс объектно-ориентированной декомпозиции и систему обозначений для представления логической и физической, статической и динамической моделей проектируемой системы.
- ООП. Методология реализации, при которой программа организуется, как совокупность сотрудничающих объектов, каждый из которых является экземпляром какого-либо класса, а классы образуют иерархию наследования. При этом классы обычно статичны, а объекты очень динамичны, что поощряется динамическим связыванием и полиморфизмом.
- Класс. Множество объектов с общей структурой и поведением. Термины "класс" и "тип" в большинстве случаев (но не всегда) взаимозаменяемы.
- Объект. Нечто, чем можно оперировать. Объект имеет состояние, поведение и идентичность.
- Состояние. Совокупный результат поведения объекта: одно из стабильных условий, в которых объект может существовать, охарактеризованных количественно; в любой конкретный момент времени состояние объекта включает в себя перечень (обычно, статический) свойств объекта и текущие значения (обычно, динамические) этих свойств.
- Поведение. Действия и реакции объекта, выраженные в терминах передачи сообщений и изменения состояния; видимая извне и воспроизводимая активность объекта.
- Протокол. Способы, которыми объекты могут действовать и реагировать; полное статическое и динамическое представление объекта; протокол объекта определяет допустимое поведение объекта.
- Объектная модель. Совокупность основополагающих принципов, лежащих в основе объектно-ориентированного проектирования; парадигма программирования, основанная на принципах абстрагирования, инкапсуляции, модульности, иерархичности, типизации, параллелизма и устойчивости.
- Инкапсуляция. Процесс разделения элементов абстракции, которые образуют ее структуру и поведение. Служит для отделения внешних обязательств объекта от его реализации.
- Наследование. Отношение между классами, при котором класс использует структуру или поведение другого (одиночное наследование) или других (множественное наследование) классов. Наследование вводит иерархию "общее/частное" в которой подкласс наследует от одного или нескольких более общих суперклассов. Подклассы обычно дополняют или переопределяют унаследованную структуру и поведение.
- Полиморфизм. Положение теории типов, согласно которому имена (например, переменных) могут обозначать объекты разных (но имеющих общего родителя) классов. Следовательно, любой объект, обозначаемый полиморфным именем, может по-своему реагировать на некий общий набор операций [1].
2.2 Описание входных и выходных данных
Входные данные:
- шаг времени (тип: float);
- время моделирования (тип: float);
- максимальное значение очереди контроллера (тип: float).
Выходные данные (результаты моделирования):
- статистика динамики телевизоров на производственной линии;
- загрузка контролеров;
- загрузка настройщика.
3. Метод решения
3.1 Объектно-ориентированный анализ
Проведем объектно-ориентированный анализ предметной области, для этого рассмотрим основные сущности в нашей предметной области.
Используем метод Аббота, который заключается в словесном анализе предметной области и получении её словаря и объектно-ориентированного словаря. Нам нужно описать задачу или ее часть на простом языке, а потом подчеркнуть существительные и глаголы. Существительные - кандидаты на роль классов, а глаголы могут стать именами операций [1].
Выделим в заданной предметной области существительные, прилагательные и глаголы. Результаты представлены в таблице 3.1.
Таблица 3.1 - Словарь понятий предметной области
Существительное |
Глагол |
Прочее |
Конвейер Контроллер Настройщик Очередь Телевизор Время Процесс Работа |
Настраивать Проверять Размещать Отправлять Возвращать Поступать |
Занятый Свободный Настроенный Пустой |
Далее создадим объектно-ориентированный словарь, выделив сущности, состояния, и функции. Результаты представлены в таблице 3.2.
Таблица 3.2 - ОО словарь предметной области
Сущность /Сущность |
Свойства/Состояние |
Метод/Функция/Поведение |
Конвейер |
Время работы; Количество, прошедших проверку TV; Контроллер, Настройщик, Очередь контроля, Очередь настройки; Хранятся все TV; |
Поместить следующее изделие; Поместить TV на проверку; Поместить следующий TV на настройку; Начать процесс моделирования; |
Контролер |
Состояние Контролера; Момент начала проверки TV; Обрабатываемый TV; Суммарное время работы; |
Проверить, не наступил ли момент конца настройки; Поместить TV из очереди; Убрать TV; Показать состояние; Поместить TV на настройку; |
Настройщик |
Состояние Настройщика; Момент начала настройки TV; Обрабатываемый TV; Суммарное время работы; |
Проверить, не наступил, ли момент конца настройки; Поместить TV из очереди; Послать TV на проверку; Показать состояние; |
Очередь |
TV, находящиеся в очереди; |
Проверить, пуста ли очередь; Убрать TV из очереди (первый); Поместить следующее изделие; |
TV |
Время поступления: Текущее состояние (настроен не настроен); |
Поместить на контроль; Показать состояние; Задать настройку; |
Одним из методов при анализе и проектировании задач есть CRC-карточки - удобный способ для определения классов и их взаимодействия. Использование малых карточек позволяет минимизировать сложность дизайна.
CRC-карты акцентируют
CRC-карточки для классов представлены в таблицах 3.3 - 3.5.
Таблица 3.3 - CRC-карточка класса телевизор
TV | |
Обрабатывается на Конвейере. Состояния: в очереди. на проверке; |
Контролер Настройщик Очередь контроля Очередь настройки Конвейер |
Таблица 3.4 - CRC-карточка класса очередь
Очередь | |
Часть Конвейера, содержит ожидающие проверки TV. Состояния: заполнена; пуста. Действия: извлечение TV добавление TV |
Конвейер TV |
Таблица 3.5 - CRC-карточка класса контролер
Контролер | |
Часть Конвейера, контролирует качество работы TV. Состояния: занят; не занят; |
Конвейер TV Очередь контроля Очередь настройки |
Таблица 3.6 - CRC-карточка класса настройщик
Настройщик | |
Является частью Конвейера. Настраивает TV. Состояния: занят; не занят; |
Конвейер TV Очередь настройки Очередь контроля |
Таблица 3.7 - CRC-карточка класса конвейер
Конвейер | |
Генерирует TV. Состояния: работает; не работает; Действия: генерирует |
Контролер Очередь контроля TV Настройщик Очередь настройки |
3.2 Объектно-ориентированное проектирование
Объектно-ориентированное проектирование - это часть объектно-ориентированной методологии, которая предоставляет возможность программистам оперировать понятием "объект", нежели понятием "процедура" при разработке своего кода. Объекты содержат инкапсулированные данные и процедуры, сгруппированные вместе, отображая сущность объекта. "Интерфейс объекта", описывает взаимодействие с объектом, то, как он определен. Программа, полученная при реализации объектно-ориентированного исходного кода, описывает взаимодействие этих объектов [3].