Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

PrIS

.pdf
Скачиваний:
45
Добавлен:
07.12.2018
Размер:
7.24 Mб
Скачать

81

Рис. 3.7. Графічне зображення моделі системи у вигляді "чорного ящика".

Дійсно, окрім найзагальнішої інформації про те, на які дії реагує система, і як впливає ця реакція на навколишні об'єкти і системи, іншої інформації ми отримати не можемо. У рамках системного аналізу розроблені певні методологічні засоби, що дозволяють виконати подальшу конкретизацію загальної моделі системи. Деякі з графічних засобів подання моделей систем будуть розглянуті в розділі 6.

Процес розроблення адекватних моделей і їх подальшого конструктивного застосування вимагає не тільки знання загальної методології системного аналізу, але й наявності відповідних образотворчих засобів або мов для фіксації результатів моделювання і їх документування. Очевидно, що природна мова не дуже придатна для цієї мети, оскільки володіє неоднозначністю і невизначеністю. Для побудови моделей були розроблені достатньо серйозні теоретичні методи, засновані на розвитку математичних і логічних засобів моделювання, а також запропоновані різні формальні і графічні нотації, що відображають специфіку вирішуваних завдань. Важливо уявляти, що уніфікація будьякої мови моделювання тісно пов'язана з методологією системного моделювання, тобто з системою переконань і принципів розгляду складних явищ і об'єктів як моделей складних систем.

Висновки

1. Основою процедурно-орієнтованої методології розроблення програм була процедурна або алгоритмічна організація структури програмного коду.

2. . Основою розбиття програми на дрібніші фраґменти стала процедурна декомпозиція, при якій окремі частини програми або модулі були сукупністю процедур для вирішення деякої сукупності завдань. Головна особливість процедурного програмування полягає в тому, що програма завжди має початок в часі або початкову процедуру (початковий блок) і закінчення (кінцевий блок). При цьому вся програма може бути зображена у вигляді напрямленої послідовності графічних примітивів або блоків.

3. Фундаментальними поняттями ООП є поняття класу і об'єкту. При цьому під класом розуміють деяку абстракцію множини об'єктів, які мають загальний набір властивостей і однакову поведінку. Кожний об'єкт у цьому випадку розглядається як екземпляр відповідного класу. Об'єкти, які не мають повністю однакових властивостей або однакової поведінки, за визначенням, не можуть відноситися до одного класу.

82

4.Основними принципами ООП є успадкування, інкапсуляція і поліморфізм.

5.Виділення початкових або базових компонентів предметної області, необхідних для вирішення того або іншого завдання, в загальному випадку, нетривіальною проблемою. Складність такої проблеми виявляється в неформальному характері процедур або правил, які можна застосовувати для цієї мети.

6.Під життєвим циклом програми розуміють сукупність взаємозв'язаних

інаступних в часі етапів, починаючи від розроблення вимог до неї і закінчуючи повною відмовою від її використання.

Контрольні запитання

1.Методологія об'єктно-орієнтованого аналізу.

2.Методологія об'єктно-орієнтованого проектування.

3.Методологія системного аналізу.

4.Методологія системного моделювання.

83

РОЗДІЛ 4. Історичний огляд розвитку структурної та об'єктно-орієнтованої методологій проектування інформаційних систем

Математичні основи: теорія множин, теорія графів, семантичні мережі

Структурний системний аналіз

Основні етапи розвитку UML

Урозділі описано передумови виникнення структурної та об’єктноорієнтованої методології

4.1.Передісторія. Математичні основи

Відображення різних понять навколишнього світу за допомогою графічної символіки відоме віддавна. Як приклади можна навести умовні позначення знаків Зодіаку, магічні символи різних окультних доктрин, графічні зображення геометричних фігур на площині і в просторі. Важливою перевагою тієї чи іншої графічної нотації є можливість образного закріплення сенсу чи семантики окремих понять, що істотно спрощує процес спілкування.

4.1.1. Теорія множин

