Ресурсы, необходимые для сопровождения

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

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

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

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

- тип приложения;

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

- наличие и квалификация персонала по сопровождению;

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

- характеристики и специфика аппаратной части, телекоммуникационной инфраструктуры;

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

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

- количество и сложность системных интерфейсов (чем больше системных интерфейсов и чем более сложными они являются, тем выше вероятность изменений в будущем);

- количество изменяемых системных требований;

- бизнес–процессы, в которых используется данная система (по мере развития бизнес–процессов появляются изменения в требованиях.

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

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

Пример оценки трудозатрат на сопровождение на основе комментариев представлен на рис. 25.13.

Ресурсы, необходимые для сопровождения - student2.ru

Рисунок 25.13. Пример оценки трудозатрат

на сопровождение на основе комментариев.

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

Таблица 25.3. Длительность операций сопровождения

Операция Длительность, чел.-дн. Операция   Длительность, чел.-дн.
1. Уточнение проблемы и выявление функций, подлежащих изменению или добавлению 2 – 5   6. Компиляция и интеграция   2 – 3  
2. Разработка необходимых изменений 1 – 4   7. Тестирование функциональности измененных компонентов 2 – 4  
3. Анализ влияния факторов 1 – 4   8. Регрессионное тестирование 2 – 4  
4. Внесение изменений в исходный код 1 – 4   9. Выпуск новой версии и отчет о результатах
5. Изменение SRS, SDD, STP, сведений о конфигурации 2 – 7   Итого:   14 – 36


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

Многие проекты завершились неудачей из-за недооценки стоимости сопровождения. Наиболее известны две методики оценки стоимости сопровождения: на основе параметрических моделей (метод функциональных точек, см. стандарт IEEE 14143.1–00), на основе опыта (привлекается экспертное мнение для уточнения оценки, сделанной по предыдущей методике).

Можно осуществить оценку стоимости запроса на сопровождение на основе специальной таблицы, пример которой представлен в табл. 25.3, где отражены все этапы его выполнения и затрачиваемые на их реализацию человеко-дни. Если стоимость одного человеко-часа составляют 50 – 100 руб., затраты на изменение программы: 600 – 28 000 руб.

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

Наши рекомендации