SWEBoK для применения программной инженерии в ERP-проектах
- Подробности
- Опубликовано: 30.06.2024 10:26
- Автор: Карасева Наталья Сергеевна
- Просмотров: 47

Аннотация: в статье рассматривается свод знаний по программной инженерии SWEBoK и его использование в ERP-проектах. Вводятся определения инженерии и программной инженерии. Анализируются 18-ть областей знаний SWEBoK, описывающих весь жизненный цикл программного обеспечения, а также Soft и Hard навыки технических специалистов. Сопоставляются этапы жизненного цикла ERP-системы и областей знаний программной инженерии. Формулируется вывод о том, что свод знаний SWEBoK наиболее полно описывает процесс работы над ERP-системой с точки зрения разработки, внедрения и поддержки программного обеспечения.
Ключевые слова: swebok, software engineering body of knowledge, области знаний swebok, стандарт swebok, ядро знаний swebok, программная инженерия, системная и программная инженерия, конфигурационное управление, средства конфигурационного управления, единица конфигурационного управления, управление конфигурацией, система управления конфигурациями, экономика программной инженерии.
Скачать: PDF (статья), PDF (выпуск №26).
Внедрение корпоративных информационных систем ведется по определенным правилам, есть три классические модели имплементации: каскадная, итерационная и спиралевидная. Также доступно множество прикладных методологий внедрения, представленных ASAP, Activate SAP, OUM, MDSS, ADM и расширяющих классические модели. Принимая во внимание то, что ERP-системы представимы коробочными программными продуктами, их имплементация преимущественно ведется на основе каскадно-ориентированных методов и с использованием знаний PMBoK [1].
PMBoK один из наиболее узнаваемых и популярных сводов знаний для менеджмента всевозможных проектов, в том числе в области ИТ. Однако существуют и другие области знаний, относящиеся к ИТ: BABoK, EABoK, BPM CBoK, а также SWEBoK [2-5]. SWEBoK как свод знаний программной инженерии, наиболее близко соотносится с тематикой проектирования и имплементации корпоративных информационных систем, представленных комплексным платформенным программным обеспечением.
Несмотря на очевидную близость к ERP-системам, SWEBoK не так знаком читателям как PMBoK или BABoK. Действительно ли применение SWEBoK дает преимущества работе над комплексным программным продуктом? С данным вопросом мы разберемся в содержании текущей статьи. Цель работы состоит в анализе методологии SWEBoK для повышения качества разрабатываемого и внедряемого программного продукта. Для решения данной цели необходимо:
- провести обзор SWEBoK;
- сопоставить домены знаний SWEBoK с этапами жизненного цикла ПО;
- определить область применения SWEBoK в проектах имплементации ERP-систем.
Введем несколько основополагающих определений, которые помогут нам разобраться в том, что собой представляет термин SWEBoK: инженерия и программная инженерия [6].
Определение 1. Инженерия – совокупность обобщенных и систематизированных знаний или учение о методах, способах, приемах, средствах автоматизации и порядке их использования при производстве или применении какого-либо продукта.
Определение 2. Программная инженерия – методы и способы планирования, реализации, использования и сопровождения программного обеспечения, охватывающие все аспекты его жизненного цикла от формулирования требований до поддержки.
Следуя вышеприведенным определениям, SWEBoK (Software Engineering Body of Knowledge) представляет собой свод практических знаний по программной инженерии для разработки программного обеспечения [5]. На текущий момент SWEBoK включает 18-ть областей знаний, применимых к программным продуктам (табл. 1).
Табл. 1. Области знаний SWEBoK
№ | Область знаний | Категория | Описание |
1 | Требования | Жизненный цикл ПО |
Упоминаются функциональные и нефункциональные требования к проекту и программной системе. Описываются такие шаги работы над требованиями, как: выявление, анализ, документирование, подтверждение, а также очистка и управление изменениями. |
2 | Архитектура | Жизненный цикл ПО |
Потребность в архитектуре становится актуальной в комплектных проекта разработки и имплементации софтверного продукта. Проработка архитектуры позволяет рассмотреть исходную проблематику с различных сторон и точек зрения. |
3 | Проектирование | Жизненный цикл ПО |
Здесь процесс подготовки решения делится на верхнеуровневый и детальный дизайны. Задаются различные принципы формирования дизайнов, например, на основе событий, данных, пользователей и др. Подчеркивается важность контроля качества подготовленных проектных решений. |
4 | Реализация | Жизненный цикл ПО | Рассматриваются принципы (минимизация сложности, переиспользование, предвидение изменений, следование соглашению о наименовании объектов), ключевые элементы (языки программирования, интеграция, тестирование и др.), технологии и средства (API, обработка ошибок, Low-Code/Zero-Code платформы, средства автоматизированного тестирования) программирования. |
5 | Тестирование | Жизненный цикл ПО | В данной области знаний описываются уровни тестирования (модульное, интеграционное, системное и приемочное, а также А/Б, регрессионное, нефункциональное и др.), кроме того, технологии, средства и сам процесс ведения тестирования. |
6 | Операции программной инженерии | Жизненный цикл ПО | Область ориентирована на обеспечение работоспособности программного продукта. Здесь содержится обзор процесса планирования (выбор поставщика, развертывание, резервное копирование), доставки (подготовка к продуктивному использованию, разрешение проблем) и контроля софтверного решения (управление инцидентами и изменениями, мониторинг производительности, обеспечение SLA). |
7 | Обслуживание | Жизненный цикл ПО | Необходимость обслуживания объясняется наличием недоработок в программном решении, потребностями увеличения его производительности, а также внедрением расширений. Вводятся категории запросов на обслуживание, обусловленные ошибками в текущем программного решении и запросами в его развитии. Указанные активности суммируются расчетом затрат на обслуживание ПО. |
8 | Управление конфигурациями | Жизненный цикл ПО | Здесь характеризуется управление версиями наиболее критичных программных компонентов и приложений на протяжение всего жизненного цикла ПО. Бизнес-процесс контроля включает выявление, изменение, мониторинг и аудит позиций конфигураций. |
9 | Управление программной инженерией | Жизненный цикл ПО | Данная область знаний способствует реализации проекта внедрения программного продукта таким образом, чтобы его результат удовлетворил ожиданиям стейкхолдеров. Выделяются этапы инициализации (включая определение объема работ и возможности их достижения), планирования (формирование план-графика и ресурсного плана, расчет трудозатрат и стоимости, выделение человеческих ресурсов), исполнения, оценки (проверка реализации всех требований) и завершения проекта (для понимания того, достигнуты ли ожидаемые результаты). |
10 | Процесс программной инженерии | Жизненный цикл ПО | Рассматривается выбор наиболее подходящей модели имплементации программного продукта: каскадная, итерационная или спиралевидная. |
11 | Модели и методы программной инженерии | Жизненный цикл ПО | Подчеркивается необходимость использования четко продуманной методологии внедрения программного продукта. Приводятся примеры таких методологий, как: Agile Scrum, Agile FDD, eXtreme Programming и др. |
12 | Качество | Жизненный цикл ПО | Обеспечение качества необходимо на всех этапах проекта имплементации, что позволяет исключить разночтения требований, отклонения реализованного приложения от согласованных проектных решений, программные ошибки, несоответствие результатов существующим регламентам и соглашениям, неправильную работу софтверного решения и неоднозначностей в документации. В текущим домене знаний анализируются методы и подходы, позволяющие соблюсти заданный уровень качества проекта. |
13 | Безопасность | Жизненный цикл ПО | Правила обеспечения безопасности ПО должны быть применены уже на этапе написания программного кода при реализации софтверного продукта, чтобы предотвратить действия злоумышленников. Должна осуществляться подготовка проектных решений по безопасности, а также вестись регулярный аудит безопасности. |
14 | Профессиональная практика в программной инженерии | Soft skills | Область описывает профессиональные навыки (код этики и поведения, NDA, работа с чувствительными данными и секретами), групповую динамику и психологию (работа в группе, проработка сложных и неопределенных задач, взаимодействие со стейкхолдерами) и коммуникационные навыки (письменные, коммуникативные, презентационные и разговорные), которыми должны обладать и пользоваться технические специалисты. |
15 | Экономика в программной инженерии | Жизненный цикл ПО | Оценивается целесообразность внедрения программного продукта. Прорабатываются такие вопросы, как: получение выгод предприятия от нового ПО, соответствие проекта внедрения бизнес-целям организации, покупка или разработка софтверного продукта, ограничение объема требований, выбор оптимальной ИТ-архитектуры, замена старого программного решения или имплементации нового, наискорейшее получение выгод от внедряемого приложения. |
16 | Основы вычислительной техники | Hard skills | Цель данного домена знаний обучить специалиста всему, что связано с программным обеспечением: устройство компьютера (процессор, память, устройство ввода/вывода), обработка данных (типы данных, алгоритмы, техники сортировки и поиска, хэширование), программирование (типы языков программирования, синтаксис, отладка, стандарты), операционные системы, СУБД (SQL, ER-диаграммы, нормализация, извлечение и хранение), сети (типы, IP-адреса, беспроводные и мобильные сети), искусственный интеллект и машинное обучение. |
17 | Математические основы | Hard skills | Позволяет осмысливать и писать программный код (способы доказательства, множества, теория чисел, графы и деревья, математические вычисления). |
18 | Основы инженерии | Hard skills | Включает эмпирические методы и теорию проведения экспериментов, статистический анализ, имитационное моделирование, прототипирование, анализ первопричин и др., позволяющие специалистам находить решения самых сложных задач. |
Согласно определению программной инженерии, SWEBoK содержит описание всех ключевых этапов работы над софтверным продуктом, более того включает области знаний, отвечающие за Soft и Hard-навыки. В отличие от PMBoK и BABoK, SWEBoK не ставит цель детально описать все аспекты работы над ПО, ограничиваясь краткими тезисами по наиболее важным вопросам. SWEBoK по праву можно назвать сводом знаний: каждый домен агрегирует информацию из множества литературных источников, регулярно делая отсылку к ним [5].
Сопоставление типового жизненного цикла ERP-системы [7] и SWEBoK доказывает вышеуказанный тезис, все фазы предпроекта, проекта имплементации и постпроекта внедрения соотносятся с областями знаний программной инженерии (табл. 2). При этом SWEBoK затрагивает вопросы управления конфигурацией, безопасностью и качеством, о чем практически не упоминается в классических учениях по разработке информационных систем [8-9].
Табл. 2. Этапы жизненного цикла ERP-системы и области знаний SWEBoK
Вид проекта | Этап | Область знаний |
Предпроект внедрения | Бизнес-кейс |
|
Тендер |
|
|
Договор внедрения |
|
|
Проект внедрения | Мобилизация |
|
Анализ |
|
|
Проектирование |
|
|
Реализация |
|
|
Тестирование |
|
|
Подготовка к промышленной эксплуатации |
|
|
Гиперподдержка промышленной эксплуатация |
|
|
Проект пост- внедрения | Поддержка промышленной эксплуатации |
|
Прекращение применения |
|
Согласно табл. 2, области знаний программной инженерии наиболее полно описывают работу над ERP-системой, начиная с предпроекта и завершая постпроектом ее внедрения. Свод знаний PMBoK делает ставку на управление проектом, в то время как BABoK – бизнес-анализ и обоснование экономической целесообразности, однако ни один из них не рассматривает все фазы работы над ПО, как это сделано в SWEBoK. SWEBoK представляется ключевым литературным источником при работе над комплексным программным обеспечением: ERP-системы, КИС и ИС, привнося в ИТ-проект хорошо подготовленную методологическую базу.
За множеством литературных источников по проектированию и внедрению ПО теряются поистине отличные образцы методологического ИТ-творчества. Нам широко известны PMBoK и, возможно, BABoK. Но есть и прочие не менее интересные и полезные источники, одним из которых является SWEBoK. Следуя результатам проделанной работы, он наиболее близко соотносится по содержанию с ERP-проектами.
Рассмотрение предметных областей, являющихся основой SWEBoK, лишь доказало эту точку зрения. Вопросы управления требованиями, проектированием, разработкой, тестированием и др. являются неотъемлемой частью жизненного цикла ПО, о чем неоднократно подчеркивалось в работе [3]. Содержание SWEBoK структурирует жизненный цикл информационных систем, дополняя его избранными главами: конфигурацией, безопасностью и качеством, а также усиливая областями, относящимися к навыкам технических специалистов.
Применение принципов и подходов, описанных в SWEBoK, позволяет шире взглянут на шаги внедрения комплексного ПО, обращая внимание на те области знаний, которые часто не упоминаются в книгах и статьях про имплементацию информационных систем. Вкупе с прочими сводами знаний, SWEBoK обеспечивает продуманным теоретическим материалом весь жизненный цикл программной системы, позволяя эффективно применить его на практике.
Литература
- Shirenbek H., Lister M., Kirmse Sh. A guide to the project management body of knowledge: sixth edition. PMI, 2017, 762 p.
- IIBA. A Guide to the business analysis body of knowledge. Institute of Business Analysis, 2015, 783 p.
- Harrison R. TOGAF certified study guide. Van Haren Publishing, Zaltbommel, 2013. – 324 p.
- Benedict T., Kirchmer M., Scarsig M. BPM CBOK, version 4. Independently published, 2019, 419 p.
- Washizaki H. Guide to the software engineering body of knowledge. Waseda University, IEEE Computer Society, 2024. – 413 p.
- Лаврищева Е.М. Программная инженерия и технологии программирования сложных систем. – М.: Юрайт, 2023. – 432 с.
- Степанов Д.Ю. Жизненный цикл корпоративных информационных систем: от бизнес-кейса до прекращения промышленной эксплуатации (часть 1) // Корпоративные информационные системы. – 2023. – №4 (24) – с. 16-25. – URL: https://corpinfosys.ru/archive/2023/issue-24/229-2023-24-erplifecycle.
- Грекул В.И. Проектирование информационных систем. М.: Юрайт, 2023. – 385 с.
- Гвоздева Т.В., Баллод Б.А. Проектирование информационных систем: учебное пособие. – Ростов н/Д.: Феникс, 2009. – 508 с.
Выходные данные статьи
Карасева Н.С. SWEBoK для применения программной инженерии в ERP-проектах // Корпоративные информационные системы. – 2024. – №2 (26) – c. 10-18. – URL: https://corpinfosys.ru/archive/2024/issue-26/286-2024-26-swebok.
Об авторе
![]() |
Карасева Наталья Сергеевна – функциональный консультант SAP по финансовому и налоговому учетам. Принимала участие в российских и международных проектах внедрения ERP-систем при тиражировании и имплементации программного решения «с нуля». Выпускник кафедры оптических и биотехнических систем и технологий физико-технологического института РТУ МИРЭА. Контактный электронный адрес: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.. |
Статьи выпуска №26
- Разработка приложения для генерации технических заданий (часть 2);
- Формирование план-графика для проекта внедрения 1С и SAP (часть 2);
- PMBoK для управления проектами внедрения ERP-систем (часть 1);
- SWEBoK для применения программной инженерии в ERP-проектах;
- TOGAF для построения корпоративной архитектуры в ИТ-проектах.