Підходи до моделювання складних систем
Підхід до моделювання складної системи визначає тип властивостей та/чи аспекти поведінки системи, які приймаються за суттєві для даної мети дослідження, та обумовлює характер її декомпозиції, тобто те, за якою ознакою виділяються окремі її фрагменти і відношення між ними. Загальноприйнятим методом наукового пізнання є нині системний підхід.
Системний підхідяк методологія дослідження передбачає вивчення процесів функціонування складних систем на основі загальносистемних принципів. Системний підхід вимагає виявлення ролі окремих підсистем у формуванні властивостей системи в цілому, а також виявлення особливостей взаємодії системи із зовнішнім середовищем.
Особливості і напрямки практичної реалізації системного підходу до дослідження і проектування систем будь-якої природи відбивають основні його принципи: принцип системності, принцип полі/ізоморфізму, принцип декомпозиції, синтезу тощо.
Суть системного підходу до дослідження і проектування систем будь-якої природи визначає принцип системності: будь-яка складна динамічна система є, з одного боку, системою серед собі подібних, а з іншого боку, може бути підсистемою деякої складнішої системи. Звідси випливає, що при проектуванні і дослідженні складних систем повинні враховуватися не лише взаємозв'язки між елементами усередині системи, але і зв'язки з іншими системами, які утворюють зовнішнє середовище. Система і зовнішнє середовище повинні розглядатися при аналізі ситуацій, що породжуються зміною або поточного стану системи, або стану зовнішнього середовища, як єдине ціле.
Особливе місце серед системних принципів займає принцип поліізоморфізму, згідно якого довільна система належить до кількох множин поліморфічних модифікацій. При цьому під поліморфізмом, тобто різноманіттям форм, розуміють множину систем, що розрізняються або за складом первинних базових елементів, або за елементами зв'язку між ними. Цей принцип відбиває єдність будови систем різної фізичної природи.
З цього принципу випливає множинність структур, здатних реалізовувати одну й ту саму головну функцію. Згідно даного принципу при проектуванні систем не можна обмежуватися розглядом лише одного варіанту структури системи, її властивостей або цілей. Принцип ізоморфізму дає змогу переносити системні знання з однієї науково- практичної області в іншу. Спеціальним проявом принципу поліморфізму є принцип багатокритеріальності, згідно якому одна і та сама система може бути оптимізована за багатьма критеріями (багатокритеріальна система), і одночасно, один і той самий критерій може використовуватися при оптимізації різних систем.
Принцип декомпозиціїполягає в можливості розчленувування за тією чи іншою ознакою вихідної системи як по горизонталі (на одному рівні структури), так і по вертикалі (на окремі рівні структури) на множину елементів (підсистем) і зв'язків між ними і у формуванні для них власних (індивідуальних) функцій і цілей управління за умови забезпечення початкових загальносистемних функцій і цілей управління. Процедура виділення елементного складу системи, її системних властивостей і ознак визначається особливостями її організації, завданнями і цілями дослідження і є евристичною, не завжди очевидною і легко вирішуваною процедурою.
В результаті декомпозиції по горизонталі утворюється багатозв'язна система з тією чи іншою плоскою структурою, яка складається з кількох взаємозв'язаних і взаємодіючих підсистем, що мають свої функції і цілі. Отримані внаслідок декомпозиції по вертикалі підсистеми також мають свої власні цілі і функції, виконання яких спрямоване на реалізацію головної функції системи.
Принцип інтеграції (композиції)полягає в можливості об'єднанн різними способами за певнии правилами множини початкових елементів (підсистем) за допомогою множини зв'язків в єдину систему і у виявленні загальносистемних властивостей і функцій новоутвореної системи. Цей принцип розповсюджується не лише на способи формування структури складної системи, але і на способи формування властивостей системи з властивостей підсистем.
Принцип еквівалентностішляхів досягнення мети є наслідком принципу поліморфізму і відбиває різноманіття процесів і явищ. Він полягає в тому, що реально існує кілька еквівалентних (рівноцінних) шляхів досягнення однакового кінцевого результату, які відрізняються один від одного траєкторіями руху, використаними засобами, технологіями, ресурсами, алгоритмами управління.
Принцип системної готовності полягає в тому, що для фізичної реалізації будь-якої функціональної системи необхідна наявність всіх компонентів системи і навколишнього середовища, узгоджених між собою для досягнення мети системи. Порушення даного принципу у разі створення інформаційної системи або дуже розтягує термін реалізації системи із-за збільшення терміну її доведення, або взагалі ставить під сумнів її створення.
Системний підхід– це методологія, яка базується на поданні об’єкта дослідження у вигляді системи, створення її математичної моделі та дослідженням системи за цією моделлю на ЕОМ.
При системному підході основний акцент робиться на виявленні різноманіття зв’язків та відносин, як між елементами досліджуваної системи так і з оточуючим середовищем.
Системний підхід є комплексним, і охоплює компонентний, структурний, функціональний, діагностичний, інтеграційний, комунікаційний та інформаційний підходи, які можна розглядати як приналежні до групи системних методів підходи до моделювання предметної області. Їх, на думку Є.Ушакова [106], можна вважати за спеціальні варіації загальної системної методології, оскільки вони, по суті справи, виділяють певні аспекти в системному аналізі.
Вся група системних підходів грунтується на наступних спільних положеннях:
1. системний довільної природи, об'єкт чи процес, повинен незалежно від своєї природи розглядатися як сукупність елементів, зв'язаних між собою деякою множиною структурних та функціональних зв'язків;
2. функціонування системи, її системні властивості залежать лише від її структурної організації, хоча можуть у різних умовах проявлятися по-різному;
3. для структурної організації системи можуть бути знайдені ізоморфні аналоги, реалізовані на інших носіях.
Ці постулати визначають спосіб розгляду об'єкту або процесу як системи. Система в такому ракурсі є інваріантною відносно матеріальних носіїв різної природи. Системний розгляд об'єкту чи процесу має виявити його структурну і функціональну організацію, тобто множину тих зв'язків, які необхідні і достатні для розуміння їх системних властивостей. І навпаки, системні властивості об'єкту або процесу повинні тлумачитися як обумовлені їх структурною організацією і лише нею. Властивості, притаманніі об'єкту або процесу як системні, можуть бути перенесені на інші системи з іншими цілями і іншої природи.
Типовою схемою системного моделювання є визначення вихідної системи (її структури, системних властивостей, функціонування, параметрів, що відносяться до зовнішнього середовища); аналіз її структурної і функціональної організації; оптимізаційне дослідження — визначення її екстремальних станів, вузлових структурних особливостей, критичних точок; підведення підсумків, екстраполяція результатів на вихідний об'єкт або, при проектуванні, на інші об'єкти. При подібних дослідженнях використовується величезна сукупність математичних концепцій і методів: дослідження операцій, теорія масового обслуговування, теорія ігор, варіаційне числення, теорія алгоритмів, різні ймовірносно-статистичні методи; для аналізу структури — теорія множин, топологія, теорія графів і інші математичні методи.
В групі системних виділяють наступні основні підходи до дослідження (моделювання) предметної області.
1. Структурний підхідвимагає вивчення закономірностей в будові систем з метою встановлення взаємозалежності між їх структурою і властивостями. Структурний підхід спирається на компонентний, який зосереджується на дослідженні поелементного складу системи. Структурний підхід в системній концепції дослідження складних систем дозволяє виявити множину структур, здатних реалізувати вибраний принцип управління та головну функцію і, навпаки, досліджувати різні алгоритми управління та зовнішні функції, відповідні певній структурі. До цього підходу відноситься ряд процедур, пов'язаних з вивченням «чистих» формально-структурних особливостей систем, дослідження значущості (рангу) тих або інших елементів, множини і топології зв'язків, їх критичних пунктів, довжини і структурної складності різних шляхів між елементами, можливості виділення самостійних підсистем і тому подібне. Структурний підхід складає основу аналізу і синтезу систем, моделей і алгоритмів управління. При цьому зосередження уваги на зв'язках системи з зовнішнім середовищем характерне для комунікаційного варіанту структурного підходу, а на сукупності якісних властивостей та відношень системи, які забезпечують її цілісність та особливість – для інтеграційного.
2. Функціональний підхід - це методологія наукового пізнання, відповідно до якої життєдіяльність складної системи розглядається як виконання локальними підсистемами множини взаємопов'язаних функцій, що забезпечують досягнення глобальної мети (виконання головної функції, призначення) системи. Функціональний підхід націлює дослідника на вивчення механізму формування і способів моделювання таких властивостей системи як адаптація системи до зовнішнього середовища, підсистем одна до одної, людини до систем (технічних, інформаційних, організаційних), надійність, життєздатність і стійкість (як структурна, так і параметрична), самоорганізація і самонавчання.
3. Динамічний підхідобумовлює розгляд складних систем в русі (динаміці) під дією зовнішніх і внутрішніх чинників, що викликали порушення їх рівноважного стану. Динамічний підхід націлює на вивчення нерівноважних режимів зміни ресурсів, витрат, продуктивності і ефективності системи в часі.
4. Кібернетичний підхідяк методологія дослідження і управління вимагає розгляду динамічного об'єкту з погляду ефективного і цілеспрямованого управління на основі зворотного зв'язку на підставі інформації про внутрішній стан об'єкту і стан середовища. Кібернетичний підхід дозволяє досліджувати різні форми руху системи, можливості цілеспрямованої дії на неї, а також способи ефективної протидії шкідливим впливам з боку зовнішнього середовища.
5. Ситуаційний підхід- це методологія дослідження систем і прийняття рішень по них, згідно якої рішення в умовах невизначеності і протидії навколишнього середовища формується на основі як обробки поточної інформації, так і накопичених раніше знань, досвіду шляхом переорієнтації цілей, перерозподілу ресурсів, перегляду алгоритмів і структури системи.
Даний підхід орієнтує дослідника на правильний аналіз ситуацій і на ефективне використання своїх можливостей на основі накопичених досвіду і знань. При цьому поточний стан системи і стан навколишнього середовища розглядаються спільно як деяка ситуація, яку потрібно розпізнати і правильно в ній зорієнтувати систему. Ситуація вважається за невизначену, коли або у системи, що має в своєму розпорядженні ресурси, відсутні цілі, або поведінка зовнішнього середовища і системи є непередбачуваною. Ситуація може перетворитися на проблему (проблемну ситуацію), коли у системи визначені цілі, але відсутні ресурси або не зрозумілі конкретні шляхи досягнення цілей.
6. Ресурсно-цільовий (діагностичний) підхід як методологія дослідження складних систем передбачає вивчення підсистем або елементів з погляду їх ролі в організації процесу виконання головної функції системи шляхом розподілу, обміну і споживання ресурсів. Даний підхід орієнтує дослідника на узгодження реальних можливостей системи із запланованими цілями.
7. Інформаційний підхід - це методологія, за якої функціонування систем (процесів або об'єктів) розглядається з погляду перетворення, зберігання, обміну, видачі і використання інформації, необхідної для досягнення мети функціонування.
При інформаційному підході реальний об'єкт найчастіше розглядається як «чорний ящик», що має ряд входів і виходів, між якими моделюються деякі зв'язки. Параметри, а почасти, і структура моделі, якщо вона не визначена природою об'єкту, «підлагоджуються» під дані, які описують поведінку системи [101]. Для коректування параметрів моделі використовується зворотний зв'язок — відхилення результату, отриманого на моделі, від отриманого на оригіналі, а процес налаштування моделі часто носить ітеративний (тобто циклічний) характер (рис.2.2).
Рис. 2.2. Типовий процес побудови моделі за методологією інформаційного підходу
При інформаційному підході відправною точкою виступають дані, що характеризують досліджуваний об'єкт. Моделі, отримані за допомогою інформаційного підходу, добре відбивають специфіку модельованого об'єкту. Для бізнес-процесів це дуже важливо, тому інформаційний підхід лежить в основі більшості сучасних промислових технологій і методів аналізу даних. Водночас концепція «моделей від даних» вимагає ретельного підходу до якості вихідних даних, оскільки помилкові, аномальні і зашумлені дані можуть привести до моделей і висновків, що не мають жодного відношення до дійсності [101]. Тому в інформаційному моделюванні важлива роль відводиться процедурам консолідації даних, їх очищення і збагачення.
Результатом моделювання при інформаційному підході часто виступає інформаційна модель — модель об'єкту, представлена у вигляді інформації, що описує істотні для даного розгляду параметри і змінні величини об'єкту, зв'язки між ними, входи і виходи об'єкту.
Інформаційні моделі поділяються на описові і формальні. Описові інформаційні моделі- це моделі, створені на природній мові в усній або письмовій формі. Формальні інформаційні моделі- це моделі, створені на формальній мові, у вигляді формул, графів, блок-схем, алгоритмів, програм на мовах програмування тощо.
Інформаційні моделі застосовуються для [100]: моделювання відгуку системи на зовнішню дію; класифікації внутрішніх станів системи; прогнозу динаміки зміни системи; оцінки повноти опису системи; визначення порівняльної інформаційної значущості параметрів системи і аналізу чутливості; оптимізації параметрів системи за критерієм заданої функції корисності; адаптивного управління системою.
Слід зазначити, що останнім часом сформувалася концепція інформаційного підходу до пізнання дійсності як комплексної методології пізнання сутностей, явищ та процесів на основі поняття інформації та закономірностей її розвитку [30]. В межах цієї концепції інформаційний підхід – це методологічний принцип наукового пізнання, що полягає в розгляді об'єктів дослідження через призму категорії інформації. Вперше спробу розглянути інформаційний підхід як логіко-гносеологічне і методологічне утворення зробив Е.П.Семенюк на основі кібернетичних уявлень про інформацію [89, с. 7].
Базовим положенням цього підходу є визнання інформації таким же фундаментальним проявом реальності навколишнього світу живої і неживої природи, як речовина і енергія [71]. Виділяють два режими використання інформаційного підходу:
· з відокремленням одна від одної інформаційних моделей і реальної дійсності - так званий «коректний» підхід [94]);
· з ототожненням інформації з реальними об'єктами (сигнали, знання, властивість відображення, структура тощо) – «некоректний» [94] підхід, використовуваний в інформаційних науках, що вивчають соціальну інформацію або її різновиди (наукову, економічну, естетичну і так далі інформацію. Некоректний підхід широко поширений в науці і практиці, завдяки здатності виконувати корисні функції: номінативну, конструктивну, описово-пояснювальну.
Ступінь загальності такого інформаційного підходу залежить від того, якої концепції інформації притримується дослідник. Існують дві основні концепції інформації, які в явному або неявному вигляді представлені в сучасній літературі. Це атрибутивна концепція інформації, за якою інформація властива всім матеріальним системам, фізичним процесам та об’єктам. Ця концепція активно розроблялася А.Д. Урсулом, Л.Б. Баженовим, Л.А. Петрушенко, К.К.Коліним, В.Б.Гухманом та ін. Їй протистоїть функціональна концепція інформації, згідно якої інформація є властивістю лише систем, що самоорганізуються (тобто біологічних і соціальних, включаючи біо- і соціотехнічні системи). Цю позицію відстоювали П.В. Копнін, А.М. Шулік, В.С. Тюхтін, Б.С. Українців, Д.І. Дубровський та ін.
Інформаційний підхід як фундаментальний метод наукового пізнання в межах атрибутивної концепції інформації базується на наступних положеннях [49, 50]:
· визнанні інформації за загальну властивість прояву реальності, зокрема, неживої матерії;
· визнанні загальності прояву і фундаментальності інформації як семантичної властивості матерії, відповідальної за зв'язок форми і змісту;
· визнанні визначальної ролі інформації в еволюційних процесах будь-якої природи;
· визнанні справедливості концепції єдності інформаційних законів природи і суспільства, не зважаючи на певну специфіку їх прояву в різних інформаційних середовищах.
В межах атрибутивної концепції обгрунтована концепція інформаційного психофізичного монізму [30], в основі якої – наступні положення:
· різноманіття всесвіту – прояв інформаційного різноманіття;
· всі змісти сущого є змістом його внутрішньої інформації, всі значення змісту – інформаційні символи (коди), всі взаємодії – інформаційні (інформаційно-енергетичні) процеси;
· подільність інформації (на відміну від матерії) вичерпанна, скінченна, отже, у разі розсіянння (дисипації), вона може бути відновлена; з цього випливає можливість самоорганізації матерії і появи нових якісних станів;
· інформація існує в матерії, свідомості і їх відношеннях, одночасно виступаючи їх суттю – подібно до змісту як суті текстів і відношень між текстами;
· інформація – самовідбиття Універсуму, частково дане в актах відображення.
Парадигма функционалізму сформувалася в другій половині минулого століття. Суть цієї парадигми визначається положенням про те, що опис і пояснення функціональних стосунків, як доведено А.Тьюрінгом, логічно незалежні від фізичного опису і пояснення.
Інформаційний підхід в межах функціональної концепції інформації грунтується на принципах, що випливають з парадигми функционалізму [36]:
· принцип визнання інформації загальною і фундаментальною властивістю виключно систем, що самоорганізуться (біологічних, соціальних, био- і соціотехничних);
· принцип ізофункціоналізму систем, тобто можливості відтворення системи з даним набором функцій на різних субстратах;
· принцип інваріантності інформації стосовно фізичних властивостей її носія: інформація необхідно втілена в певному фізичному носієві, не існує зовні і окремо від нього, але водночас інваріантна стосовно фізичних властивостей свого носія. Одна і та сама інформація може мати різні за фізичними властивостями та природою носії, тобто кодуватися по-різному;
· принцип інформаційної причинності: у системі, здатній самоорганізуватися, причинний ефект визначається не лише конкретними фізичними властивостями носія, а власне інформацією, що представляє кодову залежність «інформація-носій», яка склалася в ході еволюції і носить функціональний характер;
· принцип функціональності зв'язку інформації і її носія. Інформація як «зміст повідомлення» (Н. Вінер), як зміст сигналу (свого носія, що втілює цей зміст в певній кодовій формі) органічно об'єднує в собі «зміст» і фізичні особливості коду. Зв'язок між «змістом» і її кодовим носієм - це функціональний зв'язок, точніше - вид функціонального зв'язку, специфічний для кодової залежності, при якій дана інформація і її даний носій є явищами одночасними і однопричинними. Кодовий зв'язок (кодова залежність), формуючись в ході еволюції, стає елементом самоорганізації.
8. Еволюційний підхід. Еволюційний підхід, результатом якого є отримання еволюційних моделей, тобто моделей розвитку систем, займає особливе місце серед групи системних підходів В основі еволюційних моделей лежить доведене у 1975 р. Б. Мандельбротом [123] існування феномену фрактальності, під яким розуміють внутрішню подібність природних процесів чи повторення явищ у системах різних масштабів [78]. З сутності фрактальності зрозуміло, що вона дає змогу встановити загальний стан системи за рахунок ідентифікації кількох найбільш значимих моментів, достатніх для забезпечення подібності, без збирання та аналізу значної кількості непотрібної чи зайвої інформації, яка традиційно вважається потрібною при прийнятті управлінських рішень. При використанні фрактального підходу відбувається «випереджувальна» (щодо збору інформації) концентрація на окремих суттєвих ознаках, за якими можна судити про загальні тенденції розвитку процесу, за значеннями яких визначають стан системи загалом та перспективи її розвитку.
9. Системологічний підхід. Цей підхід, відмінності якого детально розглядаються у роботах Г.Мельникова та С.Маторина, можна також вважати окремим різновидом системного підходу.
Традиційний системний підхід розглядає систему як різновид множини. «Ноосферний» системний підхід (або системологія) розглядає систему як функціональний об'єкт, функція якого обумовлена функцією об'єкту вищого ієрархічного рівня (надсистеми) [68]. Цей підхід призначений для дослідження цілеспрямованої взаємодії систем будь-якої природи, зв'язки між якими розглядаються як потоки елементів глибинних ярусів зв'язаних систем. Це забезпечується шляхом врахування функціонального характеру цілісності системи, ієрархічної природи зовнішнього середовища і процесу адаптації системи до запитів надсистеми. Концептуальний апарат системології дає змогу однотипно описувати поняття теорії організації, логістики, інжинірингу бізнесу, а також об'єктно-орієнтованої методології створення інформаційних систем [11, 63, 64].
Системологічний підхід дозволяє представити систему як функціональний об'єкт, зв'язаний вхідними і вихідними потоками з іншими об'єктами (системами). Деталізація цього положення приводить до розгляду системи з трьох боків. З одного боку, як перехрестя вхідних і вихідних зв'язків/потоків, тобто як вузла. З іншого - як процесу (процедури) перетворення елементів, що поступають у систему у вхідних потоках, в елементи, які виходять з системи у вихідних потоках, тобто як функції. З третього боку, як матеріального явища, що реалізує (виконує) функцію перетворення входу у вихід, тобто як об'єкту. Інтеграція цих трьох аспектів дозволяє представити будь-яку систему як елемент вузол–функція–об'єкт (УФО-елемент), що формалізує три очевидні факти:
· будь-яка система обов'язково входить в структуру як вузол системи вищого ярусу (надсистеми);
· довільна система обов'язково якось функціонує (перетворює вхід у вихід);
· будь-яка система (якщо вона є в структурі і функціонує) обов'язково існує як матеріальне явище.
2.6. Об'єктно-орієнтований підхід до побудови моделей складних систем
Моделювання предметної області передбачає побудову її об'єктної моделі, тобто представлення її у вигляді взаємопов’язаних об’єктів (сутностей), описаних певними властивостями, та зв'язків між ними. Складні системи можна досліджувати, фокусуючи увагу або на процесах, або на об'єктах. У першому випадку використовується алгоритмічна декомпозиція системи, за якої вона розглядається як сукупність взаємоповязаних операцій, виконання яких у певному порядку забезпечує відповідні послідовні реакції системи на зовнішні впливи. У другому використовується об'єктно-орієнтована декомпозиція, за якої світ розглядається як осмислена сукупність об'єктів, які в процесі взаємодії один із одним визначають складну поведінку системи.
Об'єкт - поняття або річ з певними межами, яка виступає в якості елементарної складової обраної предметної області, представлення фрагменту реальної сутності світу. «Об'єктом є конкретний предмет, що піддається ідентифікації, елемент або сутність, реальна або абстрактна, що грає чітко окреслену роль в даній предметній області» [29].
За об'єктно-орієнтованого підходу, на відміну від структурного, вважається, що об'єкт може бути описаний через сукупність своїх властивостей (атрибутів) і реакцій на зовнішні впливи, тобто виступає як колекція властивостей і поведінки. Об'єкт має чітко окреслені межі і характеризується станом, поведінкою та індивідуальністю (відмінна від інших властивість [15, с. 116]), що дозволяють відокремити його від інших об'єктів.
У природі об'єкт є концептуальним або фізичним. Наприклад, студент, службовець, є концептуальним об'єктом, тоді як транспортний засіб, плід, є фізичним об'єктом. Всі ці об'єкти мають певні властивості і власну поведінку.
Стан об'єкту характеризується переліком всіх (як правило, статичних) властивостей даного об'єкту і поточними (як правило, динамічними) значеннями кожної з цих властивостей.
Поведінка – це дії і реакції об'єкту, виражені через зміни у стані об'єкту і передачу повідомлень. Інакше кажучи, поведінка об'єкту – це його видима ззовні діяльність.
Операцією називається певна дія одного об'єкту на інший з метою викликати певну реакцію. Конкретна реалізація операції називається метожом. Сумарний результат поведінки об'єкта утворює його стан.
Весь зв'язок з об'єктом здійснюється через повідомлення. Об'єкт, якому посилають повідомлення, називають одержувачем повідомлення. Повідомлення визначають інтерфейс об'єкта, тобто все те, що об'єкт може робити. Інтерфейс відображає зовнішню поведінку об’єкта, доступ до якого здійснюється тільки через його інтерфейс за допомогою повідомлень.
Сукупність всіх методів, пов'язаних з конкретним об'єктом, утворює його протокол, який описує поведінка об'єкта та містить всі його статичні і динамічні властивості.
У об'єктно-орієнтованому моделюванні всі об'єкти поділяють на дві категорії: пасивніі активні. Пасивний об'єкт оперує тільки даними і не може ініціювати діяльність з управління іншими об'єктами. Проте пасивні об'єкти можуть надсилати сигнали в процесі виконання запитів, які вони отримують. Активний об'єкт створюєсвій власний потік управління (керуючі впливи), який може виконуватися паралельно з іншими обчислювальними процесами або процесами управління, і може ініціювати діяльність з управління іншими об'єктами. Крім того, об'єкт має життєвий цикл – період часу існування, який може бути як статичним, так і динамічним, і не збігатися з періодом існування системи в цілому.
Відношення між двома об'єктами базуються на взаємних припущеннях про допустимі операції і очікувану поведінку. Особливий інтерес для об'єктно-орієнтованого аналізу і проектування представляють два типи відношень між об'єктами [15, с. 119]: зв'язки і агрегація. Зв'язок визначають як «фізичне або концептуальне з'єднання між об'єктами». Об'єкт співпрацює з іншими об'єктами, використовуючи зв'язки з ними. Інакше кажучи, зв'язок — це конкретне з'єднання, через яке об'єкт запрошує послугу у іншого об'єкту або керує ним.
Тоді як зв'язки позначають рівноправні (неорієнтовані чи орієнтовані) відношення між об'єктами, агрегація описує ієрархію "ціле/частина" і дозволяє переходити від цілого (агрегату) до його компонентів. У цьому сенсі агрегація є окремим випадком асоціації.
За об'єктно-орієнтованого підходу подібні об'єкти із спільними властивостями групуються в класи. Кожен клас описує набір індивідуальних об'єктів. Кожен об'єкт виступає зразком (екземпляром) його класу. Характеристики об'єкту представлені в класі як змінні і назваются властивостями або атрибутами класу. Всі об'єкти в класі виконують деякі спільні дії або операції. Кожна дія, яка потребує використання даного об'єкту, стає функцією в класі і називається методом.
Основною відмінністю об’єктної моделі за об’єктно-орієнтованого підходу є те, що вона являє собою суперпозицію двох структурних моделей – «ієрархії об’єктів» та «ієрархії класів». Одна з них, «ієрархія об’єктів», зберігається у внутрішній пам’яті моделі і відбиває структуру, тобто набір складових («об’єктів») конкретної модельованої системи та зв'язків між ними. Друга – «ієрархія класів» - зберігається у зовнішній пам’яті моделі і відбиває структуру (склад + зв’язки) множини класів об’єктів. При цьому складові моделі «ієрархія об’єктів» - «об’єкти» - описуються своїми властивостями та їх проявами у вигляді реакцій на певні зовнішні впливи. У цьому сенсі говорять, що об’єкт інкапсулює свою поведінку, оскільки поведінка – це розгорнута у часі послідовність реакцій на зовнішні впливи. Саме агрегування у склад атрибутів об’єкта його закономірних реакцій на зовнішні впливи обумовлює другу суттєву відмінність об’єктної моделі – її природну динамічність, що дає змогу використовувати цю модель для адекватного представлення динамічних властивостей великих складних систем.
Використання терміну «ієрархія» замість терміну «структура» у назвах зазначених вище моделей зумовлене тим, що абсолютна більшість складних систем має ієрархічну структуру. Відношення між складовими кожної з цих структурних моделей – «ієрархії об’єктів» і «ієрархії класів» - відносяться до категорії причинно-наслідкових відношень, чи, інакше, зв'язків. Внаслідок ієрархічності структури частина з цих відношень є відношеннями підлеглості чи приналежності (відношення «модуль – об’єкт». «клас – підклас»). Слід зазначити, що ієрархічність структури не є обов’язковою для об’єктних моделей і загалом не впливає на можливість і процедуру її побудови.
Між кожним з об’єктів – складових моделі «ієрархія об’єктів» - та відповідними класами - складовими моделі «ієрархія класів» - існують відношення приналежності, чи, інакше, агрегації. Це означає, що кожний об’єкт ідентифікується як приналежний до певного класу, «екземпляр» цього класу; об’єднання об’єктів у класи проводиться на основі наявності у всіх об’єктів цього класу набору суттєвих спільних властивостей, які проявляються у тому числі і у спільній реакції на певні зовнішні впливи. Всі атрибути класу та його зв’язки з іншими класами успадковуються кожним екземпляром класу, тому відпадає потреба описувати їх для кожного екземпляру класу. Це дає змогу винести спільні для всіх об’єктів класу властивості і закономірні зв’язки з об’єктами інших класів у зовнішню пам'ять моделі, значно зменшивши обсяг інформації у внутрішній пам’яті моделі і спростивши таким чином побудову цієї моделі та керування нею.
Тоді як об'єкт позначає конкретну сутність, визначену в часі і в просторі, клас є лише абстракцією істотних властивостей об'єкту. Клас — це множина об'єктів, що мають спільну структуру, поведінку і семантику. Окремий об'єкт є просто екземпляром класу. Тоді як окремий об'єкт є конкретною сутністю, що грає якусь роль в загальній системі, клас описує структуру і поведінку, спільну для всіх споріднених об'єктів.
Існує три основні типи відношень між класами [128, с. 129 - 133]. Перший тип — «узагальнення/спеціалізація», або «is а». Наприклад, троянди — це квіти, тобто троянди є спеціалізованим підкласом більш загального класу «квіти». Другий тип — «ціле/частина», або «part of». Так, пелюстки є частиною квітів. Третій тип — «асоціація», тобто семантична залежність між класами, які більше ніяк не зв'язані один з одним, наприклад, між бджолами і квітами або між трояндами і свічками, які можна одночасно використовувати для прикрашання столу. Серед вказаних типів стосунків асоціація — найбільш абстрактне і найбільш слабе відношення.
Кожний з класів представляється набором своїх абстрактних атрибутів, проте виділення класу передбачає наявність хоча б одного реально існуючого об’єкту – екземпляру («прикладу», «втілення») класу. Структура і поведінка схожих об'єктів визначається у спільному для них класі. Терміни «екземпляр» і «об'єкт» є синонімами [15, с. 109].
Таким чином, кожний об’єкт може розглядатися як такий, що входить у дві ієрархічні структури – структуру власне об’єктів (як компонент, частина підсистеми вищого рівня ієрархії) і структуру класів як представник певного класу (як частковий випадок загального). У складних системах програмного забезпечення Г.Буч виділяє і інші типи ієрархій. Серед них особливо важливими являються модульна структура, що описує відношення між фізичними компонентами системи, і ієрархія процесів, що описує стосунки між динамічними компонентами [15, с. 45].
Структура класів і структура об'єктів утворюють архітектуру системи. Структура класів і структура об'єктів не є цілком незалежними: кожен елемент структури об'єктів є специфічним екземпляром певного класу (рис. 2.3). Як показано на рис. 2.3, кількість об'єктів в складній системі зазвичай набагато перевищує кількість класів. Наявність двох ієрархій дозволяє скоротити надмірність моделі системи, даючи змогу не дублювати інформацію про спільні властивості компонентів системи, приналежних до одного класу. Структура класів вирішує проблему дублювання, дозволяючи описати всі спільні властивості в єдиному місці. Групування атрибутів та методів в класи фактично розв’язує проблему абстрагування даних.
Рис. 2.3. Канонічна модель складної системи з точки зору об'єктно-орієнтованого підходу
Ідея щодо класів веде до ідеї спадковості. Кожен підклас в ієрархії класів спільно використовує властивості класу, з якого він отриманий. Крім того, підклас може мати свої власні специфічні характеристики. Вищий клас в ієрархії спадкоємства називають батьківським класом, або суперкласом, нового класу. Новий клас успадковуєповедінку батьківського класу.
Модель вважається об'єктно-орієнтованою, якщо вона спирається на чотири основні компоненти: абстракцію, інкапсуляцію, модульність та ієрархії.
Абстракція виділяє суттєві характеристики певного об'єкту, що відрізняють його від всіх інших видів об'єктів і, таким чином, чітко описує його концептуальні межі з погляду спостерігача. Абстракція концентрує увагу на зовнішньому уявленні об'єкту і дає змогу відокремити істотні особливості поведінки від їх реалізації. Відділення поведінки від його реалізації називають принципом мінімальних зобов'язань (principle of least commitment) [114, с. 126], згідно якого інтерфейс об'єкту повинен забезпечувати лише суттєві аспекти його поведінки і нічого більшого [114, с. 132]. Існує також додатковий принцип найменшого здивування (principle of least astonishment), за яким абстракція повинна повністю описувати поведінку об'єкту, не більше і не менше, і не породжувати властивості або побічні ефекти, що виходять за межі абстракції.
Вибір правильної сукупності абстракцій для заданої предметної області є головною задачею об'єктно-орієнтованого проектування.
Довільний об'єкт, що використовує ресурси іншого об'єкту (званого сервером (server)), називається клієнтом (client). Поведінка об'єкту характеризується послугами, які він надає іншим об'єктам, і операціями, які він може виконувати над іншими об'єктами. Такий підхід концентрує увагу на зовнішніх проявах об'єкту і приводить до контрактної моделі (contract model) программування [15, с. 76]: зовнішній прояв об'єкту визначає його контракт з іншими об'єктами, що підлягає виконанню його внутрішнім устроєм (часто у взаємодії з іншими об'єктами). Контракт фіксує всі припущення, які об'єкт-клієнт може формулювати щодо поведінки об'єкту-сервера. Інакше кажучи контракт визначає відгуки об'єкту, тобто його обов'язкову поведінку.
Кожна операція, передбачена цим контрактом, однозначно визначається її унікальною сигнатурою, що складається з формальних параметрів і типу значення. Повна сукупність операцій, які клієнт може здійснювати над іншим об'єктом, разом зі встановленим порядком їх виклику утворюють протокол. Протокол вказує всі можливі способи, якими об'єкт може діяти або реагувати на дію, повністю визначаючи зовнішнє статичне і динамічне представлення абстракції.
Головною ідеєю абстракції є концепція інваріанта. Інваріант — це логічна умова (істинна або помилкова), яка повинна виконуватися завжди. Для кожної операції, що асоціюється з об'єктом, можна задати передумови (інваріанти, передбачувані операцією) і постумови (інваріанти, яким задовольняє операція). Порушення інваріанта суперечить контракту, пов'язаному з абстракцією.
Всі абстракції мають як статичні, так і динамічні властивості. Наприклад, файл як об'єкт вимагає певного обсягу пам'яті на конкретному пристрої. Крім того, у нього є ім'я і вміст. Всі ці атрибути є статичними властивостями. Конкретні значення кожної з цих властивостей носять динамічний характер і залежать від життєвого циклу об'єкту. Наприклад, файл можна збільшити або зменшити, а також змінити його ім'я і вміст.
Інкапсуляція — це процес розділення елементів абстракції, що визначають її структуру і поведінку; інкапсуляція призначена для ізоляції контрактних зобов'язань абстракції від їх реалізації.
«Для того, щоб абстракція працювала, її реалізація має бути інкапсульована» [15, с. 82]. На практиці це означає, що кожен клас повинен складатися з двох частин: інтерфейсу і реалізації. Інтерфейс класу фіксує лише зовнішнє представлення об'єкту, описуючи абстракцію поведінки всіх об'єктів даного класу. Реалізація класу містить як представлення абстракції, так і механізми досягнення необхідної поведінки об'єкту. Інтерфейс класу містить всі допущення, які клієнт може сформулювати щодо об'єктів класу, а реалізація приховує від інших об'єктів всі деталі, що не мають відношення до процесу, — все, що не стосується припущень клієнта.
Модульність — це властивість системи бути розщепленою на цілісні, але слабо зв'язані між собою підсистеми - модулі. Модулі слугують фізичними контейнерами, що містять класи і об'єкти, які виникають при логічному проектуванні системи. У програмуванні «модульність — це розділення програми на фрагменти, які компілюються окремо, але зв'язані між собою» [15, с. 85].
Принципи абстракції, інкапсуляції і модульності є синергетичними. Абстракція дозволяє визначити чіткі межі окремого об'єкту, а інкапсуляція і модульність створюють бар'єри між абстракціями. Інкапсуляція дозволяє впоратися із складністю, приховавши внутрішнє представлення абстракцій. Модульність також спрощує розуміння проблеми, дозволяючи об'єднати логічно зв'язані абстракції в групи.
Ієрархія — це ранжирування, або впорядкування абстракцій. Найбільш важливими видами ієрархії в складних системах є структура класів (ієрархія «загальне/часткове») і структура об'єктів (ієрархія «ціле/ частина»).
Еволюцію об’єктно-орієнтованої системи визначають поняття поліморфізму та успадковування.
Поліморфізм – інтерпретується як здатність об’єкта взаємодіяти одним і тим самим способом з об’єктами різних типів, оскільки різні об’єкти можуть по-різному реагувати на однакові зовнішні події залежно від того, як реалізовані їх методи.
Успадковування означає таке відношення між класами, коли один клас запозичує структуру або поведінку одного або кількох інших класів (одиночне і множинне спадкоємство відповідно). Інакше кажучи, успадковування створює ієрархію абстракцій, в якій підкласи запозичують властивості одного або декількох суперкласів. Зазвичай підклас нарощує або перевизначає існуючу структуру і поведінку суперкласу. Успадковування може бути одиночним (від батьківського класу) або множинним (від багатьох).
Зазвичай в об'єктно-орієнтованих моделях присутні ще три додаткові елементи: контроль типів, паралелізм і персистентність.
Контроль типів — це правила використання об'єктів, що не допускають або обмежують взаємну заміну об'єктів різних класів.
Кожен об'єкт, побудований на основі абстракції реального світу, може посідати окремий потік управління (абстракцію процесу), який може існувати одночасно з потоками управління від інших об'єктів. Такі об'єкти називається активними. Система, побудована на основі об'єктно-орієнтованого проектування, може бути представлена як сукупність взаємодіючих об'єктів, частина з яких є активними, незалежними від інших і здатними створювати керуючий потік, а частина – пасивними, які вищезгаданих властивостей не мають. Паралелізм — це властивість, що відрізняє активні об'єкти від пасивних.
Персистентність - спосіб існування об'єктів в часі (одного разу створений об'єкт займає постійний об'єм пам'яті, доки не буде знищений) і просторі (у розподілених системах). Персистентність — це здатність об'єкту долати часові рамки (тобто продовжувати своє існування після зникнення свого творця) або просторові межі (тобто виходити за межі свого первинного адресного простору).
Об'єктно-орієнтований аналіз і проектування базуються на об'єктно-орієнтованій декомпозиції, яка має ряд важливих переваг стосовно алгоритмічної. Вона дозволяє: зменшити розмір систем за рахунок повторного використання спільних механізмів; знизити ризик, що виникає при створенні складної програмної системи, оскільки вона створюється із менших за розміром систем, які вже випробувані і перевірені; зменшити складність, притаманну системам програмного забезпечення, допомагаючи правильно розділити великий простір станів.
Об'єктно-орієнтований підхід використовує певну систему умовних позначень і процедур для побудови складних систем програмного забезпечення, пропонуючи багатий вибір логічних і фізичних моделей, за допомогою яких можна аналізувати різні аспекти системи, що вивчається.
Об'єктно-орієнтовані системи є гнучкішими і легше еволюціонують у часі, оскільки їх проектування засноване на стійких проміжних формах.