Однією з найвідоміших систем графічних символів, що безпосередньо вплинула на розвиток наукового мислення, є мова діаграм англійського логіка Джона Венна (1834-1923). Діаграми Венна застосовуються для ілюстрації основних теоретико-множинних операцій, які є предметом спеціального розділу математики – теорії множин. Оскільки багато загальних ідей моделювання систем адекватньо описуються термінологією теорії множин, розглянемо основні поняття даної теорії, які стосуються сучасних концепцій і технологій дослідження складних систем.

Початковим поняттям теорії множин є саме поняття множина, під якою прийнято розуміти деяку сукупність об'єктів, що мають спільні ознаки. При цьому не робиться жодних припущень ні про природу цих об'єктів, ні про спосіб їх включення в певну сукупність. Окремі об'єкти, які утворюють ту чи іншу множину, називаються елементами цієї множини. Запитання "Чому ми розглядаємо ту або іншу сукупність

84

елементів як множину?" не вимагає відповіді, оскільки у загальне визначення множини не входять жодні додаткові умови на включення окремих елементів у множину. Якщо нам хочеться, наприклад, розглянути множину, що складається з трьох елементів: "сонце, море, апельсин", то ніхто не зможе заборонити це зробити.

Прикладів конкретних множин можна навести достатньо багато. Це і множина квартир житлового будинку, і множина натуральних чисел. Сукупність комп'ютерів в офісі теж є множиною, хоча, можливо, вони і з’єднані між собою в мережу.

Множини позначаються великими літерами латинського алфавіту. При цьому окремі елементи позначаються малими літерами, іноді з індексами, які вносять деяку впорядкованість у послідовність розгляду цих елементів. Наприклад, множину квартир 100-квартирного житлового будинку з використанням спеціальних позначень можна записати як: A={, , ,..., }. Тут фіґурні дужки служать позначенням сукупності елементів, кожний з яких має свій унікальний числовий індекс. Важливо розуміти, що для заданої конкретної множини елемент позначає окрему квартиру у цьому житловому будинку. При цьому зовсім необов'язково, щоб номер цієї квартири дорівнював 10, хоча з погляду зручності це було б бажано.

Прийнято називати елементи окремої множини такими, що належать до цієї множини. Такий факт записується за допомогою спеціального символу " ", який так і називається – символ належності. Наприклад, запис А означає той простий факт, що окрема квартира (можливо, з номером 10) належить до множини квартир деякого житлового будинку.

Наступним важливим поняттям, яке служить прототипом багатьох конкретніших термінів під час моделювання складних систем, є поняття підмножини. Якщо є деяка сукупність, що розглядається як множина, то будь-яка її частина буде підмножиною. Так, наприклад, сукупність квартир на першому поверсі житлового будинку є ніщо інше, як підмножина прикладу, що розглядався нами вище. Ситуація стає не такою тривіальною, якщо розглядати множину абстрактних понять, таких як сутність або клас.

Для позначення підмножини використовується спеціальний символ. Якщо стверджується, що множина А є підмножиною множини В, то це записується як А В. Запом’ятовувати подібні значки не завжди зручно, тому з часом була запропонована спеціальна система графічних позначень.

Як же використовуються діаграми Венна в теорії множин? Виявляється, той факт, що деяка сукупність елементів утворює множину, можна позначити графічно у вигляді круга. У цьому випадку коло має

85

сенс або, точніше, семантику межі даної множини. Очевидно, що розгляд відношення включення елементів однієї множини в іншу можна зобразити графічно (рис. 4.1). На цьому рисунку більшій множині В відповідає зовнішній круг, а меншій множині (підмножині) А – внутрішній.

Рис. 4.1. Діаграма Венна для відношення включення для двох множин.

Так само можна зобразити і основні теоретико-множинні операції. Так, перетином двох множин А і В називається деяка третя множина С, яка складається з тих і лише тих елементів двох початкових множин, які одночасно належать і до множини А, і множини В. Для цієї операції також є спеціальне позначення: С=А В. Наприклад, якщо як множину А для операції перетину розглянути множину співробітників деякої фірми, а як множину В – множину всіх чоловіків, то неважко здогадатися, що множина С складатиметься з елементів всіх співробітників чоловічої статі такої фірми. Операція перетину множин також може бути проілюстрована за допомогою діаграм Венна (рис. 4.2). На цьому рисунку умовно зображено дві множини А і В, затінена область якраз і відповідає множині С, що є перетином множин А і В.

