Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Відношення залежності на діаграмі прецедентів





Відношення залежності позначається пунктирною лінією з відкритою стрілкою і означає, що класифікатор-джерело (client) залежить від класифікатора-цілі (supplier). Зміни в класифікаторі-цілі можуть вплинути на класифікатор-джерело.

Семантика даного відношення є надто загальною, тому його прийнято застосовувати лише зі стереотипами, що додають конкретного змісту залежності. На діаграмі прецедентів відношення залежності може бути встановлене між двома прецедентами, при цьому використовуються два стереотипи: «include» та «extend».

Залежність за стереотипом «include»

Відношення залежності за стереотипом «include» між двома прецедентами означає, що один прецедент включає поведінку іншого прецедента. Прецедент, що включає в себе інший прецедент називається базовим, а той, що включається – включним. Базовий прецедент може залежати лише від значення результату включного прецедента, тобто значення, що отримується по виконанні включного прецедента.

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

Залежність «include» часто використовується у випадках, коли в різних прецедентах повторюються частини потоку подій, для уникнення цих повторень. При цьому необхідно винести загальні для кількох прецедентів кроки, в окремий прецедент, який потім включається в інші. Оскільки базові прецеденти включають відношення для повторного використання загальних частин потоку прецедента, те, що залишилось в базовому прецеденті не є завершеним або цілісним без включних прецедентів і залежить від них. Таким чином, базові прецеденти залежать від включних, а не навпаки.

При використанні залежності «include» в основному потоці базового прецедента необхідно точно вказати місце, де повинна бути включена поведінка включного прецедента. На відповідному кроці сценарію пишеться include (<ім’я включного прецеденту>). За змістом залежність «include» схожа на виклик підпрограм.

Розглянемо приклад. Для захисту від ботів в системі чат використовується спеціальна перевірка з використанням зовнішньої системи Capture. Очевидно, при реєстрації необхідно обов’язково виконувати таку перевірку. Однак ця перевірка може також виконуватися при інших обставинах, тобто доцільно виділити захист від ботів в окремий прецедент. Таким чином, при виконанні прецедента Реєстрація повинен бути виконаний прецедент Захист від ботів (Рисунок 4.6).

Рисунок 4.6 – Залежність «include»

Основний потік прецедента Реєстрація:

1. Прецедент починається, коли Користувач обрав опцію зареєструватися.

2. Система запитує в користувача дані про нього (обов'язкові: логін, пароль; необовязкові: ім'я, фото,тощо).

3. Поки не всі необхідні дані введено

3.1. Користувач вводить дані.

3.2. Система перевіряє, чи всі необхідні дані введено.

3.3. Якщо всі необхідні дані введено

3.3.1. include "Захист від ботів"

3.3.2. Якщо "Захист від ботів" закінчився успішно (Користувач не бот)

3.3.2.1. Система зберігає дані про новго Користувача.

3.3.3. Інакше

3.3.3.1. Система видає повідомлення, що ботам тут не місце

3.3.4. Система повертається на головну сторінку.

3.4. Інакше

3.4.1. Система виділяє незаповнені поля

Основний потік прецедента Захист від ботів:

1. Прецедент починається, коли Система викликає захист від ботів.

2. Система онуляє лічильник перевірок.

3. Поки Capture не підтвердила, що Користувач не є ботом або не вичерпано ліміт перевірок або Користувач не відмовився від перевірки

3.1. Система запитує в Capture зображення питання.

3.2. Система відображає питання Capture

3.3. Користувач відповідає

3.4. Система надсилає відповідь Capture

3.5. Capture повертає Системі результат перевірки.

3.6. Система збільшує лічильник перевірок.

Відношення «extend»

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

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

Точки розширення в основному потоці не нумерують, оскільки вони не мають впливати на основний потік. Базовий прецедент є завершеним і повноцінним і без розширень, він виступає як каркас для них. Натомість розширюючий прецедент не обов’язково повинен бути змістовним самостійно, він визначає опціональні фрагменти поведінки, що доповнюють поведінку базового прецедента за деяких умов.

Розширюючий прецедент може розширювати більше одного прецедента і, навіть, сам може бути розширюваним.

У цього відношення може бути визначена умова, за якої поведінка розширюючого прецедента вставляється в розширюваний у відповідній точці розширення. Крім того визначається впорядкований перелік точок розширення, що належать розширюючому прецеденту, і визначають місця, в які вставляються відповідні фрагменти розширюючого прецедента. Перший фрагмент асоціюється з першою точкою розширення, другий з другою і т.д. Однак частіше розширюючий прецедент складається з одного фрагмента, тому і точка розширення одна. Умова та точки розширення можуть бути вказані в блоці примітки до відношення (Рисунок 4.7).

Рисунок 4.7 – Приклад залежності розширення з зазначенням умови та точок розширення

На прикладі (Рисунок 4.7) показано, що прецедент «Публікація повідомлення» розширюється прецедентом «Захист від ботів» у випадку, коли випадкове число до 10 дорівнює п’яти, розширююча поведінка вставляється в місце, позначене в базовому прецеденті точкою розширення «Бот». Вміст прецедента «Захист від ботів» залишився незмінним, а в прецеденті «Публікація повідомлення» слід позначити точку розширення «Бот» (Extension Point «Бот» або EP «БОТ»), тепер цей прецедент буде мати наступний потік:

1. Прецедент починається, коли користувач обирає опцію опублікувати повіомлення.

EP Бот

2. Система зчитує вміст поточного повідомлення.

3. Система відображає вміст поточного повідомлення.

4. Система очищує вміст поточного повідомлення.

Прецеденти нащадки від «Публікації повідомлення» з попереднього прикладу (Рисунок 4.5) також необхідно доповнити аналогічною точкою розширення. Зазначте, що зв’язок розширення не може бути перевизначений в прецедентах нащадках.







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

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...





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


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