НОВЫЙ ОБРАЗОВАТЕЛЬНЫЙ СТАНДАРТ ПОДГОТОВКИ БАКАЛАВРОВ И МАГИСТРОВ
«ПРОГРАММНАЯ ИНЖЕНЕРИЯ»
С.М. Авдошин
Государственный Университет – Высшая Школа Экономики, Россия
Программная инженерия - наука о принципах и методологиях, применяемых при разработке и сопровождении программных систем. Она изучает применение систематического, упорядоченного и исчисляемого подхода к разработке, эксплуатации и сопровождению программного обеспечения (ПО), применение принципов инженерии по отношению к процессу разработки ПО [IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology].
Общие положения
Информационные технологии (ИТ) - мощный локомотив экономического прогресса во всем мире. Важнейшей составляющей ИТ, в которой сконцентрирован их интеллект, является программное обеспечение информационных систем. Благодаря своим особенностям индустрия программирования, как никакая другая, оказалась в центре глобализации мировой экономики. По данным исследования всемирной организации Business Software Alliance (BSA) опубликованного 8 декабря 2005 года Мировая ИТ индустрия, в которой работает 1,1 млн. предприятий, вносит в мировую экономику почти $1,7 трлн.
В России наблюдается устойчивый рост рынка ИТ услуг с 1996 года. По данным нового отчёта IDC Services 2005-2009 Forecast and 2004 Vendor Shares в 2004 г. он составил 26,3%, что соответствует $1,9 млрд. Средний ежегодный прирост российского рынка ИТ - услуг в прогнозируемый пятилетний период составит 25,4%, а его объём к 2009 г. достигнет $5,8 млрд. По темпам роста он значительно опережает рынки ИТ - услуг в странах, как Восточной, так и Западной Европы.
Растет не только общий объём рынка, но и доля местных компаний. Увеличивается число российских компаний, предлагающих собственные разработки. Результаты исследований IDC показали, что ИТ - сектор в России в настоящее время включает 16047 ИТ – предприятий. Здесь работает 86260 человек, доля которых в налоговых поступлениях составляет $684 млн. Роберт Фариш (Robert Farish), региональный директор IDC в России и странах СНГ считает, что Россия может стать в будущем одной из ведущих стран, производящих программное обеспечение.
Программные системы ныне присутствуют повсеместно: практически любые электронные устройства содержат программное обеспечение того или иного вида. Без соответствующего программного обеспечения в современном мире невозможно представить индустриальное производство, школы и университеты, систему здравоохранения, финансовые и правительственные учреждения. Многие используют программное обеспечение для самообразования или различного рода развлечений. В таких системах стоимость ПО порой составляет большую часть общей стоимости продукта. Более того, стоимостные показатели отраслей, занимающихся производством ПО, становятся определяющими для экономики – как национальной, так и международной.
Вывод: Индустрия программирования - бурно развивающаяся область современной мировой экономики.
Потребность на рынке труда
Активным потребителем продукции и услуг в сфере ИТ в Российской Федерации является государство. Как и в развитых странах, доля спроса со стороны государства в течение последних 5 лет на российском рынке ИТ достигала 30 процентов, что стало существенным стимулом роста отрасли. Значительный объем спроса приходится на несколько крупных компаний, находящихся под контролем государства (ОАО "Газпром", РАО "Российские железные дороги", РАО "ЕЭС России", ОАО "Аэрофлот", ОАО "Связьинвест"). Активным источником спроса на рынке ИТ являются также предприятия финансовой и нефтегазовой отрасли, связи и торговли, оборонной промышленности.
Российский ИТ - рынок в значительной мере тяготеет к крупным проектам. Традиционно, крупнейшими потребителями ИТ - услуг являются финансовый, производственный, государственный и телекоммуникационный секторы, суммарно обеспечившие более 65% ИТ - рынка.
В настоящее время наблюдается острейший дефицит специалистов по программной инженерии, квалифицированных кадров, способных эффективно участвовать в индустриальной реализации процессов разработки, эксплуатации и сопровождения программного обеспечения в качестве аналитиков, консультантов, интеграторов, спецификаторов, архитекторов, проектировщиков, менеджеров, разработчиков, тестеров, документаторов, инженеров по качеству и по безопасности ПО и т.д.
Потребность в специалистах по программной инженерии испытывает также и сфера оффшорного программирования. Ее развитию уделяется большое внимание со стороны руководства многих стран. Согласно прогнозу Gartner Group, суммарный объем рынка оффшорного программирования и программного аутсорсинга к 2007 году должен преодолеть рубеж в $50 млрд. Поэтому программисты, подготовленные для оффшорного программирования, рассматриваются в этих странах как стратегический ресурс государства. В частности благодаря правительственной поддержке, для работы в данном секторе Китай планирует подготовить в ближайшее пятилетие до миллиона программистов. Примерно аналогичные цели преследуют Бразилия, Мексика, Вьетнам, Сингапур, Таиланд, Индонезия, Украина и другие страны. По прогнозам аналитиков Gartner Group к 2007 году в Восточной Европе могут лидировать Россия, Чехия, Венгрия и Польша.
Сейчас среди стран, занимающихся экспортным программированием, лидирует Индия. Экономический успех Индии в области оффшорного программирования предопределил стратегическую значимость развития этой сферы и в России. Чтобы отстоять свои позиции на международном рынке заказного ПО Россия должна на этом фронте иметь не менее 200-300 тысяч профессионалов. По экспертным оценкам рынок оффшорного программирования в России динамично развивается. Результаты исследования, проведенного в 2004 году Internet-порталом Outsourcing-Russia.com (проект компаний Star Software и Beiten Burkhardt) говорят об укреплении отечественной индустрии офшорного программирования. Рост масштабов бизнеса и усиление международного присутствия позволяют говорить о хорошем потенциале России на глобальном рынке ИТ-аутсорсинга.
Общий объем российского рынка ИТ-аутсорсинга оценивается в $0,5 млрд., а 2006 году может приблизиться к $1 млрд.
Вывод: Прогнозы экономического развития отрасли сдерживаются нехваткой квалифицированных кадров. Назрела потребность в подготовке специалистов высшей квалификации по направлению программная инженерия, ориентированных на грамотную организацию процесса создания ПО, реализацию технологических принципов промышленного конструирования программных систем.
Программная инженерия как научная дисциплина
Программная инженерия – сравнительно молодая научная дисциплина. Впервые термин Software Engineering был предложен в 1968 году на конференции НАТО, посвященной так называемому кризису программного обеспечения, возникшему с появлением вычислительной техники третьего поколения. Новая техника позволяла воплотить в жизнь не реализуемые ранее программные проекты. В результате программное обеспечение этих проектов достигло размеров и уровня сложности, намного превышающих аналогичные показатели у программных систем, реализованных на вычислительной технике предыдущих поколений. Возникла необходимость в новых технологиях и методах управления комплексными, сложными проектами разработки больших программных систем.
В 1972 году IEEE выпустил первый номер Transactions on Software Engineering – труды по программной инженерии. Первый целостный взгляд на эту область профессиональной деятельности появился 1979 году, когда компьютерное общество IEEE подготовило стандарт IEEE Std 730 по качеству программного обеспечения. В 1986 году IEEE выпустило IEEE Std 1002 Taxonomy of Software Engineering Standards. Наконец, в 1990 году началось планирование международных стандартов, в основу которых легли концепции и взгляды стандарта IEEE Std 1074 и результатов работы образованной в 1987 году совместной комиссии ISO/IEC JTC 1. В 1995 году группа этой комиссии SC7 Software Engineering выпустила первую версию международного стандарта ISO/IEC 12207 Software Lifecycle Processes. Этот стандарт стал первым опытом создания единого общего взгляда на программную инженерию. Издан соответствующий национальный стандарт России – ГОСТ Р ИСО/МЭК 12207-99 [ГОСТ 12207, 1999]. В свою очередь, IEEE и ACM, начав совместные работы еще в 1993 году с кодекса этики и профессиональной практики в данной области (ACM/IEEE-CS Software Engineering Code of Ethics and Professional Practice), к 2004 году сформулировали два ключевых описания того, что сегодня мы и называем основами программной инженерии – Software Engineering:
- Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE 2004 Version - Руководство к Своду Знаний по Программной Инженерии;
- Software Engineering 2004. Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering – Учебный план для преподавания программной инженерии в высших учебных заведениях.
Программная инженерия – это наука о систематизированных, регламентированных и квантифицируемых методах решения задач разработки, эксплуатации, сопровождения и утилизации программного обеспечения. При этом как бизнес процессы, так и программное обеспечение должны отвечать заданным техническим экономическим и социальным требованиям. Очевидно, что создание высококачественного ПО – очень трудоемкий процесс. Здесь должны быть задействованы необходимые для разработки процессы, инструментарии, технологии и человеческие ресурсы. В связи с этим возникла острая необходимость в специалистах, владеющих новыми технологиями и методами управления комплексными, сложными проектами разработки больших программных систем.
Вывод: К настоящему времени программная инженерия сложилась как самостоятельная научная дисциплина.
Программная инженерия как образовательное направление
В историческом плане появление образовательного направления “Программная инженерия” связано с потребностями министерства обороны США в разработке качественного программного обеспечения. В военных проектах Пентагона постоянно возникали серьезные проблемы — превышение бюджетов и сроков, низкий уровень качества программных продуктов. Было принято решение усовершенствовать инженерию разработки программного обеспечения. Эта миссия была возложена на Software Engineering Institute (SEI), созданный в 1984 году в университете Карнеги-Меллона. Выбор университета Карнеги-Меллона был не случаен — это одна из ведущих научных школ мира в области компьютерных наук. На базе этого университета, подобно ряду других американских университетов, ведутся научно-исследовательские работы, финансируемые из бюджета федерального уровня и позволяющие решать научные проблемы в интересах американского правительства. Опыт применения разработанных SEI моделей CMM/CMMI оценки зрелости процессов программной инженерии оказался успешным и привлек внимание к направлению программная инженерия разные организации и компании: Boeing, Motorola и другие.
В настоящее время университет Карнеги-Меллона занимает лидирующие позиции в области программной инженерии. Здесь разрабатываются современные проекты в этой области. Например, четыре года назад Университет Карнеги—Меллона получил запрос на разработку e-Sourcing Capability Model - модели зрелости процессов для поставщиков услуг, компаний, которые занимаются аутсорсингом, оффшорными проектами, как для поставщиков услуг, так и для клиентов. В консорциум, который поддерживает этот проект, входят представители обеих сторон. Среди его членов — Accenture, IBM Global Service, EDS и ряд других.
Уникальность образовательного направления программная инженерия состоит в его тесном взаимодействии с наукой и бизнесом и практической значимости для экономики стран. Это определило его стремительное развитие во всем мире.
Вывод: Практика зарубежного образования подтверждает высокую научную и прикладную значимость этого направления.
Цели организации направления “Программная инженерия” в России
В бывшем Советском Союзе работы в области программной инженерии были связаны с интересами оборонных отраслей промышленности. При реализации крупных проектов вычислительных систем реального времени в системах ПРО – противоракетной обороны (С.А. Лебедев, Г.В. Кисунько, В.С. Бурцев) и ПВО – противовоздушной обороны (А.Л. Лившиц, З.М. Бененсон), принципиально изменялись объемы комплексов программ. Происходил переход к коллективному созданию крупномасштабных программных средств высокого качества и надежности.
Особенность работ отечественных ученых состояла в том, что они были направлены на создание программных средств автоматизации процессов жизненного цикла, связанных, прежде всего, с технологией программирования. Эти работы инициированы А.П. Ершовым. Значительный вклад в исследование технологии программирования внесли В.М. Глушков, В.В. Липаев, Позин Б.А., Штик А.А. и другие.
В гражданских отраслях создание крупномасштабных комплексов программ в те годы не было востребовано. Это определило ориентацию научных и учебных учреждений и предприятий гражданской промышленности на разработку относительно небольших программ и способствовало их отставанию в области программной инженерии. В конце 80-х годов, при резком прогрессе в микропроцессорной технике, появилась потребность в создании крупных проектов программного обеспечения административных, финансовых, промышленных и иных систем. К этому времени методы разработки небольших программ оказались не применимыми или не эффективными и отечественные специалисты были вынуждены заново самостоятельно осваивать и развивать методологию индустриального проектирования крупных программных систем, в том числе с оглядкой на положительный опыт оборонной промышленности.
До настоящего времени специалистов по программной инженерии высшие учебные заведения России не готовили. Конечно, в ряде вузов, на базовых кафедрах предприятий министерства обороны, таких, например, как МИФИ и МИРЭА, программная инженерия присутствовала фрагментарно в других направлениях. Появилась дисциплина программная инженерия в объеме 54 часов аудиторных занятий на кафедрах вузов, таких, например, как МГУ и СПбГУ, ведущих подготовку по новому направлению 010400 “Информационные технологии”, попавшем в группу физико-математических наук. Но отсутствовала целостная концепция образовательного направления программная инженерия, учитывающая не только технологическую составляющую, но и экономическую, организационную, менеджериальную, маркетинговую и правовую составляющие.
В России есть понимание высокой значимости программной инженерии, как в экономической, так и в научно-практической области. Так, например, среди работ, выполняемых Институтом Системного Программирования Российской Академии Наук, есть работы по созданию технологий и инструментов, направленных на усовершенствование процесса разработки программного обеспечения (группы UniTesK Lab, SpACE, STEPSET, CASE, и другие). Однако программная инженерия до сих пор не представлена в системе высшего образования собственным образовательным направлением. Такое положение вещей является сдерживающим фактором в создании современной системы обучения программной инженерии, существенно ограничивает возможности отечественных вузов в сотрудничестве с зарубежными университетами, в их выходе на международный рынок образовательных услуг.
Целью организации направления «Программная инженерия» является подготовка высококвалифицированных бакалавров и магистров, получающих комплексные знания в области программной инженерии, экономики, менеджмента, права и информационно-коммуникационных технологий (ИКТ), владеющих теоретическими основами и практическими навыками разработки конкурентно способных программных систем, управлением программными проектами в различных областях индустрии. Подготовка таких специалистов особенно важна в свете обеспечения кадрами федеральной целевой программы «Электронная Россия» и программы развития ИТ - технопарков России.
Вывод: Введение в Государственный реестр российского высшего образования нового направления “Программная инженерия” и создание образовательного стандарта по этому направлению позволят адекватно от-разить тенденции мирового образования в системе российских университетов и будут способствовать интеграции российской образовательной системы в мировую.
В Государственном университете – Высшая школа экономики на факультете Бизнес-информатика разработан новый образовательный стандарт подготовки бакалавров и магистров “Программная инженерия”. Этот стандарт полностью соответствует международным рекомендациям к образовательным программам Computing Curricula 2005, Computer Science 2001 и Software Engineering 2004.
С 2006 учебного года в ГУ ВШЭ осуществляется набор студентов на отделение программной инженерии, как на бакалаврскую подготовку, так и на две магистерские программы “Управление разработкой программного обеспечения” и “Информационная безопасность программного обеспечения”.
Магистерская программа “Управление разработкой программного обеспечения” (Software Engineering Management) направлена на подготовку архитекторов программных систем, руководителей команд разработки программного обеспечения, как на техническом, так и на менеджериально-экономическом уровне.
Магистерская программа “Информационная безопасность программного обеспечения” ориентирована на изучение методов и средств разработки защищенного программного обеспечения и оценки уровня безопасности информационных систем. Такая программа позволит подготовить квалифицированных специалистов по разработке защищенных комплексов и аудиту информационной безопасности информационных систем, готовых к сдаче экзаменов для получения сертификатов CISSP (Certified Information System Security Professional) и CISA (Certified Information Security Auditor).
|