Трудоемкость разработки программного обеспечения определяется по формуле:
Тпо = То + Ти + Та + Тп + Тотл + Тд, (4.1)
где То – затраты труда на описание задачи, чел.-ч;
Ти – затраты на исследование предметной области, чел.-ч;
Та – затраты на разработку блок-схемы, чел.-ч;
Тп – затраты на программирование, чел.-ч;
Тотл – затраты на отладку программы, чел.-ч;
Тд – затраты на подготовку документации, чел.-ч.
Большинство составляющих трудоемкости определяются через общее число операторов D:
, (4.2)
где а – число операторов, ед.;
с – коэффициент сложности задачи (с = 1,25….2);
р – коэффициент коррекции программы, учитывающий новизну проекта (для новой программы р =0,1)
Затраты труда на описание задачи То точно определить заранее невозможно, поэтому принимают ориентировочно То = 30…40 чел.-ч.
Затраты труда на исследование предметной области Ти с учетом уточнения описания и квалификации программистов определяются по формуле:
(4.3)
где D – общее число операторов, ед.;
b – коэффициент увеличения затрат труда, вследствие недостаточного описания задачи (b = 1,2…1,5);
su – количество операторов, приходящееся на 1 чел.-ч (для данного вида работ su = 75…85 ед/чел.-ч);
kk – коэффициент квалификации программиста (определяется в зависимости от стажа работы: до 2-х лет – 0,8; от 2-х до 3-х – 1,0; от 3-х до 5 лет – 1,1…1,2; от 5 до 7 лет – 1,3…1,4; свыше 7 лет – 1,5…1,6)
Затраты труда на разработку алгоритма решения задачи Та рассчитывается по формуле:
(4.4)
где sа = 20…25 ед/чел.-ч.
Затраты труда на составление программы на ЭВМ по готовой блок-схеме:
, (4.5)
где sn = 20…25 ед/чел.-ч
Затраты труда на отладку программы на ПЭВМ:
(4.6)
где sотл – 4…5 ед/чел.-ч.
Затраты труда на подготовку документации по задаче:
Тд = Тдр + Тдо, (4.7)
где Тдр – затраты труда на подготовку материалов в рукописи:
(4.8)
где sдр = 15…20 ед/чел.-ч.
Затраты труда на редактирование, печать и оформление документов:
Тдо = 0,75Тдр (4.9)
Полученное общее значение трудоемкости Тпо корректируется с учетом уровня языка программирования:
Т = Тпоkкор, (4.10)
где kкор – коэффициент, учитывающий уровень языка программирования (kкор = 0,8…1,0).