
- •1.1. Методологія процедурно‑ орієнтованого програмування
- •1.2. Методологія об'єктно-орієнтованого програмування
- •1.3. Методологія об'єктно-орієнтованого аналізу і проектування
- •1.4. Методологія системного аналізу і системного моделювання
- •Розділ 2
- •2.1. Передісторія. Математичні основи
- •Мал. 2.4. Приклади неорієнтованого (а) і орієнтованого (б) графів
- •Мал. 2.5. Приклади неорієнтованого (а) і орієнтованого (б) дерев
- •Мал. 2.6. Ієрархічні схеми неорієнтованого дерева (а) і орієнтованого дерева (б)
- •2.2. Діаграми структурного системного аналізу
- •I (Input) – вхід, т. Е. Все, що поступає в процес або споживається процесом.
- •2.3. Основні етапи розвитку uml
- •2. Забезпечити початкові поняття язика uml можливістю розширення і спеціалізації для більш точного представлення моделей систем в конкретній наочній області.
- •3. Опис язика uml повинен підтримувати таку специфікацію моделей, яка не залежить від конкретних язиків програмування і інструментальних засобів проектування програмних систем.
- •4. Опис язика uml повинен включати семантичний базис для розуміння загальних особливостей ооап.
- •7. Інтегрувати в себе новітні і якнайкращі досягнення практики ооап.
- •3.2. Загальна структура язика uml
- •3.3. Пакети в язиці uml
- •3.4. Основні пакети метамоделі язика uml
- •3.5. Специфіка опису метамоделі язика uml
- •3.6. Особливості зображення діаграм язика uml
- •4.1. Варіант використовування
- •4.2. Актори
- •4.3. Інтерфейси
- •4.4. Примітки
- •4.5. Відносини на діаграмі варіантів використовування
- •4.6. Приклад побудови діаграми варіантів використовування
- •4.7. Рекомендації по розробці діаграм варіантів використовування
- •5.1. Клас
- •5.2. Відносини між класами
- •5.5. Шаблони або класи, що параметризуються
- •5.6. Рекомендації по побудові діаграм класів
- •6.1. Автомати
- •Include – ця мітка використовується для звернення до підавтомата, при цьому наступний за нею вираз дії містить ім'я цього підавтомата.
- •6.3. Перехід
- •6.4. Складовий стан і підстан
- •6.5. Історичний стан
- •Мал. 6.10. Графічне зображення недавнього (а) і давнього (б) історичного стану
- •6.6. Складні переходи
- •Мал. 6.11. Графічне зображення паралельного переходу з паралельних станів (а) і паралельного переходу в паралельні стани (б)
- •6.7. Заключні рекомендації по побудові діаграм станів
- •7.1. Стан дії
- •7.2. Переходи
- •7.5. Рекомендації по побудові діаграм діяльності
- •8.2. Повідомлення
- •Мал. 8.7. Діаграма послідовності із стереотипними значеннями повідомлень
- •8.3. Приклад побудови діаграми послідовності
- •8.4. Заключні рекомендації по побудові діаграм послідовності
- •9.1. Кооперація
- •9.3. Зв'язки
- •9.4. Повідомлення
- •9.6. Заключні рекомендації по побудові діаграм кооперації
- •10.1. Компоненти
- •10.2. Інтерфейси
- •10.3. Залежність
- •10.4. Рекомендації по побудові діаграми компонентів
- •11.1. Вузол
- •11.2. З'єднання
- •Мал. 11.4. Фрагмент діаграми розгортання із з'єднаннями меходу вузлами
- •11.3. Рекомендації по побудові діаграми розгортання
- •12.1. Загальна характеристика case‑ засобу Rational Rose 98/2000
- •12.2. Особливості робочого інтерфейсу Rational Rose
- •12.3. Початок роботи над проектом в середовищі Rational Rose
- •12.4. Розробка діаграми варіантів використовування в середовищі Rational Rose
- •12.5. Розробка діаграми класів в середовищі Rational Rose
- •12.6. Розробка діаграми станів в середовищі Rational Rose
- •12.7. Розробка діаграми послідовності в середовищі Rational Rose
- •12.8. Розробка діаграми кооперації в середовищі Rational Rose
- •12.9. Розробка діаграми компонентів в середовищі Rational Rose
- •12.10. Розробка діаграми розгортання в середовищі Rational Rose
Мал. 2.5. Приклади неорієнтованого (а) і орієнтованого (б) дерев
Для випадку орієнтованого дерева (мал. 2.5, би) вершина v2 є єдиним його коренем і має спеціальне позначення v0. Єдиність кореня в орієнтованому дереві виходить з того факту, що орієнтований шлях завжди має єдину вершину, яка є його початком. Оскільки в теорії графів має значення тільки наявність або відсутність зв'язків між окремими вершинами, дерева, як правило, зображаються спеціальним чином у вигляді ієрархічної структури. При цьому корінь дерева зображається самою верхньою вершиною в даній ієрархії. Далі слідують вершини рівня 1, які пов'язані з коренем одним ребром або однією дугою. Наступний рівень матиме номер 2, оскільки відповідні вершини повинні бути пов'язані з коренем двома послідовними ребрами або дугами. Процес побудови ієрархічного дерева продовжується до тих пір, поки не будуть розглянуті вершини, які не пов'язані з іншими вершинами, окрім розглянутих, або з яких не виходить жодна дуга. В цьому випадку самі нижні вершини іноді називають листям дерева. Важливо мати у вигляді, що в теорії графів дерево «росте» вниз, а не вгору, як в реальному житті.
Зображені вище дерева (мал. 2.5) можна перетворити до виду ієрархій. Наприклад, неорієнтоване дерево (мал. 2.5, а) може бути представлено у вигляді ієрархічного дерева таким чином (мал. 2.6, а). В цьому випадку коренем ієрархії є вершина v1. Орієнтоване дерево (мал. 2.5, би) також може бути зображено у формі ієрархічного дерева (мал. 2.6, би), проте таке уявлення є єдиним.
В першому випадку (мал. 2.6, а) вершина v2 утворює перший рівень ієрархії, вершини v4 і v3 – другий рівень ієрархії, вершина v5 – третій і останній рівень ієрархії. При цьому листям даного неорієнтованого дерева є вершини v3 і v5. В другому випадку (мал. 2.6, би) вершини v1 і v5 утворюють перший рівень ієрархії, вершини v4 і v6 – другий рівень ієрархії, вершина v3 – третій і останній рівень ієрархії. Листям даного орієнтованого дерева є вершини v3 і v6.
Мал. 2.6. Ієрархічні схеми неорієнтованого дерева (а) і орієнтованого дерева (б)
На закінчення слід помітити, що в теорії графів розроблені різні методи аналізу окремих класів графів і алгоритми побудови спеціальних графічних об'єктів, розгляд яких виходить за рамки справжньої книги. Для отримання додаткової інформації по даній темі можна рекомендувати звернутися до спеціальної літератури по теорії графів, де ці питання розглянуті більш детально. Надалі нас цікавитиме окремий напрям в теорії графів, який пов'язаний з явним включенням семантики в традиційні позначення і що одержало самостійний розвиток у формі семантичних мереж.
Семантичні мережі
Семантичні мережі одержали свій розвиток в рамках наукового напряму, пов'язаного з представленням знань для моделювання міркувань людини. Ця область наукових досліджень виникла в рамках загальної проблематики штучного інтелекту і була орієнтована на розробку спеціальних язиків і графічних засобів для представлення декларативних або, що менш точне, статичних знань про наочну область. Результати досліджень в області семантичних мереж в подальшому були конкретизовані і успішно використані при побудові концептуальних моделей і схем реляційних баз даних.
В загальному випадку під семантичною мережею розуміють деякий граф Gs= =(Vs, Es), в якому безліч вершин Vs і безліч ребер Esразделены на окремі типи, що володіють спеціальною семантикою, характерною для тієї або іншої наочної області. В даній ситуації безліч вершин може відповідати об'єктам або єствам даної наочної області і мати замість номерів вершин відповідні явні імена цих єств. Подібні імена повинні дозволяти однозначно ідентифікувати відповідні об'єкти, при цьому загальних формальних правил запису імен не існує. Безліч ребер також ділиться на різні типи, які відповідають різним видам зв'язків між єствами даної наочної області.
Так, при побудові семантичної мережі для уявлення знань про робочий персонал деякої компанії як об'єкти доцільно вибрати окремих співробітників, кожного з яких ідентифікувати власним ім'ям і прізвищем. Додатково в мережі можуть бути присутні такі об'єкти, як робочі проекти і підрозділи компанії. Як семантичні зв'язки можна виділити такі види, як посадове підкорення співробітників, участь співробітників в роботі над проектами, приналежність співробітників тому або іншому підрозділу компанії.
Важливою особливістю семантичних мереж є розробка спеціальних графічних позначень для представлення окремих типів вершин і ребер. При цьому вершини не зображаються, як раніше – крапками, а мають вид прямокутників, овалів, кіл і інших геометричних фігур, конкретний вид яких визначає той або інший тип єств наочної області. Більш різноманітним стає і зображення ребер, що набувають вигляд різних ліній із стрілками або без них, а також мають спеціальні позначення або прикраси у вигляді умовних значків. Відповідна система позначень, призначена для уявлення інформації про окремі аспекти модельованої наочної області, одержала назву графічної нотації.
Примітка
В зв'язку з цим слід помітити, що різні види діаграм язика UML в загальному випадку є спеціальними класами семантичних мереж з достатньо розвиненою семантикою умовних позначень, що використовуються. При цьому уніфікований характер цих позначень визначає конструктивність їх використовування для моделювання широкого круга додатків.
Як конкретний варіант представлення інформації у вигляді семантичної мережі розглянемо подальший розвиток прикладу з класом «Автомобіль» з розділу 1. Фрагмент семантичної мережі, яка описує ієрархію класів даної наочної області, може бути зображений таким чином (мал. 2.7). На даному малюнку окремі вершини семантичної мережі зображаються прямокутниками із закруглюючими кінцями і служать для умовного позначення класів даної наочної області. Сполучаючі вершини ребра мають цілком певний сенс або семантику. А саме, вони явно указують, що вершина або клас, розташований на малюнку нижче, є підкласом того класу рівнем вище, з яким є зв'язок у формі сполучаючого їх ребра.
Наприклад, класи «Легковий автомобіль» і «Вантажний автомобіль» є підкласами класу «Автомобіль», а класи «Модель ВАЗ‑ 21083» і «Модель ВАЗ‑ 21099» є підкласами класу «Легковий автомобіль виробництва ВАЗ». Ребра або зв'язки даної семантичної мережі мають єдиний тип, визначуваний семантикою включення класів один в одного. Тому ніяких додаткових позначень вони не містять.
Рис 2.7. Фрагмент семантичної мережі для представлення ієрархії класів «Автомобіль»
Примітка
Зображений вище фрагмент семантичної мережі може бути розширений різним чином, що визначається специфікою вирішуваної задачі. З одного боку, можна ввести в розгляд додаткові моделі автомобілів, а з іншою – інші типи об'єктів, наприклад, конкретні заводи, розташовані в різних регіонах, або станції, що здійснюють технічне обслуговування автомобілів. В останньому випадку з'являються додаткові зв'язки, які можуть відповідати абсолютно іншій семантиці. Наприклад, факт обслуговування тієї або іншої моделі автомобіля на окремих станціях.
Побудова моделей складних систем, що відображають десятки різних типів об'єктів і зв'язків між ними, привела в кінці 80-х років до появи великого числа різних графічних нотацій, які в тому або іншому ступені були орієнтовані на рішення спеціальних класів задач. Склалася парадоксальна ситуація, яка одержала назву «війни методів». Багато підходів, хоча і мали загальні витоки, абсолютно ігнорували інші альтернативні способи представлення семантичної інформації. Найбільше поширення в ці роки набув підхід до моделювання програмних систем, який назвали системним структурним аналізом (ССА). Оскільки багато ідей ССА зробили безпосередній вплив на розвиток язика UML, а графічна нотація, що використовується, була реалізована в деяких CASE‑ засобах, нижче приводиться коротка характеристика основних компонентів даного напряму графічного моделювання програмних систем.