
- •Тема: "Имитационное моделирование динамических систем и процессов с использованием объектно-ориентированного подхода.
- •Задание на курсовой проект
- •Реферат
- •Перечень условных обозначений, символов, единиц, сокращений и терминов
- •Содержание
- •Введение
- •1. Постановка задачи
- •1.1 Описание предметной области
- •1.2 Цели и задачи
- •1.3 Выбор средств
- •2. Выбор метода решения
- •2.1 Теоретические сведения
- •2.2 Описание входных и выходных данных
- •3. Метод решения
- •3.1 Объектно-ориентированный анализ
- •3.2 Объектно-ориентированное проектирование
- •3.2.1 Диаграмма классов
- •3.2.2 Диаграмма объектов
- •3.2.3 Диаграмма состояний и переходов
- •3.2.4 Диаграмма взаимодействия
- •3.3 Объектно-ориентированное программирование
- •3.3.1Диаграмма модулей
- •3.3.2 Диаграмма процессов
- •3.3.3 Протоколы классов
- •Список литературы
- •Приложения Приложение а
- •Приложение б
- •Приложение в
- •Приложение г
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-карты также заставляют дизайнера воздержаться от назначения классу слишком многих обязанностей [2].
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 Настройщик Очередь настройки |