Рис. 4.2. Діаграма Венна для перетину двох множин.

Наступною операцією, яка також допускає предметну інтерпретацію, є операція об'єднання множин. Під об'єднанням двох множин А і В розуміється деяка третя множина, хай це буде D, яка складається з тих і лише тих елементів, які належать або до А, або до В, або до них обох одночасно. Звичайно, спеціальне позначення є і для цієї операції: D=A B. Так, якщо множина А складається з клавіатури і мишки, а множина В – із системного блоку і монітора, то неважко здогадатися, що їх об'єднання, тобто множина D, утворює основні складові персонального комп'ютера. І для цієї операції є умовне графічне подання (рис. 4.3).

86

Рис. 4.3. Діаграма Венна для об'єднання двох множин.

На цьому рисунку об'єднанню двох початкових множин також відповідає затемнена область, тільки розміри і форма її відрізняються від випадку перетину двох множин на попередньому рисунку.

Останнє, на що треба звернути увагу при такому короткому знайомстві з основами теорії множин – це на так звані поняття потужності множини і відношення множин. Хоча існують і інші операції над множинами, а також цілий ряд додаткових понять, їх розгляд виходить за рамки цієї книги. Що стосується поняття потужності множини, то цей термін важливий для аналізу кратності зв'язків, оскільки асоціюється з кількістю елементів окремої множини. У випадку скінченної множини ситуація дуже проста, оскільки потужність скінченної множини дорівнює кількості елементів цієї множини. Отже, повертаючись, наприклад, до множини А квартир житлового будинку, можна сказати, що її потужність дорівнює 100.

Ситуація ускладнюється, коли розглядаються нескінченні множини. Обмежимо наш розгляд нескінченними множинами зліченної потужності. Такими множинами прийнято вважати множини, що містять нескінченну кількість елементів, які, проте, можна перенумерувати натуральними числами 1, 2, 3 і так далі. При цьому важливо мати на увазі, що досягти останнього елементу при такій нумерації принципово неможливо, інакше множина виявиться скінченною. Наприклад, є всі підстави вважати множину всіх зірок нескінченною, хоча багато з них мають свою унікальну назву.

Також фундаментальним поняттям є відношення множин, яке часто замінюється термінами зв'язок або співвідношення. Цей термін походить із теорії множин і служить для позначення будь-якої підмножини впорядкованих кортежів, побудованих з елементів деяких початкових множин. При цьому під кортежем розуміється просто набір або список впорядкованих елементів. Іншими словами, якщо розглядати перший елемент кортежу, то він завжди буде першим у списку елементів, другий елемент кортежу буде другим елементом у списку і так далі.

Кортеж із двох елементів зручно позначати як <, >, з трьох елементів – <>, і так далі. При цьому окремі елементи можуть належати як до однієї множини, так і до різних множин. Важливо мати на увазі, що порядок вибору елементів для побудови кортежів строго

87

фіксований для конкретного подання. Мова йде про те, що перший елемент завжди вибирається з першої множини, другий – з другої, і т. д.

Відношення у цьому випадку характеризуватиме спосіб або семантику вибору окремих елементів з однієї або декількох множин для подібного впорядкованого списку. У цьому сенсі взаємозв'язок є окремим випадком відношення, про що йтиме мова далі. Діаграми Венна не призначені для ілюстрації відношень у загальному випадку. Проте відношення послужили початковою ідеєю для розвитку іншої теорії, яка навіть своєю назвою вказує на графічну нотацію, а саме – теорії графів. У зв'язку з цим найважливішим є той факт, що теоретико-множинні відношення послужили також основою для розроблення реляційної алґебри в теорії реляційних баз даних. Розвиток останньої привів до того, що останніми роками саме реляційні СКБД конкретних фірм домінують на ринку відповідного програмного забезпечення.

