Шрифт:
Описания
Но зачем нам нужны описания, если их нельзя использовать?! Они нам нужны для мышления, которое используется для переноса опыта из одного проекта по созданию систем в другие проекты.
Мышление происходит не для отдельных систем, а сразу для множеств систем. Разработка (замысливание, проектирование) всегда ведётся не для конкретных экземпляров систем, а «в общем случае», то есть для множества подобных систем.
Множество (как математический объект, другие имена для множества – это класс, тип, вид) абстрактно. В математике множество из одного объекта не эквивалентно этому одному объекту: свойства множества отличаются от свойств самого объекта в этом множестве.
В системном мышлении то же самое: нас интересуют отдельные конкретные системы, воплощённые в нашем физическом мире, но мыслим мы классами систем, их множествами. Мышление ухватывает что-то общее во всех ситуациях, мышление происходит не для конкретных систем, о которых мы знаем разные факты. Мышление происходит для классов/типов/множеств/видов систем/воплощений_систем/экземпляров_систем. И, конечно, множества легко изменять: для изменения абстрактных объектов не нужно тратить энергию на перетаскивание вещества.
Как договориться: не обобщать, а конкретизировать
Если один человек упомянул президента США, а другой – Дональда Трампа, то они имели в виду одно и то же лицо? А если другие люди упомянули президента США и Джорджа Вашингтона – они имели в виду тех же лиц? В инженерии тоже нужна жёсткая логика для подобных рассуждений – описанный одним человеком насос P-101 на схеме трубопроводов, и описанный другим человеком насос модели ПДР-15-НШ-12 в монтажной спецификации – это один и тот же насос? А установленный в турбинном зале насос ПДР-15-НШ-12 с серийным номером RKS456/4 – как он соотносится с первыми двумя? Как описать это «в компьютере» так, чтобы и самому не запутаться, и других не запутать?
Ещё Декарт (1596—1650) задавался вопросом: а как вообще понять, что люди говорят об одном и том же объекте, если они видят в нём самые разные свойства (то есть относят его к самым разным классам)? Скажем, один инженер говорит о высокопроизводительной системе, другой – о взрывоопасной, менеджер – о прибыльной, а финансист – о дешёвой? Как тут понять, что речь идёт об одной системе? Ответ Декарта на такие вопросы используют до сих пор 58 : если места в пространстве (а сегодня говорят не только о пространстве, но и пространстве-времени, учитывая протяжённость и во времени тоже, как «декартову координату»), у двух объектов совпадают, то это один и тот же объект. Не важно, какие основные или вторичные свойства и сущности увидели разные люди в объекте/системе, или для каких применений этот объект/система им нужна. Не важно, одинаковые или разные имена у тех мест в пространстве-времени, о которых говорят разные люди с разными ролевыми интересами в той или иной ситуации. Если речь идёт об одном и том же месте пространства-времени, значит речь идёт о том же самом воплощении системы. Если я говорю о пище, вы говорите о яблоке, она говорит о товаре, он говорит о зелёном физическом теле массой 150 грамм, и всем мы показываем на одно и то же место в пространстве-времени, то речь идёт об одном и том же объекте. Если кто-то показывает в физическом мире (в пространстве-времени!) на бабочку с крыльями и говорит «бабочка», а кто-то другой показывает в физическом мире на яйцо-гусеницу-куколку-бабочку-с-крыльями и говорит «бабочка», то у этих двоих есть шанс понять друг друга.
58
Подробней эта история и многие другие положения этого раздела рассказаны в книге Chris Partridge «Business Objects: Re-Engineering for Re-Use», http://www.brunel.ac.uk/~cssrcsp/BusObj.pdf
Важно, что «ход на понимание» тут на конкретику (воплощение системы, физический мир), а не на «определение» (то есть отнесение какого рода объектов к их виду – «определение по Аристотелю»). Выдача определений и требование определений обычно затуманивает понимание в сложных ситуациях, а проясняют примеры воплощений из физического мира – все споры о терминах прекращают именно такие примеры.
Если не требовать, чтобы все рассуждения, все описания систем, которые делают люди, в конечном счёте привязывались бы к воплощениям систем, то мы не имели бы возможность проверить, об одном и том же говорят люди, или о разном. Более того, были бы огромные проблемы с проверкой того, говорят ли люди о реальном мире или высказывают благие пожелания, или просто фантазируют, или даже сознательно не хотят доводить свои мысли до реальности. Упор на то, что описания и документирование системы происходит по поводу воплощения системы в физическом мире (а не на описания) позволяет до некоторой степени игнорировать различия в используемой людьми терминологии – ибо в конечном итоге всегда можно проверить, одно и то же понятие люди обозначают разными терминами, или разные: даже если речь идёт об абстрактных понятиях, всегда можно указать примеры из реального мира.
Это не означает отказа от описаний: описания нужны, чтобы переносить знания про одни места в физическом мире (воплощения системы) на множество таких мест (на классы систем). Описания систем поддерживают абстрактное мышление, но в конечном итоге всё решает деятельность: воплощения системы в реальном мире.
Отношение состава
Главные отношения в системах (воплощениях систем) – это отношение «часть-целое» (part of), они же отношения состава/сборки (composition). Инженеры часто говорят об этом как о разбиении (breakdown) системы.
Крыло и фюзеляж – части самолёта, топливный насос – часть двигателя. Крыло (все молекулы крыла) занимают часть всего объёма самолёта, то есть часть занимаемого им места в физическом мире/пространстве-времени, топливный насос занимает часть двигателя (все молекулы топливного насоса являются частью молекул двигателя – молекулы же определяются как такие маленькие места в физическом мире. Если речь пойдёт о каких-нибудь нанопокрытиях толщиной в пару молекул, можно повторить рассуждение, перейдя к каким-нибудь кваркам – нюансы с квантовой неопределённостью тут неважны, важен принцип рассуждения).
Если принять, что все системы существуют не просто в физическом пространстве, но в пространстве-времени, то весь разговор о разных состояниях системы или её разных ролях превращается в разговор о частях во времени. Например, яйцо является просто частью бабочки во времени – пока бабочка проходит стадию «яйцо», никакой другой «бабочки» в мире, которая занимает место яйца в физическом мире, нет.
Тем самым с состояниями системы или её ролями (те состояния/периоды времени, когда система выполняет какую-то роль) можно работать как с отдельными объектами, они могут получать отдельные имена. Бабочка на стадии «яйцо» называется «яйцо». Пётр Сидорович в состоянии болезни называется «пациент». И «пациент» тут просто роль/состояние Петра Сидоровича.