- Технические науки -ПРОЦЕСС ПРОГРАММНОЙ ИНЖЕНЕРИИ
А.С. Бондаренко, магистрант П.К. Ярыгин, магистрант
Национальный исследовательский ядерный университет «МИФИ» (НИЯУ МИФИ) (Россия, г. Москва)
DOI: 10.24411/2500-1000-2019-10860
Аннотация. В статье описывается процесс программной инженерии по созданию сложных программ. Выделены основные разновидности и описаны основные этапы его реализации инженерными и экономическими отделами. Выделяются ключевые факторы для успешной реализации проекта по созданию сложных программных комплексов компании разработчику и роль экономического сопровождение процесса с целью сокращения расходов при сохранении высокого качества исходного продукта. Ключевые слова: программа, инженер, процесс, оценка, уровень.
Программная инженерия или промышленное программирование - это разработка сложного программного обеспечения. «После первого программного кризиса произошедшего в 60-х - 70-х годах двадцатого века. Кризис заключался в том, что стоимость программ стала сопоставима со стоимостью оборудования (железа). Термин программная инженерия впервые прозвучал в октябре 1968 года на технической конференции НАТО в городе Гер-миш, Германия» [1]. Программная инженерия подразделяется на процессы. «Процессы в программной инженерии (Processes in software engineering) подразделяются на два уровня. К первому уровню относится техническая и управленческая деятельность. На втором или «мета-уровне» занимаются оценкой, определением, реализацией, совершенствованием программного обеспечения» [7].
Процессы программной инженерии подразделяются на множество разновидностей по роду своей деятельности. Но прежде чем приступить к разработке сложного программного комплекса - (ПК), определяется экономическая и техническая целесообразность данного проекта. «В 1970 году Винстоном Ройсом была предложена "водопадная модель". Компании разработчики начали внедрять различные модели пошаговой разработки программного обеспечения - (ПО). Были внедрены такие процессы как разработка требований к системе и ПО, которые за-
ключаются в анализе и кодировании. Было введено ограничение по возврату на процессы назад на доработку ПО. Водопадной моделью допускается возврат только на один процесс назад. Система состоит из последующих друг за другом этапов: разработка системных требований; разработка требований к ПО; анализ; проектирование; кодирование; тестирование; исправление. Также было внедрено прототипиро-вание при котором разработка ПО делалась дважды для снижения рисков ошибок. Прототип выявлял основные риски и позволял принять основные решения в архитектуре ПО» [2].
Виды процесса:
«Проектирование - согласование замыслов заказчика с разработчиком. Определение и согласование того что потребуется создать в новом ПК или модернизировать в имеющемся. Подготовка технологической базы. Разработка системного проекта. Составление технического задания. Подписание контракта по разработке ПК» [8].
1) Реализация и изменение процесса. Данный этап состоит из четырёх подразделов: инфраструктура процесса; управление программным процессом; реализация и изменение процесса; практические соображения. В данном процессе рассматриваются модели ПК, соображения по их реализации и изменениям. К примеру, инспекции в проекте. Подраздел инфраструктура процесса основан на стандарте «ГОСТ» [3]. То есть данный раздел зани-
- Технические науки -
мается оптимизацией процессов проекта по разработке ПК и изменениями в нём.
2) Определение процесса. Точно поставленные цели и задачи в определении циклов процессов, основанные на прикладной или зрелой части ПК улучшает качество работы инженеров из различных отделов. Этап - определение процесса разбит на тять подразделов: модели жизненного цикла ПО. В жизненном цикле на высоком уровне определяются стадии разработки. В этом подразделе не углубляются в детали, рассматриваются только ключевые части проекта. За основу модели жизненного цикла взята водопадная модель. Этап - процессы жизненного цикла программного обеспечения. На этом этапе производится детальное определение процессов. Процесс жизненного цикла ПО выполняется по «ГОСТ-у» [4]. Этап - нотации определения процесса. Делаются замечания по структуре программы, по потокам данных и различным блокам. Этап -адаптация процесса. Все процессы стандартизированы, но на адаптационном этапе вносятся изменения в процессы в зависимости от размера и требований конкретного проекта. По внесению изменений также есть рекомендации в стандарте «ГОСТ» [5]. Этап - автоматизация. На этапе автоматизации осуществляется содействие проделанной работе или выдаются инструкции по осуществлению проекта в виде методов RUP, EUP, XP и MSF.
3) Оценка процесса. Процедура оценка процесса осуществляется по процедурам оценки, к примеру, таким как: Appraisal, CMMI. Процесс оценки состоит из двух этапов: модель оценки процесса и методов оценки процесса. На этап модели оценки определяется, что заслуживает наибольшей оценки. То есть программная часть разработки или управление персоналом. Используются различные подходы к оценке по таким моделям как: ISO, CMM-SW, Bootstrap. Одни определяют общее качество разработки, другие только документацию проекта, но оценка, так или иначе, осуществляется по «ГОСТ стандарту оценки» [5]. На этапе методы оценки процесса определяется зрелость процесса. Применяются такие же методики оценки,
как и при модели оценки, только оценивается качество работы компании и подрядчиков.
4. Измерения процессов и продуктов. Из-за сложности количественной оценки в программной инженерии, таких процессов как методы анализа, моделирования, может быть определено после точно установления соотношения между самим продуктом и процессом работы над ним. Точный результат соотношения между процессами и готовым продуктом определяется по стандарту «ISO 15939» [6]. Данный процесс состоит из пяти этапов:
1) Измерения в отношении процессов. Осуществляется сбор информации о процессе с целью определения слабых и сильных частей процесса. Также для оценки внесённых изменений и после реализации процесса. Некоторые виды инспекций могут сократить затраты на тестирование, но могут увеличить затрачиваемое время на разработку. Для избежания усложнений в разработке ПК в процессе измерения необходимо применять множество метрических показателей по оценке процесса. К примеру, оценки производятся по показателю - количество сбоев на 1000 строк кода, также и на функциональную точку и т. д.
2) Измерения в отношении программных продуктов. В данном подразделе оценивается структура ПК и её качество. Оценивается количество строк в модулях, размер спецификаций и функциональность ПК.
3) Качество результатов измерений. Осуществляется проверка, насколько качественно и точно было проведено измерение, то есть выявляет, были ли допущены ошибки в измерениях. К примеру, в бинарной модели, когда оценка выдаётся хорошо или плохо; пре интервальной показатели, определяются относительно заданных точек. Измерение между нулём и разницей показателя называется пропорциональным.
4) Информационные модели. Основываясь на данных измерений, создаётся модель, на основе которой производится анализ характеристик проекта.
- Технические науки -
5) Техники количественной оценки зации проекта по созданию ПК компании процессов. Применяется для определения разработчику необходимы не только ин-сильных и слабых сторон при внесении женеры-программисты, но и специалисты изменений в процесс. Используются Эта- экономического отдела, разбирающиеся не лонный и аналитический метод. только в финансах, но и в программирова-
Выводы нии. Ведь помимо разработки ПК, необхо-
Для успешной реализации процесса димо и экономическое сопровождение программной инженерией необходима процесса с целью сокращения расходов чёткая и слаженная работа всех отделов при сохранении высокого качества исход-проекта. Поскольку для успешной реали- ного продукта.
Библиографический список
1. Карпенко С.Н. Введение в программную инженерию. - Нижний Новгород, 2007. -С. 4.
2. Введение в программную инженерию. Курс лекций. - С-Пб.: Изд-во Санкт-Петербургского ун-та, 2005. - С. 9-10.
3. ГОСТ Р ИСО/МЭК 15026-4-2016. СИСТЕМНАЯ И ПРОГРАММНАЯ ИНЖЕНЕРИЯ. Гарантирование систем и программного обеспечения. Часть 4 Гарантии жизненного цикла ISO/IEC 15026.
4. ГОСТ Р ИСО/МЭК 12207-2010. Информационная технология. Системная и программная инженерия. ПРОЦЕССЫ ЖИЗНЕННОГО ЦИКЛА ПРОГРАММНЫХ СРЕДСТВ.
5. ГОСТ Р ИСО/МЭК 15504-5-2016. Информационные технологии. ОЦЕНКА ПРОЦЕССОВ.
6. ГОСТ Р ИСО/МЭК 25040-2014. Информационные технологии. СИСТЕМНАЯ И ПРОГРАММНАЯ ИНЖЕНЕРИЯ. Требования и оценка качества систем и программного обеспечения (SQuaRE). Процесс оценки.
7. Орлик Сергей. Программная инженерия. Процесс программной инженерии (Software Engineering Process). 2004-2005. - С. 2.
8. Липаев В.В. Программная инженерия сложных заказных программных продуктов. Учебное пособие. - М.: МАКС Пресс, 2014. - С. 10.
SOFTWARE ENGINEERING PROCESS
A.S. Bondarenko, graduate student P.K. Yarygin, graduate student
National research nuclear university "MEPhI" (NRNU MEPI) (Russia, Moscow)
Abstract. The article describes the process of software engineering to create complex programs. The main process varieties and stages of its implementation are detailed and described by engineering and economic departments. Key factors for the successful implementation of a project to create complex software systems for a developer and the role of economic support of the process in order to reduce costs while maintaining the high quality of the original product are emphasized.
Keywords: program, engineer, process, appraisal, level.