November 29th, 2009

2019

Системная инженерия? Нет, системная методология!

Я тут общаюсь в Google Wave с Kent Palmer (http://holonomic.net/ и куча других сайтов) про философию и системную инженерию (https://wave.google.com/wave/#restored:wave:googlewave.com!w%252Bi8fNaszLA). Кратенькие выдержки из сегодняшней утренней беседы я поместил в рунглийский (http://en.wikipedia.org/wiki/Runglish) свой блог (а именно, http://levenchuk.com/2009/11/29/systems-engineering-no-systems-methodology/ и http://levenchuk.com/2009/11/29/dynamic-ontologies-of-systems-engineering-sytems-methodology/).

Краткая суть заметок -- Палмер верно говорит, что аналитическая философия в отличие от континентальной (а я думаю, что даже уже -- немецкой классической философии, случившийся разгром которой во время второй мировой войны уже невосполним) слабовата для работы с системной инженерией. Но неверно говорит, что "отсутствует предмет системной инженерии", и "системная инженерия ничего не имеет своего, все берет из других наук".

Неверность прежде всего в том, что системная инженерия -- это инженерия! Это не наука. Системная инженерия не исследует, она делает. Дисциплины системной инженерии -- это инженерные дисциплины, а не научные. Но Палмер правильно замечает, что нам нужно использовать несколько онтологических мета-уровней (он приводит в пример бейтсоновские пять мета-уровней обучения -- по русски это тут: http://www.psyinst.ru/library.php?part=article&id=812).

Я ему говорю, что при этом он переводит стрелки с инженерии на деятельность как таковую, где инженерия сочетается с исследованием-наукой. Поэтому вместо философии инженерии или философии науки ему нужно разбираться с деятельностью, да еще и в залоге не ее изучения, а в залоге создания. Разбирательство (цикл создания-изучения) нужно с методом. Объектом, о котором печется Палмер является не системная инженерия, а системная методология!

Системную же методологию нужно искать не там, где светло (например, поиском в Гугле "systems methodology"), а там, где ее можно найти. Находится она в тех местах, где практически приходится разбираться с методами, включая методы системной инженерии -- это прежде всего движение метамоделирования в современном программировании/моделировании. Как минимум, там есть два интереснейших направления:

а) ситуационная инженерия методов, которая как раз и пытается разобраться с онтологией метода вообще (метамодель метода) и онтологией системной инженерии в частности (взять хотя бы работы Donald Firesmith по онтологии инженерии требований, инженерии системной архитектуры).

б) инженерия методов в общем смысле, которая сводится по большому счету к метамоделированию. И тут крайне важен тот заход, который делает Пальмер: его волнует динамическая онтология, а не просто онтология. Он хочет наблюдать всю метацепочку деятельностей (разворачивания методов) по созданию/изучению целевой онтологии. Я как раз недавно приводил примеры этого растущего внимания к динамике со стороны метамодельеров: http://ailev.livejournal.com/757999.html со ссылкой на работу Pierantonio и http://ailev.livejournal.com/760334.html со ссылкой на интерактивное программирование (про каковое, похоже, мало кто понял -- поэтому еще раз советую почитать первую пару страниц из http://dynamicaspects.org/papers/PADL2010Final.pdf. Там адресуется как раз тема отладки при мета-переходах, когда непонятно, каким образом компьютер в логических программах выполняет тот или иной код -- но отладка понимается как "изучение-наблюдение плюс затем интервенция". Можно еще указать на работу http://hdl.handle.net/1721.1/45563, где говорится о практически том же самом, но разъяснения, зачем это нужно, дается более мутное: программирование представляется как интерактивное, "понять-что-происходит-в-программе -- затем-изменить-программу" -- и далее обсуждаются свойства поддерживающего языка. В общем, дальше сами раскопаете. Хотя, думаю, мне придется еще несколько постингов на эту тему написать -- в том числе пытаясь переложить это на САПРы).

