Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ.doc
Скачиваний:
7
Добавлен:
03.03.2016
Размер:
709.63 Кб
Скачать

2. Выбор метода решения

2.1. Теоретические данные

В качестве методе решения мною был выбран метод Аббата для выявления классов из предметной области, диаграммы Booch и UML для проектирования системы.

Работа системы происходит в цикле, где каждая итерация соответствует отдельному моменту времени. С помощью специальных методов классов Furnace, Chamber, QueueCast и Average система в состоянии моделировать работу камерной печи в соответствии с предметной областью. Статистика выводится на экран и в файл специальными методами класса Statistic. Для вывода промежуточных результатов в отдельный файл определены методы у класса System.

2.2. Описание входных и выходных данных

Входные данные:

количество моментов времени работы моделируемой системы;

математическое ожидание интервала прихода отливок.

Выходные данные:

промежуточные данные о состоянии системы в каждый момент времени;

средние значения исследуемых величин на протяжении всей работы системы.

3. Метод решения

3.1. Объектно-ориентированный анализ предметной области

Объектно–ориентированный анализ предметной области - это метод анализа, который позволяет определить возможные сценарии работы с системой, выделить классы, определить методы и свойства для этих классов, а также разобраться с предметной областью с помощью составления словарей.

В процессе объектно-ориентированного анализа предметной области были составлены:

1. Словарь предметной области (Таблица 1);

2. Объектно-ориентированный словарь предметной области (Таблица 2);

3. Диаграммы вариантов использования (Рисунок 3.1.3-3.1.4) ъ

Таблица 3.1 – Словарь предметной области

Существительные

Прилагательные

Глаголы

Процесс

Обработка

Завод

Металлургический

Отливки

Стальные

Холодная

Очередная

Нагреваются

Влияют

Поступает

Удаляются

Печь

Камерная

Заполненная

Раскаляется

Интервал

Распределённый

Ожидание

Математическое

Рационализация

Процесс

Технологический

Изменение

Температура

Начальная Распределена

Достигнет

Уравнение

Дифференциальное

Коэффициент

Скорость

Нагрев

Продолжается

Величина

Нормально распределённая

Ожидание

Математическое

Отклонение

Среднеквадратичное

Время

Снижение

Продолжение таблицы 3.1

Существительные

Прилагательные

Глаголы

Разность

Количество

Камера

Интервал

Стратегия

Состоит

Управление

Условия

Начальные

Предполагают

Наличие

Момент

Нулевой

Исследование

Моделирование

Система

Описанная

Оценки

Величины

Следующие

Распределение

Конечное

Загрузка

Словарь предметной области (Таблица 1) представляет из себя разбиения описания предметной области на существительные, прилагательные и глаголы. В дальнейшем существительные могут стать классами, прилагательные – свойствами, а глаголы – методами. Подобная тенденция заметна в следующей таблице.

Таблица 3.2 – ОО словарь предметной области

Классы

Свойства

Методы

Система (System)

Имитировать работу (Imitate)

Сгенерировать коэффициент скорости нагрева

(GetCoefOfHeat)

Сгенерировать новый интервал времени ожидания отливки

(GetNewInterval)

Вывести текущее состояние в файл с промежуточными данными

(ShowInterimData)

Продолжение таблицы 3.2

Классы

Свойства

Методы

Печь (Furnace)

Камеры (chamb[10])

Температура (temp)

Вернуть номер первой свободной камеры (FindNotFillChamb)

Узнать температуру (GetTemp)

Повысить температуру

(AddTemp)

Вернуть количество заполненных камер в печи

(GetNumberChamb)

Добавить отливку в камеру по номеру

(PushCast)

Проверка и удаление отливок

(DeleteCast)

Обратится к камере по номеру

(operator[])

Камера (Chamber)

Температура отливки в камере (temp)

Время поступления отливки в камеру (timeBegin)

Есть ли в камере отливка (fill)

Узнать температуру (GetTemp)

Повысить температуру (AddTemp)

Поместить отливку (PushCast)

Вынуть отливку (PopCast)

Узнать, заполнена ли камера

(GetFill)

Узнать время начала нагрева отливки (GetTimeBegin)

Продолжение таблицы 3.2

Классы

Свойства

Объекты

Очередь ожидающих отливок (QueueCast)

Указатель на первый элемент (head)

Указатель на последний элемент (last)

Добавить элемент в очередь

(Push)

Узнать, есть ли на очереди элементы (NotEmpty)

