Основные риски в процессах разработки программного обеспечения

ОСНОВНЫЕ РИСКИ В ПРОЦЕССАХ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Ю.А. Романова, магистрант

Балтийский государственный технический университет «ВОЕНМЕХ» им. Д.Ф. Устинова

Аннотация. В настоящее время программная инженерия является производством с высоким уровнем рисков. Для того чтобы управлять рисками, необходимо умение идентифицировать их на каждом этапе процесса разработки программного обеспечения. В статье представлен список выявленных рисков. Он может использоваться в процессе управлении рисками на конкретных проектах для дальнейшего анализа, оценки и управления рисками.

Ключевые слова: программная инженерия; разработка программного обеспечения; риск; управление рисками; управление проектом.

В настоящее время программная инженерия является производством с высоким уровнем рисков. Для того чтобы управлять рисками, необходимо умение идентифицировать и прогнозировать их.

На основе изучения «ГОСТ Р ИСО/МЭК 12207-99 Информационная технология. Процессы жизненного цикла программных средств» были выявлены основные процессы разработки программного обеспечения:

- выбор модели жизненного цикла;

- выявление и анализ требований;

- проектирование программного обеспечения;

- программирование;

- тестирование программного обеспечения;

- внедрение программного обеспечения;

- приемка программного обеспечения.

Статья посвящена анализу выявленных

рисков в процессах разработки программного обеспечения.

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

Выявление и анализ требований играют важную роль в успехе проекта разработки программного обеспечения, так как большая часть ошибок происходит на ранних стадиях разработки, как показано на рисунке 1, а стоимость их исправления с течением времени возрастает по экспоненте, представленной на рисунке 2. Это связано с природой разработки программного обеспечения: выполняемая работа базируется на ранее выполненной. Например, проектирование выполняется на основе требований, программирование реализуется на основе модели проектирования, а тестирование производится на основе написанного текста программы.

Вероятность появления ошибки

J J У

4Г

/ ¥

f

Рис. 1. Снижение вероятности появления ошибки

Стоимость исправления ошибок

if

sf

/ у у у

J

/ У

/ ^

Рис. 2. Рост стоимости поиска и исправления ошибок

1. Двусмысленные требования.

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

Риски, возникающие на этапе проектирования, играют важную роль в процессе разработки программного обеспечения и требуют особого внимания, так как основные технические вопросы решаются именно на этом этапе.

2. Сложность архитектуры программного обеспечения

Архитекторы программного обеспечения не всегда придерживаются правила «Не порождайте сущностей сверх необходимого». Но ведь именно простота, понятность и единая концептуальная целостность обеспечивают эффективную реализацию системы.

3. Неудобный пользовательский интерфейс.

Разработка пользовательского интерфейса является частью любого проекта, связанного с созданием программного обеспечения. Интерфейс пользователя яв-

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

4. Неправильная структура базы данных.

При разработке программного обеспечения проектирование базы данных требует особого внимания и ответственности, так как стоимость допущенных на этом этапе ошибок особенно велика. Проблемы, которые могут произойти на этапе проектирования базы данных:

- некорректность схемы базы данных по отношению к предметной области;

- несоответствие аппаратным ограничениям;

- сложность и неудобная работа с базой данных;

- невозможность к поддержке и сопровождению.

5. Неоптимальный выбор структур данных.

Структуры данных влияют на эффективность алгоритмов и, следовательно, на производительность программного обеспечения.

6. Неоптимальный выбор языка программирования.

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

- целевая платформа;

- гибкость языка;

- время реализации;

- производительность;

- сопровождение программного обеспечения;

- предметная область разрабатываемой системы;

- необходимость в использовании библиотек;

- опыт разработчиков.

Основные риски на этапе программирования описаны ниже:

1. Изобретение «велосипеда».

Написание кода без использования возможностей языка и существующих библиотек.

2. Нечитаемый код.

Последствие этого риска - трудность в изменении и сопровождении программного обеспечения.

3. Создание программных закладок.

Программная закладка - это внесенные

в программное обеспечение функциональные объекты, которые при определенных условиях (входных данных) инициируют выполнение не описанных в документации функций, позволяющих осуществлять несанкционированные воздействия на информацию [2].

На этапе разработки программистам достаточно легко внедрить в код системы программную закладку. В настоящее время известно 30 публичных случаев обнаружения программных закладок. В большинстве случаев закладки успешно использовались злоумышленниками и были обнаружены уже после активации.

На этапе тестирования возможны следующие риски:

- неэффективный выбор методов тестирования;

- требования не ранжированы по приоритетам;

- не используются протоколы тестирования.

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

Библиографический список

1. ГОСТ Р ИСО/МЭК 12207-99. Информационная технология. Процессы жизненного цикла программных средств. - М.: Изд-во стандартов, 2007. - 14 с.

2. ГОСТ Р 51275-99. Защита информации. Объект информатизации. Факторы, воздействующие на информацию. - М.: Изд-во стандартов, 2003. - 12 с.

3. ДеМарко Т., Листер Т. Вальсируя с медведями: управление рисками в проектах по разработке программного обеспечения. - М.: Компания p.m.Office, 2005. - 208 с.

MAIN RISKS THE SOFTWARE DEVELOPMENT PROCESS Y.A. Romanova, graduate student

Baltic state technical university "VOENMEH" D.F.Ustinov

Abstract. Currently, software engineering is a production with a high level of risk. In order to manage risk, you need the ability to identify them at each stage of the software development process. The article presents a list of identified risks. It can be used in the process of risk management on specific projects for further analysis, risk assessment and management.

Keywords: software engineering; software development; risk; Management of risks; project management.