МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Інститут КНІТ
Кафедра ПЗ
ЗВІТ
До лабораторної роботи № 6
З дисципліни : "Основи проектування інформаційних систем"
Лектор:
Доцент каф. ПЗ
Макар В.М.
Львів – 2009
Тема: Взаємодія об’єктів: діаграми послідовності дій та кооперації в Rational Rose
Мета: Ознайомитися з основними поняттями, які використовуються для опису взаємодії між об’єктами в рамках заданого прецеденту (варіанту використання). Ознайомитися з основними принципами і прийомами побудови діаграм послідовності дій та діаграм кооперації за допомогою програмного засобу Rational Rose. Навчитися застосовувати на практиці знання таких понять як сценарій прецеденту, повідомлення та об’єкт.
Теоретичні відомості
Сценарії прецедентів та їх документування
Діаграми варіантів використання описують зовнішній вигляд системи. Виконання прецедентів відображається за допомогою потоку подій. А для опису того, як, шляхом взаємодії між об’єктами, реалізуються прецеденти використовуються сценарії.
Сценарій (scenario) – це елемент прецедента, який являє собою одиничний прохід потоком подій для варіанта використання. Сценарії допомагають виділити об’єкти, класи та взаємодії між ними, які є необхідними для виконання одиничної дії заданої прецедентом. Сценарії описують порядок розподілу обов’язків прецеденту між класами та об’єктами системи. Якщо потік подій для випадку використання описується словесно, то сценарії зображаються графічно у вигляді діаграм взаємодій (interaction diagrams). Існує два типи діаграм взаємодій:
діаграми послідовності дій (sequence diagrams), які відображають порядковану в часі послідовність подій (повідомлень) в рамках заданого варіанту використання;
діаграми кооперації (collaboration diagrams), які дають загальну картину сценарію шляхом відображення взаємодії між пов’язаними один з одним об’єктами.
Діаграма послідовності дій
Діаграма послідовності дій відображає впорядковану в часі взаємодію між об’єктами. Даний тип діаграми UML містить об’єкти і класи, які використовуються в сценарії, разом з послідовністю повідомлень, якими обмінюються об’єкти для виконання сценарію. Об’єкт на діаграмі послідовності дій в мові UML зображається у вигляді прямокутника, а його назва пишеться з підкресленням. Назва об’єкту може складатися тільки з імені об’єкту, з імен об’єкту і його класу та тільки з імені класу (анонімний об’єкт) (див. рис.1). Анонімний об’єкт використовується для представлення довільного об’єкту даного класу.
Кожний об’єкт має свою часову лінію (timeline), яка зображаться пунктиром під самим об’єктом. Повідомлення, що передаються між об’єктами позначаються лініями з стрілкою в напрямку від клієнта (відправника повідомлення) до споживача (отримувача повідомлення). Повідомлення – це засіб, за допомогою якого клієнт робить запит до споживача на виконання певної його операції. Розрізняють інформаційні (informative), імперативні (imperative) повідомлення та повідомлення-запити (interrogative).
/
Рис.1. Нотація мови UML для об’єкту
Інформаційні повідомлення – це повідомлення за допомогою яких об’єкт-споживач отримує інформацію необхідну йому для зміни його стану.
Імперативні повідомлення – це повідомлення, які вказують об’єкту-отримувачу на виконання певних операцій.
Повідомлення-запити – це повідомлення призначені для запиту певної інформації про об’єкт-отримувач повідомлення.
Можливі також випадки, коли об’єкт посилає повідомлення самому собі, які називаються самоделегуванням (self-delegation). В таких випадках стрілка повідомлення вказує на timeline самого об’єкту. Також, можна, при потребі додавати аргументи та деяку керуючу інформацію для повідомлень.
Створити нову діаграму послідовності дій в програмі Rational Rose можна за допомогою команди New→Sequence Diagram з контекстно-залежного меню розділу Logical View (Логічне представлення) у вікні броузера.
Для створення об’єктів та повідомлень на діаграмі послідовності дій в Rational Rose потрібно виконати такі кроки:
Відкрити вікно діаграми двічі клікнувши по ній у вікні броузера проекту.
Вибрати потрібного актора зі списку в представленні Use Case.
Перетягнути актора на діаграму послідовності дій.
За допомогою кнопки Object на панелі інструментів створити на діаграмі новий об’єкт з потрібною назвою.
Повторити кроки 1-4 для всіх акторів та об’єктів, які беруть участь в заданому сценарію.
За допомогою кнопки Object Message на панелі інструментів створити нове повідомлення між клієнтом та споживачем та надати змістовну назву цьому повідомленню.
Повторити крок 6 для усіх потрібних повідомлень.
Приклад діаграми послідовності дій для сценарію створення навчального предмету зображено на рис.2.
/
Рис.2. Приклад діаграми послідовності дій
Для того щоб присвоїти об’єкту відповідний клас достатньо просто перетягнути потрібний клас з вікна броузера на об’єкт на діаграмі послідовності дій. Програма Rational Rose автоматично додасть до назви об’єкту ім’я класу, а якщо об’єкт не має імені, то назва об’єкту буде складатися лише з імені класу. Якщо клас має певний стереотип, то значок цього стереотипу буде використаний також і для зображення об’єкту на діаграмі послідовності дій. Діаграму послідовності дій з об’єктом предмет, якому присвоєно клас Предмет зображено на рис.2.
/
Рис.3. Діаграми послідовності дій з об’єктом, якому присвоєно клас
Діаграма кооперації
Діаграма кооперації (collaboration diagrams) – це альтернативний спосіб зображення сценаріїв. Вона також показує взаємодію об’єктів, але концентрує увагу на відношеннях між об’єктами в процесі цієї взаємодії. Діаграма кооперації містить:
об’єкти у вигляді прямокутників;
зв’язки між об’єктами, зображені у вигляді ліній;
повідомлення між об’єктами у вигляді стрілки та тексту направленої від клієнта до споживача.
На діаграмі кооперації представлена та ж інформація, що і на діаграмі послідовності дій, але вона по-іншому описує потік подій сценарія. З неї легше зрозуміти відношення між об’єктами, але важче вияснити послідовність, в якій виконуються події.
Діаграма кооперації створюється на основі діаграми послідовності дій. Для цього потрібно відкрити вже створену діаграму послідовності дій і вибрати команду Browse→Create collaboration diagram з головного меню або натиснути клавішу F5. При необхідності, для покращення читабельності, можна розташувати об’єкти та повідомлення на створеній діаграмі кооперації так як потрібно. Виконавши вказані дії, діаграму послідовності дій з рис.3 можна перетворити на відповідну діаграму кооперації, яка зображена на рис.4.
/
Рис.4. Діаграма кооперації для сценарію створення навчального предмету
Можна спочатку створити діаграму кооперації, і потім на її основі, відповідно за допомогою команди Browse→Create sequence diagram з головного меню, створити діаграму послідовності дій.
Таким чином, діаграми послідовності дій та діаграми кооперації є ізоморфними та взаємозамінними. Логічно може виникнути питання: для чого потрібні дві різні діаграми, які, по суті, служать одній і тій же меті? Справа в тому, що, по-перше, вони хоч і відображають одну і ту ж інформацію, але з різних точок зору. А, по-друге, діаграми послідовності дій використовуються в основному на стадії аналізу, коли важливо зрозуміти що відбувається спочатку, а що пізніше, тоді як діаграми кооперації особливо корисні на стадії проектування коли планується реалізація відношень між об’єктами, що взаємодіють між собою.
Розглянемо інший приклад, а саме випадок використання додавання навчального курсу. Реалізація цього прецеденту вимагає використання таких об’єктів: Викладач, Параметри курсу викладача, Додавання навчального курсу, Менеджер курсів викладача, Предмет та Навчальний курс. Опис взаємодії цих об’єктів можна здійснити за допомогою діаграми послідовності дій, яка зображена на рис.5.
/
Рис.5. Діаграми послідовності дій для сценарію прецедента додавання навчального курсу
Завдання: Інформаційна система форуму. Адміністратор керує правами користувачів форуму. Він може блокувати користувачів, які шкодять роботі форуму. Він повинен мати змогу отримати графік відвідуваності форуму його користувачами, має права для зміни і видалення повідомлень і тем. Система повинна реєструвати нових користувачів. Модератори теж мають права на редагування повідомлень і їх видалення. Звичайні користувачі можуть лише створювати повідомлення і теми, але не можуть редагувати повідомлення, крім своїх повідомлень.
/
Діаграма кооперації
/
Висновок: на даній лабораторній роботі я ознайомився з основними поняттями,
які використовуються для опису взаємодії між об’єктами в рамках заданого прецеденту (варіанту використання). Ознайомився з основними принципами і прийомами побудови діаграм послідовності дій та діаграм кооперації за допомогою програмного засобу Rational Rose. Навчився застосовувати на практиці знання таких понять як сценарій прецеденту, повідомлення та об’єкт.