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