Перейти до вмісту

Декомпозиція

Матеріал з Вікіпедії — вільної енциклопедії.

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

Правила декомпозиції

[ред. | ред. код]

Вихідна система розташовується на нульовому рівні. Після її розділення виходять підсистеми першого рівня. Розділення цих підсистем або деяких з них призводить до появи підсистем другого рівня і т. д.

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

Ієрархічна структура може бути зображена у вигляді розгалуженої блок-схеми.

Тут на нульовому рівні розташовується вихідна система С1, на наступних рівнях — її підсистеми (число рівнів і кількість підсистем, показаних на малюнку, вибрано довільно). З метою отримання більш повного уявлення про систему та її зв'язках в структуру включають надсистему і складові її частини (системи нульового рівня, наприклад, друга система С2).

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

Так, для вершини 0.1 обов'язкові елементи — 1.1 , 1.2 , а для вершини 2.2 — 3.1 , 3.2 і 3.3. Наприклад, автомобіль складається з двигуна, І кузова, І шасі. Поряд з І — деревом використовують АБО -дерево, в якому на однакових рівнях розташовуються вершини можливих елементів структур, їх варіанти. Наприклад, автомобіль може мати двигун АБО внутрішнього згоряння, АБО газотурбінний, АБО електричний.

Часто застосовують І-АБО-дерево, яке з'єднує рівні з обов'язковими елементами структури з рівнями варіантів всіх або частини цих елементів. Поєднання І — і АБО — рівнів може бути довільним і не обов'язково вони повинні чергуватися.

Глибина декомпозиції

[ред. | ред. код]

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

Звичайно як нижній (елементарний) рівень підсистем беруть такий, на якому розташовуються підсистеми, розуміння природи яких або їх опис доступний виконавцю (керівнику групи людей або окремій людині). Таким чином, ієрархічна структура завжди суб'єктивно орієнтована: для більш кваліфікованого фахівця вона буде менш зрозуміла.

Число рівнів ієрархії впливає на наглядність структури: багато рівнів — завдання важке, мало рівнів — зростає число підсистем, що знаходяться на одному рівні і складно встановити між ними зв'язки. Зазвичай, залежно від складності системи і необхідної глибини опрацювання, виділяють 3 … 6 рівнів.

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

Функціональна декомпозиція

[ред. | ред. код]

Функціональна декомпозиція (англ. Functional decomposition), також функціональне розбиття (англ. Functional breakdown structure) — процес розбиття системи на складові частини-модулі, цей процес є важливим інструментом системної інженерії.[1]

Модульна декомпозиція

[ред. | ред. код]

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

Література

[ред. | ред. код]
  • Хорошев А. Н. Введение в управление проектированием механических систем: Учебное пособие. — Белгород, 1999. — 372 с.
  • С. М. Прийма. Математична логіка і теорія алгоритмів. Навчальний посібник
  1. Системная инженерия: Принципы и практика / Александр Косяков, Уильям Н. Свит, Сэмюэль Дж. Сеймур, Стивен М. Бивмер. Второе издание. — М.: ДМК Пресс, 2014. — 624 с.