Узнать время последнего элемента очереди (GetLast)

Удалить последний элемент очереди (Pop)

Узнать длину очереди (GetLength)

Элемент очереди ожидающих отливок (QueueCastElement)

Время поступления в очередь (time)

Указатель на следующий элемент (next)

Узнать время поступления в очередь (GetTime)

Статистика (Statistic)

Среднее время нагрева одной отливки (avTimeWarm)

Среднее значение конечных температур отливок (avEndTemp)

Суммарное время ожидания отливок (sumTimeWait)

Среднее время ожидания отливок (avTimeWait)

Среднее количество заполненных камер в единицу времени (avNumberChamb)

Вывести на консоль (WriteToConsole)

Вывести в файл (WriteToFile)

Среднее значение (Average)

Текущее среднее значение помещённых величин (sum)

Количество помещённых величин (N)

Добавить число (AddValue)

Узнать среднее значение (GetAverage)

Рисунок 1 – Диаграмма вариантов использования

Это диаграмма вариантов использования. Центральное место тут занимает вариант использования (основное действие, написанное в круге). Это действие связанно отношением ассоциации с актером (обозначается на диаграмме в форме человечка с подписью). Актером на диаграмме является предмет или существо, которое участвует в действии. В данном случае это объекты классов и пользователь.

3.2 Объектно-ориентированное проектирование

3.2.1 Диаграмма классов.

Диаграмма классов (Рисунок 2) наглядно демонстрирует взаимосвязь между классами.

Рисунок 2- Диаграмма классов

3.2.2 Диаграмма объектов

Диаграмма объектов (рисунок 3) демонстрирует взаимодействия между определёнными объектами (экземплярами классов). Диаграмма объектов состоит из объектов, актёра (пользователя) и передаваемых друг другу объектами сообщений.

Диаграмма объектов изображена на рисунке 3.

Рисунок 3 Диаграмма объектов.

3.2.3 Диаграммы состояний

Диаграмма состояний для класса QueueCast изображена на рисунке 4.

Рисунок 4

Диаграмма состояний создается для объектов, у которых можно выделить какие-либо методы, подразумевающие не точечные действия, а действия, которые должны происходить на каком-то промежутке, к примеру, времени, изменение каких-либо параметров, переходов из одного состояния в другое с его течением.

3.2.4. Диаграмма взаимодействия

Диаграмма взаимодействия показывает взаимодействие объектов на протяжении работы программы. В самой верхней части находится независимый актант и действующие объекты программы (по одному экземпляру из каждого класса). От них вниз идут так называемые «линии жизни» объектов (линии, обозначающие, что в данный момент объект существует). Прямоугольники обозначают, что объект в данное время выполняет действия. Стрелки обозначают запрос или сигнал, посылаемый от одного объекта к другому (сплошные) и ответ на запрос (пунктирные).

Диаграмма взаимодействия показана на рисунке 5.

Рисунок 5 – Диаграмма взаимодействия

3.3. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

3.3.1 Диаграмма модулей

Для большего удобства отображения, классы можно сгруппировать в пакеты. Диаграмма модулей отображает взаимодействие между модулями. Между модулями есть связь, если между классами, находящимися в этих модулях, есть связь. Если модуль «Б» использует в своей реализации данные модуля «А» стрелка связи проводится из модуля «А» в модуль «Б».

В данном случае в каждом из модулей находится по одному классу (имя модуля – <имя класса>.cpp).

Диаграмма модулей изображена на рисунке 6.

Рисунок 6 – Диаграмма модулей

3.3.2 Диаграмма процессов

Диаграммы процессов используются, чтобы показать распределение процессов по процессорам в физическом проекте системы. Отдельная диаграмма процессов показывает один ракурс структуры процессов системы. При разработке проекта мы используем диаграмму процессов, чтобы показать физическую совокупность процессоров и устройств, обеспечивающих работу системы.

Диаграмма процессов приведена на рисунке 7.

Рисунок 7 – Диаграмма процессов

3.3.3 Протоколы классов

class System

{

public:

void Imitate(long,long,Statistic&,const char*,const char*);

double GetCoefOfHeat();

long GetNewInterval(long);

void ShowNowState(Furnace&);

void ShowInterimData(std::ofstream&,int,Furnace&,QueueCast&);

};

class Furnace

