Отношение состава

Главные отношения в системах (воплощениях систем) — это отношение «часть-целое» (part of), они же отношения состава/сборки (composition). Инженеры часто говорят об этом как о разбиении (breakdown) системы. В системах главное — это системные разбиения/breakdowns. Уровни этого разбиения — это и есть системные уровни. Разбиения делаются вниманием, ничего в физическом мире специально не разбивается! Если вы разбили бабочку на крылья, тушку, ножки и усики, то это не означает, что вы оторвали от тушки крылья, ножки и усики: нет, вы просто выделили в живой бабочке эти части своим вниманием!Более того, вы и саму бабочку выделили вниманием как часть её окружения!

Основной ход в разбиениях — это от части к целому. Часть хорошо видна, отлично выделяется, а вот целое часто приходится поискать. Системное мышление называют поэтому холистичным/ориентированным на целое/holistic.

Крыло и фюзеляж — части самолёта, топливный насос — часть двигателя. Крыло (все молекулы крыла) занимают часть всего объёма самолёта, то есть часть занимаемого им места в физическом мире/пространстве-времени, топливный насос занимает часть двигателя. Все молекулы топливного насоса являются частью молекул двигателя — молекулы же определяются как такие маленькие места в физическом мире. Если речь пойдёт о каких-нибудь нанопокрытиях толщиной в пару молекул, можно повторить рассуждение, перейдя к каким-нибудь кваркам — нюансы с квантовой неопределённостью тут неважны, важен принцип рассуждения про части материального мира.

Если принять, что все системы существуют не просто в физическом пространстве, но в пространстве-времени, то весь разговор о разных состояниях системы или её разных ролях превращается в разговор о частях во времени. Например, яйцо является просто частью бабочки во времени — пока бабочка проходит стадию «яйцо», никакой другой «бабочки» в мире, которая занимает место яйца в физическом мире, нет.

Тем самым с состояниями системы или её ролями (те состояния/периоды времени, когда система выполняет какую-то роль) можно работать как с отдельными объектами, они могут получать отдельные имена. Бабочка на стадии «яйцо» называется «яйцо». Пётр Сидорович в состоянии болезни называется «пациент». И «пациент» тут просто роль/состояние Петра Сидоровича.

Удобно представлять воплощения системы эдакими «червяками» во времени, в которых их место в физическом мире проходит какую-то траекторию во времени/«развёртку во времени».

При таком подходе события — это трёхмерные «срезы» системы на какой-то момент времени, эдакие трёхмерные фотографии. До события было одно состояние/роль системы, а после события — другое состояние/роль. Кроме того, сама система появляется в какой-то момент времени, а в какой-то момент времени она исчезает. Спортсменка на фотографии проходит разные события (отрыв от земли, приземление), определяемые её позами в эти моменты времени. Эти позы, как «трёхмерные фотографии» и есть события, разделяющие разные состояния «сальто», «подготовки к сальто», «выравнивание после приземления».

Например, в позном беге[1] событием является «поза бега» — всё тело бегуна в определённый момент времени. «Поза бега» является ключевой для правильного бега, весь бег оказывается основан на событии принятия правильной позы.

[1] http://grushnitskiy.ru/literature/books/Poznyi_774_metod_bega_-_Nikolai_774_Romanov_2013.pdf

Описания очень сложных систем (от микропроцессоров с их диаграммами состояний до предприятий с их регламентами работы) часто опираются на связанную с ними событийную структуру. Проще всего выяснить что-то про незнакомую систему — это спросить, какие с ней связаны события. В разработке информационных систем предприятия этот метод называется «событийный штурм»[2] 

[2] https://en.wikipedia.org/wiki/Event_Storming (event storming, по аналогии с «мозговым штурмом»).

Можно говорить и о сложных событиях, которые занимают некоторое ненулевое время, если их рассматривать «в лупу». Когда говорят о таких сложных событиях, то рассматривают их в контексте таких больших отрезков времени, на которых длительностью самого сложного события можно пренебречь. Так, говоря о созревании помидоров, можно выделить сам помидор как целое, и три его полных части во времени/состояния — зелёный помидор, событие покраснения (превращения зелёного помидора в красный) и красный помидор. В большинстве случаев при разговоре про помидор можно пренебречь временем события покраснения помидора и всеми промежуточными при этом состояниями, оно тут просто не принимается в расчёт: нас интересует зелёное и красное состояния помидора, объекты «зелёный помидор» и «красный помидор», а вот «промежуточный помидор» нас не интересует, поэтому мы считаем это просто событием.

