Казакова Ирина Анатольевна - доцент Пензенского государственного университета.
Аннотация: В статье рассматривается один из основных документов в области программной инженерии – Руководство к Своду Знаний по Программной Инженерии, а также области знаний, которые соответствуют процессам проектирования ПО.
Ключевые слова: программное обеспечение, программная инженерия, 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.