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

Бесплатный доступ

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

Программная инженерия, разработка программного обеспечения, риск, управление рисками, управление проектом

Короткий адрес: https://sciup.org/170184121

IDR: 170184121

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

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

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

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

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

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

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

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

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

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

Статья посвящена анализу выявленных рисков в процессах разработки программного обеспечения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ГОСТ Р ИСО/МЭК 12207-99. Информационная технология. Процессы жизненного цикла программных средств. - М.: Изд-во стандартов, 2007. - 14 с.
  • ГОСТ Р 51275-99. Защита информации. Объект информатизации. Факторы, воздействующие на информацию. - М.: Изд-во стандартов, 2003. - 12 с.
  • ДеМарко Т., Листер Т. Вальсируя с медведями: управление рисками в проектах по разработке программного обеспечения. - М.: Компания p.m.Office, 2005. - 208 с.
Статья научная