Оптимизационная
задача оценки объемов, бюджета и
сроков
программных проектов
Т.Ш. Низаметдинов,
аспирант,
В.П. Румянцев,
заведующий кафедрой, к.т.н.,
Московский инженерно-физический институт (ТУ),
г. Москва.
Проблема получения
удовлетворительной оценки объема, бюджета и сроков проектов вообще, а проектов разработки
программного обеспечения в особенности, до сих пор не получила
удовлетворительного решения ни в теоретическом, ни в инструментальном аспектах.
В теоретическом аспекте
проблема, насколько известно автором, систематически не изучалась даже с точки
зрения обоснования свойств состоятельности, несмещенности и эффективности
оценок, как это принято в классической математической статистике.
Существуют три основных
подхода [1,2,4] к получению оценок проектов: статистический, основанный на
исторических оценках уже выполненных аналогичных проектов; нормативный,
основанный на детальных структурах комплекса работ проектов и оценках (уже
гораздо более надежных) отдельных работ; и, наконец, подход, основанный на
экспертных оценках.
Первый подход сводится, как
правило, к построению производственных функций выпуска и затрат проекта в
целом, и в силу высокой степени агрегирования информации приводит к слишком
широким интервалам принадлежности оценок, что часто неприемлемо.
Экспертные методы
оценивания, как известно, можно применять только в крайних случаях ввиду их
высокой субъективности.
В то же время второй подход
представляется наиболее гибким и эшелонируемым по качеству получаемых оценок.
В работе обсуждается
постановка задачи получения оценок, обладающих указанными выше свойствами, на
основе данных об оценках элементарных работ-модулей, хранящихся в базе данных.
Задача решается в два этапа. На первом этапе проводится структурный синтез
программного проекта на основе имеющихся модулей в базе данных. На втором этапе
решается задача оптимизации проекта по критериям стоимость – сроки (прямая и
двойственная), что дает основу для принятия решений по параметрам программного
проекта.
Свойства
состоятельности, несмещенности и эффективности оценок параметров проекта могут
быть правомерными при условии, что оцениваемый проект принадлежит к той же
совокупности проектов, которые уже оценены, либо просто выполнены. Из этого
положения следует, что нужна специальная процедура идентификации принадлежности
оцениваемого проекта к группе однородных аналогов. Такая процедура может быть
основана и выполнена на технологии кластерного анализа многомерных данных. В
результате выполнения процедуры нужно убедиться в том, что совокупность
оцененных проектов однородна (например, по критерию остаточной суммы квадратов
расстояний от центра), и что оцениваемый проект достаточно близок к эталону.
Современное состояние кластерного анализа предлагает целый ряд метрик
расстояний и близости кластеризуемых объектов.
С
точки зрения параметров функциональности, стоимости и длительности проекта в
системном анализе принято включать в рассмотрение величины стоимости и
длительности самой процедуры оценивания и включать их в интегральные оценки
стоимости и длительности всего жизненного цикла проекта. Процедура оценивания
(прогнозирования параметров) еще не выполненного проекта является по сути
частью основного тела проекта, которая в предельном случае может совпадать с
фактическим выполнением проекта. Это обстоятельство ставит оптимизационную
задачу распределения комплекса работ проекта на оценочную фазу и на фазу
выполнения. Интегральным критерием оптимальности может быть величина
неопределенности и порождаемая ею величина риска срыва проекта. Эти критерии
настроены так, что с увеличением оценочной фазы они убывают, а с ее уменьшением
возрастают так, что оптимум (может быть и не единственный) существует.
Для
формирования представительного множества уже оцененных проектов можно
предложить два пути.
Первый
связан с тем, чтобы в базу данных включать не только успешно выполненные
проекты, но и подпроекты не полностью
выполненных проектов (успешно выполненные части целого проекта, имеющие
самостоятельную ценность). Как показывает практика, доля невыполненных проектов
весьма высока, в то же время удается выделить успешно выполненные подпроекты.
Второй
путь связан со специальным синтезом вариантов оцениваемого проекта, на основе
данных об оцененных более простых проектах, частей оцениваемого проекта.
Технология синтеза вариантов рассмотрена, например, в [5]. Кроме того,
поставщиком новых вариантов оцениваемого проекта может стать технология
реинжениринга систем (см., например, [3], где указанная технология рассмотрена
применительно к классу информационных систем).
Если
представленное множество оцененных объектов достаточно, то можно получить
интересующие оценки проекта с определенной степенью их качества.
Наконец,
еще одна оптимизационная задача, включаемая в технологию оценивания, связана с
учетом зависимости между оценками функциональности, стоимости и длительности
проекта. Эту зависимость не оговаривают авторы классических работ [1, 2]. Между
тем такая зависимость, по мнению авторов, хорошо (адекватно) учитывается
понятием производственной функции проекта (не производственной системы как в неоклассической экономике) вида , где V – множество
функций целевого назначения конечного продукта проекта, C
– стоимость, T – продолжительность.
В
простейшем виде производственная функция проекта y = f(C,T), где y – величина,
показывающая степень полноты реализации множества функций y0 = const = f(C,
T),
устанавливает связь между C и T,
что широко используется в управлении проектами. Математический аппарат и
инструментальные средства решения этой задачи можно найти в доступных
информационных ресурсах.
Производственные
функции проекта могут быть первоначально построены для элементарных работ
(проектов) и агрегированы для проекта в целом, или любой ее части.
Заслуживает
внимания проблема оценивания проектов при различных стратегиях осуществления
проектов: каскадной, спиральной или смешанной. Множество вариантов таких
стратегий относительно легко реализуется в рамках понятия развивающегося
технического объекта.
1. Boehm B. Software Engineering Economics. Prentice Hall,
NJ: 1981.
2. Boehm B. Software Cost Estimation with COCOMOII.
3.
Дождиков С.В. Прохоров И.В.
Технико-экономический подход к выбору вариантов реинжиниринга информационных
систем //Экономика атомной отрасли.—2006.–№3.С. 109-115.
4.
Макконнелл С.. Сколько
стоит программный проект. Питер, 2007.
5.
Никитин А.Е., Румянцев
В.П., Трусов А.В. CASE-средство синтеза
технологических процессов и моделирования в стандарте IDEF0 [см. настоящий сборник]
6.
Халл Э., Джексон К., Дик Д.
Разработка и управление требованиями.
Практическое руководство пользователя. Второе издание. Telelogic, 2005.