Похожие презентации:
Лаб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. Задание
Построить диаграмму классов анализаиспользую свою диаграмму вариантов
использования.
Программирование