Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1070604.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
14.15 Mб
Скачать

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

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

3.3 Объектно-ориентированное программирование

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

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

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

Диаграмма модулей показывает распределение классов и объектов по модулю в физическом проектировании системы.

Каждая отдельная диаграмма модулей представляет некоторый ракурс структуры модулей системы. При разработке мы используем диаграмму модулей, чтобы показать физическое деление нашей архитектуры по слоям и разделам.

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

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

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

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

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

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

В результате проведения объектно-ориентированный анализа предметной области, были выделены основные сущности данной работы. Такими сущностями являются Телевизор, Контроллер, Настройщик, Очередь, Конвейер. Каждая из этих сущностей представляет собой класс объектов.

Протокол класса TV.

class TV

{

private:

float tv_generation_next_time; // время поступления нового TV

public:

TV (); // конструктор по умолчанию

void Process (Queue& queue1, Queue& queue2); // функция заполнения очередей

};

Протокол класса Контроллер.

class Controler

{

private:

float TV_next_time; // значение задержки

public:

Controler (); // конструктор по умолчанию

void Process (Queue& q,Queue& q_ad); // процесс прохождениятелевизором контроля

void Delay (float dt); // задержка

};

Протокол класса Настройщик.

class Adjuster

{

private:

float TV_next_time; // значение задержки

public:

Adjuster (); // конструктор по умолчанию

void Process (Queue& q_ad);

float C=frand (20,40); // среднее время настройки

};

Протокол класса Очередь.

class Queue

{

private:

size_t TV_count; // количество TV

size_t id; // идентификатор TV

public:

Queue (size_t in_id): id (in_id) // конструктор по умолчанию

size_t Id () // идентификатор

void AddTV (); // Добавление телевизора на проверку

void RemoveTV (); // Извлечение TV

bool IsFull () // проверка на переполнение

bool IsEmpty () // проверка на пустоту

};

Протокол класса Конвейер.

class Conveyor

{

private:

TV tv_generator; // генератор TV

Queue queue1; // очередь 1

Queue queue2; // очередь 2

Queue queue3; // очередь 3

Controler controler1; // контроллер 1

Controler controler2; // контроллер 2

Adjuster adjuster1; // настройщик

public:

Conveyor (); // заполнение очередей

void Process (); // процесс работы конвеера

};

Выводы

В ходе выполнения курсовой работы был проведен объектно-ориентированный анализ предметной области, в ходе которого были выделены основные сущности. На основе выделенных сущностей были спроектированы и реализованы классы.

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

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

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