В настоящее время некоторые результаты теории надежности аппаратных средств ЭВМ начинают использовать для оценки сроков и затрат при разработке программного обеспечения. Было установлено, что зависимость суммарных затрат от времени при разработке больших систем (свыше 50 человеко-лет) хорошо отображается следующим уравнением:
где E(t) — суммарные затраты к моменту времени t;
К — общая стоимость системы;
а — характеристика максимальных затрат на единичном отрезке времени.
Такая зависимость, выраженная в дифференциальной форме, отображается кривой Рэлея
где E’(t) — плотность затрат или ежегодные затраты (рис. 3.4).
Рис. 3.4 — Отображение ежегодных затрат кривой Рэлея
Поскольку 60 % затрат производится на этапе сопровождения, нет ничего удивительного, что максимум кривой близок к моменту создания системы, т.е. к тому моменту, когда традиционно считается, что работы завершены.
Пусть P(T > t) вероятность того, что в интервале [0, t] событие не произошло. Тогда в соответствии с законом Пуассона
Поскольку P(T ≤ t) + P(T > t) = 1, вероятность того, что событие произошло в интервале [0, t], можно представить в следующем виде:
Частота событий, или скорость решения задач, выражается как производная функции распределения, т.е.
Допустим, что если событие произошло, p есть вероятность решения задачи (вероятность получения правильного решения). Тогда получим следующие соотношения:
Положим, что вероятность p является функцией времени. В этом случае имеем
Опыт разработки больших программных систем показывает, что зависимость вероятности правильного решения задачи от времени можно выразить в виде
При этом получим
Вводя обозначение a = (λα)/2 и умножая последнюю формулу на общую стоимость системы K, получим приведенную выше формулу для суммарных затрат E(t) к моменту времени t. Таким образом, для ежегодных затрат имеем:
Это уравнение содержит две переменные величины — t и [K – E(t)]. По мере приближения работ к завершению (с возрастанием t) скорость решения задач f(t) увеличивается. Это происходит вследствие эффекта «обучения», поскольку по мере знакомства исполнителей с задачами работа становится более эффективной.
Противоположную тенденцию имеет выражение [K – E(t)], которое определяет незавершенную работу. С приближением работ к завершению сложность системы увеличивается, вследствие чего снижается производительность труда исполнителей. Кривая Рэлея имеет два параметра — K и a. В начале работы K можно оценить, используя величину планируемых затрат, а a можно определить, исходя из состава исполнителей. Дату завершения работ определяют по достижению максимума расходов (максимум кривой Рэлея).