Pull to refresh

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

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


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


  • выявление и анализ требований;
  • проектирование программного обеспечения;
  • программирование;
  • тестирование программного обеспечения.

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


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


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

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


Проектирование


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


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

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


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

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


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

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


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

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

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


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

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


  • целевая платформа;
  • гибкость языка;
  • время реализации;
  • производительность;
  • сопровождение программного обеспечения;
  • предметная область разрабатываемой системы;
  • необходимость в использовании библиотек;
  • опыт разработчиков.

Программирование


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


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

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


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

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


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

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


4. Нерегулярное резервное копирование кода

Последствие этого риска очень масштабно.


Тестирование


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


  • неэффективный выбор методов тестирования;
  • требования не ранжированы по приоритетам;
  • не используются протоколы тестирования.

Список литературы


  1. ГОСТ Р 51275-99. Защита информации. Объект информатизации. Факторы, воздействующие на информацию. — Москва: Изд-во стандартов, 2003. – 12 с.
  2. ДеМарко Т., Листер Т. Вальсируя с медведями: управление рисками в проектах по разработке программного обеспечения. — М.: Компания p.m.Office, 2005. – 208 с.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.