МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”

Кафедра ПЗ
Класи та діаграма класів в Rational Rose
Методичні матеріали
до лабораторної роботи № 4 з курсу:
“Основи проектування інформаційних систем”
для студентів базового напрямку
6.0804 “Комп’ютерні науки”
ЗАТВЕРДЖЕНО
на засіданні кафедри
“Програмне забезпечення”
Протокол №
від
ЛЬВІВ 2008
Класи та діаграма класів в Rational Rose. Методичні матеріали до лабораторної роботи № 4 з курсу: “ Основи проектування інформаційних систем ” для студентів базового напрямку 6.0804 “Комп’ютерні науки”.
Укладачі:
Макар В.М., доцент, к.т.н.
Муха Т.О., асистент.

Відповідальний за випуск:
Рецензенти:
1. МЕТА РОБОТИ
Ознайомитися з основними поняттями, які використовуються при роботі з класами, а саме: клас, об’єкт, стан, поведінка, індивідуальність, пакет. Ознайомитися з принципами і прийомами побудови діаграми класів за допомогою програмного засобу Rational Rose. Навчитися застосовувати на практиці знання таких понять як клас, об’єкт, пакет, стереотип класу для побудови діаграм класів.
2.ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ
2.1 Основні поняття і постановка модельної задачі
Модельна задача
Основним прикладом, що буде розглядатися є реєстрація курсів в університеті ESU (Eastern State University).
Після того, як викладачі ESU вирішать, які курси вони будуть вести протягом семестру, служба реєстрації курсів введе інформацію в комп’ютерну систему. Потім для викладачів видрукують сумарний звіт по курсах, які вони читатимуть, а для студентів – каталог курсів.
На цьому етапі студенти заповнюють спеціальну реєстраційну форму, де вказують вибрані курси і віддають її в службу реєстрації. Зазвичай студент підписується на чотири курси, після чого інформація заноситься в комп’ютер. Після цього запускається нічна пакетна програма, яка розподіляє студентів по курсах. При виникненні конфліктної ситуації служба реєстрації уточнює дані студента. Після вдалого розподілення студенту висилається розклад для провірки. Зазвичай, процес реєстрації на курси займає близько тижня, проте в ряді випадків може бути потрібно до двох тижнів, щоб залагодити всі питання. Після цього викладачі отримують список студентів для кожного курсу, який вони будуть читати.
Постановка задачі реєстрації курсів:
На початку кожного семестру студенти можуть запросити каталог курсів, в який включений список предметів, навчання по яких пропонується в даному семестрі. Інформація про курси повинна містити прізвище викладача, назву факультету і короткий опис, який допоможе студентам зробити вибір.
Нова система дозволить студенту здійснити вибір чотирьох курсів, із тих що пропонуються в наступаючому семестрі. Крім того студенту потрібно вказати ще два варіанта на випадок якщо курс буде відмінений або переповнений. На курс не повинно бути записано більше десяти і менше трьох студентів. Курс, на який запишеться менше трьох студентів буде відмінений. Після закінчення реєстрації система реєстрації направляє інформацію в систему оплати для виставлення рахунків студентам.
Викладачі повинні мати можливість он-лайнового доступу до системи для вказання курсів, які вони будуть читати, і для перегляду списку студентів, що записалися.
В кожному семестрі виділяється визначений час, протягом якого студенти можуть міняти свій розклад і отримувати доступ до системи для додавання і видалення вибраних курсів.
Поняття об’єкту
Об’єкт (object) – деяка сутність реального світу або концептуальна сутність. Об’єкт може бути чимось конкретним, наприклад грузовик або мій комп’ютер, або концептуальним, як ,наприклад, хімічний процес, банківська операція, торгове замовлення, діловий договір і т.д.
Об’єктом називається концепція, абстракція або річ з чітко визначеними границями і значенням для системи. Кожний об’єкт в системі має три характеристики: стан, поведінка, індивідуальність.
Стан, поведінка, індивідуальність
Станом (state) об’єкту називається одна з умов, в яких він може знаходитись. Стан системи зазвичай змінюється з часом і визначається набором властивостей, які називаються атрибутами (attribute), значень властивостей і відношень між об’єктами. Наприклад, об’єкт навчальний курс (CourseOffering) в системі реєстрації навчальних курсів може знаходитися в одному з двох станів: відкритий для запису або закритий для запису. Якщо кількість студентів, що зареєструвалися на курс, менша ніж дев’ять, то запис на курс продовжується. Після реєстрації дев’ятого студента вона припиняється.
Поведінка (behavior) визначає те, як об’єкт реагує на запити інших об’єктів і що може робити сам об’єкт. Поведінка реалізується за допомогою набору операцій (operation) для об’єкту. В системі реєстрації курсів об’єкт навчальний курс може мати операції добавити студента і видалити студента.
Індивідуальність (identity) означає, що кожний об’єкт унікальний, навіть якщо його стан є ідентичний стану іншого об’єкта. Наприклад Алгебра 101, секція 1 і Алгебра 101, секція 2 – два об’єкти в системі реєстрації курсів. Хоча кожен із них є навчальним курсом, кожен із них є унікальним.
В мові UML об’єкт зображується у вигляді прямокутника, а його ім’я пишеться з підчеркуванням (рис.1)
Рис.1. Нотація мови UML для об’єкту
Поняття класу
Клас (class) – це опис групи об’єктів з спільними властивостями (атрибутами), поведінкою (операціями), відношеннями з іншими об’єктами і семантикою. Таким чином, клас представляє собою шаблон для створення об’єкту. Кожний об’єкт є екземпляром конкретного класу і не може бути екземпляром декількох класів. Наприклад, клас навчальний курс (CourseOffering) може визначатися наступними характеристиками:
Атрибути – місце занять, час занять;
Операції – отримати місце занять, отримати час занять, додати студента на курс.
Алгебра 101, секція 1 і Алгебра 101, секція 2 – це об’єкти, які належать до класу навчальний курс. Кожний об’єкт має значення атрибутів і доступ до операцій, які визначені класом навчальний курс.
«Хороший» клас являє собою одну і тільки одну абстракцію, тобто повинен відображати одну основну сутність. Наприклад, клас, що зберігає інформацію про студентів і дані про курси, які студент відвідує протягом декількох років, не є «хорошим» класом тому, що не представляє тільки одну сутність. Такий клас треба розділити на два пов’язаних класи: студент і історія студента.
Назви класів обираються у відповідності до понять предметної області. Ім’я повинно бути іменником в однині, який найбільш точно характеризує предмет.
В мові UML класи зображають у вигляді розділених прямокутників. В верхній секції вказується ім’я класу, середня секція містить його структуру – атрибути, а нижня описує його поведінку – операції. Клас зображений на рис.2
Рис.2. Нотація мови UML для класу
Порядок створення класів в програмі Rational Rose:
Клікніть правою кнопкою миші по розділі Logical View (Логічне представлення) у вікні оглядача.
В контекстно-залежному меню, що з’явилося, оберіть команду New>Class (Створити>Клас). У список оглядача буде добавлено новий клас з ім’ям New Class.
Введіть потрібне ім’я класу.

