Основи програмної інженерії
Вид материала | Документы |
Содержание5.1.3. UML - метод моделювання Діаграма класів Моделювання поведінки системи. Діаграма послідовності Діаграма співпраці Діаграма діяльності Діаграма станів Діаграма реалізації — |
- Назва модуля: Моделювання та аналіз програмного забезпечення Код модуля, 36.38kb.
- Емпіричні методи програмної інженерії, 10.35kb.
- Онтологічні моделі опису готових ресурсів у розробці програм, 202.38kb.
- Апаратна складова, 214.38kb.
- Назва модуля: Основи інженерії довкілля. Код модуля, 15.91kb.
- «Основи інформатики. 7 клас», 663.63kb.
- «Основи інформатики. 7 клас», 662.94kb.
- Виступ директора зош №44 Топорікової, 336.95kb.
- Основи навчальної програми враховують вимоги Ради з освіти Міжнародної Федерації бухгалтерів,, 143.95kb.
- Солтисік Роман Андрійович, доцент, к т. н. Федевич Олег Євгенійович, 7 Результати навчання:, 103.84kb.
5.1.3. UML - метод моделювання
Загальна характеристика UML (Unified Modeling Language), як підхід до проектування різних систем, була дана у п. 4.2.1. Тут UML розглядається детальніше, як мова візуального моделювання систем, шляхом подання у вигляді діаграм їхніх статичних і динамічних моделей на всіх процесах ЖЦ [6, 7].
В основу методу покладено парадигму об'єктного підходу, при якій концептуальне моделювання проблеми полягає у побудові:
- онтології домену, яка визначає склад та ієрархію класів об'єктів домену, їх атрибутів і взаємозв'язків, а також операцій, які можуть виконувати об'єкти класів;
- моделі поведінки, яка задає можливі стани об'єктів, інцидентів, що ініціюють переходи з одного стану до іншого, а також повідомлення, якими обмінюються об'єкти;
- моделі процесів, що визначає дії, які виконуються при проектуванні об'єктів як компонентів.
Проектування в UML починається з побудови сукупності діаграм, які візуалізують основні елементи структури системи.
Мова моделювання UML підтримує статичні і динамічні моделі, зокрема модель послідовностей - одну з найкорисніших і наочних моделей, в кожному вузлі якої є взаємодіючі об'єкти. Всі моделі зображуються діаграмами, коротка характеристика яких дасться нижче.
Діаграма класів (Class diagram) відображає онтологію домену, за змістом еквівалентна структурі інформаційної моделі методу С. Шлеєра і С. Мелора, визначає склад класів об'єктів і їх зв'язків. Діаграма задасться зображенням, на якому класи позначаються поділеними на три часті прямокутниками, а зв'язки — лініями, що з'єднують прямокутники. Це відповідає візуальному зображенню понять і зв'язків між ними. Верхня частина прямокутника — обов'язкова, в ній записується ім'я класу. Друга і третя частини прямокутника визначають відповідно список операцій і атрибутів класу, що можуть мати такі специфікатори доступу:
- public (загальний) позначає операцію або атрибут, доступ до яких здійснюється з будь-якої частини програми будь-яким об'єктом системи;
- protected (захищений) позначає операцію або атрибут, доступ до яких здійснюється об'єктами ТОГО класу, в якому вони оголошені, або об'єктами класів-нащадків,
- private (приватний) позначає операцію або атрибут, доступ до яких здійснюється тільки об'єктами того класу, в якому вони визначені.
Користувач може визначати специфічні для нього атрибути. Під операцією розуміють сервіс, який екземпляр класу може виконувати, якщо до нього буде направлено відповідний виклик. Операція має назву і список аргументів. Для неї може також задаватися тип значення, яке вона повертає.
Класи можна перебудувати в наступних відношеннях або зв'язках.
Асоціація - взаємна залежність між об'єктами різних класів, кожний з яких це рівноправний її член. Вона може позначати кількість екземплярів об'єктів кожного класу, які беруть участь у зв'язку (0 - якщо жодного, 1 - якщо один, N - якщо багато).
Залежність - залежність між класами, при якій клас-клієнт може використовувати певну операцію іншого класу; класи можуть бути зв'язані відношеннями трасування, якщо один клас трансформується в іншій внаслідок виконання певного процесу ЖЦ.
Екземпляризація - залежність між параметризованим абстрактним класом-шаблоном (template) і реальним класом, який ініціює параметри шаблону (наприклад, контейнерні класи мови C++).
Моделювання поведінки системи. Поведінка системи визначається множиною об'єктів, що обмінюються повідомленнями, і задається діаграмами типу: послідовність, співпраця, діяльність, стан тощо.
Діаграма послідовності застосовується для опису взаємодії об'єктів за допомогою сценаріїв, що відображають події, пов'язані з їх створенням і видаленням. Взаємодія об'єктів контролюється подіями, які відбуваються в сценарії і ініціюються повідомленнями до інших об'єктів.
Діаграма співпраці задає поведінку сукупності об'єктів, функції яких орієнтовані на досягнення цілей системи, а також взаємозв'язку тих ролей, які забезпечують співпрацю. Зазначимо, що діаграми послідовності та співпраці відображують одне й те саме, хоча й різними способами.
Діаграма діяльності задає поведінку системи у вигляді певних робіт, які може виконувати система або актор і ці роботи можуть залежати або від заданих умов, або від обмежень. Ця діаграма відображає функціональну структуру системи і принципи поведінки її окремих елементів під час виконання відповідної діяльності.
Діаграма станів базується на розширеній моделі кінцевого автомата і визначає умови переходів, дії на вході й виході зі стану, а також вкладені і паралельні стани. Перехід за даними із списку ініціює деяку подію.
Діаграма реалізації — це діаграма компонентів і розміщення. Діаграма компонентів слугує відображенню структури системи як композиції компонентів і зв'язків між ними.
Діаграма розміщення задає склад ресурсів системи, на яких розміщуються компоненти, і відношення між ними.
Побудова ПС методом UML здійснюється у наступні етапи ЖЦ (рис 5. 4.).
Рис.5.4. Схема моделювання і проектування ПС в UML
У UML передбачено загальний механізм організації деяких елементів системи (об'єктів, класів, підсистем і т.п.) у групи. Групування можливе починаючи від системи, далі до підсистем різного рівня деталізації і аж до класів. Результат групування називається пакетом. Пакет містить у собі назву простору імен, що займають елементи, які є його складовими, і спосіб посилання на цей простір. Це важливо для великих систем, що нараховують сотні, а іноді і тисячі елементів, і тому вимагають ієрархічного структурування.
При цьому підсистема розглядається як випадок пакета, що має самостійну функцію. Пакет може складатися з інших пакетів, класів, підсистем і т.п.
Об'єднання елементів у пакети може відбуватися за різними принципами, наприклад, якщо вони використовуються спільно або створені одним автором, або стосуються визначеного аспекту розгляду (наприклад, інтерфейс із користувачем, пристрій вводу/виводу і т.п.). На стадії реалізації до одного пакета можуть бути віднесені всі підсистеми, що у діаграмі розміщення зв'язані з одним вузлом.