Скачиваний:
0
Добавлен:
07.06.2026
Размер:
1.15 Mб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Лабораторная работа №4

«Методология объектно-ориентированного моделирования (диаграмма классов, диаграмма объектов, диаграмма пакетов)»

Выполнил: ст. гр. ИСТ-223 Хакова Ю. М.

Проверил: ст. пр. Косов П. В.

Цель работы: получить навыки построения диаграмм.

Постановка задачи: выделить два ключевых сценария функционирования информационной системы для изучения межславянского языка, создать для них диаграммы классов, описать сущности, их атрибуты и методы, объединить классы в логические пакеты и для одного сценария — построить диаграмму объектов.

Сценарии: Добавление нового учебного материала, прохождение теста.

  1. Создание диаграммы классов для сценария «Добавить новый учебный материал» прецедента «Управление учебным контентом»

Рассматриваемый сценарий состоит из:

  1. Самого учебного материала, который необходимо добавить;

  2. Разработчика, который создаёт и редактирует материалы;

  3. Тематики, к которой относится материал;

  4. Вложений, прикреплённых к учебному материалу (например, 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 – классы-сущности и отношения между ними