3.2. Моделі систем як основи декомпозиції
Основна операція аналізу – поділ цілого на частини. Задача розпадається на підзадачі, система – на підсистеми, цілі – на підцілі і т. д. У разі потреби цей процес повторюють, що дає ієрархічні деревоподібні структури. Зазвичай (якщо задача не чисто навчальна) об'єкт аналізу складний, слабко структурований, погано формалізований, тому операцію декомпозиції виконує експерт. Якщо доручити аналіз того самого об'єкта різним експертам, то отримані деревоподібні списки будуть різнитися. Якість побудованих експертами дерев залежить як від їхньої компетентності в певній галузі знань, так і від застосовуваної методики декомпозиції.
Зазвичай експерт легко поділяє ціле на частини, але йому складно довести повноту та ненадлишковість пропонованого набору частин. Прагнучи перейти від чисто евристичного, інтуїтивного підходу до більш усвідомленого, алгоритмічного виконання декомпозиції, ми повинні пояснити, чому експерт розділяє ціле саме так, а не інакше й саме на певну, а не більшу чи меншу кількість частин. Пояснення полягає в тому, що основа будь-якої декомпозиції – модель розглянутої системи.
Операція декомпозиції – це зіставлення об'єкта аналізу з якоюсь моделлю, виділення в ньому того, що відповідає елементам узятої моделі. Тому на запитання, скільки частин має бути після декомпозиції, можна дати таку відповідь: стільки, скільки елементів містить модель, узята як базова (модель-основа). Питання про повноту декомпозиції – це питання завершеності моделі.
Об'єкт декомпозиції потрібно зіставляти з кожним елементом моделі-основи. Однак і сама модель-основа може з різною мірою деталізації відображати досліджуваний об'єкт. Наприклад, у системному аналізі часто доводиться використовувати модель типу "життєвий цикл", яка дає змогу розкласти аналізований період часу на послідовні етапи від виникнення об'єкта до його зникнення. За допомогою такої декомпозиції життя людини можна поділити на молодість, зрілість і старість, але можна виділяти й дрібніші етапи, наприклад дитинство, отроцтво та юність. Така сама розмаїтість може бути й у разі декомпозиції життєвого циклу будь-якої проблеми. Розбиття на етапи дає уявлення про послідовність дій, починаючи з виявлення проблеми й закінчуючи її ліквідацією.
Як було зазначено вище, основа декомпозиції – модель розглянутої системи. Але яку саме систему слід під цим розуміти? Будь-який аналіз проводять для чогось, і саме мета аналізу визначає, яку систему потрібно розглядати. Система, з якою пов'язаний об'єкт аналізу, і система, за моделями якої виконують декомпозицію, не обов'язково збігаються, і хоча вони мають певне відношення одна до одної, це відношення може бути будь-яким: одна з них може бути підсистемою чи над системою іншої, вони можуть бути й різними, але якось пов'язаними системами.
Іноді як основу декомпозиції корисно не тільки перебирати різні моделі цільової системи, але й брати спочатку моделі надсистеми, потім самої системи та, нарешті, підсистем. Можна також розглядати й таку процедуру аналізу, коли перед кожним черговим актом декомпозиції заново постає питання не тільки про те, за якою моделлю проводити декомпозицію, але й про те, чи не варто взяти модель іншої системи, ніж раніше.
Рисунок 3.1 – Елементи декомпозиції системи
Які ж моделі слід брати як основу декомпозиції? Насамперед нагадаємо, що попри практично неозоре різноманіття моделей формальних типів моделей небагато: це моделі "чорного ящика", складу, структури, конструкції (структурної схеми) – кожна в статичному чи динамічному варіанті. Це дає змогу організувати потрібний перебір типів моделей, повний або скорочений залежно від потреби.
Основою для декомпозиції може бути тільки конкретна, змістовна модель розглянутої системи. Вибір моделі лише підказує, якого типу має бути модель-основа; формальну модель потрібно наповнити змістом, щоб вона стала основою для декомпозиції. Це дає змогу трохи прояснити питання про повноту аналізу, що завжди виникає в явному чи неявному вигляді.
Повнота декомпозиції випливає з повноти моделі-основи, а це означає, що насамперед варто подбати про повноту формальної моделі. Завдяки формальності, абстрактності такої моделі часто можна домогтися її абсолютної повноти.
Отже, повнота формальної моделі має бути предметом особливої уваги. Тому одна з важливих задач інформаційного забезпечення системного аналізу полягає в нагромадженні наборів повних формальних моделей (у штучному інтелекті такі моделі називаються фреймами).
Повнота формальної моделі – неодмінна, але не достатня умова для повноти декомпозиції. В остаточному підсумку все залежить від повноти змістовної моделі, побудованої "за образом" формальної моделі, але не тотожної їй. Фрейм лише привертає увагу експерта до потреби розглянути, що саме в реальній системі відповідає кожному з його складових елементів, а також вирішити, які з цих елементів потрібно включити в змістовну модель. Це дуже відповідальний момент (адже те, що не потрапляє в модель-основу, не з'явиться в подальшому аналізі) і дуже важкий (заздалегідь не завжди очевидно, що певний компонент має ввійти в основу).
Питання достатнього ступеня деталізації змістовних моделей на відміну від фреймових завжди залишається відкритим. Щоб його для декомпозиції, але він постійно будить в експерта сумнів у повноті запропонованої ним моделі. Інша можливість полягає в розукрупненні, розбитті окремих елементів моделі-основи в разі потреби, яка може виникнути на наступних стадіях аналізу.
Перейдемо тепер до питання про розміри дерева "всередину", тобто про кількість "поверхів" дерева, рівнів декомпозиції. Звичайно, бажано, щоб вона була невеликою (принцип простоти), але принцип повноти вимагає, щоб у разі потреби можна було продовжувати декомпозицію як завгодно довго до ухвалення рішення про її припинення вздовж певної гілки (різні гілки іноді можуть мати різну довжину). Таке рішення приймають у декількох випадках. Перший, якого ми зазвичай прагнемо, настає, коли композиція дала результат (підмету, підфункцію, підзадачу тощо), який уже не потрібно розкладати, тобто простий, зрозумілий, реалізований, забезпечений; назвемо його елементарним. Для деяких задач поняття елементарності можна конкретизувати до формальної ознаки, а в інших задачах аналізу воно залишається неформальним, і перевірку фрагментів декомпозиції на елементарність доручають експертам.
Неелементарний фрагмент піддають подальшій декомпозиції згідно з іншою (не використованою раніше) моделлю-основою. Очевидно, що ефективність роботи експерта, розміри отримуваного дерева та в остаточному підсумку якість аналізу певною мірою залежать від послідовності, у якій експерт використовує наявні моделі. Наприклад, в алгоритмі декомпозиції, вбудованому в комп'ютерну діалогову систему, заради зручності експерта має бути передбачене пред'явлення моделей у визначеній самим експертом послідовності. Водночас має бути й режим поради експертові, у якому комп'ютер рекомендує йому певний порядок взяття основ, і це спрощує справу.
Якщо експерт перебрав усі фрейми, але не досяг елементарності на якійсь гілці дерева, то насамперед висувають припущення, що подальша декомпозиція може все-таки довести аналіз до одержання елементарних фрагментів, і варто надати експертові можливість продовжити декомпозицію, вводячи нові елементи в модель-основу та продовжуючи декомпозицію за ними. Оскільки нові істотні елементи можна отримати тільки розщепленням уже наявних, в алгоритм декомпозиції має бути закладено можливість повернення до використаних раніше основ. При цьому немає потреби розглядати заново всі елементи моделі, тому що оброблюваний фрагмент належить гілці, яка відповідає тільки одному елементу кожної основи. Тоді слід розглянути можливість розщеплення саме цього елемента. На цій самій стадії можна рекомендувати експертові вирішити, чи не настав час виділити з "усього іншого" та додати до істотних іще один елемент. Пройшовши таким способом усю передісторію неелементарного фрагмента, одержимо нові основи для його декомпозиції, а виходить, і можливість продовжити аналіз, сподіваючись досягти елементарності вздовж усіх гілок.
Отже, зазначена інтерактивність алгоритму декомпозиції додає йому варіабельності, можливості скористатися моделями різної детальності на різних гілках, поглиблювати деталізацію скільки завгодно (наскільки це потрібно).