В связи с этим целесообразно выделять процесс создания программного обеспечения из общего процесса создания автоматизированных систем и рассматривать его с двух позиций:
1) системной, т.е. как создание программного обеспечения автоматизированных систем;
2) прикладной - как создание отдельных изделий, которые могут использоваться независимо от программного обеспечения данной автоматизированной системы.
Целью создания программного обеспечения является получение необходимого и достаточного системного комплекта качественных программных изделий при условии реализации эффективного процесса разработки и сопровождения.
Качество программного обеспечения определяется тремя составляющими:
1) с точки зрения специалиста-пользователя данным программным изделием;
2) с позиции использования ресурсов и их оценки;
) с позиции выполнения требований на программном обеспечении.
Программное обеспечение должно быть разработано так, чтобы оно выполняло свои функции без лишних затрат ресурсов (оперативной памяти ЭВМ, машинного времени, пропускной способности каналов передачи данных и других ресурсов на стадии функционирования; времени разработки и денежных ресурсов на стадии создания программного изделия). В процессе разработки программного обеспечения необходимо управлять занятыми в этом процессе сотрудниками.
Основные сложности в процессе создания программного изделия возникают, прежде всего, из-за плохого планирования (50%), недостаточного контроля (34%), по техническим причинам (всего 16%).
Важное значение для организации эффективных процессов создания и использования программных средств имеет понятие жизненного цикла программного обеспечения системы. Это положение обусловлено требованием создания актуальной и гибкой системы, которая могла бы развиваться с наименьшими затратами при внесении изменений в систему по мере ее освоения и старения. Необходимо прогнозировать срок замены устаревшей системы на принципиально новую.
Процесс программирования необходимо планировать, контролировать и завершать в заданные сроки. Кроме того, работа программистов должна быть оплачена по результатам их труда: его качеству, количеству, интенсивности выполнения работ; стимулировать высокие результаты труда. Для перечисленных целей часто используют нормативы, чтобы сравнивать и оценивать планируемые и фактические результаты.
На первых этапах проектирования следует выполнять укрупненные расчеты трудоемкости работ по созданию программного обеспечения автоматизированных систем (подсистем, задач) в целях прогнозирования сроков работ, затрат на их выполнение, оценки предполагаемой экономической эффективности автоматизации.
Известно несколько нормативных методов, укрупненных расчетов трудоемкости работ по созданию систем (задач):
1) сопоставительный (метод аналогов), применяемый когда трудоемкость новых разработок принимают по опытным данным подобных разработок с использованием поправочных коэффициентов;
2) метод эмпирических зависимостей, основанный на применении нормативов в виде математических зависимостей искомого показателя (трудоемкости, стоимости работ) от технических параметров объекта разработки (например, показателя сложности программ);
) метод прямого счета, основанный на определении содержания и объемов работ и использовании нормативов на отдельные единицы работ. Нормативы этого метода можно разделить на объемные, характеризующие предполагаемые объемы работ (например, количество операторов в программе, количество входных и выходных форм в задаче и т.п.), и ресурсные, определяющие трудоемкость типовых единиц работы;
) метод структурных коэффициентов, основанный на использовании нормативов структуры показателей аналогичной разработки, например, распределение трудоемкости создания задачи по различным этапам работ. При этом трудоемкость общая или отдельного этапа должна быть определена предварительно каким-либо другим методом. Метод структурных коэффициентов всегда применяют в комплексе с другими.
Разнообразие методов объясняется различными возможностями получения исходных данных о планируемых работах, наличием соответствующих нормативов, потребностями детализации и точности расчетов.
Анализ различных подходов к нормированию процесса программирования показывает, что в качестве основного фактора следует принимать размер исходного текста программного обеспечения (для любого типа программного обеспечения).
Для быстрой приближенной оценки трудоемкости и длительности, разработки программного обеспечения может использоваться и так называемая «базовая модель».
При этом затраты труда (трудоемкость разработки программного обеспечения)
оценивают таким образом, чел.-мес.:
(6.1)
где
- число исходных команд (тыс.), а длительность
разработки, мес.:
(6.2)
Производительность
труда группы разработчиков программного изделия
(исх.команд./чел.-мес.)
определяется формулой
(6.3)
Среднее число исполнителей рассчитывают исходя из определенных или
заданных характеристик трудоемкости и длительности разработки программного
продукта, чел.:
(6.4)
Если известны по опыту работы или заданы по нормативам затраты труда на
подготовку описания задачи, исследование алгоритма решения задачи, разработку
блок-схемы алгоритма, программирование, отладку программы на ЭВМ, подготовку
документации по задаче, то трудоемкость разработки программного обеспечения
можно рассчитать по формуле:
(6.5)
где
- трудоемкость i-го этапа.
При
оценке затрат труда на разработку программного обеспечения предполагают, что
создание программного обеспечения - процесс творческий и точно затраты
определить невозможно. Поэтому следует использовать поправочные коэффициенты
(табл. 6.1) для коррекции трудозатрат
. Для
этого номинальные трудозатраты
умножают
на соответствующие коэффициенты R (табл. 6.1), т.е.
, где
.
Таблица 6.1 - Коэффициенты, используемые при оценке затрат труда на подготовку задачи к решению ее на ЭВМ
|
№ п/п |
Фактор |
Условные обозначения |
Коэффициент |
Примечания |
|
1 |
Коэффициент сложности ПО |
|
|
|
|
2 |
Коэффициент коррекции программы |
|
|
|
3 Коэффициент
квалификации разработчика
До двух
лет -1,25
-3 года - 1,0
-5 лет - 0,9..0,85
-7 лет - 0,8..0,7
|
Св. 7 лет - 0,7..0,6В зависимости от срока разработчика |
|
|
|
|
|
4 |
Коэффициент увеличения затрат вследствие недостаточного описания задачи |
|
|
|
|
5 |
Коэффициент, учитывающий затраты на оформление задачи |
|
|
|
|
6 |
Коэффициент, учитывающий затраты на внедрение задачи |
|
|
|
Влияние
на
(формула (6.1)) числа тысяч исходных команд снижено,
но зато мы учитываем ряд других факторов, влияющих на трудоемкость разработки
программного обеспечения.
Смету
затрат на разработку программного обеспечения составляют по статьям
калькуляции. При этом необходимо в первую очередь рассчитать фонд заработной
платы разработчиков:
(6.6)
где
- трудоемкость i-й работы по
созданию и внедрению ПО;
-
средняя дневная (часовая) ставка разработчика;
n - количество работ (этапов), на которые разделена задача.
Стоимость программного обеспечения:
(6.7)
где
- коэффициент, учитывающий дополнительную заработную
плату (можно принимать 0,1..0,3).
-
коэффициент, учитывающий отчисления в фонд заработной платы;
-
коэффициент накладных расходов организаций, разрабатывающих проект (можно
принять равным единице);
-
коэффициент прочих расходов (0,1…0,2);
-
машинное время, необходимое для отладки программы, ч.;
-
стоимость машино-часа работы ЭВМ (принимают по установленным тарифам на аренду
или рассчитывают для конкретных условий).
Эффективность
программного продукта определяется формулой:
(6.8)
где
- среднегодовой экономический эффект, полученный от
применения данного программного продукта, грн.
При
расчетах затрат на создание и внедрение систем (задач) необходимо выделять
затраты на создание программного обеспечения, которые потом будут списываться в
эксплуатационные затраты. Если программа разрабатывается организацией только
для себя, стоимость программного обеспечения
определяется
формулой (6.5) для объема соответствующих работ (постановки задач, разработки и
отладки программ, разработки программной документации).
Если же разрабатываемая программа будет использоваться несколькими предпринимателями-потребителями, на нее определяют цену реализации.
Цена
программы для отдельного потребителя может быть рассчитана так:
(6.9)
где
- стоимость дополнительных работ по тиражированию
программы для отдельного потребителя;
-
норматив прибыли организации, разрабатывающей программу, можно принимать равным
0.1…0.15.
-
количество организаций, которые приобретут данную программу.
Нижний
предел цены может быть рассчитан так:
(6.10)
Верхний предел цены:
(6.11)
где
- годовой экономический эффект t-го года;
- число
лет эксплуатации программного обеспечения (до шести лет).
Договорная
цена
должна находиться в диапазоне между нижним и верхним
пределами, причем эффективность программного обеспечения и с точки зрения
разработчика, и с точки зрения покупателя должна быть больше нормативной
:
(6.12)
а при тиражировании:
(6.13)
где m - число копий;
-
затраты на тиражирование.
Эффективность
с точки зрения покупателя (потребителя) ПО:
(6.14)
где
- коэффициент, учитывающий налог на добавленную
стоимость (0,2);
-
дополнительные издержки капитального характера при введении ПО в эксплуатацию.
В качестве исходных данных для оценки экономической эффективности программного обеспечения и определения цены программного обеспечения примем общую трудоемкость работ. В таблице 6.2 представлена структура трудоемкости работ по этапам создания программного обеспечения. Общую трудоемкость работ получаем суммированием соответствующих слагаемых.
Смету затрат на разработку программного обеспечения составляют по статьям калькуляции. При этом в первую очередь необходимо рассчитать фонд заработной платы разработчиков по формуле 6.7.
Так как при создании данного программного продукта был занят один
разработчик, фонд его заработной платы рассчитаем следующим образом:
, (6.18)
где tобщ - общая трудоемкость работ;
L - средняя дневная ставка разработчика.
Общая трудоемкость работ составила 60 дней. Среднюю дневную ставку разработчика примем в размере 100 грн. Тогда фонд заработной платы составит:
Фзп = 60 * 100 = 6000 грн.
Стоимость программного обеспечения вычислим по формуле 6.8. Для этого примем коэффициент wот = 0,426, представляющий собой сумму коэффициентов отчисления (в фонд соц. страхования - 0,05; в фонд Чернобыля - 0,1; в фонд занятости - 0,05; в пенсионный фонд - 0,2; на мед. страхование - 0,026), а так же коэффициенты wд = 0,2, wн = 1, wпр = 0,1 и величины tЭBM = 480 ч., Lэвм = 6,5 грн.