Программная инженерия. Проект SWEBOK

Казакова Ирина Анатольевна - доцент Пензенского государственного университета.

Аннотация: В статье рассматривается один из основных документов в области программной инженерии – Руководство к Своду Знаний по Программной Инженерии, а также области знаний, которые соответствуют процессам проектирования ПО.

Ключевые слова: программное обеспечение, программная инженерия, IEEE, ACM, SWEBOK.

Термин SofWware Engineering  (SWE – программная инженерия) был введён Фридрихом Л. Бауэром  в 1968 году на конференции подкомитета НАТО по науке и технике (г. Гармиш-Партенкирхен, Германия) [1, с.31]. В России программная инженерия называлась технологией программирования. Такой перевод термина «software engineering» предложил в 70-х годах прошлого века академик А.П.Ершов. Более современный перевод этого термина – программная инженерия – предложил в конце 90-х годов  И.В. Поттосин, один из ведущих российских ученых в области информатики.

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

Институт IEEE  (Institute of Electrical and Electronics Engineers – Институт инженеров по электротехнике и электронике) определяет этот термин как систематический подход к развитию, действию,  поддержке и прекращению эксплуатации программного обеспечения (ПО).

Возникновение программной инженерии как дисциплины разработки ПО  определено многими  факторами, среди которых самыми важными являются следующие [2, c. 43]:
1.    накопление в области создания ПО значительного объема разнородных знаний, 
2.    появление новых методов проектирования и разработки ПО;
3.    совершенствование методов обнаружения ошибок в ПО;
4.    эффективная организация работы коллективов разработчиков ПО.

C 1993 года IEEE и ACM (Association for Computing Machinery – Ассоциация вычислительной техники) координируют свои работы в рамках специального совместного комитета – Software Engineering Coordinating Committee (SWECC). Проект SWEBOK был инициирован этим комитетом в 1998 году. Предположительный объем содержания SWEBOK привели к тому, что было рекомендовано проводить работы по реализации проекта не только силами добровольцев из представителей крупнейших потребителей и производителей программного обеспечения (ПО), но и на основе принципа полной занятости. Базовый комплекс работ, в соответствии со специальным контрактом, был передан в Software Engineering Management Research Laboratory Университета Квебек в Монреале (Université du Québec à Montréal). Среди компаний, поддержавших этот уникальный проект, были Boeing , MITRE , Raytheon , SAP .

К 2004 году были сформулированы два ключевых описания того, что сегодня называют основами программной инженерии:
1.  Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE 2004 Version - Руководство к Своду Знаний по Программной Инженерии, в дальнейшем просто SWEBOK; 
2.  Software Engineering 2004. Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering – Рекомендации по преподаванию программной инженерии и информатики в университетах.

Проект SWEBOK планировался в виде трех фаз: Strawman (соломенный человек), Stoneman (каменный человек) и Ironman (железный человек). К 2004 году была выпущена версия Руководства по Своду Знаний третьей фазы – Ironman, то есть максимально приближенная к окончательному варианту и одобренная IEEE в феврале 2005 года.

Назначение SWEBOK – в объединении знаний по инженерии ПО. В этом ядре были систематизированы разнородные знания в области программирования, планирования и управления.

SWEBOK включает 10 областей знаний (knowledge areas, KA), которые соответствуют процессам проектирования ПО и методам их поддержки а именно [3, с. 43]:
1.    Software requirements –требования к ПО.
2.    Software design – проектирование ПО.
3.    Software construction – конструирование ПО.
4.    Software testing - тестирование ПО.
5.    Software maintenance – сопровождение ПО.
6.    Software configuration management –управление конфигурацией.
7.    Software engineering management – управление в программной инженерии.
8.    Software engineering process – процессы программной инженерии.
9.    Software engineering tools and methods – инструменты и методы программной инженерии.
10.    Software quality – качество ПО.

В дополнение к ним, SWEBOK также включает обзор смежных дисциплин, связь с которыми представлена как фундаментальная, важная и обоснованная для программной инженерии:
1.    Computer engineering – разработка компьютеров.
2.    Computer science – информатика.
3.    Management – общий менеджмент.
4.    Mathematics – математика.
5.    Project management – управление проектами.
6.    Quality management – управление качеством.
7.    Systems engineering – системное проектирование.

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

Список литературы:

1.    Шафер, Д. , Фатрелл, Р., Шафер, Л. Управление программными проектами: достижение оптимального ткачества при минимуме затрат.: Пер. с англ. – М.: Издательский дом «Вильямс», 2003.
2.    Д.В.Кознов. Введение в программную инженерию. Часть I. – Изд-во Санкт-Петербургского ун-та, 2008 г.
3.    Лаврищева Е.М., Грищенко В.Н Области знаний программной инженерии – SWEBOK и подход к обучению этой дисциплины. //
Управляющие системы и машины.–2005. – №1.