{

public:

Furnace();

int FindNotFillChamb();

double GetTemp();

void AddTemp(double);

int GetNumberChamb();

void PushCast(int,double,long);

void DeleteCast(long,QueueCast&,Statistic&);

Chamber& operator[](int);

private:

Chamber chamb[10];

double temp;

};

class Chamber

{

public:

Chamber();

double GetTemp();

void AddTemp(double);

void PushCast(long,double);

void PopCast(Statistic&,long);

bool GetFill();

long GetTimeBegin();

private:

double temp;

long timeBegin;

bool fill;

};

class QueueCast

{

public:

QueueCast();

void Push(double);

bool NotEmpty();

long GetLast();

void Pop();

int GetLength();

private:

QueueCastElement *head;

QueueCastElement *last;

};

class QueueCastElement

{

public:

QueueCastElement(long);

long GetTime();

QueueCastElement *next;

private:

long time;

};

class Average

{

public:

Average();

void AddValue(double);

double GetAverage();

public:

double sum;

int N;

};

class Statistic

{

public:

Statistic();

void WriteToConsole();

void WriteToFile(const char*);

Average avTimeWarm;

Average avEndTemp;

long sumTimeWait;

Average avTimeWait;

Average avNumberChamb;

};

ВЫВОДЫ

При выполнении курсового проекта для достижения поставленной цели был проведен объектно-ориентированный анализ, в результате которого выделены активные объекты, пассивные субъекты, варианты использования, а также следующие классы предметной области: Furnace (печь), Chamber (камера), QueueCast (очередь), а также главный класс System. Для указанных классов определены атрибуты и операции.

По результатам анализа было проведено объектно-ориентированное проектирование, результатом которого стали следующие диаграммы:

а) диаграмма вариантов использования;

б) диаграмма классов;

в) диаграмма взаимодействия;

г) диаграмма состояний;

д) диаграмма объектов;

е) диаграмма модулей.

Результатом реализации диаграмм стал программный продукт, моделирующий работу камерной печи.

Таким образом, в ходе работы к предметной области «Моделирование работы камерной печи» были применены навыки имитационного моделирования с использованием ООП, результатом чего стал программный продукт, имитирующий работу камерной печи, в которой нагреваются отливки.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Г.Буч. Объектно-ориентированное программирование. М. 1992.

2. И.Труб. Объектно-ориентированное моделирование.

3. С.Шлеер, К.Меллор. Объектно-ориентированный анализ: моделирование мира в состояниях. К. Диалектика. 1993.

4. Б.Страустрап. Язык программирования С++. М. 1993.

Приложение А

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

А.1 Общие сведения

Тема курсового проекта: «Имитационное моделирование динамических систем и процессов с использованием объектно-ориентированного подхода. Модель работы камерной печи».

Система проектируется студентом 1-го курса Донецкого Национального технического университета, факультета КНТ, группы ПИ-12в, Ольмезовым Константином Ивановичем.

Основанием для разработки ПП, является задание, выданное кафедрой ПОИС. Плановый срок начала работы имитационного моделирования: 28.02.2013, срок окончания: 6.06.2012. Курсовой проект должен выполняться согласно графику, приведенному в таблице А.1.

Таблица А.1 – Этапы, результаты и сроки разработки ПП

п/п

Наименование этапов дипломного проекта (работы)

Срок выполнения

этапов проекта (работы)

Примечание

1

Получение задания на КП.

1 неделя

Задание на разработку (1 стр.)

2

Выявление требований к разрабатываемому программному проекту.

1-2 неделя

Техническое задание (3-5 стр.)

3

Проведение ОО анализа предметной области.

3-4 неделя

Словарь предметной области. Сценарии использования системы. ОО словарь предметной области.

4

Проведение ОО проектирования.

5-6 неделя

Диаграммы классов, объектов.

Продолжение таблицы А.1

п/п

Наименование этапов дипломного проекта (работы)

Срок выполнения

этапов проекта (работы)

Примечание

5

Проведение ОО проектирования.

7-8 неделя

Диаграммы состояний и переходов, взаимодействия.

6

Проведение ОО проектирования.

9-10 неделя

Диаграммы модулей, процессов.

7

Проектирование протоколов классов.

11-12 неделя

Протоколы классов.

8

Реализация классов.

11-12 неделя

Описание реализации классов.

9

Реализация и отладка программы. Проведение тестирования ПП.

13-14 неделя

Текст программы. Описание программы и тестов.

10

Проведение имитационного моделирования. Получение статистики работы.

