Исследования в области нейронных сетей отличаются высокой степенью разнообразия, поскольку искусственные нейронные сети обладают значительной гибкостью и вычислительной мощностью в практических приложениях. По этой причине в компании BT нейронные сети были предложены в качестве альтернативного инструмента оценки стоимости программных проектов.
В рамках данного исследования была поставлена задача оценить целесообразность применения искусственных нейронных сетей для оценки трудоёмкости разработки программного обеспечения, а также разработать и обучить несколько нейросетевых моделей на основе исторических данных завершённых проектов. Результаты этого исследования представлены в настоящей статье.
Для решения поставленных задач использовались трёхслойные нейронные сети прямого распространения сигнала, обучение которых осуществлялось с применением модифицированного алгоритма обратного распространения ошибки.
Отдельное внимание уделено подходу, который ранее не получал достаточного развития, а именно — обработке нейронными сетями нечётких и приблизительных начальных оценок, характерных для ранних стадий программных проектов. Простейшим решением данной проблемы является использование имитационного моделирования обученных нейронных сетей с целью получения оценок, учитывающих неопределённость исходных данных. В статье рассматривается данный подход, а также описывается механизм динамического управления шагом обучения в алгоритме обратного распространения ошибки.
К сожалению, оценка стоимости программных проектов не является точной наукой, поскольку в процессе разработки присутствует значительное число качественных факторов, которые зачастую невозможно формализовать или однозначно измерить. В результате было предложено множество методов и подходов к оценке стоимости программных проектов, а объём научной и практической литературы по данной тематике чрезвычайно велик.
При отсутствии надёжных методов измерения или точной оценки характеристик программного проекта организация фактически лишается эффективных инструментов управления его поведением. В таких условиях риски проекта оказываются неидентифицированными, а реализация потенциально проблемных и убыточных проектов становится вероятной. Согласно имеющимся данным, около 15 % программных проектов не завершаются именно вследствие грубых ошибок в оценке трудоёмкости разработки.