Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Деталізація діаграми прецедентів





Після (або під час) деталізації прецедентів можна розширити діаграму прецедентів додатковими зв’язками: узагальнення акторів та прецедентів, залежностями між прецедентами.

Узагальнення на діаграмі прецедентів

Відношення узагальнення позначається стрілкою, яка вказує на базовий класифікатор. Семантика відношення узагальнення полягає в тому, що один класифікатор (базовий) є більш загальним по відношенню до іншого (дочірнього або нащадка). Класифікатори нащадки описують специфічні різновиди батьківського класифікатора. Між двома калсифікаторами слід встановити відношення узагальнення, якщо між відповідними поняттями предметної області наявне відношення «Є».

Розглянемо приклад. Птах є твариною. Птах є більш специфічним різновидом тварин, що пересуваються на двох ногах, а їхні передні кінцівки перетворилися на крила. Характерними рисами птахів, що відрізняють їх від інших тварин, є наявність пір'я, дзьоба, позбавленого зубів, відкладання яєць з міцними оболонками, тощо. Таким чином, між класифікаторами птах та тварина можна встановити відношення узагальнення, де птах буде нащадком, а тварина – батьквіським класифікатором.

В програмуванні узагальнення часто використовується для повторного використання коду. Адже нащадки наслідують батьківський код, що дає можливість використовувати його функціональні можливості без необхідності копіювання існуючого коду.

Відношення узагальнення може бути встановлене лише між класифікаторами одного виду, наприклад: між двома класами, між двома акторами, між двома прецедентами,...

Узагальнення акторів

Між двома акторами можна встановити відношення узагальнення, якщо між ними в предметній області наявне відношення «Є».

Розглянемо наступну систему. Секретар розміщує на сервері меню обідніх блюд на тиждень. Співробітники повинні мати можливість ознайомитися з меню і зробити замовлення, вибравши страви на кожний день наступного тижня. Офіс-менеджер повинен мати можливість сформувати рахунок і сплатити його.

В даній системі і секретар, і офіс-менеджер є співробітниками цього самого офісу. Отже між ними слід встановити відношення узагальнення (Рисунок 4.1).

Рисунок 4.1

Після встановлення такого відношення немає необхідності вказувати, що і Секретар, і Офіс-менеджер можуть ознайомитися з меню і зробити замовлення (Рисунок 4.2), достатньо вказати, що це може зробити Співробітник (Рисунок 4.3). Актори-нащадки наслідують від батьківського актора усі його асоціації.

Рисунок 4.2 Багато асоціацій без використання узагальнення

Рисунок 4.3

Узагальнення можна також використовувати для спрощення діаграми прецедентів, якщо кілька акторів мають схожу поведінку. Це здійснюється шляхом створення нового абстрактного актора, який буде відображати ту частину поведінки акторів, що є однаковою для них.

Наприклад, в системі чат існують актори: Адміністратор, Користувач, Модератор, Привілейований користувач. Всі вони повинні авторизуватися, щоб увійти в систему. Це можна позначити чотирма асоціаціями, а можна створити абстрактного актора Вхідник (якому не відповідає жодне поняття предметної області), що буде мати зв’язок асоціації з прецедентом Авторизація, і наслідувати інших акторів від нього (Рисунок 4.4). Назви абстрактних класифікаторів прийнято позначати курсивом.

Рисунок 4.4

Узагальнення прецедентів

Узагальнення прецедентів виносить поведінку, загальну для одного або більше прецедентів, в батьківський прецедент. В узагальненні прецедентів дочірні прецеденти представляють більш спеціалізовані форми їхніх батьків. Нащадки можуть:

• успадковувати можливості батьківського прецеденту;

• вводити нові можливості;

• перевизначати (змінювати) успадковані можливості.

Дочірній прецедент автоматично успадковує всі можливості свого предка. Зверніть увагу, відношення та точки розширення прецедента не можуть бути перевизначені.

Стандарту документування узагальнення прецедентів не існує, проте часто при цьому описують основний потік прецедента нащадка за наступними правилами:

1. Кожний номер кроку в нащадку супроводжується номером кроку відповідного батьківського прецеденту.

2. Якщо крок нащадка перевизначає крок батька, його номер супроводжується літерою «о» (overridden).

Наприклад, в системі Чат Користувач може опублікувати повідомлення двома способами: публічно та приватно. Отже прецедент «Публікація повідомлення» зробимо узагальненим (батьківським), а прецеденти «Публічна публікація повідомлення» та «Приватна публікація повідомлення» – нащадками (Рисунок 4.5).

Рисунок 4.5 – Узагальнення прецедентів

Специфікація (опис) цих прецедентів буде наступною.

