Первое упоминание компьютерной программе было сделано практически век назад и датировано еще далеким 1833 годом. С тем пор были изобретены множество языков программирования, начиная от машинных и до современных C++, Java, Python. Постепенно понимание и сложность компьютерных программ менялось: если ранее максимальное внимание уделялось алгоритму, то сейчас в комплексных программных приложениях, акцент смещается в сторону данных. Изобретены множество прикладных методов внедрения информационных систем, которые по существу являются производными от трех классических моделей имплементации. Однако, неоспоримым является тот факт, что любая программа в первую очередь должна покрывать исходные потребности пользователей. Данная истина зачастую теряется рутинных активностях разработки приложений и их внедрения.

Множество литературных источников описывают подходы и методы анализа бизнес-требований [1-3], забывая то, что они не могут «жить» независимо. Требования являются важным элементом жизненного цикла программного обеспечения, именно с их формулирования начинается проработка концепции будущего программного продукта. Механизмы теории дизайн-мышления помогают сформулировать требования, если изначально пользователи не могут их озвучить. Получается, что требования – отправная точка разработки любого софтверного продукта, чем качественнее ведется их обработка, тем более управляемым становится проект реализации приложения.

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

  • определение требований, их видов и категорий;

  • обзор жизненного цикла программного продукта и требований к нему;

  • анализ ключевых этапов работы над требованиями.

Требования и их виды

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

Определение 1Требование – это спецификация того, что должно быть реализовано. Требования описывают поведение, свойства и атрибуты программной системы, служат ограничениями в ходе разработки приложения.

В [1] выделяют различные виды требований, описывающих поведение системы:

  • бизнес-требования, задающие высокоуровневые бизнес-цели организации и/или заказчика системы;

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

  • системные требования, относящиеся к верхнеуровневым техническим требованиям к продукту;

  • и, наконец, функциональные требования, задающие необходимое поведение системы в определенных условиях;

а также выделяют требования, относящиеся к свойствам программной системы:

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

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

Этапы обработки и управления требованиями

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

  • выявление требований, где определяются классы пользователей, формируются фокус-группы, проводится работа с пользователями для определения задач, которые должны быть автоматизированы разрабатываемым приложением, ведутся совместные семинары ��о выявлению требований;

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

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

  • утверждение, рецензирование и согласование требований;

  • управление требованиями, где задается порядок управления изменениями требований и версиями требований.

Далее мы рассмотрим каждый из этапов более подробно.

Этапы работы над требованиями
Рис. 1. Этапы работы над требованиями

Этап выявлений требований

Этап по выявлению требований позволяет идентифицировать бизнес-потребности организации и включает следующие группы задач:

  • подготовка к выявлению требований;

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

  • активности после выявления требований.

Подготовка к выявлению требований

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

  • привилегиям доступа;

  • используемым функциям системы;

  • географии;

  • частоте применения продукта;

  • орг��низационной структуре компании и др.

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

Уточнение состава ключевых пользователей в дальнейшем ведется с использованием карты бизнес-процессов. Термин карты процессов присущ каскадным методологиям внедрения программных продуктов, в то время как в итерационных и спиралевидных моделях применяется понятие вариантов использования. Используя типовую карту процессов или же руководствуясь картой процессов заказчика, определяется владелец процесса обычно из числа ключевых пользователей, а также прочие вовлеченные сотрудники (рис. 2).

Карта процессов и определение состава стейкхолдеров
Рис. 2. Карта процессов и определение состава стейкхолдеров

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

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

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

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

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

  • использование прототипа и/или показ демо-базы программной системы. Прототип демонстрирует ключевые возможности системы пользователям, что позволяет им высказать предложения и указать на недостатки, которые впоследствии оформляются в виде уточненных требований к программному продукту. Основная цель прототипирования заключается в устранении неопределенностей путем проверки различных гипотез и итеративного уточнения требований. В зависимости от типа прототипа, который может быть эволюционным (предназначенным для дальнейшего развития до готового продукта) или одноразовым (используемым для проверки гипотез и последующего удаления), определяется необходимость его дальнейшего использования или уничтожения. Если прототип программной системы обычно подразумевает доработку приложения, то показ демо-базы, напротив, ведется исключительно с целью отражения работы стандартного коробочного решения.

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

активности которых ведутся в ходе семинаров для типовых и/или наиболее критичных бизнес-потребностей ...

Литературный источник, полный текст статьи

Демьянов Н.А. Требования к программному обеспечению: от подготовки до управления изменениями (часть 1) // Корпоративные информационные системы. – 2024. – №1 (25) – С. 16-22. – URL: https://corpinfosys.ru/archive/2024/issue-25/271-2024-25-requirements.