Рис.3. Вікно оглядача після створення класу
Стереотипи і класи
Про стереотипи вже згадувалось при розгляді діаграми випадків використання. Класи теж можуть мати стереотипи. Як і раніше, стереотип використовується для створення нового типу елементу моделювання, в даному випадку для створення нових типів класів. Деякі основні стереотипи класу – сутність, граничний елемент, елемент управління, сервісний елемент і виключення.
Стереотип класу вказується під його ім’ям і береться в подвійні лапки. В програмі Rational Rose є зображення для стереотипів Rational Unified Process – управляючого елементу, сутності і граничного елементу. Ці стереотипи, а також приклад класу із стереотипом виключення показані на рис.4.

Рис.4. Класи із стереотипами
Виявлення класів
Рецептів для знаходження класів не існує. Насправді це дійсно важко. З причини того, що процес аналізу і проектування ітеративний, то список класів з часом змінюється. Початковий набір класів скоріш за все буде відрізнятися від кінцевого. Тому для опису початкового набору класів, виявлених в системі, часто використовують термін «клас-кандидат».
Класи-сутності
Клас-сутність (entity class) використовується для моделювання даних і поведінки з довгим життєвим циклом. Цей тип класів може представляти сутності реального світу або внутрішні елементи системи. Такі класи зазвичай не залежать від оточення, тобто вони нечутливі до взаємодії зовнішнього середовища з системою. Відповідно, вони не залежать від програми і можуть застосовуватися в різних програмах.
Перший крок – вивчити обов’язки, які описані в потоці подій для виявлення випадків використання. Класи-сутності – це зазвичай ті класи, які необхідні системі для виконання відповідних обов’язків. Використання іменників для опису обов’язків може стати хорошим початком. Початковий список потрібно профільтрувати, так як він буде містити слова, які не відносяться до предметної області, мовні вирази, надлишкові сл