Для совокупностей ПС первого и второго классов, исследовалась зависимость трудоемкости разработки программ С от их объемов - П. Для аппроксимации зависимости трудоемкости от размера ПС наиболее часто использована степенная функция вида:
С = АхПЕ(1)
При разработке ПС большого размера в значительной степени, должна возрастать сложность разработки по сравнению с ПС малого объема, так как в больших программах существенно усложняются взаимосвязи компонентов по информации и управлению, а также становятся более трудоемкими процессы планирования и управления проектом в ходе разработки. Выдвинутая гипотеза, о возрастании трудоемкости разработки с ростом размера ПС быстрее, чем по линейному закону, справедлива, если показатель степени в полученном уравнении регрессии Е > 1. По методу наименьших квадратов в ряде работ определены коэффициенты A и Е в уравнениях степенной регрессии, показывающие характер зависимости трудоемкости от размера ПС. В таблице 3.1. представлены значения коэффициентов регрессии для моделей КОМОСТ, СОСОМО и ПРОМЕТЕЙ, для основных классов проектов программных средств. Выражение (1) с использованием этих коэффициентов и значений П размера ПС в тысячах строк ассемблера рекомендуется для прогнозирования трудоемкости полной разработки в человеко-месяцах.
Таблица 2
Коэффициенты моделей для оценки трудоемкости разработки
программных средств
Коэффициент А | Коэффициент Е | Модель и тип программных средств |
2,4 | 1,05 | Базовая - КОМОСТ |
3,6 3,0 2,4 | 1,20 1,12 1,05 | Детализированная модель СОСОМО: - встроенный; - полунезависимый; - независимый. |
2,94 | 1,15 | СССОМО 11.2000 Крупный проект 100 KSLOC |
10,0 6,1 | 1,21 1,17 | ПРОМЕТЕЙ Системы реального времени; Информационно-поисковые системы. |
При разработке крупномасштабных ПС делаются большие затраты на создание технологии, средств автоматизации и унификации разработки, чем при разработке малых ПС. Небольшие ПС часто разрабатываются неопытными коллективами, которые к тому же пренебрегают автоматизацией технологии и применением современных методов структурного проектирования комплексов программ. Так как малые ПС во многих случаях относятся исторически к первому временному периоду — 70 - 90-е годы, когда уровень автоматизации технологии был низок, то и трудоемкость их разработки была достаточно высокой. Эти обстоятельства приводят к тому, что возрастает трудоемкость создания относительно небольших. ПС, а рост суммарных затрат на разработку крупных ПС замедляется, что отражается на величине показателя степени Е, значения которого в некоторых анализируемых выборках иногда получены меньше единицы.
Если бы представилась возможность получить ТЭП по однородной выборке ПС разного объема, разработанных по единой технологии на более или менее одном интервале времени, то, конечно, трудоемкость возрастала бы при увеличении П с коэффициентом Е > 1. На практике часто пользуются упрощенной линейной зависимостью трудозатрат от размера ПС (Е = 1). Такое упрощение при недостаточном объеме статистических данных и отсутствии сведений по заранее обусловленным (управляемым) значениям факторов разработки ПС иногда можно считать допустимым.
На рис. 3 по уравнениям регрессии (1) построены в логарифмическом масштабе зависимости трудозатрат от размера для ПС двух классов. Первый (встроенные - СРВ) и второй (ИПС) классы ПС, отчетливо различаются по трудоемкости разработки. Более высокой точности оценки трудоемкости разработки только по одной переменной - размеру ПС, по-видимому, невозможно получить, так как процесс разработки зависит от большого числа факторов, которые следует учитывать при оценке трудоемкости. Наибольшие трудозатраты обычно необходимы для разработки крупномасштабных комплексов программ реального времени, так как данный класс программ используется в наиболее ответственных автоматизированных системах.
Затраты на разработку С и объем программ П могут быть связаны через показатель интегральной средней производительности труда разработчиков Р.
Рис.3
Для учета влияния на С различных факторов удобно пользоваться коэффициентами (рейтингами) изменения трудоемкости (КИТ) - M(i, j), учитывающими зависимость j-го фактора от i-й составляющей совокупных затрат. В них входят факторы процесса непосредственной разработки, факторы программной и аппаратурной оснащенности, а также квалификация специалистов. Непосредственно затраты на разработку можно представить как частное от размера ПС и производительности труда Р = 1 / А, корректируемой произведением коэффициентов изменения трудоемкости (КИТ - М (i, j) ):
П Е
C= х ПM(i, j) = A х ПЕ х ПМ(i, j) (2)Р i,j i,j
Длительность разработки программных средств является важнейшим технико-экономическим показателем, поскольку часто она определяет общие сроки разработки систем, а значит, быстроту реализации идей в различных областях автоматизации. В таблице 3 за начало разработки ПС принят момент начала создания технического задания (Т3), а за окончание — завершение испытаний программного продукта в целом или момент предъявления его на испытания.
Таблица 3
Коэффициенты моделей для оценки трудоемкости разработки
программных средств
Коэффициент | Коэффициент | Модель и тип |
G | Н | программных средств |
2,5 | 0,38 | Базовая - КОМОСТ |
Детализированная модель СОСОМО: | ||
2,5 | 0,32 | - встроенный; |
2,5 | 0,35 | - полунезависимый; |
2,5 | 0,38 | - независимый. |
СССОМО 11.2000 | ||
3,67 | 0,328 | Крупный проект 100 KSLOC |
ПРОМЕТЕЙ | ||
3,51 | 0,31 | Системы реального |
времени; | ||
3,78 | 0,28 | Информационно-поисковые системы. |
Диапазону размеров современных ПС в три-четыре порядка (до 10 млн. строк) соответствуют приблизительно такие же диапазоны изменения трудоемкостей и стоимостей их разработок. Однако, очевидна принципиальная нерентабельность разработки даже очень сложных ПС более 5 лет. С другой стороны, программы даже в несколько тысяч строк по полному технологическому циклу с испытаниями как продукции редко создаются за время, меньшее, чем полгода-год. Таким образом, вариация длительностей разработок ПС много меньше, чем вариация их трудоемкостей, и не превышает десятикратный диапазон. Длительности разработок Т ограничены сверху и снизу, и одним из основных факторов, определяющих эти границы, является объем программ – П.
Относительный «консерватизм» значений длительностей по сравнению с трудоемкостью определяется объективной необходимостью создавать ПС в рациональные сроки.
Любые ПС должны поступать на эксплуатацию до того, как в
них пропадает необходимость. Их цели, концептуальная основа и алгоритмы не должны устареть за время разработки. Отсюда появляется верхний предел допустимых длительностей разработки. Этот верхний предел не может иметь единственное значение для любых классов и объемов ПС. Однако недопустима его вариация в том же диапазоне, что и размер. Поэтому на практике по мере возрастания размеров ПС увеличиваются коллективы специалистов-разработчиков, что обеспечивает основной прирост необходимой трудоемкости. Чем крупнее создаваемое ПС, тем большие усилия обычно прилагаются для автоматизации и совершенствования технологии разработки. Это также способствует замедлению роста длительностей разработки, однако по мере увеличения сложности программ, длительность их разработки все же заметно возрастает.
Стремление ограничивать длительность реальных разработок ПС приводит к объективному формированию верхнего предела, за которым распространяется зона «нерациональных» длительностей, зависящих от размера и трудоемкости ПС. Даже для довольно сложных ПС, имеющих размер свыше 500 тыс. строк, вряд ли допустима длительность разработки более 3-5 лет. Большие длительности, иногда имеющиеся на практике, обусловлены в основном низкой квалификацией разработчиков и заказчиков, недостаточной автоматизацией технологии, малым коллективом специалистов и рядом других, преимущественно организационных и технологических причин. Подобные ситуации чаще встречаются при относительно небольших разработках (10 - 50 тыс. строк), когда у руководителей и коллектива мал опыт их проведения, следствием чего является избыточный оптимизм в начале разработки, а также пренебрежение технологией и организацией работ.