Трудозатраты на разработку и отладку программы
МЕТОДИКА РАСЧЕТА ТЕХНИКО-ЭКОНОМИЧЕСКИХ ПОКАЗАТЕЛЕЙ
Любое техническое или программное решение предполагает вложение финансовых средств, отсюда возникает вопрос рационального их применения и выбора из многообразных способов решения задачи наиболее эффективного. Эффективность – широкое социально-экономическое понятие, предполагающее наличие положительных результатов, полезного эффекта, отдачи от всех средств, вложенных в разработку и внедрение проекта.
Существует несколько видов эффективности, среди которых обычно выделяют:
- коммерческую (финансовую) эффективность, учитывающую финансовые последствия реализации проекта для всех участников проекта;
- бюджетную эффективность, отражающую влияние последствий внедренного проекта на бюджет предприятия, отрасли или региона;
- экономическую эффективность, учитывающую затраты и результаты, связанные с реализацией проекта.
Экономическую эффективность (как и другие виды человеческой деятельности) в самом общем виде принято определять как отношение планируемых результатов производства к затратам. Экономический эффект выступает как показатель результата производства, как достижение ранее поставленной цели. Сущность экономического эффекта заключается в создании материальных благ, удовлетворяющих соответствующие потребности и в экономии всех производственных ресурсов (живого труда, материалов, капитальных вложений).
Эффективность– это мера соотношения затрат и результатов функционирования программного средства.
Экономический эффект– это результат внедрения некоторого мероприятия, выраженный в стоимостной форме в виде экономии от его осуществления.
Коэффициент эффективности капитальных вложений– это величина годового прироста прибыли, образующегося в результате производства или эксплуатации программного средства на 1 рубль единоразовых капитальных вложений.
Срок окупаемости– это величина, обратная коэффициенту эффективности. Представляет собой период времени, в течение которого затраты на программное средство окупятся полученным эффектом.
В процессе разработки программного средства в качестве критериев экономической эффективности могут быть выбраны следующие критерии:
1. максимальная экономическая эффективность функционирования программного средства за весь период жизненного цикла при ограниченных затратах на разработку программ;
2. минимальные затраты на разработку программ при заданной экономической эффективности применения и заданном качестве программного средства;
3. максимальное отношение экономической эффективности применения программного средства в течение времени эксплуатации к затратам на его создание;
4. максимальная разность эффекта от функционирования программного средства за весь жизненный цикл и затрат на его разработку, эксплуатацию и сопровождение.
Расчет экономической эффективности и срока окупаемости проектируемой программы реализованной на ЭВМ начинается с расчета трудовых затрат.
Трудозатраты на разработку и отладку программы
Процесс программирования необходимо планировать, контролировать и завершать в срок. Кроме того, труд программистов должен оплачиваться по результатам их труда (его качеству, количеству и интенсивности выполнения работ). Для этих целей определяют затраты труда (трудоемкость) на разработку программного продукта.
Для определения затрат труда на разработку используются аналитические и экспертные методы оценок. Выбор метода осуществляется в зависимости от степени учета факторов, влияющих на трудоемкость разработки. Для более точного определения трудоемкости разработки программного продукта по отдельным элементам и операциям процесса может быть использован метод, в котором составляющие затраты труда определяются с учетом особенностей организации, ведущей разработку, и основных параметров программного продукта: степени новизны задачи, сложности алгоритма, количества разновидностей входной и выходной информации, сложности организации контроля входной и выходной информации, языка программирования, использования стандартных модулей и типовых задач.
Трудоемкость разработки программного обеспечения решения задачи можно рассчитать по формуле:
t = tи + tа + tп + tотл + tд,
где tи – затраты труда на изучение описания задачи; ta – затраты труда на разработку алгоритма решения задачи; tп– затраты труда на программирование по готовой блок-схеме; tотл – затраты труда на отладку программы на ЭВМ; tд – затраты труда на подготовку документации.
Составляющие затрат можно определить через условное число операторов в разрабатываемом программном обеспечении. В их число входят те операторы, которые необходимо написать программисту в процессе работы над задачей с учетом возможных уточнений в постановке задачи и совершенствования алгоритма. Условное число операторов Q в программе может быть определено по формуле:
Q = q*c *(1 + р),
где q – предполагаемое число операторов в программе; с – коэффициент сложности программы по отношению к типовой задаче (величина с лежит в пределах от 1,25 до 2); р – коэффициент коррекции программы в ходе ее разработки, увеличение объема работ за счет внесения изменений в алгоритм или программу по результатам уточнения постановок и описаний ее, изменения состава и структуры информации, а также уточнений, вносимых разработчиками для улучшения качества самой программы без изменения постановки задачи (величина р находится в пределах 0,05...0,1).
Кроме этого, используются коэффициенты: квалификации разработчиков алгоритмов и программ – k, отражающий степень подготовленности исполнителя к порученной ему работе (он определяется в зависимости от стажа работы и составляет: для работающих до двух лет – 0,8; от двух до трех лет – 1,0; от трех до пяти лет – 1,1–1,2; от пяти до семи – 1,3–1,4; свыше семи лет – 1,5–1,6), и увеличения затрат труда вследствие недостаточного или некачественного описания задачи – В, оценивающий качество постановки задачи, выданной для разработки, в связи с тем, что задачи, как правило, требуют уточнения и некоторой доработки (этот коэффициент в зависимости от сложности задачи принимается от 1,2 до 1,5).
Затраты труда на изучение описания задачи tu с учетом уточнения описания и квалификации программиста могут быть определены по формуле, чел./ч:
tи = Q*B/(76* k),
где k – коэффициент квалификации разработчиков; В – коэффициент увеличения затрат труда вследствие недостаточного описания задачи.
Затраты труда на разработку алгоритма решения задачи ta рассчитываются по формуле, чел./ч.:
tа = Q /(22*k).
Затраты труда на программирование по готовой блок-схеме tп определяются по формуле, чел./ч.:
tп = Q /(23*k).
Затраты труда на отладку программы на ЭВМ tотл рассчитываются по следующим формулам, чел./ч.
tотл = Q /(4*k) – при автономной отладке одной задачи,
tкотл = 1,5*tотл – при комплексной отладке.
Затраты труда на подготовку документации:
tд = tдр + tдо,
где tдр = Q/(17*k) – затраты труда на подготовку материалов в рукописи; tдo = 0,75*tдр – затраты труда на редактирование, печать и оформление документации.
Пример расчета трудоемкости разработки
Предположим, что наш программный продукт относится к разряду оригинальных разработок. Для разработки выбран язык программирования C++, операционная система Windows 2000. Необходимые средства вычислительной техники – компьютер Pentium IV – 2200 / DDR 256 Mb / 160 Gb/ CD-RW, принтер LaserShot LBP-1120.
Исходные данные для расчета определяются с учетом сложности разработки, наличия аналогов, квалификации разработчиков:
предполагаемое число операторов q = 15 000;
коэффициент сложности разработки с = 1,5;
коэффициент коррекции программы в ходе ее разработки р = 0,07;
коэффициент квалификации разработчиков k = 0,8;
коэффициент увеличения затрат труда вследствие недостатков описания задачи B = 1,3.
Условное число операторов Q в программе определяется по формуле
Q = q*c*(1 + p) = 15000*1,5*(1 + 0,07) = 24 075.
Затраты труда на изучение описания задачи tи (с учетом квалификации программиста):
tи = Q*B/(76*k) =24075*1,3/(76*0,8) = 515.
Затраты труда на разработку алгоритма решения задачи ta:
ta = Q/(22*k) = 24 075/(22*0,8) = 1367,9.
Затраты труда на программирование по готовой блок-схеме:
tп = Q/(23*k) = 24075/(23*0,8) = 1308,4.
Затраты труда на отладку программы на ЭВМ при автономной отладке одной задачи:
tотл = Q/(4*k) = 24 075/(4*0,8) = 7 523,4;
при комплексной отладке задачи:
tкотл = 1,5*tотл = 7 523,4*1,5 = 11 285.
Затраты труда на подготовку документации по задаче
tд = tдр + tдо
Затраты труда на подготовку материалов в рукописи:
tдр = Q/(17*k) = 24 075/(17*0,8) = 1 770,2.
Затраты труда на редактирование, печать и оформление документации:
tдо = 0,75*tдр = 0,75*1770,2 = 1 327,7;
tд = 1 770,2 + 1 327,7 = 3 097,9.
Суммарная трудоемкость разработки составит, чел./ч.:
t = 515 + 1367,9 + 1308,4 + 7 523,4+ 3 097,9 = 13812,6.