Вот диаграмма пространства-времени (space-time map) из книги Chris Partridge «Business Objects: Re-Engineering for Re-Use»[3], которая это иллюстрирует:

[3] https://yadi.sk/i/2SgjvILB3PqJEZ

Все три измерения пространства на этой диаграмме показывают на одной оси, а время на другой оси. Помидор (экземпляр помидора #91, речь ведь идёт об индивидах) занимает какое-то пространство-время, а внутри его находятся индивиды-состояния зелёного помидора, красного помидора и сложное событие изменения цвета помидора.

Событие «вторая мировая война» тоже длилось много лет, но при рассмотрении «предвоенного мира» и «послевоенного мира» это событие считается прошедшим «мгновенно» — это просто «фотография мира» в тот момент, когда там шла война.

В упомянутой книге можно прочесть много интересного про подобный подход к описанию мира (занимающимся моделированием данных в части создания корпоративных информационных систем знание этой книжки вообще обязательно), в котором огромное множество самых разных отношений между объектами сводятся к ключевому для системного мышления отношению части-целого в физическом мире — состояние, событие, роль все оказываются просто частями системы. Системное мышление — это прежде всего мышление про части и целое, отношение состава/композиции/разбиения/is_part_of.

Что тут можно спутать? Удивительно, но естественный язык даёт богатый материал для путаницы. Например, можно сказать, что шероховатость — это часть богатого опыта восприятия стола. Тут сразу несколько засад: шероховатость — это не физический объект. Богатый опыт восприятия — это не физический объект. Поэтому все молекулы шероховатости не будут входить в число молекул опыта восприятия. Но слово «часть» было использовано, и оно не режет слух! Вот и источник путаницы: невнимательные (нетренированные в системном мышлении) люди не удерживают отношение часть-целое в материальном мире на несколько уровней. Они путают отношение «часть-целое» с отношением классификации. Тигры — это часть зверей. Слово «часть» тут не обозначает того, что все молекулы тигров как объект входят во все молекулы зверей, как объекта! Нет, разговор идёт об абстрактных объектах/математических множествах/классах. Появление таких «частей» нужно отслеживать и устранять, это ошибки в системном мышлении. Части — это всегда физические части, физические объекты, выделяемые вниманием из целого-окружения этих частей. У меня есть не оскудевающая рука и бесконечная доброта к студентам. Нельзя сказать, что это части! Если ещё можно сказать, что все молекулы моей руки входят в число моих молекул, то уж про молекулы доброты, которые входят в мои молекулы как часть этих молекул — этого нельзя сказать. Не путайтесь!

Отдельный источник путаницы — это сначала перепутать воплощение системы и её описание, а потом говорить о частях описания как о части системы. Так, усы на моей фотографии можно признать моей частью. Но это не так: все молекулы краски, из которых состоят усы на моей фотографии не входят в число молекул, из которых составлен я в целом! Это путаница между усами и документацией усов, усами и описанием усов! Документация моста — это не часть железнодорожного моста! Молекулы документации (будь это информационные модели на серверах в датацентре, или по-старинке пара грузовиков мёртвых деревьев с частицами краски) не входят в число молекул моста. Мост и его части (опоры, дорожное полотно и т.д.) это одно, а документация на мост — это не часть моста, это просто документация на мост. Документация не входит в состав моста, не взаимодействует с другими частями моста как физический объект!

Проверяйте себя, можете ли вы удержаться от бытового использования слов «часть» и «целое», ограничиться для отношения composition только физическим миром, удерживать физичность разбиения на несколько уровней вверх и вниз от той системы, которая находится в центре вашего внимания. Если вы разбили своё описание на три части, то это не системное разбиение! Это просто вы разбили описание на три каких-то части. Эти части ещё и не взаимодействуют друг с другом, описания ведь пассивны, они не в физическом мире. Это не про воплощение систем, не про системные разбиения, это про другое.

Источник: учебник А.Левенчука «Системное мышление 2020»