Лабораторная работа №4
Типа отношений
Пример
Задание
2.11M
Category: programmingprogramming

Лаб4

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

Анализ взаимодействий между классами
анализа, выявление подсистем и их
компонентов и интерфейсов

2.

Диаграмма
классов

это
способ
визуализировать
структуру
программного обеспечения.

3.

Диаграмма классов анализа помогает моделировать систему на ранних этапах
разработки, фокусируясь на ключевых элементах: классах и их взаимодействиях.
Она не фокусируется на деталях реализации (как код или базы данных), а помогает
понять, как система взаимодействует с внешним миром и обрабатывает данные.
Позволяет выявить ключевые классы, их роли и связи на основе вариантов использования
(use cases)

4.


Граничный класс (Boundary): Представляет интерфейс между системой и внешним миром
(пользователями, другими системами). Это "граница" системы — UI-элементы, формы, API.
Использование: Когда класс взаимодействует с акторами (пользователями) или внешними
устройствами.
Boundary фокусируется на вводе/выводе. Если класс хранит данные — это Entity; если управляет
процессом — Control.
• Управляющий класс (Control): отвечает за координацию, взаимодействие и управление другими
объектами, выполняет сложные вычисления, управляет безопасностью, транзакциями и т. п.
Отвечает за взаимодействие между boundary и entity.
Использование: Для классов, которые обрабатывают бизнес-логику, проверяют условия,
вызывают методы других классов.
Control не хранит данные и не взаимодействует напрямую с пользователем
• Класс сущности (Entity): используется для моделирования долгоживущей, нередко сохраняемой
информации.
Использование: Классы сущности являются абстракциями основных понятий
предметной
области – людей, объектов, документов и т. д., как правило, хранимых
в
табличном или
ином виде.

5. Типа отношений

Ассоциация (Association): показывает, что один знает о другом (может вызывать методы).
Использование: Когда классы сотрудничают постоянно (например, Control использует Entity для
доступа к данным).
Ассоциация подразумевает долгосрочную связь. Если связь временная — используйте
зависимость.
Агрегация/композиция для дизайна (детали владения объектами).

6.

7.

Зависимость (Dependency): показывает временную зависимость (например, один класс использует
другой в методе).
Использование: Когда связь слабая, не постоянная (например, Boundary зависит от Control только во
время вызова).
Пример: Корзина (Boundary) зависит от Процесс оплаты (Control) только при оплате.
Не используйте обобщение, если нет наследования.

8.

•Boundary обычно соединяется с Control (пользователь → логика).
•Control соединяется с Entity (логика → данные).
•Избегайте прямых связей Boundary-Entity: это нарушает принцип
(интерфейс не должен знать о данных напрямую).

9.

10.

11.

12.

13. Пример

Актор: Клиент банка
Действия:
• Клиент вставляет карту и вводит PIN.
• Система проверяет PIN.
• Клиент выбирает сумму.
• Система проверяет баланс и наличие денег в банкомате.
• Деньги выдаются, карта возвращается.
• Распечатывается чек (по желанию).

14.

Класс
Описание
ATMInterface
<<boundary>>
Это экран банкомата — точка взаимодействия с
пользователем.
CardReader
<<boundary>>
Устройство чтения карты — тоже граница
системы.
AuthenticationControll Управляет проверкой PIN и аутентификацией.
er
<<control>>
WithdrawalController Управляет логикой снятия: проверка баланса,
<<control>>
выдача денег.
Account
<<entity>>
Хранит данные клиента: баланс, номер счёта.
CashDispenser
<<boundary>>
Устройство выдачи наличных — внешний
интерфейс.
ReceiptPrinter
<<boundary>>
Печатает чек — тоже граница.

15.

1. Клиент вставляет карту: CardReader (boundary) → AuthenticationController (control)
(зависимость: разовое чтение)
2. Ввод PIN на экране: ATMInterface → AuthenticationController → Account
(ассоциация: постоянная работа с данными)
3. Выбор суммы: ATMInterface → WithdrawalController
4. Проверка баланса: WithdrawalController → Account (ассоциация)
5. Выдача денег: WithdrawalController → CashDispenser (зависимость: одно действие)
6. Печать чека: WithdrawalController → ReceiptPrinter (зависимость: опционально)

16.

1. Клиент вставляет карту: CardReader (boundary) → AuthenticationController (control)
(зависимость: разовое чтение)
2. Ввод PIN на экране: ATMInterface → AuthenticationController → Account
(ассоциация: постоянная работа с данными)
3. Выбор суммы: ATMInterface → WithdrawalController
4. Проверка баланса: WithdrawalController → Account (ассоциация)
5. Выдача денег: WithdrawalController → CashDispenser (зависимость: одно действие)
6. Печать чека: WithdrawalController → ReceiptPrinter (зависимость: опционально)

17. Задание

Построить диаграмму классов анализа
использую свою диаграмму вариантов
использования.
English     Русский Rules