4.1.2. Теорія графів

Граф можна розглядати як графічну нотацію для бінарного відношення двох множин. Бінарне відношення складається з таких кортежів або списків елементів, які містять тільки два елементи деякої множини. Хоча основні поняття теорії графів склалися задовго до появи теорії множин як самостійної наукової дисципліни, формальне визначення графу зручно подати в теоретико-множинних термінах.

Графом називається сукупність двох множин: множина крапок або вершин і множина ліній, що сполучають їх, або ребер. Формально граф задається у вигляді двох множин: G=(V,Е), де V={} – множина вершин графу, а Е={} – множина ребер графу. Натуральне число n визначає загальну кількість вершин конкретного графа, а натуральне число m – загальну кількість ребер графу. Зазначимо, що, у загальному випадку, не всі вершини графу можуть з'єднуватися між собою, що ставить у відповідність кожному графу деяке бінарне відношення P, що складається зі всіх пар вигляду <>, де , V. При цьому пара <> і, відповідно, пара <> належать до відношення P в тому і лише в тому випадку, якщо вершини з'єднуються у граф G деяким ребром Е. Вершини графу зображаються крапками, а ребра – відрізками прямих ліній. Поряд з вершинами і ребрами записуються відповідні номери, або ідентифікатори, що дозволяють їх ідентифікувати однозначно.

Примітка

Загалом, графи бувають двох різних типів. Розглянуте вище визначення відноситься до неорієнтованого графу, тобто до такого, в

88

якому ребра не мають напрямку або орієнтації. Окрім неорієнтованих графів, існують орієнтовані графи, які визначаються таким чином.

Орієнтований граф також задається у вигляді двох множин G=(V, E), де V={ } – множина вершин графу, а E={} – множина дуг графу. Натуральне число n визначає загальну кількість вершин конкретного графу, а натуральне число m – загальну кількість дуг графу. При цьому кожна дуга Е орієнтованого графа G має свій початок – деяку єдину вершину V і кінець – деяку єдину вершину V. На відміну від ребра, дуга завжди має позначення і з стрілкою, яка напрямлена до кінцевої вершини дуги. Множина дуг ставить у відповідність кожному орієнтованому графу деяке бінарне відношення P,

що складається зі всіх пар вигляду < >, де

V. При цьому пара

< > належить до відношення P в тому і лише в тому випадку, якщо

вершини

та з'єднуються у граф G деякою дугою Е з початком у

вершині

і кінцем у вершині .

 

Нижче подано два приклади конкретних графів (рис. 4.4). При цьому перший з них (рис. 4.4, а) є неорієнтованим графом, а другий (рис. 4.4, б) – орієнтованим графом. Як неважко відзначити, для

неорієнтованого графу ребро

з’єднує вершини

та , ребро –

вершини

та , а ребро

вершини

і так далі. Останнє

ребро,

, з’єднює вершини

та

, тим самим задається опис графу

загалом. Інших ребер цей граф не містить, як не містить і інших вершин,

що не зображаються

на

рисунку. Так, хоча ребра

 

та

візуально

перетинаються, але точка їх перетину не є вершиною графу.

 

Для орієнтованого

графу (рис. 4.4,

б) ситуація інша.

Вершини

з’єднані дугою

, для

якої вершина

є початком дуги, а

вершина – кінцем цієї дуги. Далі дуга

з’єднує вершини

, при

цьому початком дуги

 

є вершина

, а кінцем – вершина .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.4. Приклади неорієнтованого (а) і орієнтованого (б) графів.

89

Графи широко застосовуються для подання різної інформації про структуру систем і процесів. Прикладами подібних графічних моделей можуть служити: схеми автомобільних доріг, що з’єднують окремі населені пункти; схеми телекомунікацій, використовуваних для передавання інформації між окремими вузлами; схеми програм, на яких вказуються варіанти розгалуження обчислювального процесу. Загальною для всіх конкретних подібних моделей є можливість подання інформації у графічному вигляді у формі відповідного графу. При цьому окремі моделі, як правило, використовують додаткову семантику і спеціальні позначення, характерні для тієї або іншої предметної області.

