2 Результаты проектирования
Результаты проектирования представим в виде диаграмм классов, объектов, модулей, взаимодействия, состояний и переходов, процессов.
2.1 Диаграмма классов
Диаграмма классов показывает классы и их отношения. Диаграмма классов используется, чтобы выделить общие роли и обязанности сущностей, обеспечивающих требуемое поведение системы. Классы на диаграмме обозначаются как прямоугольники с указанием имени и основных атрибутов и операций. Отношениями между классами обозначаются линиями.
Диаграмма для заданной предметной области представлена рисунке 2.1.
Рисунок 2.1 – Диаграмма классов
2.2 Диаграмма объектов
Диаграмма объектов показывает существующие объекты и их связи в логическом проекте системы. Иначе говоря, диаграмма объектов представляет собой мгновенный снимок потока событий в некоторой конфигурации объектов. Существенные элементы диаграммы объектов – объекты и их отношения.
Диаграмма объектов для данной предметной представлена на рисунке 2.2.
Поместить TV
Конвейер
Время работы
конвейера;
Кол-во TV,
прошедших проверку;
Время поступления
следующего изделия;
Очередь контроля
Количество TV,
находящихся в очереди;
Контролер
Момент начала
проверки;
Количество
проверенных TV;
Состояние (работает,
не работает);
Очередь настройки
Количество TV,
находящихся в очереди;
TV
Время поступления;
Текущее
состояние(настроен, не настроен);
время
состояние
Извлечь TV;
состояние
состояние
Извлечь TV;
время
Поместить TV
на проверку
Поместить TV
в очередь
контроля
Поместить TV
в очередь
настройки
Отправить на
упаковку
Поместить TV
в очередь
настройки
Поместить TV
Извлечь TV;
состояние
Настройщик
Момент начала
настройки;
Количество
настроенных TV;
Состояние (работает,
не работает);
Поместить TV
Поместить TV
на настройку
Рисунок 2.2 – Диаграмма объектов
2.3 Диаграмма состояний и переходов
Диаграмма состояний и переходов показывает: пространство состояний данного класса; события, которые влекут переход из одного состояний в другое; действия, которые происходят при изменении состояния.
Выделим состояния конвейера. Для этого определим признаки, по которым эти состояния отличаются. Такими признаками являются: состояния очередей (0 – очередь пуста; 1 – очередь не пуста), состояния контролеров и настройщиков(0 – не работает; 1- занят).
Вышеперечисленных признаков 14, обозначим их номерами. Список состояний приведен в таблице 2.1.
Таблица 2.1 – Состояний конвейера
№ |
Очередь контроля |
Контролер 1 |
Контролер 2 |
Очередь настройки |
Настройщик |
Характеристика |
1 |
0 |
0 |
0 |
0 |
0 |
Конвейер пуст |
2 |
1 |
0 |
0 |
0 |
0 |
Ничего не работает, очередь контроля не пуста |
3 |
1 |
1 |
0 |
0 |
0 |
То же, что и во 2ом, только Контролер 1 занят |
4 |
1 |
1 |
1 |
0 |
0 |
То же , что и 3ем, только Контролер 2 занят |
5 |
1 |
1 |
1 |
1 |
0 |
Очереди не пусты, Контролеры заняты, настройщик свободен |
6 |
0 |
1 |
1 |
1 |
1 |
Очередь контроля пуста, Очередь настройки не пуста, все заняты |
7 |
0 |
0 |
1 |
1 |
1 |
То же, что и в 6, только Контролер1 свободен |
8
|
0 |
0 |
0 |
1 |
1 |
Очередь контроля пуста, контролеры свободны, очередь настройки не пуста, настройщик занят |
9 |
0 |
0 |
0 |
0 |
1 |
Настройщик занят, остальные свободны, очереди пусты |
10 |
0 |
1 |
1 |
0 |
0 |
Все пусто, Контролер 1 и 2 заняты, настройщик свободен |
11 |
0 |
1 |
1 |
1 |
0 |
Очередь контроля и Настройщик пусты, остальные заняты |
12 |
0 |
1 |
1 |
0 |
1 |
Очереди пусты, Контролеры и настройщик заняты |
13 |
1 |
1 |
1 |
1 |
1 |
Очереди не пусты, все работают |
Продолжение таблицы 2.1 – Состояние конвейера
№ |
Очередь контроля |
Контролер 1 |
Контролер 2 |
Очередь настройки |
Настройщик |
Характеристика |
14 |
0 |
0 |
0 |
1 |
0 |
Все пусто, кроме Очереди настройки |
Переходы между этими состояниями осуществляются при наступлении одного из следующих событий: поступление на конвейер нового телевизора (н), телевизор прошел проверку у контролера(1), телевизор прошел настройку у настройщика(2).
Диаграмма состояний и переходов для конвейера представлена на рисунке 2.3, в ней используются вышеперечисленные обозначения.
н
н
1
11
12
13
14
н
н
1
1
1
1
1
1
2
2
2
2
2
2 2
2
2
2
2
2
3
4
5
6
10
8
9
7
Рисунок 2.3 – Диаграмма состояний и переходов
2.4 Диаграмма взаимодействия
Диаграмма взаимодействия есть просто другой способ представления диаграммы объектов. Преимущество диаграммы взаимодействия в том, что на ней легче читается порядок посылки сообщений. Диаграмма взаимодействия изображена на рисунке 2.4.
2.5 Диаграмма модулей
Диаграмма модулей показывает распределение классов и объектов по модулю в физическом проектировании системы. Каждая отдельная диаграмма модулей представляет некоторый ракурс структуры модулей
TV
Конвейер Очередь К Кон-р1 Кон-р2 ОчередьН Настройщик
состояние
Поместить
новый TV
поместить в очередь
поместить на
проверку
если
проверка
прошла
у
Отправить на
упаковку
е
состояние
очереди есть
T
состояние
контролер2
с
поместить в очередь
поместить на
проверку
состояние
е
отправить в очередь
настройки
н
Отправить на
упаковку
отправить в очередь
настройки
отправить на
настройку
поместить в очередь
проверки
поместить на
проверку
поместить на
проверку
Отправить на
упаковку
Рисунок 2.4 – Диаграмма взаимодействия
системы. При разработке мы используем диаграмму модулей, чтобы показать физическое деление нашей архитектуры по слоям и разделам.
Диаграмма модулей системы изображена на рисунке 2.5.
conveyor.cpp
conveyor.h
controller.cpp
queue.cpp
adjuster.cpp
Controller.h
queue.h
adjuster.h
TV.cpp
TV.h
Рисунок 2.5 – Диаграмма модулей
2.6 Диаграмма процессов
Диаграмма процессов используется, чтобы показать распределение процессов по процессорам в физическом проекте системы. Отдельная диаграмма процессов показывает один ракурс структуры процессов системы. При разработке проекта мы используем диаграмму процессов, чтобы показать физическую совокупность процессов и устройств, обеспечивающих работу системы.
Диаграмма процессов изображена на рисунке 2.6.
Генератор случайных чисел
Рисунок 2.6 – Диаграмма процессов