- •Создание диаграммы классов для сценария «Добавить новый учебный материал» прецедента «Управление учебным контентом»
- •Создание диаграммы классов для сценария «Пройти тест по теме» прецедента «Оценка знаний обучающегося»
- •Построение диаграммы объектов для сценария «Добавить новый учебный материал».
- •Построение диаграммы пакетов
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Лабораторная работа №4
«Методология объектно-ориентированного моделирования (диаграмма классов, диаграмма объектов, диаграмма пакетов)»
Выполнил: ст. гр. ИСТ-223 Хакова Ю. М.
Проверил: ст. пр. Косов П. В.
Цель работы: получить навыки построения диаграмм.
Постановка задачи: выделить два ключевых сценария функционирования информационной системы для изучения межславянского языка, создать для них диаграммы классов, описать сущности, их атрибуты и методы, объединить классы в логические пакеты и для одного сценария — построить диаграмму объектов.
Сценарии: Добавление нового учебного материала, прохождение теста.
Создание диаграммы классов для сценария «Добавить новый учебный материал» прецедента «Управление учебным контентом»
Рассматриваемый сценарий состоит из:
Самого учебного материала, который необходимо добавить;
Разработчика, который создаёт и редактирует материалы;
Тематики, к которой относится материал;
Вложений, прикреплённых к учебному материалу (например, PDF-файл или аудиозапись).
Создаются такие классы-сущности, как: ContentManager (разработчик), LearningMaterial (учебный материал), Topic (тема), MediaAttachment (вложение). Один разработчик может создавать несколько материалов, один материал относится к одной теме и может иметь несколько вложений. Опишем каждый класс, результаты описания представлены в таблицах 1-4.
Таблица 1 – Класс ContentManager
Параметр |
Значение |
Комментарий |
Класс, представляющий собой разработчика приложения, добавляющего учебный материал |
Атрибуты |
name: String – имя id: int – идентификатор разработчика email: String – адрес электронной почты Все атрибуты имеют модификатор доступа – private |
Операции |
createMaterial() – создать учебный материал editMaterial() – редактировать материал deleteMaterial() – удалить материал Все операции имеют модификатор доступа – public |
Таблица 2 – Класс LearningMaterial
Параметр |
Значение |
Комментарий |
Класс, представляющий собой учебные материалы (упражнения, тесты, аудио и т. д.) |
Атрибуты |
type: String – тип материала (аудирование, чтение, говорение, письмо) materialID: int – идентификатор учебного материала content: String – текстовое содержание учебного материала topic: String – тема, к которой относится учебный материал Все атрибуты имеют модификатор доступа – private |
Операции |
attachMedia() – прикрепить вложение publish() – опубликовать материал archive() – отправить в архив Все операции имеют модификатор доступа – public |
Таблица 3 – Класс Topic
Параметр |
Значение |
Комментарий |
Класс, представляющий собой тему или раздел учебной программы |
Атрибуты |
topicName: String – название темы или раздела topicID: int – идентификатор темы или раздела description: String – описание темы Все атрибуты имеют модификатор доступа – private |
Операции |
addMaterial() – добавить материал в тему getAllMaterials() – получить список всех материалов по теме Все операции имеют модификатор доступа – public |
Таблица 4 – Класс MediaAttachment
Параметр |
Значение |
Комментарий |
Класс, представляющий вложение к учебному материалу (PDF-файл, аудио, медиа и т. д.) |
Атрибуты |
mediaName: String – название вложения mediaID: int – идентификатор вложения mediaType: String – тип вложения mediaSize: float – размер вложения Все атрибуты имеют модификатор доступа – private |
Операции |
download() – загрузить файл preview() – предпросмотр Все операции имеют модификатор доступа – public |
Добавим отношения между классами (рис. 1).
Класс ContentManager и LearningMaterial — отношение ассоциации, поскольку разработчик создаёт учебный материал, но сам не является его частью. Один разработчик может создать несколько материалов, каждый материал создаётся только одним разработчиком. Кратность связи со стороны ContentManager — 1, со стороны LearningMaterial — 1..n.
Класс LearningMaterial и Topic — отношение агрегации, поскольку тема объединяет учебные материалы по смыслу, но может существовать и без них. Один учебный материал относится к одной теме, одна тема может включать множество материалов. Кратность связи со стороны Topic — 1, со стороны LearningMaterial — 1..n.
Класс LearningMaterial и MediaAttachment — отношение композиции, поскольку вложение является частью учебного материала и не может существовать без него. Один материал может иметь несколько вложений, каждое вложение принадлежит только одному материалу. Кратность связи со стороны LearningMaterial — 1, со стороны MediaAttachment — 1..n.
Рисунок 1 – классы-сущности и отношения между ними