Важливими поняттями теорії графів є поняття маршруту і шляху, які асоціюються з послідовним переміщенням від вершини до вершини ребрами, що з’єднують їх, або дугами. Для неорієнтованого графу маршрут визначається як скінченна або нескінченна впорядкована

послідовність ребер S=<> таких, що кожні два сусідні

ребра мають спільну вершину. Нас цікавитимуть тільки скінченні

маршрути S=<

>, тобто такі маршрути, які складаються зі

скінченної

кількості

ребер. При цьому ребро

прийнято

вважати

початком

маршруту

S, а ребро

– кінцем

маршруту

S. Для

орієнтованого графу

відповідна послідовність дуг

S=<

>

називається орієнтованим маршрутом, якщо дві сусідні дуги мають спільну вершину, яка є кінцем попередньої і початком наступної дуги.

Прикладами маршрутів для неорієнтованого графа (рис. 2.4, а) є послідовності ребер: , , . Якщо в маршруті не повторюються ні ребра, ні вершини, як у разі , то такий неорієнтований маршрут називається простим ланцюгом.

Прикладами орієнтованих маршрутів для графу (рис. 2.4, б) є такі послідовності дуг:

.

Якщо в орієнтованому маршруті не повторюються ні ребра, ні вершини, як у випадку , то такий орієнтований маршрут називається шляхом. Останнє поняття також іноді застосовується для позначення простого ланцюга в неорієнтованих графах і для визначення спеціального класу графів, так званих дерев. У загальному випадку дерева служать для графічного подання ієрархічних структур, або ієрархій, що займають важливе місце в ООАП.

Деревом в теорії графів називається такий граф D=<V, E>, між будь-якими двома вершинами якого існує єдиний простий ланцюг, тобто неорієнтований маршрут, у якого вершини і ребра не повторюються. Для орієнтованих графів відповідне означення є складнішим, оскільки ґрунтується на виділенні деякої спеціальної вершини , яка отримала

90

спеціальну назву кореневої вершини, або просто – кореня. У цьому випадку орієнтований граф D=<V, Е> називається орієнтованим деревом або скорочено – деревом, якщо між коренем дерева будь-якою іншою вершиною існує єдиний шлях, що бере початок у . Нижче подано два приклади дерев: неорієнтованого дерева (рис. 4.5, а) і орієнтованого дерева (рис. 4.5, б).

Рис. 4.5. Приклади неорієнтованого (а) і орієнтованого (б) дерев.

У випадку неорієнтованого дерева (рис. 4.5, а) будь-яка з вершин графу може бути вибрана як корінь. Подібний вибір визначається специфічними особливостями вирішуваного завдання. Так, вершина може розглядатися як корінь неорієнтованого дерева, оскільки між будь-якою іншою вершиною дерева завжди існує єдиний простий

ланцюг.

 

Для випадку орієнтованого дерева (рис. 4.5, б) вершина

є єдиним

його коренем і має спеціальне позначення . Єдиність

кореня в

орієнтованому дереві випливає з того факту, що орієнтований шлях завжди має єдину вершину, яка є його початком. Оскільки в теорії графів має значення тільки наявність або відсутність зв'язків між окремими вершинами, дерева, як правило, зображаються спеціальним чином у вигляді ієрархічної структури. При цьому корінь дерева зображається найвищою вершиною в цій ієрархії. Нижче розташовуються вершини 1-го рівня, які пов'язані з коренем одним ребром, або однією дугою. Наступний рівень матиме номер 2, оскільки відповідні вершини мають бути пов'язані з коренем двома послідовними ребрами, або дугами. Процес побудови ієрархічного дерева продовжується до того моменту, поки не будуть розглянуті вершини, які не пов'язані з іншими вершинами, окрім розглянутих, або з яких не виходить жодна дуга. У цьому випадку найнижчі вершини іноді називають листям дерева. Важливо мати на увазі, що в теорії графів дерево "росте" вниз, а не вгору, як в реальному житті.