Системная инженерия, как базовая дисциплина при подготовке кадров для области ит - страница №1/1
Системная инженерия, как базовая дисциплина при подготовке кадров
для области ИТ и ее приложений
В.К. Батоврин,
зав. кафедрой информационных систем МИРЭА,
batovrin@mirea.ru
В докладе обсуждаются предложения по введению дисциплины «Системная инженерия» в качестве базовой в программы подготовки бакалавров и магистров в области ИТ и её приложений. В частности, рассматривается актуальность указанной дисциплины, её содержание и связь с основополагающими международными стандартами в области создания систем и с другими дисциплинами, такими как «Программная инженерия», «Управление проектами», «Управление качеством», «Управление требованиями», «Эргономика», «Проектирование архитектуры информационных систем». Приводятся рекомендации по возможному содержанию рабочей программы, обсуждается имеющийся опыт преподавания дисциплины «Системная инженерия» в зарубежных и отечественных вузах.
1. Введение
В прошлом году исполнилось пятьдесят лет со дня выхода в свет книги Г.Х. Гуда и Р.Э. Макола «System engineering; an introduction to the design of large-scale systems» [1], с которой по существу началась современная системная инженерия, и сорок пять лет со дня издания её перевода в нашей стране [2]. Это событие осталось практически незамеченным ИТ-общественностью, а ведь именно при переводе этой книги Ф.Е. Темников (основатель первой в нашей стране кафедры системотехники в Московском энергетическом институте) предложил термин системотехника, как эквивалент английского термина Systems Engineering, что точнее было бы перевести как системная инженерия.
Авторы упомянутой книги рассматривали системную инженерию, как дисциплину, дающую ключ к разработке крупных, сложных, высокоавтоматизированных технических систем, впервые описав основные признаки систем большого масштаба и указав на то, что при их создании возникают проблемы не только технического, но и организационно-управленческого характера и широко используются коллективные, бригадные методы работы.
В нашей стране термин системотехника стал широко использоваться применительно к техническим приложениям системных методов, а кафедры системотехники появились во многих вузах страны, позднее мода на системотехнику прошла и, что может быть самое главное, постепенно забылся подзаголовок книги, которая была посвящена решению качественно новых проблем, возникающих при создании больших систем. При этом в силу различных обстоятельств было во многом забыто не только содержание, первоначально вкладываемое в термин системная инженерия, но и, в значительной мере, потеряна связь между программной и системной инженерией.
Между тем, в трудах зарубежных специалистов преемственность потеряна не была и методы создания сложных систем и разработки масштабного программного обеспечения, которые первоначально развивались раздельно, постепенно были гармонизированы между собой, что особенно заметно при рассмотрении современных рекомендаций по разработке систем уровня предприятия, а также основополагающих стандартов системной и программной инженерии. Показательно, что первый официальный рамочный стандарт, появившийся в этой области, назывался ISO/IEC 12207:1995 Information technology - Software life cycle processes, тогда как появившаяся в этом году новая редакция называется ISO/IEC 12207:2008 Systems and software engineering - Software life cycle processes.
Учитывая настоятельную потребность индустрии, бизнеса, научных исследований в профессиональных кадрах, владеющих знаниями как в области создания сложных систем. так и современными ИТ, а также мировые тенденции развития подготовки специалистов в этой области, представляется настоятельно необходимым предпринять активные усилия по развитию создающихся сегодня в нашей стране программ подготовки по программной инженерии путем обязательного введения в них дисциплины системная инженерия. Причем в иерархии дисциплин, изучаемых будущими специалистами по созданию систем, системная инженерия должна стать ключевой, базовой, задающей весь спектр методов, процессов и средств, используемых на практике для достижения главной цели – создания эффективной системы, отвечающей требованиям заинтересованных лиц.
2. Системная инженерия как актуальное научно-образовательное направление
В научных и методических разработках зарубежных ученых системная инженерия сформировалась, как междисциплинарный подход и методика, обеспечивающие создание эффективных систем [3], заняв тем самым место основополагающей, базовой дисциплины, овладение методами и средствами которой является обязательным при подготовке специалистов, предполагающих заниматься созданием сложных систем. При этом учитывается, что абсолютное большинство современных систем разрабатывается как программно-интенсивные системы, основанные на компьютерах, а программная инженерия рассматривается как домен, фундаментальные организационные, проектные и технические процессы в котором полностью гармонизированы с фундаментальными процессами системной инженерии. Такой подход нашел отражение и в основополагающих официальных стандартах системной и программной инженерии, работа по гармонизации которых между собой активно проводилась в течение последних 5 лет 7-м подкомитетом «Программная и системная инженерия» Объединенного технического комитета 1 ИСО и МЭК и в этом году была успешно завершена [4,5].
Особую актуальность системной инженерии придает то, что, объединяя другие дисциплины и специальности, она обеспечивает возможности для реализации коллективных усилий по формированию и осуществлению набора процессов, необходимых для построения различных, в том числе программных, систем в их развитии, включая замысел, реализацию, эксплуатацию и утилизацию. При этом системная инженерия имеет дело, как с деловыми, так и с техническими потребностями всех заинтересованных лиц, ставя своей целью создание систем, которые способны удовлетворить потребности этих лиц путем предоставления продукции и услуг, необходимых потребителям.
Свидетельством актуальности системной инженерии может служить тот факт, что только за 2008 г. по этой тематике издано более 20 книг, а за последние 5 лет принято около 30 официальных международных стандартов.
Системная инженерия и связанные с ней дисциплины присутствуют в учебных планах большинства ведущих университетов мира (примеры курсов по тематике системной инженерии можно найти в разделе MIT OpenCourseWare на портале Массачусетского технологического института). Ведущие мировые компании и крупнейшие правительственные учреждения различных стран разрабатывают собственные руководства по системной инженерии, например, [3,6,7] и активно содействуют повышению квалификации в этой области своих сотрудников.
3. Стандарты системной инженерии
Важнейшим компонентом методологического базиса системной инженерии являются официальные международные стандарты. Стандарты и нормативные руководства по системной инженерии разрабатываются в основном тремя организациями: Объединенным техническим комитетом 1 ИСО и МЭК, где рассматриваемыми вопросами занят в первую очередь 7-й подкомитет «Программная и системная инженерия», Институтом инженеров электротехники и электроники (IEEE) и Международным советом по системной инженерии (International Council on Systems Engineering – INCOSE). Эти три организации проводят работу по стандартизации в области системной и программной инженерии по согласованным программам. Кроме того, существенный вклад в разработку нормативно-технической базы системной инженерии внесли Альянс электронной индустрии (Electronic Industries Alliance – EIA) [8], и Институт программной инженерии университета Карнеги-Меллон [9,10].
Сегодня стандарты системной и программной инженерии разрабатываются, как правило, в неразрывном единстве и представляют развитую систему, в которой представлены словарь и своды знаний, гармонизированные между собой основополагающие стандарты на процессы жизненного цикла (ЖЦ) систем и программных средств, а также руководства по их применению, стандарты оценки качества процессов ЖЦ систем, стандарты оценки зрелости процессов и управления ИТ сервисами. Кроме того, в последние 2-3 года появились стандарты, в которых определяются детализированные требования к отдельным процессам ЖЦ систем, такие как ISO/IEC 16085:2006 Systems and software engineering - Life cycle processes -- Risk management, ISO/IEC 15939:2007 Systems and software engineering - Measurement process, ISO/IEC 26702:2007 Systems engineering - Application and management of the systems engineering process и другие.
Таким образом, быстрыми темпами идет работа по формированию развитой системы нормативно-технической документации, содержащей описание методологического базиса создания систем различных классов и назначения, который на основе единого системного подхода задает рекомендованные правила такой работы, применимые как в сфере системной так и программной инженерии. К сожалению эта работа остается практически незамеченной в нашей стране, а её результаты обсуждаются лишь отдельными энтузиастами из числа ИТ-специалистов, занятых в коммерции, промышленности и образовании.
4. Основные задачи и структура системной инженерии
Системная инженерия на всех этапах от выявления нужд потребителей и до определения необходимых функциональных возможностей системы, от документирования требований и до разработки и реализации проекта и проверки соответствия сосредоточена на всестороннем рассмотрении полного ЖЦ системы, включая:
-
Обеспечение заданных функциональных возможностей и характеристик,
-
Соблюдение смет и графиков,
-
Контроль соответствия,
-
Производство и сопровождение,
-
Обучение персонала,
-
Вывод из эксплуатации и утилизацию.
Приемы системной инженерии используются при реализации систем различного масштаба от космических кораблей до микроконтроллеров со встроенным программным обеспечением.
Современная системная инженерия, используя широкий арсенал методов, средств и инструментов, включая различные виды моделирования, принятия решений и оптимизации, управления рисками, планирования и управления сложностью сосредотачивает усилия в первую очередь на двух основных аспектах создания систем:
-
Системном взгляде на продукцию и услуги,
-
Методах разработки с использованием базовых моделей и типовых процессов.
Д
ля достижения успеха в этой работе системная инженерия, будучи междисциплинарным подходом, активно использует достижения различных отраслей знаний ( рис.1).
Рис. 1
Методы системной инженерии позволяют задать единую структуру для установления и развития связей и кооперации между сторонами, создающими и использующими современные системы и управляющими ими, на основе моделирования, и реализации общих процессов, составляющих ЖЦ систем, с возможностью для их оценки и совершенствования. Кроме того, в рамках системной инженерии формируется единый методологический базис для описания всех процессов ЖЦ систем, куда, согласно стандарту ISO/IEC 15288:2008, входят 4 группы процессов – технические, проектные, организационного обеспечения проектов (процессы предприятия) и соглашения (рис.2).
Рис. 2
5
. Программы подготовки по системной инженерии
Обоснование решений при разработке методической базы подготовки по системной инженерии может базироваться на работе [3]. С учетом рекомендаций INCOSE и опыта преподавания в российских вузах можно отметить следующие особенности подготовки в области системной инженерии:
-
Целенаправленность. Предполагается четкая ориентация подготовки кадров по системной инженерии на достижение основной цели – способности к работе по созданию (развитию) систем различного вида и назначения, начиная от систем на кристалле и до систем уровня предприятия.
-
Комплексность. Компетенции в области системной инженерии формируются на основе изучения совокупности методов, процессов и стандартов, обеспечивающих планирование и эффективную реализацию полного ЖЦ систем.
-
Системность. Следует делать акцент на изучении базовых системных концепций и иерархии систем и проектов и формировании на этой основе требований к базовым процессам и их организационному оформлению.
-
Модульность построения цикла дисциплин. Объем компетенций определяется на уровне модулей знаний, что позволяет формировать собственную стратегию дополнения ядра дисциплины дополнительными учебными курсами (рис.1).
-
Развитие профессиональных умений и навыков владения ИТ инструментарием. При изучении дисциплины должны быть предусмотрены практикумы по моделированию систем, управлению требованиями, проектированию архитектур, принятию решений, документированию, ориентированные на использование современного лицензионного ИТ-инструментария.
-
Определение основополагающих стандартов системной и программной инженерии в качестве базы при формировании ядра дисциплины. Стандартам системной и программной инженерии должна быть отведена приоритетная роль, поскольку при их разработке и принятии обеспечивается беспрецедентно высокий уровень консенсуса, позволяющий учесть практически все лучшие практики в рассматриваемой области.
-
Соблюдение баланса между процессным и проектным подходами. Помимо изучения процессов системной и программной инженерии необходимо введение модулей, охватывающих такие темы, как архитектурный подход к проектированию, общее и прикладное обеспечение процессов системной инженерии, логистика, обеспечение пригодности к сопровождению, обеспечение эргономических и экологических показателей и других.
Важнейшим элементом в подготовке следует считать достижение такого положения, когда обучаемый становится способен к осознанному построению моделей ЖЦ на основе адаптированных стандартных процессов, способы и средства реализации которых выбираются на основе лучших практик или самостоятельно с учетом назначения и характеристик создаваемой системы.
6. Системы обеспечения
В основе обеспечения подготовки квалифицированных системных инженеров на Западе лежит несколько факторов. Среди которых выделяются:
-
формирование единого методологического базиса системной инженерии на основе разработок как крупнейших технических университетов так и профессиональных организаций,
-
активное участие работодателей в формировании и реализации программ подготовки системных инженеров,
-
наличие сертифицированных программ дополнительного образования, реализуемых под эгидой ведущих профессиональных организаций, таких как INCOSE,
-
возможность широкого доступа к нормативно-технической документации, включая международные стандарты и стандарты организаций,
-
формирование системы дистанционного образования, включающей открытые образовательные ресурсы очень высокого качества, такие как MIT OpenCourseWare
-
наличие квалифицированных преподавателей, имеющих помимо опыта методической работы, большой опыт работы в компаниях и организациях разработчиках стандартов (например, практически все ведущие специалисты 7-ого подкомитета «Программная и системная инженерия», включая его руководителей, являются одновременно университетскими профессорами).
По-видимому, в нашей стране следует сделать акцент на привлечение к подготовке по системной инженерии ведущих ИТ-компаний, заинтересованных в получении специалистов, способных разрабатывать и сопровождать сложные, основанные на компьютерах системы. Кроме того, чрезвычайную важность имеет создание эффективной системы подготовки и переподготовки преподавательских кадров по системной инженерии. Имеющийся у автора небольшой опыт работы в этом направлении указывает на высокую заинтересованность преподавателей вузов в получении знаний по обсуждаемому направлению.
Следует отметить, что опыт чтения курса системная инженерия в магистратуре на факультете информационных бизнес систем МФТИ говорит о том, что известную сложность представляет учет интересов компании-заказчика при согласовании учебных модулей между собой, а также при согласовании фундаментальной и прикладной составляющих подготовки. Одним из путей решения этой проблемы является привлечение работодателя к учебному процессу, начиная со стадии подготовки бакалавров.
7. Заключение
В докладе рассмотрены основные аспекты введения системной инженерии в качестве базовой дисциплины при подготовке кадров для области ИТ и её приложений. Появление такой дисциплины в вузовских программах является, по мнению автора, принципиально важной задачей, особенно с учетом быстрого развития в нашей стране направлений деятельности, связанных с созданием сложных программно-интенсивных систем. В ряде технических университетов страны ведется работа по формированию методических основ преподавания системной инженерии и связанных с ней дисциплин, таких как программная инженерия, управление проектами, управление качеством, управление решениями, управление рисками, управление требованиями, управление закупками и поставками, проектирование архитектур и других. На этой основе и с учетом потребностей индустрии, бизнеса и науки возможно ускоренное развитие системы подготовки кадров, необходимых для ИТ отрасли и её приложений.
Литература
-
Goode, Harry H.; Robert E. Machol. System Engineering: An Introduction to the Design of Large-scale Systems. – New York: McGraw-Hill, 1957.
-
Гуд Г.Х., Макол Р.Э. Системотехника. Введение в проектирование больших систем. – М: Советское радио, 1962.
-
Systems Engineering Handbook, v.3.1. – INCOSE-TP-2003-002-03.1, August 2007.
-
ISO/IEC 15288:2008 Systems and software engineering - System life cycle processes.
-
ISO/IEC 12207:2008 Systems and software engineering - Software life cycle processes.
-
Systems Engineering Guide for Systems of Systems. Version 1.0. – US Department of Defense, August 2008.
-
NASA Systems Engineering Handbook. – NASA/SP-2007-6105 Rev1, December 2007.
-
ANSI/EIA-632-1999 Process for Engineering a System
-
CMMI for Development, Version 1.2. – CMU/SEI-2006-TR-008, August 2006
-
CMMI for Acquisition, Version 1.2. –CMU/SEI-2007-TR-017, November 2007.