Тут можно помянуть еще и боковое направление: статические онтологии, которые отражают динамику развития системы (4D-онтологии). Тут, конечно, всем читать http://www.matthew-west.org.uk/Publications.html
2019

Человеко-кибер-физические системы. Human-Based Systems Engineering

Опубликовано видео (в этот раз записано 3.5 часа) и слайды с 17-го заседания Русского отделения INCOSE -- http://community.livejournal.com/incose_ru/9812.html.

Участвовали пятеро не-москвичей из пяти разных городов, что крайне радует. Ибо на русском языке про системную инженерию говорят отнюдь не только в Москве, а форм синхронного включения в комьюнити не было (обмен письмами и дискуссии в блогах все-таки еще не всё). Вот, форма потихоньку появляется. В следующий раз попытаемся демонстрировать не только аудио, но и видео, включая слайды.

Мне кажется, что это заседание обсуждало абсолютно фронтирную в системной инженерии тему: про системы из людей. Я думаю, что в системной инженерии пройдет две революции:
а) слияние системной инженерии и программной инженерии (сейчас эта революция идет полным ходом, и выражается в полной растерянности перед тем, что такое моделеориентированная системная инженерия одновременно с признанием, что это и есть будущее системной инженерии). Уже признают, что все сложные системы -- это программоемкие системы (software-intensive).
б) вместе с тем, в ISO 15288 еще допускается проводить границы системы как включая людей, так и исключая людей (хотя софт включается безусловно!). Я тут жду второй революции: человеко-ориентированной системной инженерии, когда все системы будут признаны человекоемкими (human-intensive).

Движение в эту сторону только-только начинается, но оно будет столь же драматично менять системную инженерию, как сейчас ее меняет необходимость создавать киберфизические системы.

Знаменитая байка о том, что к чему компьютер ни прикоснись, начинает быть компьютером, а не куском железа (автомобиль с компьютером ведет себя как компьютер, а не как механическая система, ракета с компьютером устойчиво летит как компьютер, а не как неустойчивый кусок железа и т.д.), мной трансформируется в абсолютно такую же байку про человека -- к чему человек ни прикоснется, оно начинает себя вести как человек (и к компьютеру это тоже относится). Автомобиль с человеком (вместе с комьпютером внутри автомобиля) ведет себя уже как человек, а не как компьютер, хотя и иначе, как автомобиль без компьютера внутри или компьютер без автомобиля. Атомная станция с операторами и компьютерами ведет себя иначе, чем атомная станция с компьютерами без операторов -- и Чернобыль тому свидетельство.

Если про софт и его поведение (включая hardware-in-the-loop) хоть что-то известно (под "известно" я имею ввиду прежде всего наличие каких-то методов и соответствующих этим методам инструментов, приводящих к известным результатам) про людей пока известно не так много. Работа с людьми -- это пока целиком искусство и в очень малой степени инженерия (тут еще можно и нарваться на обвинения в манипулировании или "механистичном подходе" и мало ли еще в чем -- религиозные войны между любителями виндоуза и линукса тут по накалу страстей нервно курят в сторонке).

В общем, моделеориентированная (model-based) системная инженерия -- это нынешний фронтир, а человекоцентрическая (human-based) системная инженерия (а не просто human-systems integration как проходит эта тема сегодня) -- это фронтир ближайшего будущего, и наше счастье, что мы уже об этом знаем.

Кстати, Гугль выдает пока только одну ссылку с упоминанием Human-Based Systems Engineering (во фразе "He has been interested in Human based Systems Engineering for
many years" -- http://faculty.nps.edu/nlmiller/Fatigue/HSISymposium/cdr_pdfs/indexed/3b_1.pdf). После этого постинга будет уже две ссылки. Хотя совершенно не исключаю, что это все пойдет и под другими именами. Имена-то не важны, словарь всегда можно заменить -- а вот понятия останутся.