Декомпозиция
- 1 year ago
- 0
- 0
Декомпозиция — операция мышления , состоящая в разделении целого на части .
Также декомпозицией называется общий приём, применяемый при решении проблем , состоящий в разделении проблемы на множество частных проблем, а также задач , не превосходящих суммарно по сложности исходную проблему, с помощью объединения решений которых, можно сформировать решение исходной проблемы в целом.
Впервые в литературе в явной и отчетливой форме декомпозиция (деление трудностей (difficultés) на части), была рассмотрена Р. Декартом в перечне из четырёх базовых правил решения проблем («трудностей»), в работе « Рассуждение о методе », ознаменовавшим переход к современному научному познанию .
Декомпозиция, как процесс расчленения, позволяет рассматривать любую исследуемую систему как сложную, состоящую из отдельных взаимосвязанных подсистем , которые, в свою очередь, также могут быть расчленены на части. В качестве систем могут выступать не только , но и процессы , явления и понятия .
В общем виде, как операция мышления декомпозиция является обратной к операциям абстрагировании и обобщения .
При декомпозиции руководствуются следующими правилами.
Исходная система располагается на нулевом уровне. После её расчленения получаются подсистемы первого уровня. Расчленение этих подсистем или некоторых из них приводит к появлению подсистем второго уровня и т. д.
Упрощённое графическое представление декомпозированной системы называется её иерархической структурой .
Иерархическая структура может быть изображена в виде ветвящейся блок-схемы , наподобие представленной на рис. 1.
Здесь на нулевом уровне располагается исходная система С 1 , на следующих уровнях — её подсистемы (число уровней и количество подсистем, показанных на рисунке, выбрано произвольно). С целью получения более полного представления о системе и её связях в структуру включают надсистему и составляющие её части (системы нулевого уровня, например, вторая система С 2 ).
Для анализа иерархической структуры могут применять теорию графов . Это позволяет перейти от графической модели к математической, в которой описание ведётся по уравнениям, аналогичным законам Кирхгофа в электротехнике или уравнениям гидравлики.
Иерархическая структура часто изображается в виде дерева, то есть графа без замкнутых маршрутов, с расположением вершин по определенным уровням, например, как показано на рис. 2. Вершина верхнего уровня (на рисунке — 0) называется корнем.
Граф, представленный на рис. 2, соответствует И-дереву : вершины, которые расположены на одинаковых уровнях, являются обязательными элементами вышерасположенных систем.
Так, для вершины 0.1 обязательные элементы — 1.1, 1.2, а для вершины 2.2 — 3.1, 3.2 и 3.3. Например, автомобиль состоит из двигателя, И кузова, И шасси.
Наряду с И-деревом используют ИЛИ-дерево , в котором на одинаковых уровнях располагаются вершины возможных элементов структур, их варианты. Например, автомобиль может иметь двигатель ИЛИ внутреннего сгорания, ИЛИ газотурбинный, ИЛИ электрический.
Часто применяют И-ИЛИ-дерево , которое соединяет уровни с обязательными элементами структуры с уровнями вариантов всех или части этих элементов (рис. 3). Сочетание И- и ИЛИ-уровней может быть произвольным и не обязательно они должны чередоваться.
В качестве признака декомпозиции может быть:
Так, в приведённом выше примере выделение в составе автомобиля мотора, шасси и кузова проводилось в соответствии с функциональным признаком. При построении И-ИЛИ деревьев возможно сочетание нескольких признаков: одного — постоянного для И-структуры, и одного или различных на каждом уровне — для ИЛИ-структуры.
Но при этом вычленяемые подсистемы должны взаимно исключать друг друга (особенно это касается ИЛИ-деревьев).
Например, если при перечислении частей автомобиля опустить, допустим, мотор, то функциональное взаимодействие остальных подсистем не обеспечит нормальное функционирование всей системы (автомобиля) в целом.
В другом примере, перечисляя возможные виды двигателей, используемые в автомобиле, необходимо охватить всю известную область (декомпозиция — по принципу действия). Если это сложно сделать, допускается неупомянутые (или неизвестные) элементы объединить в одну группу (подсистему) и назвать её «другие», либо «прочие», либо провести деление двигателей, например, на «тепловые» и «нетепловые».
К неоднозначности может привести использование на одном уровне взаимно пересекающихся подсистем, например, «двигатели электрические» и «двигатели переменного тока», так как неясно куда же нужно в таком случае отнести асинхронный двигатель .
Для обозримости рекомендуют выделять на каждом уровне не более 7 подсистем. Недопустимо, чтобы одной из подсистем являлась сама система.
Степень подробности описания и количество уровней определяются требованиями обозримости и удобства восприятия получаемой иерархической структуры, её соответствия уровням знания работающему с ней специалисту.
Обычно в качестве нижнего (элементарного) уровня подсистем берут такой, на котором располагаются подсистемы, понимание устройства которых или их описание доступно исполнителю (руководителю группы людей или отдельному человеку). Таким образом, иерархическая структура всегда субъективно ориентирована: для более квалифицированного специалиста она будет менее подробна.
Число уровней иерархии влияет на обозримость структуры: много уровней — задача труднообозримая, мало уровней — возрастает число находящихся на одном уровне подсистем и сложно установить между ними связи. Обычно, в зависимости от сложности системы и требуемой глубины проработки, выделяют 3…6 уровней.
Например, разрабатывая механический привод, в качестве элементарного уровня можно взять колеса, валы, подшипники, двигатель в целом. Хотя подшипники и двигатель являются сложными по устройству элементами и трудоемкими в проектировании, но как готовые покупные изделия для разработчика они выступают в виде элементарных частей. Если бы двигатель пришлось бы разрабатывать, то его, как сложную систему, было бы целесообразно декомпозировать.
При построении иерархической структуры проявляется её эвристический характер , прежде всего, в выборе числа уровней и перечня составляющих их подсистем. Наиболее сильна субъективность в ИЛИ-деревьях, когда вид системы ещё не известен и возможно различное их представление. По этим причинам метод декомпозиции относят к эвристическим .
В процессе проектирования декомпозиция неразрывно связана с последующей композицией , то есть сборкой и увязкой отдельных частей (подсистем) в единую систему с её проверкой на реализуемость в целом, совместимость (особенно подсистем, принадлежащих разным ветвям) и согласованность параметров (восходящее проектирование). В процессе согласования может возникать потребность в новой, корректирующей декомпозиции.
В общей теории систем доказано, что большинство систем могут быть декомпозированы на базовые представления подсистем. К ним относят:
Проблема проведения декомпозиции состоит в том, что в сложных системах отсутствует однозначное соответствие между законом функционирования подсистем и алгоритмом, его реализующим. Поэтому осуществляется формирование нескольких вариантов (или одного варианта, если система отображена в виде иерархической структуры) декомпозиции системы.