5) Убедилась, что переключатель Show Operation Signatures помечен.
6) Убедилась, что переключатели Show All Attributes и Show All Operations помечены.
7) Убедилась, что переключатели Suppress Attributes и Suppress Operations не помечены.
8) Перешла на вкладку Notation.17
9) Убедилась, что переключатель Visibility as Icons не помечен.
Добавление нового класса:
1) Нашла в браузере диаграмму Классов варианта использования "ввод новой книги".
2) Щелкнула на ней дважды, чтобы ее открыть.
3) Нажала кнопку Class панели инструментов.
4) Щелкнула мышью внутри диаграммы, чтобы поместить там новый класс.
5) Назвала его Ekzemplar (Экземпляр).
6) Назначила этому классу стереотип Entity.
7) В браузере перетащила класс в пакет Entities.
Добавление атрибутов:
1) Щелкнула правой кнопкой мыши на классе n_izd (номер издания).
2) В открывшемся меню выбрала пункт New Attribute (Создать атрибут).
3) Ввела новый атрибут n_izd: Integer (номер издания). Нажала клавишу Enter.
4) Ввела следующий атрибут kol_ekz: integer (количество экземпляров).
5) Повторила этапы 3 и 5, добавив атрибуты Avtor_naz (автор и название книги), Izdat (издательство), God_izd (год издания), Data_postup (дата поступлния), Kol_str (количество страниц), Otdel (отдел), Znak_avtora (знак автора), Cena (цена), Ot_kogo (на чьи средства приобретена книга).
6) Щелкнула правой кнопкой мыши на классе ekzemplar (экземпляр).
7) В открывшемся меню выбрала пункт New Attribute (Создать атрибут).
8) Ввела новый атрибут n_inventar: Integer (инвентарный номер). Нажала клавишу Enter.
9) Ввела следующий атрибут data_spis: date (дата списания).
10) Повторила этапы 9 и 11, добавив атрибуты N_izd (номер издания), Prichina (причина списания), N_ab (номер абонента), Data_vydachi (дата выдачи), N_akta (номер акта списания).
Добавление операций к классу ekzemplar:
1) Щелкнула правой кнопкой мыши на классе ekzemplar.
2) В открывшемся меню выбрала пункт New Operation (Создать операцию).
3) Ввела новую операцию Create. Нажала клавишу Enter.
4) Ввела следующую операцию SetInfo. Нажала клавишу Enter.
5) Ввела следующую операцию GetInfo. Нажала клавишу Enter.
Подробное описание операций с помощью диаграммы Классов:
1) Щелкнула мышью на классе number_izd, выделив его таким способом.
2) Щелкнула на этом классе еще один раз, чтобы переместить курсор внутрь.
3) Отредактировала операцию Create(), чтобы она выглядела следующим образом: Create() : Boolean
4) Отредактировала операцию SetInfo(), чтобы она выглядела следующим образом: SetInfo(n_izd :Integer, Avtor_naz: string, Izdat: string, God_izd: string, Data_postup: date, Kol_ekz: integer, Kol_str: string, Otdel: string, Znak_avtora: string, Cena: byte, Ot_kogo: string) : Boolean
5) Отредактировала операцию GetInfo(), чтобы она выглядела следующим образом: GetInfo() : String.
6) Повторила соответствующие действия с остальными операциями.
Добавление связей связи к классам, принимающим участие в варианте использования "Ввод новой книги":
Этапы выполнения:
Настройка:
1) Нашла в браузере диаграмму Классов "Ввод новой книги"
2) Дважды щелкнула на ней, чтобы открыть ее.
3) Проверила, имеется ли на панели инструментов диаграммы кнопка Unidirectional Association.
Добавление ассоциаций:
1) Нажала кнопку панели инструментов Unidirectional Association.
2) Нарисовала ассоциацию от класса воод книги (ins_book) к классу номер издания (n_izd).
3) Повторила этапы 1 и 2, создав еще ассоциации: от класса n_izd к классу экземпляр (ekzemplar)
4) Щелкнула правой кнопкой мыши на однонаправленной ассоциации между классами ins_book и number_izd, со стороны класса ins_book.
4) В открывшемся меню выбрала пункт Multiplicity > Zero or One.
5) Щелкнула правой кнопкой мыши на другом конце однонаправленной ассоциации.
6) В открывшемся меню выбрала пункт Multiplicity > Zero or One.
Повторила этапы 4 - 7, добавив на диаграмму значения множественности для остальных ассоциаций.
Вывод: Система состоит из большого количества классов и объектов. Ее поведение обеспечивается взаимодействием объектов. Два типа отношений, которые можно выделить на этапе анализа, - это ассоциация и агрегация.
В результате выполнения этапов были добавлены атрибуты и операции к классам диаграммы Классов "ввод новой книги". Для атрибутов и операций использованы специфические для языка особенности.
7 Создание диаграммы состояний и диаграммы компонентов
7.1 Создание диаграммы состояний
Диаграммы состояний определяют все возможные состояния, в которых может находиться конкретный объект, а также процесс смены состояний объекта в результате наступления некоторых событий.
На диаграмме имеются два специальных состояния - начальное (start) и конечное (stop). Начальное состояние выделено черной точкой, оно соответствует состоянию объекта, когда он только что был создан. Конечное состояние обозначается черной точкой в белом кружке, оно соответствует состоянию объекта непосредственно перед его уничтожением. На диаграмме состояний может быть одно и только одно начальное состояние.
Для того чтобы построить диаграмму состояний, ее вначале необходимо создать и активизировать.
Создание диаграммы состояний: нашла в браузере класс ekzemplar. Щелкнула на классе правой кнопкой мыши и в открывшемся меню указала пункт New > Statechart Diagram.
Добавление начального и конечного состояний:
1) На панели инструментов нажала кнопку Start State (Начальное состояние). Поместила это состояние на диаграмму.
2) На панели инструментов нажала кнопку End State (Конечное состояние). Поместила это состояние на диаграмму.
Добавление суперсостояния: на панели инструментов нажала кнопку State (Состояние). Поместила это состояние на диаграмму, назвала его Initialization (Инициализация). Поместила еще одно суперсостояние и назвала его Filled (Выполнен).
Подробное описание состояний:
1) Дважды щелкнула на состоянии Initialization (Инициализация).
2) Щелкнула правой кнопкой мыши на окне Actions (Действия).
3) В открывшемся меню выберала пункт Insert (Вставить).
4) Дважды щелкнула мышью на новом действии.
5) Назвала его Store Come Date (Сохранить дату поступления).
6) Убедилась, что в окне When (Когда) указан пункт On Entry (На входе).
7) Повторила этапы 3-6, добавив следующие действия: Collect Info (Собрать информацию из накладной и из книги), в окне When указала пункт Do. Add Items (Добавить к екземпляру новые графы), в окне When указала Do.
8) Нажала на кнопки ОК два раза, чтобы закрыть спецификацию.
9) Дважды щелкнула на состоянии Filled (Выполнен).
10) Повторила этапы 2 - 7, добавив действие Print kat kart (напечатать каталожную карточку), указала пункт Do.
Добавление переходов:
1) На панели инструментов нажала кнопку Transition (Переход). Щелкнула мышью на начальном состоянии. Провела линию перехода к состоянию Initialization (Инициализация).
2) Повторила те же действия, создав следующие переходы: от состояния Initialization (Инициализация) к состоянию Filled (Выполнен).
3) От состояния Filled (Выполнен) к конечному состоянию.
Подробное описание переходов:
1) Дважды щелкнула на переходе от состояния Initialization (Инициализация) к состоянию Filled (Выполнен), открыв окно его спецификации.
2) В поле Event (Событие) ввела фразу Add Item (Добавить к заказу новую позицию).
3) Перешла на вкладку Detail (Подробно). В поле Condition (Условие) ввела No unfilled items remaining (Не осталось незаполненных позиций).
Результат выполнения этапов по созданию диаграммы состояний представлен на рисунке 8.
Рисунок 8. Диаграмма состояний
7.2 Создание диаграммы компонентов
Диаграммы компонентов показывают, как выглядит модель на физическом уровне. На них изображены компоненты программного обеспечения и связи между ними.
Этапы выполнения создания диаграммы компонентов:
1) Создание пакетов компонентов: щелкнула правой кнопкой мыши на представлении компонентов в браузере. В открывшемся меню выбрала пункт New > Package (Создать > пакет). Назвала этот пакет Entities (Сущности). Так же создала пакет Boundaries (Границы).
2) Добавление пакетов на Главную диаграмму Компонентов: открыла Главную диаграмму Компонентов, дважды щелкнув на ней. Перетащила пакеты Entities и Boundary из браузера на Главную диаграмму.
3) Рисование зависимостей между пакетами: на панели инструментов нажала кнопку Dependency (Зависимость). Щелкнула мышью на упаковке Boundaries Главной диаграммы Компонентов. Провела линию зависимости до упаковки Entities. Результат добавления пакетов и рисования зависимостей между пакетами на главной диаграмме пакетов представлен на рисунке 9.
Рисунок 9. Главная диаграмма компонентов системы
4) Добавление компонентов к пакетам и рисование зависимостей: дважды щелкнула мышью на пакете Entities Главной диаграммы Компонентов, открыв Главную диаграмму Компонентов этого пакета. На панели инструментов нажала кнопку Package Specification (Спецификация пакета). Поместила спецификацию пакета на диаграмму. Ввела имя спецификации пакета number_izd. Так же добавила спецификацию пакета ekzemplar. На панели инструментов нажала кнопку Package Body (Тело пакета). Поместила его на диаграмму. Ввела имя тела пакета number_izd. Так же добавила тело пакета ekzemplar. На панели инструментов нажала кнопку Dependency (Зависимость). Щелкнула мышью на теле пакета number_izd. Провела линию зависимости от него к спецификации пакета number_izd. Так же добавила линию зависимости между телом пакета ekzemplar и спецификацией пакета ekzemplar. Результат добавления компонентов к пакету Entities представлен на рисунке 10.
Рисунок 10. Диаграмма Компонентов пакета Entities
С помощью описанного метода создала следующие компоненты и зависимости для пакета Boundaries: Спецификацию пакета ins_book тело пакета ins_book. Результат добавления компонентов к пакету Boundaries представлен на рисунке 11.
Рисунок 11. Диаграмма Компонентов пакета Boundaries
5) Создание диаграммы Компонентов системы: щелкнула правой кнопкой мыши на представлении Компонентов в браузере. В открывшемся меню выбрала пункт New > Component Diagram. Назвала новую диаграмму System. Дважды щелкните на этой диаграмме.