Слайд 1ЛК.03 – Моделювання прецедентів
Слайд 2Історія UML
Типи діаграм UML 2.0
Введення до моделювання прецедентів
Визначення прецеденту
Класифікація прецедентів
Учасник
(актор)
Види відношень у моделях
Приклади діаграм прецедентів
Перелік питань
Слайд 31. Історія UML
В 1994 році Граді Буч та Джеймс Рабмо
із компанії Rational Software поєднали зусилля для створення мови об’єктно-орієнтованого
моделювання.
В 1995 р. була створена попередня версія мови. І до команди розробників приєндався Івар Якобсон, автор методу OOSE (Object-Oriented Software Engineering). Процес розробки був переданий консорціуму OMG (Object Management Group).
В січні 1997 р. була випущена специфікація UML 1.0, а листопаді – 1.1. Консорціум підтримали крупні світові компаній, включаючи Microsoft, DEC, HP, IBM, Oracle. Наступні версії вийшли: 1.3 – червень 1999 р., 1.4 – вересень 2001 і 1.5 – березень 2003 р.
У серпні 2005 р. була опублікована специфікація UML 2.0.
Поточна версія UML 2.3 опублікована в травні 2010 р.
UML 1.4.2 прийнятий у якості міжнародного стандарту ISO/IEC 19501:2005.
Слайд 4Графічне представлення розвитку UML та близьких мов
Слайд 52. Типи діаграм UML 2.0
Типи діаграм UML 2.0
Слайд 6Структурні діаграми:
діаграми класів (class diagrams) призначені для моделювання структури об'єктно-орієнтованих
додатків - класів, їх атрибутів і заголовків методів, спадкування, а
також зв'язків класів один з одним;
діаграми компонентів (component diagrams) використовуються при моделюванні компонентної структури розподілених додатків; всередині кожна компонента може бути реалізована за допомогою безлічі класів;
діаграми об'єктів (object diagrams) застосовуються для моделювання фрагментів працюючої системи, відображаючи реально існуючі в runtime екземпляри класів і значення їх атрибутів;
діаграми композитних структур (composite structure diagrams) використовуються для моделювання складових структурних елементів моделей - кооперацій, композитних компонент і т.д.;
діаграми розгортання (deployment diagrams) призначені для моделювання апаратної частини системи, з якою ПЗ безпосередньо пов'язано (розміщено або взаємодіє);
діаграми пакетів (package diagrams) служать для розбиття об'ємних моделей на складові частини, а також (традиційно) для угруповання класів модельованого ПЗ, коли їх занадто багато.
Слайд 7Діаграми поведінки
діаграми діяльності (activity diagrams) використовуються для специфікації бізнес-процесів, які
має автоматизувати розробляється ПО, а також для завдання складних алгоритмів;
діаграми
прецедентів (use case diagrams) призначені для «витягування» вимог з користувачів, замовника і експертів предметної області;
діаграми кінцевих автоматів (state machine diagrams) застосовуються для завдання поведінки реактивних систем;
діаграми взаємодії (interaction diagrams):
діаграми послідовностей (sequence diagrams) використовуються для моделювання часових аспектів внутрішніх і зовнішніх протоколів ПО;
діаграми схем взаємодії (interaction overview diagrams) служать для організації ієрархії діаграм послідовностей;
діаграми комунікацій (communication diagrams) є аналогом діаграм послідовностей, але по-іншому зображуються (у графовій, манері);
часові діаграми (timing diagrams) є різновидом діаграм послідовностей і дозволяють в наочній формі показувати внутрішню динаміку взаємодії деякого набору компонент системи.
Слайд 83. Введення до моделювання прецедентів
Діаграма прецедентів (use case diagram) -
діаграма, на якій зображено відношення між акторами та прецедентами в
системі. Також, перекладається як діаграма варіантів використання.
Прецеденти є основним засобом визначення необхідної поведінки системи. Як правило, вони використовуються для описання вимог до системи, тобто, що має робити система.
Діаграма прецедентів є графом, що складається з множини акторів, прецедентів (варіантів використання) обмежених границею системи (прямокутник), асоціацій між акторами та прецедентами, відношень серед прецедентів, та відношень узагальнення між акторами. Діаграми прецедентів відображають елементи моделі варіантів використання.
Слайд 94. Визначення прецеденту
Прецедент – опис процесів, які відбуваються у предметній
області
Прецедент – документ, що описує послідовність подій, пов’язаних з виконавцем
(зовнішнім агентом), який для завершення необхідного процесу використовує систему, яка створюється.
Прецедент – це опис чи варіант використання системи.
Прецеденти не співпадають з вимогами чи функціональними специфікаціями, однак надають опис та ілюструють вимоги.
Як правило, до прецедентів відносяться правила:
Кожен прецедент відноситься мінімум до одного учасника
Кожен прецедент має ініціатора
Кожен прецедент приводить до певного результату, який має бізнес-цінність
Слайд 10Зображення прецеденту на діаграмі
Купівля товару
Слайд 115. Класифікація прецедентів
Прецеденти високого рівня – загальні визначення без деталізації
Розгорнуті
прецеденти – більш детальний опис, ніж прецеденти високого рівня, призначені
для поглибленого розуміння вимог і процесів, що відбуваються. Як правило, оформлюються у вигляді діалогу користувача і системи
Прецеденти мають бути представлені не лише у вигляді діаграми, а й у вигляді текстового (табличного) опису, детальність якого відрізняється в залежності від рівня прецеденту
Слайд 14Головні, другорядні та додаткові прецеденти
Головні прецеденти (primary use cases) –
загальні процеси, наприклад, купівля товару
Другорядні прецеденти (secondary use cases) –
менш значні чи більш рідкі процеси, наприклад, запит на асортимент нових товарів
Додаткові прецеденти (optional use cases) – процеси, що можуть бути не реалізовані у системі
Слайд 15Ідеальні та реальні прецеденти
Прецеденти
Ідеальні, дуже абстрактні
Реальні, дуже конкретні
Слайд 16Ідеальні прецеденти
розгорнуті прецеденти, що відображають загальну сутність процесів без деталізації
їх реалізації.
прецеденти високого рівня завжди ідеальні
Слайд 17Реальні прецеденти
конкретно описують процес в термінах реальних проектних рішень, на
основі конкретних технологій введення/виведення інформації та ін.
Слайд 18Абстрактні прецеденти
Прецедент, що включається, часто не використовується автономно (не ініціюється
безпосередньо актором). В UML такі прецеденти вважаються абстрактними, їх імена
на діаграмі зображаються курсивом).
Слайд 19Позначення прецедентів
Назву прецеденту рекомендується починатися з дієслова (наприклад, придбати товар)
Опис
розгорнутого прецеденту необхідно починати за наступною схемою: “Цей прецедент починається,
коли <Виконавець> <ініціює подію>”
Слайд 20 6. Учасник (актор)
Актор представляє роль, яку людина, апаратний пристрій
чи інша система відіграє в системі (суб’єкті)
Актори завжди представляють сутності,
що знаходяться за межами системи. Поведінка суб'єкта описується одним або більше прецедентами, що визначаються відповідно до потреб акторів.
Слайд 227. Види відношень у моделях
Стратегія повторного використання коду – одна
з найголовніших стратегій у програмування.
Відповідно, UML підтримує можливості для опису
ситуацій, коли відбувається повторне використання усієї чи часткової функціональності, що була вже реалізована.
Зокрема, може бути доцільним уведення додаткових прецедентів. Як наслідок, прецеденти потребують організації на базі відношень, які фіксують залежності між існуючими прецедентами з огляду на згадану стратегію.
Загалом, між прецедентами можуть існувати й інші семантичні залежності, які іноді також доцільно представляти у діаграмах (для зображення відношень залежностей використовуються пунктирні стрілки).
Усе ж найважливішими випадками відношень залежності є відношення включення та розширення зі стереотипами <> та <>, які втілюють застосування стратегії повторного використання коду.
Слайд 23Включення
Відношення включення (include) між прецедентами означає, що в деякій “точці”
опису потоків подій базового прецедента як обов'язкова(!) складова частина використовується
поведінка іншого прецедента.
Можна вважати, що один прецедент запозичає, використовує поведінку (функціональність) іншого прецедента (того, що включається - абстрактного).
Зрозуміло, що завдяки відношенню включення можна уникнути багаторазового опису потоків подій, оскільки спільну поведінку можна описати у вигляді самостійної поведінки, що включається в інші. Подібне твердження справедливе і для відношення розширення.
Слайд 24Щоб специфікувати місце у потоці подій, де саме базовий прецедент
включає поведінку іншого, можна просто писати слово include, за яким
іде ім'я прецедента, що включається.
Приклад: include(“Перевірити клієнта”).
У діаграмі прецедентів відношення включення зображують у вигляді залежності зі стереотипом <> (пунктирна стрілка спрямована від базового прецедента до того, що включається, абстрактного).
Слайд 25Узагальнення
Відношення узагальнення (generalization) між прецедентами аналогічне відношенню узагальнення між класами
в ООП і означає, що прецедент-нащадок успадковує поведінку й семантику
свого батька, може заміщувати чи доповнювати його поведінку та, крім того, може бути підставлений усюди, де з'являється його батько.
Відношення узагальнення можуть застосовуватись і між акторами. Це, можливо, більш звично. До того ж, у Rational Rose для специфікації акторів використовується та ж сама форма, що і у випадку класів (тобто актори по суті розглядаються як класи).
Узагальнення – це єдиний тип відношень, який може задаватись між акторами. (Можна, наприклад, визначати загальні типи акторів, а потім спеціалізувати їх, створюючи різновиди.)
Відношення узагальнення між прецедентами (акторами, а також між класами у діаграмах класів) зображуються у вигляді лінії з незафарбованою стрілкою (стрілка спрямована у бік батьківського прецедента, актора чи класа).
Слайд 27Розширення
Відношення розширення (extend) застосовують для моделювання частин прецедента (окремих підпотоків),
які користувач сприймає як необов'язкову поведінку системи. (Моделюються підпотоки, виконувані
тільки при певних умовах).
Слайд 28У потоці подій вказуються точки розширення. Потік може містити кілька
точок розширення, ідентифікованих іменем прецедента, що використовується для розширення.
Приклад:
При обранні . . . extend(“Надати квитанцію”).
На діаграмі прецедентів відношення розширення зображують у вигляді залежності зі стереотипом extend. Пунктирна стрілка має бути спрямована до базового прецедента (до прецедента, який розширюється), від абстрактного (того, що розширює).
Слайд 29Кооперація – сукупність об'єктів, що взаємодіють між собою, реалізуючи прецедент.
Слайд 308. Приклади діаграм прецедентів
Банк