Use case Публікація повідомлення Публічна публікація повідомлення Приватна публікація повідомлення
Pre-Condition 1. Користувач авторизований 2. Вміст поточного повідомлення готовий 1 (1). Користувач авторизований 2 (2). Вміст поточного повідомлення готовий 1 (1). Користувач авторизований 2 (2). Вміст поточного повідомлення готовий
Action steps 1. Прецедент починається, коли користувач обирає опцію опублікувати повіомлення. 2. Система зчитує вміст поточного повідомлення. 3. Система відображає вміст поточного повідомлення. 4. Система очищує вміст поточного повідомлення. 1 (1о). Прецедент починається, коли користувач обирає опцію опублікувати повіомлення публічно. 2 (2). Система зчитує вміст поточного повідомлення. 3. Система перевіряє цензурність поточного повідомлення. 4. Якщо поточне повідомлення цензурне, то 4.1 (3о). Система відображає вміст поточного повідомлення в загальному вікні чату. 4.2 (4). Система очищує вміст поточного повідомлення. 5. Інакше 5.1. Система повідомляє про неможливість публікації нецензурних повідомлень. 1 (1а). Прецедент починається, коли користувач обирає опцію опублікувати приватне повіомлення. 2. Система надає можливість обрати приймача повідомлення з тих, хто в Чаті в даний момент. 3. Користувач обирає приймача повідомлення. 4 (2). Система зчитує вміст поточного повідомлення. 5 (3о). Система відображає вміст поточного повідомлення у вікні приватних повідомлень Користувача-приймача від Користувача-відправника. 6 (4). Система очищує вміст поточного повідомлення.  
Exceptions 3-4а. Якщо вміст поточного повідомлення не може бути відображений, поточне повідомлення не очищується. 1. Альтернативний потік починається, коли вміст поточного повідомлення не може бути відображений системою. 2. Система видає повідомлення про відповідну помилку. 3. Система пропонує Користувачу змінити поточне повідомлення. 4.1-4.2а(3-4а). Якщо вміст поточного повідомлення не може бути відображений, поточне повідомлення не очищується. 1 (1). Альтернативний потік починається, коли вміст поточного повідомлення не може бути відображений системою. 2 (2). Система видає повідомлення про відповідну помилку. 3 (3). Система пропонує Користувачу змінити поточне повідомлення. 5-6а (3-4а). Якщо вміст поточного повідомлення не може бути відображений, поточне повідомлення не очищується. 1 (1). Альтернативний потік починається, коли вміст поточного повідомлення не може бути відображений системою. 2 (2). Система видає повідомлення про відповідну помилку. 3 (3). Система пропонує Користувачу змінити поточне повідомлення.
Post-Condition 1. Вміст поточного повідомлення відображено. 2. Поточне повідомлення очищено, для подальшого вводу. 1 (1). Вміст поточного повідомлення відображено. 2 (1). Поточне повідомлення очищено, для подальшого вводу. 1 (1). Вміст поточного повідомлення відображено. 2 (2). Поточне повідомлення очищено, для подальшого вводу.

 

На практиці опис перевизначення та наслідування подій має ряд недоліків: необхідно використовувати додаткові теги, це ускладнює наочність моделі для замовника, при зміні батьківського прецедента необхідно вручну змінювати нащадків. Застосування абстрактних прецедентів дозволяє цього уникнути. Якщо батьківський прецедент не містить потоку подій, або потік не завершено, він вважається абстрактним. Часто абстрактні прецеденти використовуються для найбільш загального опису поведінки системи, потік подій в них замінює стислий опис.

При застосуванні абстрактних прецедентів опис прецедентів з попереднього прикладу може бути наступним.

Публікація повідомлення Use case Публічна публікація повідомлення Приватна публікація повідомлення
Стислий опис: система відображає повідомлення Користувача. Pre-Condition 1. Користувач авторизований 2. Вміст поточного повідомлення готовий 1. Користувач авторизований 2. Вміст поточного повідомлення готовий
Action steps 1. Прецедент починається, коли користувач обирає опцію опублікувати повіомлення публічно. 2. Система зчитує вміст поточного повідомлення. 3. Система перевіряє цензурність поточного повідомлення. 4. Якщо поточне повідомлення цензурне, 4.1. Система відображає вміст поточного повідомлення в загальному вікні чату. 4.2. Система очищує вміст поточного повідомлення. 5. Інакше 5.1. Система повідомляє про неможливість публікації нецензурних повідомлень. 1. Прецедент починається, коли користувач обирає опцію опублікувати приватне повіомлення. 2. Система надає можливість обрати приймача повідомлення з тих, хто в Чаті в даний момент. 3. Користувач обирає приймача повідомлення. 4. Система зчитує вміст поточного повідомлення. 5. Система відображає вміст поточного повідомлення у вікні приватних повідомлень Користувача-приймача від Користувача-відправника. 6. Система очищує вміст поточного повідомлення.
Exceptions 4.1-4.2а. Якщо вміст поточного повідомлення не може бути відображений, поточне повідомлення не очищується. 1. Альтернативний потік починається, коли вміст поточного повідомлення не може бути відображений системою. 2. Система видає повідомлення про відповідну помилку. 3. Система пропонує Користувачу змінити поточне повідомлення. 5-6а. Якщо вміст поточного повідомлення не може бути відображений, поточне повідомлення не очищується. 1. Альтернативний потік починається, коли вміст поточного повідомлення не може бути відображений системою. 2. Система видає повідомлення про відповідну помилку. 3. Система пропонує Користувачу змінити поточне повідомлення.
Post-Condition 1. Вміст поточного повідомлення відображено. 2. Поточне повідомлення очищено, для подальшого вводу. 1. Вміст поточного повідомлення відображено. 2. Поточне повідомлення очищено, для подальшого вводу.






Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.