Файл: Отчёт по практическому занятию 4 по дисциплине Анализ и концептуальное моделирование систем Вы по лн ил ст уд ен тг ру пп ыикборабота выполнена 2023 г Зачтено 2023 г. Москва 2023Цель практической работы.pdf
Добавлен: 04.02.2024
Просмотров: 34
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Институт Информационных Технологий
Кафедра практической и прикладной информатики (ППИ)
Отчёт
по практическому занятию № 4 по дисциплине «Анализ и концептуальное моделирование систем»
В
ы п
о л
н и
л с
т у
д е
н т
г р
у п
п ы
И
К
Б
О
-
Работа выполнена «__» _______2023 г
«Зачтено»
«__» _______2023 г.
Москва 2023
Цель практической работы
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования
«МИРЭА - Российский технологический университет»
РТУ МИРЭА
2
Целью данной практической работы является получение знаний по детальному предоставлению внутренней структуры системы (программы) в виде низкоуровневых классов и связи между ними.
3
Выполнение практической работы
Шаг 1:
За основу построения диаграммы классов возьмём диаграмму вариантов использования.
Шаг 2:
Наметим основные классы:
- Класс оператора – Operator;
- Класс сотрудника по ликвидации аварийной ситуации – EROfficer
(Emergency Response Officer);
- Класс аварийной ситуации – EmergencySituation;
- Класс социальной сети – SocialNetwork;
- Класс сайта с информацией – InfoWebsite;
- Класс электронной почты – EMail;
- Класс сотрудника по информированию по оказываемым услугам -
CommunityManager;
- Класс сотрудника по работе с информационным сайтом и актуализации информации на нём – WebWorker;
- Класс сотрудника по обработке отзывов – RewievsWorker.
Шаг 3:
Теперь изобразим данные классы на диаграмме, задав им пока только имена.
Рисунок 1 – Имена используемых классов
Шаг 4:
4
Определим атрибуты для классов.
Рисунок 2 – Определение атрибутов классов
Шаг 5:
Добавим операции/методы классов.
Рисунок 3 – Добавление методов
5
Шаг 6:
Отобразим связи между классами.
Рисунок 4 – Связи между классами
6
Шаг 7:
Создадим итоговую диаграмму с указанием кратностей.
Рисунок 5 – Диаграмма с указанием кратностей
Шаг 8:
7
Проанализируем и сделаем выводы по ней. Мы создали диаграмму классов детального уровня. Для этого определили сем классов для построения диаграммы:
Operator,
EmergencySituation,
EROfficer,
Email,
CommunityManager, SocialNetwork, WebWorker, InfoWebsite, ReviewWorker.
Для всех классов добавили атрибуты и описали методы, установили отношения между классами и указали кратность.
Анализ результатов. Создадим таблицу для анализа диаграммы.
Таблица 1. Описание классов диаграммы
Название класса
Описание
Operator
Класс для обработки запросов на ликвидацию аварийных ситуаций
EmergencySituation
Класс для описания типа и адреса аварийной ситуации
EROfficer
Класс, описывающий сотрудников для ликвидации различного типа аварийных ситуаций
Класс для описания электронной почты организации
SocialNetwork
Класс для описания социальной сети организации
InfoWebsite
Класс для описания сайта организации с информацией и возможностью оставить отзыв
CommunityManager
Класс для описания сотрудников по информированию пользователей в социальных сетях и на электронной почте
WebWorker
Класс для описания сотрудников, проверяющих сайт организации и добавляющих на него актуальную информацию
ReviewWorker
Класс для описания сотрудников, обрабатывающих отзывы в социальных сетях и на сайте организации
8
Таблица 2. Взаимодействие между классами
Класс
Кратность
Тип
отношения
Класс
Operator
Один к одному Ассоциация
EmergencySituation
EmergencySituation Один к многим Ассоциация
EROfficer
Многие к многим
Ассоциация
CommunityManager
SocialNetwork
Многие к многим
Ассоциация
CommunityManager
SocialNetwork
Многие к многим
Ассоциация
ReviewWorker
WebWorker
Один к многим Ассоциация
InfoWebsite
InfoWebsite
Один к многим Ассоциация
ReviewWorker
9
Вывод
По итогам выполнения данной практической работы были получены знания по детальному предоставлению внутренней структуры системы
(программы) в виде низкоуровневых классов и связи между ними.
10
Ответы на контрольные вопросы
1.
Чем отличается класс уровня проектирования от класса уровня реализации?
Уровень проектирования отражает основные проектные решения касательно распределения информации и планируемой функциональности, объединяя в себе сведения о состоянии и операциях (элементы программной системы). Уровень реализации дорабатывается до такого вида, в каком он максимально удобен для воплощения в выбранной среде разработки, при этом не воспрещается опустить в нём те общие свойства, которые не применяются на выбранном языке программирования (элементы программной системы).
2.
Опишите характеристики секции имени класса.
Обязательным элементом обозначения класса на диаграмме является его имя. Оно должно быть уникальным в пределах пакета. Если класс является абстрактным, то его имя пишется курсивом.
3.
Что собой представляет атрибут класса.
Атрибут — это свойство класса, которое может принимать множество значений. Множество допустимых значений атрибута образует домен.
Атрибут имеет имя и отражает некоторое свойство моделируемой сущности, общее для всех объектов данного класса.
4.
Опишите характеристики спецификации атрибута.
Атрибуты содержат огромный набор спецификаций (набор параметров, которыми характеризуются сами атрибуты). Для атрибута обязательным является наличие имени, все остальные спецификации являются дополнительными, то есть вариативными
(например, видимость, производность, кратность, тип данных и т.д.).
5.
Чем отличается абстрактный класс от статического класса?
Абстрактный класс – это класс, на основе которого нельзя создать объекты. Такие классы используются в качестве шаблона для дочерних классов при наследовании. Имя абстрактного класса пишется курсивом.
Статический класс - это класс, в котором есть только статические поля и
11 методы и на основе которого не создаются объекты. Чтобы показать на диаграмме, что наш класс статический, нужно добавить к имени модификатор
«utility». Это значит, что объекты этого класса не создаются.
6.
Опишите набор спецификаций атрибута.
Атрибуты могут содержать огромный набор спецификаций (набор параметров, которыми характеризуются сами атрибуты) в отдельной строке:
[видимость] [/] имя [: тип [‘[‘кратность‘]‘] [ = исходное значение]]
[‘{‘модификаторы’}’].
7.
Что представляет собой видимость атрибута?
Видимость (англ. visibility) указывает на то, что атрибут может быть прочитан или изменен с помощью объектов других классов. Причем, изменить можно только в том случае, если атрибут константой не является.
8.
Что собой представляет тип атрибута?
Тип атрибута выбирается исходя из семантики значений, которые должны храниться в атрибуте, и, как правило, возможностей целевого языка программирования по представлению этих значений.
9.
Что собой представляет кратность (множественность)?
Кратность атрибута характеризует количество значений, которые можно хранить в атрибуте.
10.
Перечислите варианты указания кратности
Рисунок 6 – Варианты указания кратности
12 11.
Что собой представляет модификатор?
Модификатор описывает особенности реализации атрибута.
12.
Что собой представляет операция/методы класса?
Операция/методы — реализация функции, которую можно запросить у любого объекта класса. Операция показывает, что можно сделать с объектом.
Исполнение операции часто связано с обработкой и изменением значений атрибутов объекта, а также изменением состояния объекта.
13.
Опишите характеристики секции методов класса.
Имя и кратность параметра задаются по тем же правилам, что и для атрибутов класса. Тип параметра – тип значений, которые может принимать параметр. Значение по умолчанию – значение, которое передается в метод, если при вызове метода данный параметр не определен.
14.
Опишите набор спецификации методов.
Свойства служат для указания специфических свойств метода:
– {native} – реализация метода зависит от платформы (операционной системы);
- {abstract} – метод в описываемом классе не имеет тела. Код метода должен быть определен в дочерних классах;
- {sequential} – метод допускает только последовательный вызов.
Парралельный вызов операции может вызвать сбой программы;
- {guarded} – метод автоматически блокируется (ждет очереди) до завершения других вызовов (экземпляров) метода;
- {concurrent} – допускается параллельное (одновременное) выполнение нескольких вызовов (экземпляров) метода;
- {query} – метод не меняет состояние системы. Как правило, в языках программирования имена таких методов начинаются на get или is;
- {redefines } – метод переопределяет (заменяет) метод родительского класса.
13 15. Что собой представляет тип параметра?
Выбирается исходя из семантики значений, которые должны храниться в атрибуте, и, как правило, возможностей целевого языка программирования по представлению этих значений. o тип соответствует одному из стандартных типов, определенных в этом языке (например, String, Boolean, Integer, Color и т.д.) или имени класса, на объект которого в этом атрибуте будет храниться ссылка (в этом случае класс, имя которого указано в качестве типа, должен быть определен на диаграмме или в модели).
16.
Что собой представляет тип метода?
Тип метода – тип результата, возвращаемого методом. Если тип не указан, то метод не возвращает никакого результата (в языках программирования такие методы, как правило, обозначаются модификатором void).
17.
Чем отличается тип параметра от типа метода?
Тип параметра указывает на то, какое значение будет хранить данный параметр, а тип метода – тип значения, которое будет возвращать метод.
18.
О чём могут сказать свойства метода?
Свойства служат для указания специфических свойств метода.
19.
Перечислите основные виды операций.
Основные виды операций:
- Конструктор;
- Деструктор;
- Модификатор;
- Селектор;
- Итератор;
- Событие.
20. Опишите алгоритм создания диаграмм классов уровня проектирования/реализации.
Шаг 1. Выбрать свой вариант задания из представленных в учебных вариантах. За основу взять диаграмму классов анализа, созданную на основе
14 вариантов использования, а также, если есть возможность, использовать 54 созданные на предыдущих практических работах другие диаграммы. Это позволит точнее описать классы.
Шаг 2. Наметить основные классы, детально спроектировав укрупненные абстракции классов анализа и уточнив описание варианта использования в части, относящейся к внутреннему строению системы.
Шаг 3. Изобразить классы на диаграмме, задав пока только имена классов.
Шаг 4. Определить и изобразить виды классов (абстрактные, статические и др.) диаграмме.
Шаг 5. Определить (описать) атрибуты классов.
Шаг 6. Добавить операции/методы класса.
Шаг 7. Отобразить связи между классами (можно указать кратность).
Шаг 8. Создать итоговую диаграмму и сохранить ее.
Шаг 9. Проанализировать созданную диаграмму и сделать выводы по ней.