13-14 неделя

Экранные формы (1-2 стр.). Руководство пользователя (1 стр.)

11

Оформление пояснительной записки и сопроводительных материалов.

14 неделя

Прошитая ПЗ с CD-ROM (30-50 стр.), сдается преподавателю лично не позже чем за 3 дня до защиты КП.

12

Защита курсового проекта

15-17 неделя

А.2 Назначения и цели создания программы

Данный программный продукт предназначен для имитации работы динамического объекта реального мира – камерная печь – и получения статистических данных о времени нагрева отливок, конечного распределения температур отливок, времени ожидания холодных отливок перед печью.

А.3 Характеристика объекта автоматизации

В процессе обработки на металлургическом заводе стальные отливки поступают в камерную печь с интервалом, распределенным экспоненциаль­но с математическим ожиданием М1. Отливки нагреваются в печи в целях рационализации дальнейшего хода технологического процесса. Изменение температуры отливки в печи описывается следующим дифференциальным

уравнением:

где h - температура 1-й отливки в камере; С - коэффициент скорости нагрева, равный Х+0.1, где Х - нормально распределенная величина с математическим ожиданием 0.05 и среднеквадратичным отклонением 0.01; Н - температура печи, которая раскаляется до 2600 Т с постоянным ко­эффициентом скорости нагрева, равным 0.2, т.е.

Отливки влияют друг на друга так, что помещение "холодной" отливки в печь снижает температуру в печи и изменяет тем самым время нагрева находящихся в ней в данный момент отливок. Снижение температуры равно разности температур печи и отливки, деленной на количество отливок в печи. Всего в печи 10 камер. Когда холодная отливка поступает к заполненной печи, она складируется рядом с печью. Предполагается, что начальная температура поступающих отливок равномерно распределена на интервале 400-600'F. Предполагается также, что все складируемые перед печью отливки при загрузке в нее имеют температуру 400'F.

Стратегия управления технологическим процессом состоит в том, что нагрев отливок в печи продолжается до тех пор, пока температура одной из них не достигнет 2.200'F. Как только эта температура достигается, все отливки с температурой выше 2.000 ' F удаляются. Начальные условия предполагают наличие шести отливок в печи с температурой каждой отливки, равной 550, 600, 650, ..., 800'F. Начальная температура печи равна 1650'F, а очередная отливка поступает в нулевой момент времени.

А.4 Требования к программному продукту

А.4.1 Требования к системе в целом

В целом системе предъявлены следующие требования:

а) имитация работы камерной печи

б) вывод статистики о времени нагрева отливок, конечного распределения температур отливок, времени ожидания холодных отливок перед печью.

А.4.2 Требования к задачам и функциям программного продукта

В процессе работы необходимо обеспечить работы следующих функций:

а) ввод параметров для моделирования;

б) вывод характеристик объектов на каждом шаге моделирования в специальный файл статистики ;

в) вывод результатов моделирования на экран и в файл.

4.3 Требования к техническому обеспечению

К техническому обеспечению предъявляются следующие требования:

а) процессор 32-битный x86-совместимый (уровня Pentium и выше);

б) объем оперативной памяти не менее 1Кб;

в) свободное дисковое пространство – около 1Мб.

г) графический адаптер – VGA-совместимый;

д) монитор – VGA-совместимый;

г) клавиатура.

А.4.4 Требования к программному обеспечению

Для стабильной работы к программному обеспечению предъявляются следующие требования:

а) обеспечить удобный и понятный пользовательский интерфейс;

б) реализовать программу в виде отдельных классов;

в) организовать защиту от некорректного ввода начальных параметров;

г) обеспечить надежное хранение информации.

Программным обеспечением для разработки программы является Microsoft Visual Studio 2010 Ultimate. Для запуска программы необходимо наличие операционной системы Windows XP, и соответствующих библиотек Microsoft Visual C++ Redistributable.

А.4.5 Требования к организационному обеспечению

В программную документацию должны входить:

а) пояснительная записка;

б) приложения:

- техническое задание;

- руководство пользователя;

- экранные формы;

- листинг программы.

А.4.6 Требования к комплексу поставки ПП

Программный продукт поставляется с пояснительной запиской к курсовому проекту в файле ПЗ.doc, руководством пользователя в файле Help.doc, исходными кодами в виде проекта среды разработки в папке SRC, исполнительным файлом программы start.exe и файлом с данными о разработчике readme.txt.

Приложение Б

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]