- •Образовательная автономная некоммерческая организация
- •Зав. Кафедрой ________________________к.Т.Н., доцент Куралесова н.О.
- •Одобрена Учебно-методическим советом факультета
- •2 Теоретическая часть контрольной работы
- •3 Практическая часть
- •3.2 Диаграммы действий
- •Линии синхронизации
- •Начальное и конечное состояния
- •3.3 Диаграммы классов
- •3.4 Диаграммы последовательности действий и кооперации
- •3.5 Диаграммы состояния объектов
- •4.6 Диаграммы компонентов
- •3.7 Диаграмма внедрения
- •4 Правила оформления контрольной работы
- •4.1 Правила оформление глав параграфов, пунктов, подпунктов
- •1 Анализ возможных технических решений
- •4.3 Правила оформления формул
- •4.4 Правила оформления рисунков
- •4.5 Правила оформления таблиц
- •5 Задание на контрольную работу
3.3 Диаграммы классов
В языке UML объект изображается в виде прямоугольников, а его имя пишется с подчеркиванием.
Класс (class) - это описание группы объектов с общими свойствами (атрибутами), поведением (операциями), отношениями с другими объектами и семантикой. Таким образом, класс представляет собой шаблон для создания объекта.
Названия классов выбираются в соответствии с понятиями предметной области. Имя должно быть существительным в единственном числе, наиболее точно характеризующим предмет. В качестве имени класса можно использовать акроним, если он имеет одинаковое значение для всех представляемых сущностей. При использовании акронима в описании класса желательно указать полное название.
В языке UML классы изображаются в виде разделенных прямоугольников. В верхней секции указывается имя класса, средняя секция содержит его структуру - атрибуты, а нижняя описывает его поведение - операции.
Порядок создания классов в программе Rational Rose (рисунок 3):
1. Щелкните правой кнопкой мыши по разделу Logical View (Логическое представление) в окне браузера.
2. В появившемся контекстно-зависимом меню выберите команду New Class (Создать Класс). В список браузера будет добавлен новый класс с именем New Class.
3. Введите нужное имя класса.
На рисунке 3.5 изображена диаграмма классов для ИС «Каталог запасных частей».
Рисунок 3.5 – Диаграмма классов ИС «Каталог запасных частей»
В таблицах 3.19 – 3.28 представлены описательные спецификации диаграммы классов.
Таблица 3.19 – Обозначение классов
Наименование |
Комментарий |
Det4ent |
Отношение деталь – производитель |
Det4spot |
Таблица-связка активных областей и деталей |
Detail |
Детали |
Dic4dic |
Связка между элементами справочников |
Dicgroup |
Группа справочников из одной предметной области |
Dicline |
Общий справочник для записей типа, группы относящихся к любым таблицам |
Enterprise |
Таблица предприятий |
Hot_spot |
Таблица содержит координаты активных областей картинок таблицы picture |
Picture |
Таблица картинок, прилагаемых к документу |
Таблица 3.20 – Описание структуры класса «Det4ent»
Наименование |
Тип данных |
Обязательно к заполнению |
Описание |
ID_ent |
NUMBER |
NOT NULL |
Уникальный номер предприятия |
ID_detail |
NUMBER |
NOT NULL |
уникальный номер детали |
Таблица 3.21 - Описание структуры класса «Det4spot»
Наименование |
Тип данных |
Обязательно к заполнению |
Описание |
ID_spot |
NUMBER |
NOT NULL |
уникальный номер пятна |
ID_detail |
NUMBER |
NOT NULL |
уникальный номер детали |
ID_option |
NUMBER |
NOT NULL |
Уникальный номер элемента справочника |
quan |
NUMBER |
NULL |
количество деталей |
descr |
VARCHAR2(200) |
NULL |
комментарий к детали в пятне |
Таблица 3.22 – Описание структуры класса «Detail»
Наименование |
Тип данных |
Обязательно к заполнению |
Описание |
ID_detail |
NUMBER |
NOT NULL |
уникальный номер детали |
code1 |
VARCHAR2(20) |
NOT NULL |
код1 (модель автомобиля) |
code2 |
VARCHAR2(20) |
NOT NULL |
код2 (номер детали) |
code3 |
VARCHAR2(20) |
NOT NULL |
код3 (чертеж детали) |
name |
VARCHAR2(100) |
NOT NULL |
наименование детали |
price |
NUMBER(9,2) |
NULL |
цена детали (не используется) |
this_model_only |
NUMBER(1) |
NOT NULL |
флаг "только для этой модели" |
code_cat |
VARCHAR2(20) |
NULL |
код детали в каталоге (не используется) |
code_7 |
VARCHAR2(20) |
NULL |
семизначный код детали (не используется) |
Продолжение таблицы 3.22 | |||
ID_union |
NUMBER |
NULL |
уникальный номер взаимозаменяемой детали (не используется) |
ID_subgroup |
NUMBER |
NULL |
Уникальный номер элемента справочника |
un |
NUMBER |
NULL |
уникальный номер пользователя |
cat_name |
VARCHAR2(200) |
NULL |
наименование в каталоге запчастей (для отображения в ЭКЗЧ !!!) |
for_ago |
NUMBER(1) |
NULL |
деталь есть в кодификаторе деталей ОАД, для АГО необходим ввод в дефекты только этих деталей (флаг 1) |
del_date |
DATE |
NULL |
дата удаления из кодификатора |
Таблица 3.23 - Описание структуры класса «Dic4dic»
Наименование |
Тип данных |
Обязательно к заполнению |
Описание |
ID_dicline |
NUMBER |
NOT NULL |
Уникальный номер элемента справочника |
ID_parent |
NUMBER |
NOT NULL |
Уникальный номер элемента справочника |
ID_master |
NUMBER |
NULL |
Уникальный номер элемента справочника |
Таблица 3.24 - Описание структуры класса «Dicgroup»
Наименование |
Тип данных |
Обязательно к заполнению |
Описание |
ID_dicgroup |
NUMBER |
NOT NULL |
Уникальный номер группы справочников |
descr |
VARCHAR2(1000) |
NULL |
Описание группы справочников |
name |
VARCHAR2(200) |
NOT NULL |
Название группы справочников |
Таблица 3.25 - Описание структуры класса «Dicline»
Наименование |
Тип данных |
Обязательно к заполнению |
Описание |
ID_dicline |
NUMBER |
NOT NULL |
Уникальный номер элемента справочника |
ID_dicgroup |
NUMBER |
NOT NULL |
Уникальный номер группы справочников |
value |
VARCHAR2(1000) |
NULL |
Значение записи справочника |
ord_idx |
NUMBER |
NULL |
Индекс записи справочника для фиксации её позиции в общем списке |
value2 |
VARCHAR2(100) |
NULL |
Значение записи справочника |
un |
NUMBER |
NULL |
уникальный номер пользователя |
Таблица 3.26 - Описание структуры класса «Enterprise»
Наименование |
Тип данных |
Обязательно к заполнению |
Описание |
ID_ent |
NUMBER |
NOT NULL |
Уникальный номер предприятия |
site |
VARCHAR2(100) |
NULL |
Ссылка на официальный сайт предприятия |
|
VARCHAR2(150) |
NULL |
Адрес электронной почты предприятия |
acc_num |
VARCHAR2(20) |
NULL |
Номер счёта предприятия в банке |
bank_idx |
VARCHAR2(20) |
NULL |
Реквизиты банка предприятия
|
tax_idx |
VARCHAR2(20) |
NULL |
ИНН предприятия |
is_warranty |
NUMBER(1) |
NOT NULL |
Флаг отвечает за атрибут способности предприятия производить гарантийный ремонт автомобилей |
|
|
Продолжение таблицы 3.26 | ||||
Наименование |
Тип данных |
Обязательно к заполнению |
Описание | |||
manufacturer_vin |
VARCHAR2(3) |
NULL |
VIN код производителя | |||
ID_enttype |
NUMBER |
NOT NULL |
Тип дилерских отношений предприятия по справочнику | |||
name |
VARCHAR2(100) |
NOT NULL |
Название предприятия | |||
ent_pic |
BLOB |
NULL |
картинка-логотип предприятия | |||
ent_num |
VARCHAR2(20) |
NULL |
Код предприятия по необходимому классификатору | |||
ID_clzone |
NUMBER |
NULL |
климатическая зона | |||
ID_region |
NUMBER |
NULL |
региона | |||
ID_country |
NUMBER |
NULL |
страна | |||
hour_cost |
NUMBER(9,2) |
NULL |
стоимость нормо-часа | |||
ID_periodicity |
NUMBER |
NULL |
признак возврата деталей 900 - не возвращает 901 - ежеквартально 902 - ежемесячно | |||
ID_city |
NUMBER |
NULL |
город | |||
ID_ownership |
NUMBER |
NULL |
тип собственности |
addr2 |
VARCHAR2(250) |
NULL |
юридический адрес |
addr1 |
VARCHAR2(250) |
NULL |
юридический адрес |
addr_bank |
VARCHAR2(250) |
NULL |
юридический адрес банка |
uni_num |
VARCHAR2(20) |
NULL |
|
acc_corr |
VARCHAR2(40) |
NULL |
кор. счет |
dn |
NUMBER(1) |
NULL |
|
tel_city |
VARCHAR2(20) |
NULL |
телефон |
fax |
VARCHAR2(20) |
NULL |
факс |
is_basecenter |
NUMBER(1) |
NOT NULL |
флаг принадлежности к базовому центру |
un |
NUMBER |
NULL |
|
void_date |
DATE |
NULL |
дата окончания договора на гарантийное обслуживание |
|
|
Продолжение таблицы 3.26 | |
Наименование |
Тип данных |
Обязательно к заполнению |
Описание |
check_delay |
NUMBER |
NULL |
кол-во дней до истечения которых надо проверять АГО |
ID_parent_ent |
NUMBER |
NULL |
Уникальный номер предприятия |
Таблица 3.27 - Описание структуры класса «Hot_spot»
Наименование |
Тип данных |
Обязательно к заполнению |
Описание |
ID_spot |
NUMBER |
NOT NULL |
уникальный номер пятна |
prefix |
VARCHAR2(100) |
NULL |
наименование пятна |
x1 |
NUMBER(4) |
NULL |
координата x1 (в пикселях, относительно левого верхнего угла картинки) |
y1 |
NUMBER(4) |
NULL |
координата y1 (в пикселях, относительно левого верхнего угла картинки) |
x2 |
NUMBER(4) |
NULL |
координата x2 (в пикселях, относительно левого верхнего угла картинки) |
y2 |
NUMBER(4) |
NULL |
координата y2 (в пикселях, относительно левого верхнего угла картинки) |
ID_pic |
NUMBER |
NULL |
Уникальный номер картинки |
ID_dicline |
NUMBER |
NULL |
Уникальный номер элемента справочника |
Таблица 3.28 - Описание структуры класса «Picture»
Наименование |
Тип данных |
Обязательно к заполнению |
Описание | |||
ID_pic |
NUMBER |
NOT NULL |
Уникальный номер картинки | |||
pic_content
|
BLOB |
NULL |
Содержимое картинки | |||
|
|
Продолжение таблицы 3.28 | ||||
Наименование |
Тип данных |
Обязательно к заполнению |
Описание | |||
name |
VARCHAR2(100) |
NULL |
Название картинки | |||
descr |
VARCHAR2(2000) |
NULL |
Описание модельной применяемости для чертежей каталога (для каталога) | |||
ID_doc |
NUMBER |
NULL |
Ссылка на документ, содержащий картинку | |||
ID_dicline |
NUMBER |
NULL |
Ссылка на элемент справочника |
Пакеты
Если в системе существует немного классов, управлять ими достаточно легко. Многие системы состоят из большого количества классов, поэтому необходим механизм, позволяющий разбить их на группы и облегчающий управление и повторное использование. Здесь оказывается полезной концепция пакетов.
Пакет (package) в логическом представлении модели - это набор классов и других связанных пакетов. Путем объединения классов в пакеты мы можем получить представление модели на более высоком уровне. Изучая содержимое пакета, мы, наоборот, получаем более детальное представление.
Каждый пакет содержит интерфейс, реализуемый набором его общедоступных классов (public classes), то есть тех, с которыми могут общаться классы из других пакетов. Остальные классы пакета - это классы реализации (implementation classes), которые не взаимодействуют с классами в других пакетах.
В сложной системе для облегчения восприятия пакеты могут быть созданы на этапе проработки. В более простой системе, выделенные на этапе анализа, могут быть сгруппированы в один пакет, представляющий саму систему. В ходе дальнейшего анализа и проектирования пакеты нужны для группировки классов, используемых в системной архитектуре.
В языке UML пакеты изображаются в виде папок. Чтобы создать пакеты в программе Ration Rose:
1. Щелкните правой кнопкой мыши по разделу Logical View (Логическое представление) в окне браузера.
2. В появившемся контекстно-зависимом меню выберите команду New Package (Создать Пакет).
3. Введите нужное имя пакета.
После создания пакета в него можно поместить необходимые классы.
Последовательность перемещения классов в пакет в программе Rational Rose:
1. В списке браузера выделите нужный класс, щелкнув по нему мышью.
2. Удерживая кнопку мыши нажатой, перетащите класс в пакет.
3. Повторите те же действия для других классов, которые требуется переместить.
По мере того как новые классы добавляются в систему, их текстовое представление становится неудобным. Диаграммы классов (class diagrams) помогают графически представить некоторые или все-классы в модели.
Главная диаграмма классов в логическом представлении модели обычно отображает пакеты системы. Каждый пакет также имеет свою главную диаграмму классов, которая обычно содержит общедоступные классы пакета. Другие диаграммы создаются по необходимости. Приведу типичные примеры использования диаграмм классов:
просмотр всех классов реализации в пакете;
просмотр структуры и поведения одного или нескольких классов;
просмотр иерархии наследования классов.
Программа Rational Rose автоматически создает главную диаграмму классов в логическом представлении модели. Чтобы добавить пакеты к главной диаграмме классов, сделайте следующее:
1. Дважды щелкните по пункту списка Main diagram (Главная диаграмма) в браузере, чтобы открыть диаграмму.
2. Выберите нужный пакет в списке, щелкнув по нему мышью.
3. Перетащите пакет на диаграмму.
.4. Аналогичным образом перетащите на диаграмму другие пакеты.
Этапы создания главной диаграммы классов пакета в программе Rational Rose (рисунок 3.6):
1. Дважды щелкните по изображению пакета на диаграмме классов.
2. Пакет откроется, и появится главная диаграмма классов.
3. Выберите нужный класс в списке браузера и перетащите его на диаграмму с помощью мыши. Для отображения стереотипа класса на диаграмме можно воспользоваться командой меню Format Stereotype display (Формат Показать стереотип).
4. Повторите предыдущий шаг для других классов, которые вы хотите поместить на диаграмму.
Настройка видимости классов по умолчанию:
1. Выберите команду меню Tools Option (Сервис Параметры).
2. Щелкните по вкладке Diagram (Диаграмма).
3. Установите флажок Show Visibility (Показать видимость) для отображения по умолчанию всех классов.
Установка видимости для выбранного класса:
1. Щелкните правой кнопкой мыши по одному из классов на диаграмме.
2. В появившемся контекстно-зависимом меню выберите команду Option Show Visibility (Параметры Показать видимость).
Рисунок 3.6 – Диаграмма пакетов