Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Системная инженерия

Системноинженерное мышление — это использование системного подхода в инженерии. Чтобы понять, где и зачем используется системноинженерное мышление, нужно сначала разобраться с тем, что такое системная инженерия и зачем она нужна.

Определения системной инженерии

Самое современное определение системной инженерии дано в Guide to the Systems Engineering Body of Knowledge (руководство по корпусу знаний системной инженерии, http://www.sebokwiki.org/wiki/Guide_to_the_Systems_Engineering_Body_of_Knowledge_%28SEBoK%29, текущая версия 1.3.1 от 5 декабря 2014г.).

Короткое определение: системная инженерия — это междисциплинарный подход и способы обеспечения воплощения успешной системы (Systems engineering is an interdisciplinary approach and means to enable the realization of successful systems — http://sebokwiki.org/wiki/Systems_Engineering_%28glossary%29). В этом определении можно подчеркнуть:
  • Успешные системы — это то, чем занимается системная инженерия. Слово “успешные” тут крайне важно и означает, что система должна удовлетворить нужды заказчиков, пользователей и других стейкхолдеров (стейкхолдеры — это те, кто затрагивается системой, или кто затрагивает систему). Успех — это когда системой все довольны.
  • Слово “системы” используется в очень специальном значении: это “системы” из системного подхода. Для системной инженерии слово “система” примерно то же, что “физическое тело” для ньютоновской механики — если вы сказали про компьютер “физическое тело”, то это автоматически влечёт за собой разговор про массу, потенциальную энергию, модуль упругости, температуру и т.д.. Если вы сказали “система” про компьютер, то это автоматически влечёт за собой разговор про стейкхолдеров и их интересы, требования и архитектуру, жизненный цикл и т.д..
  • Междисциплинарный подход — системная инженерия претендует на то, что она работает со всеми остальными инженерными специальностями (впрочем, не только инженерными). “Подход” обычно означает какие-то наработки в одной предметной области, которые можно перенести на другие предметные области. Междисциплинарность — это очень сильное заявление, оно означает, что системная инженерия может в одну упряжку впрячь коня и трепетную лань (например, инженеров-механиков, баллистиков, криогенщиков, психологов, медиков, астрономов, программистов и т.д. в проектах пилотируемой космонавтики).
  • Слово “воплощение” (realization, “перевод в реальность”) означает буквально это: создание материальной (из вещества и полей) успешной системы.
По-английски “системная инженерия” — systems engineering, хотя более ранние написания были как system engineering. Правильная интерпретация (и правильный перевод) — именно “системная” (подразумевающая использование системного подхода) инженерия, а не “инженерия систем” (engineering of systems) — когда любой “объект” обзывается “системой”, но не используется системный подход во всей его полноте.

Дискуссия о значении термина в переводе "с английского на английский" тоже существует, поэтому есть чёткие сформулированные ответы на эту тему. В этой дискуссии про "systems engineering vs. engineering of systems" сами системные инженеры (в отличие от разных других инженеров -- механиков, электриков, программистов и т.д.) заняли чёткую и согласованную коллективную позицию. Она, например, выражена в материале профессора Derek Hitchins "Systems Engineering vs. Engineering of Systems – Semantics?": http://www.hitchins.net/profs-stuff/profs-blog/systems-engineering-vs.html.

Почитайте, в тексте по ссылке рассказана очень любопытная история, включая экскурс в английскую грамматику для данного случая. Грубо говоря, под "инженерией систем" (например, control systems engineering, manufacturing systems engineering) понимается что ни попадя: легко выкинуть слово "система", которое лишь обозначает некий "научный лоск". Инженеры легко любой объект называют "системой", не задумываясь об осознанном использовании при этом системного мышления, не используя системный подход, “инженерия управляющей системы” это просто “инженерия управляющего объекта”. Никакого специального мышления при этом не предусматривается, слова “система” и “объект” взаимозаменяемы. В самом лучшем случае про систему скажут, что “она состоит из взаимодействующих частей” — на этом обычно разговор про “систему” и “системность” заканчивается, он не длится больше двадцати секунд.

А вот из системной инженерии квалификатор "системный" без изменения смысла понятия выкинуть нельзя -- системная инженерия это инженерия с системным мышлением в голове (а не любая инженерия, занимающаяся объектами, торжественно поименованными системами просто для "добавления сложности и научности").

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

В последние годы увеличилось количество перводов инженерной литературы, и слово engineering не удосуживаются перевести как “инженерия”, так и оставляют “инжинирингом”. Перевод “системный инжиниринг” уже начинает побеждать — это легко отследить по результатам сравнения в интернет-поисковых системах. Можно считать, что “системная инженерия” и “системный инжиниринг” синонимы, но есть маленькая проблема: в России почему-то в тех местах, где занимаются инженерным менеджментом, а не инженерией, называют его “системным инжинирингом”. Так что будем считать “инженерию” и “инжиниринг” синонимами, но в случае “инжиниринга” проверять на всякий случай, не менеджмент ли имеется ввиду вместо чисто инженерной работы.

Более длинное определение включает ещё одну фразу: “Она фокусируется на целостном и одновременном/параллельном понимании нужд стейкхолдеров; исследовании возможностей; документировании требований; и синтезировании, проверке, приёмке и постепенном появлении инженерных решений, в то время как в расчёт принимается полная проблема, от исследования концепции системы до вывода системы из эксплуатации” (It focuses on holistically and concurrently understanding stakeholder needs; exploring opportunities; documenting requirements; and synthesizing, verifying, validating, and evolving solutions while considering the complete problem, from system concept exploration through system disposal). Тут нужно подчеркнуть:
  • Целокупность, которая подчёркнута многократно — от “междисциплинарности” в первой половине определения до целостности всех действий по созданию системы во второй половине определения, до целостности/полноты проблемы, до охвата всего жизненного цикла системы “от рождения до смерти”. Целостность (полнота охвата всех частей целевой системы согласованным их целым), междисциплинарность (полнота охвата всех дисциплин) — это ключевое, что отличает системную инженерию от всех остальных инженерных дисциплин.
  • Параллельность выполнения самых разных практик (а не последовательное выполнение их во времени, как можно было бы подумать, прочитав перечисление практик)
  • Много особенностей, которые будут понятны позднее (различение нужд пользователей и требований, проверки и приёмки, упор на синтез для противопоставления “аналитическим” дисциплинам и т.д.).
Упражнение: посмотрите разные определения системной инженерии и найдите их сходство и различия (http://www.sebokwiki.org/wiki/Systems_Engineering_%28glossary%29, http://www.sie.arizona.edu/sysengr/whatis/whatis.html, http://syse.pdx.edu/program/about.php и так далее — погуглите, чтобы найти больше определений). Обратите внимание на разнообразие используемой в этих определениях терминологии.

Ответственность за целокупность и междисциплинарность

Ответственность за всю систему как целое (whole system) и связанная c этим межпредметность/междисциплинарность (interdisciplinary) подхода к другим инженериям (механической, электрической, программной, предприятия и т.д.) отличают системную инженерию от все других инженерных дисциплин. Представим себе ледовую буровую платформу:

platform

Сотни тысяч тонн металла, бетона, пластмассы, необходимых расходных материалов, обученная вахта должны собраться вместе далеко в море среди льда и в строго определённый момент эта огромная конструкция должна начать согласованно работать — и не просто работать, а приносить прибыль и обеспечивать безопасность в части загрязнения окружающей среды и здоровья находящейся на платформе вахты. Какая инженерная дисциплина должна учесть результаты работ всех других инженерных дисциплин — собрать в единое целое данные ледовой обстановки, санитарных норм в помещениях для обслуживающего персонала, обеспечение электричеством попавших туда компьютерных серверов, характеристики этих серверов и программное обеспечение? Кто озаботится учётом в конструкции платформы изменений в длине металлоконструкций за счёт разницы суточных температур и одновременно установкой акустических датчиков на трубах, которые прослушивают шорох песка, чтобы по этому шороху можно было определить износ труб?

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

Это главный признак, отличающий системных инженеров от всех других инженеров: они отвечают за проект в целом, сразу во всех его деталях как в части деталей-частей, так и в части использования детальных знаний отдельных дисциплин. Они ответственны за то, чтобы не было пропущено какой-нибудь мелочи, ведущей к провалу.

Самолёт — это много-много кусков металла и пластика, синхронно летящих на скорости 900км/час (0.85 от скорости звука, это типовая скорость Boeing 787 Dreamliner) на высоте 10км. Системный инженер — это тот, кто придумал, как обеспечить их надёжный и экономичный совместный полёт, увязав самые разные требования (грузоподъемность, расход топлива, дальность полёта, шум при взлёте и посадке, требования к длине разбега и посадки, необходимость лёгкого обслуживания на земле, отсутствие обледенения, безопасность людей на борту, и т.д. и т.п.), при этом требования выдвигались самыми разными людьми, представляющими самые разные профессиональные и общественные группы. Пара-тройка миллионов деталей изготавливается и собирается в одно изделие — и самолёт летит, обеспечивая комфорт пассажирам и прибыль владельцам!

Для чего нужна системная инженерия: победить сложность
Системная инженерия решает задачу преодоления инженерной сложности (которая определяется главным образом как число различных элементов, которые должны провзаимодействовать друг с другом, чтобы получить целевую систему — и сложные системы не помещаются ни в какую самую умную голову, требуется специальная дисциплина, чтобы собирать результаты деятельности самых разных инженеров в одно работоспособное целое).
Микроволновка содержала в 2006 году 212 частей (http://www.cadenas.de/news/en/reader/items/out-of-many-one-a-surprisingly-large-number-of-parts), но если взять системы посложней, то счёт легко переходит на миллионы частей -- и во многих крупных системах ошибки в любой из частей могут приводить к катастрофам.

numberofparts
(картинка из материалов Dassault Systemes)
На самом деле картинка эта приукрашивает ситуацию со сложностью. Вот более точная информация по самолётам Boeing (http://787updates.newairplane.com/787-Suppliers/World-Class-Supplier-Quality):

boeingparts

В современных системах число отдельных элементов, которые нужно согласовать между собой (в проектировании), а часто и создать с нуля (в конструировании) достигает десятков миллионов в “железных” системах (а на одном серийно выпускаемом электронном чипе FPGA Xilinx Virtex-Ultrascale XCVU440 число отдельных транзисторов оценивается на 2014 год более чем в 20 миллиардов — http://en.wikipedia.org/wiki/Transistor_count).

Согласно легенде системная инженерия впервые появилась как метод ведения работ в военной отрасли США, когда нужно было скрестить два сверхсложных инженерных проекта: атомный проект по созданию ядерного оружия и проект создания баллистических ракет, необходимых для доставки этого оружия. Не было никаких голов “генеральных конструкторов”, которые могли были бы справиться с решением этой задачи, и пришлось изобретать методы совладания со сложностью подобного сверхпроекта.

Системная инженерия делает невозможное возможным: прежде всего это относится к тому, что сверхсложные системы работают так, как задумано. Системные инженеры больше всего работают на этапах, когда самой системы ещё нет, и их задача представить правильный проект, в котором разные части системы разные свойства, которыми занимаются разные инженерные дисциплины, влияют друг на друга так, чтобы не было неожиданностей от этих влияний. Системный инженер ответственен за то, чтобы риска неудачи, связанного с плохой конструкцией, не было. Системный инженер ответственен за то, чтобы невозможно сложные системы за невозможно короткое время (это означает прежде всего отказ от тупого метода проб и ошибок, тем более что в сверхсложных системах нельзя сделать всех возможных “проб”, чтобы получить все возможные ошибки) создаются, и работают как от них ожидается.

Раньше люди боролись со сложностью тем, что инженерными проектами занимались гении. Сейчас на гениальность не надеются: проекты должны получаться независимо от гениальности “генерального конструктора”, проекты должы получаться успешными на основе метода — гениальность при этом позволяет дополнительно поднимать планку сложности, уже высоко поднятую использованием системноинженерного мышления и практик системной инженерии.

Классический пример, показывающий работоспособность системной инженерии — это “аэрокосмос” (aerospace), авиационная и космическая промышленности. Как известно, обеспечить надёжные космические полёты очень трудно, до сих пор. Много лет бытует поговорка про самые трудные дела — что это “rocket science”. Именно в “аэрокосмосе” без использования системной инженерии не удавалось добиться успехов. Основа конструирования космических кораблей в NASA и европейском космическом агентстве — это системная инженерия. Ещё в 1969-1972 годах в рамках программы Apollo (вдумайтесь: это более 40 лет назад!) на лунной орбите побывало 24 человека (из них трое -- дважды!), а на Луне гуляло 12 космонавтов, они привезли на Землю 382 кг лунного грунта (http://en.wikipedia.org/wiki/Apollo_program).

apollo
(места посадки миссий Apollo).
В программе Apollo использовались двухместные автомобили-планетоходы аж в трёх экспедициях из шести, и в экспедиции Apollo-16 даже был поставлен рекорд скорости передвижения по Луне на автомобиле: 18 км/час (такая скорость на Луне огромна: ведь там сила тяжести вшестеро меньше, и дороги отнюдь не асфальтовые, так что автомобиль на такой скорости ощутимо подбрасывало). На автомобиле американцы проехали почти 36км только в экспедиции Appolo-17, удаляясь от лунного модуля на расстояние до 7.6км.

Марсоход Opportunity прошёл за десять лет службы более 40 км, но уже не по Луне, а по Марсу -- с 2004г. (http://en.wikipedia.org/wiki/Apollo_Lunar_Roving_Vehicle, там выразительная картинка).

Но это всё достижения далёкого уже прошлого. Нынешние инженеры ставят принципиально другие задачи. В 2014 году Индия стала страной, чей космический зонд достиг орбиты Марса с первой попытки (кстати, это один из лозунгов системной инженерии: “С первого раза правильно!” — и тут нужно учесть, что из 40 полётов на Марс меньше половины оказались успешными) раза, и при этом запуск обошёлся всего в US$73 млн., самый дешёвый полёт на Марс на сегодня (http://en.wikipedia.org/wiki/Mars_Orbiter_Mission). Кто это делал? Системные инженеры. Например системный инженер Minal Sampath возглавляла команду, создавшую три прибора для этого марсианского спутника (http://www.bbc.com/news/world-asia-25989262):

sampath

Системные инженеры из европейского космического агентства в 2014 году успешно выполнили миссию Rosetta — посадили спускаемый аппарат Philae c 12 измерительными приборами на комету диаметром примерно 4км. Чтобы попасть точно в назначенную точку и в точно назначенное время Rosetta стартовала с Земли в 2004г., а в 2012 Rosetta удалялась от Земли на миллиард километров (и на 0.8млрд. Километров от Солнца) — http://www.esa.int/Our_Activities/Space_Science/Rosetta/Frequently_asked_questions. В момент встречи с кометой Rosetta была на расстоянии 405млн.км и они летели по направлению к Солнцу со скоростью примерно 55тыс.км/час (http://www.esa.int/Our_Activities/Space_Science/Rosetta/Rosetta_arrives_at_comet_destination). Вот фотография спуска модуля Philae, сделанная камерой Rosetta (в этот момент Rosetta была на высоте примерно 15.5км над поверхностью кометы, выделенные квадраты имеют сторону 17м -- http://www.esa.int/spaceinimages/Images/2014/11/OSIRIS_spots_Philae_drifting_across_the_comet):

rosettaphilaelanding

Основатель космической фирмы SpaceX (http://www.spacex.com/) Элон Маск поставил цель снизить стоимость запуска в 10 раз за счёт повторного использования первой ступени ракеты — чтобы затраты на запуск приходились в основном на топливо, как сегодня у самолётов. Посадочная площадка у него — платформа, которая плавает в море: http://www.spacex.com/news/2014/12/16/x-marks-spot-falcon-9-attempts-ocean-platform-landing. В 2015 году Элон Маск обещал раскрыть планы по подготовке его фирмы к колонизации Марса. Какой метод работы? Такой же, как в NASA — системная инженерия.

Фирма Virgin Galactic (http://en.wikipedia.org/wiki/Virgin_Galactic) планирует осуществлять через год-два относительно недорогие экскурсии в космос (без выхода на орбиту, но по баллистической траектории с шестью минутами невесомости), за год после начала деятельности планируя удвоить число космонавтов (поднимавшихся на высоту более 100км над поверхностью Земли) — на 8 июня 2013г. на Земле было 532 космонавта из 36 стран.

Подводная лодка класса Astute (Великобритания) имеет более миллиона комплектующих (http://gregornot.wordpress.com/2008/10/22/one-of-the-most-complex-engineering-projects-in-world%E2%80%99/), атомные электростанции имеют порядка 4 млн. комплектующих (только число их крупных подсистем ГИПы оценивают в 400-700), а гражданские пассаржирские суда класса Oasis лишь немного уступают авианосцам в их размерах (http://en.wikipedia.org/wiki/Oasis_class_cruise_ship).

Поезд со скоростью 200км в час чудо только в России (рекорд скорости железной дороги 210км/час был достигнут ещё в октябре 1903г. — http://en.wikipedia.org/wiki/High-speed_rail), но в 2008 Китай открыл линию "Wuhan – Guangzhou", штатная скорость на которой до июля 2011 года былаt 350 км/час, после чего была снижена до всего 300км/час. Начата системноинженерная работа по проекту Hyperloop, где вагончики будут двигаться со скоростями, близкими к 1000км/ч в трубах с пониженным давлением воздуха (http://en.wikipedia.org/wiki/Hyperloop).

Небоскрёбы уже строят высотой более 1км (Kingdom Tower, Jeddah Saudi Arabia, начало строительства в 2013 году, окончание в 2019, 167 этажей, высота 1007 метров, http://skyscraperpage.com/diagrams/?searchID=202). Уже построено здание высотой 828 метров (Burj Khalifa, Dubai Unated Arab Emirates, построено в 2010 году, http://skyscraperpage.com/diagrams/?searchID=200).

Кто ответственен за правильность проекта, правильность выбранного решения, соблюдение всех сложнейших практик, дающих на выходе “правильно с первого раза”? Системные инженеры: именно они должны придумать такие технические решения, чтобы не было неприятных (впрочем, и приятных тоже) неожиданностей при изготовлении, эксплуатации и последующем выводе из эксплуатации систем, создаваемых во всех этих сложнейших проектах. И эти системные инженеры справляются — каждый год сверхсложные проекты прошлых лет становятся просто сложными, а сложные проекты — типовыми. Это не значит, что такие проекты, как полёт на луну или создание атомной станции становятся более простыми. Нет, не становятся: наоборот. Сложность этих проектов год от года растёт за счёт опережающего роста требований, прежде всего требований безопасности.

Создавать такие сложные системы могут только большие многодисциплинарные коллективы, которые требуют какой-то междисциплинарной организации в разделении умственного труда. Именно вопросы удержания междисциплинарной целостности и организации междисциплинарных работ и решает системная инженерия. Она:
  • удерживает целое всего инженерного решения для самых разных затрагиваемых инженерным проектом людей (стейкхолдеров). Это основной предмет нашей книги.
  • Использует практики системной инженерии для создания успешного инженерного решения — наша книга не рассказывает подробно об этих практиках, но даёт ссылки на дополнительную литературу.
Можно ли системную инженерию применять в простых проектах? Да, “кашу маслом не испортишь”, хорошее мышление и хорошие инструменты помогают везде. В том числе для небольших проектов использование системной инженерии снижает требования к гениальности инженеров: думать помогает метод (и компьютеры — в силу понимания, что они должны делать), а не “общая гениальность”. Нужно ли “просто инженерам” быть знакомым с системной инженерией? Да, они будут лучше понимать, как им взаимодействовать с многочисленными стейкхолдерами и как обеспечить успешность своей системы. Впрочем, “просто инженеров” часто уже учат основным практикам системной инженерии, хотя и неявно и без опоры на системное мышление. Нужно ли быть знакомым с системноинженерным мышлением менеджерам? Да, если они хотят понимать самых разных инженеров и сотрудничать с ними.

Но почему системную инженерию назвали именно системной, а не какой-то другой инженерией? Потому как на сегодняшний день единственным способом удержать сверхсложное целое в междисциплинарных проектах является использование системного подхода, в котором термин “система” используется в специальном смысле, и который подразумевает специальное устройство мышления для применяющих системный подход людей. Этому мышлению и посвящена наша книга.

Упражнение: оцените, сколько частей в разрабатываемой в вашем проекте системе. Слышали ли вы, что в проекте явно используется какой-то метод работы (необязательно “системная инженерия”, но хоть какой-то, о котором написан учебник, который преподаётся в ВУЗе)? Как вы считаете, почему при всех разговорах о лидерстве советской космонавтики ей не удалось при практически неограниченных ресурсах послать космонавтов на Луну в начале 70-х?
* * *
Это я потихоньку продолжаю апдейтить текст книжки "Системноинженерное мышление", которая лежит в её первой версии тут: http://techinvestlab.ru/files/systems_engineering_thinking/systems_engineering_thinking--TechInvestLab_2014.pdf.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 20 comments