Технико-экономическое обоснование стоимости программных систем
..pdf31
Значения параметров A и E , полученные путем статистической обработки данных по результатам реализации множества проектов, представлены в табл. 2.13 [4].
Оценки по СОСОМО получены в результате обработки статистических данных по 160 реальным зарубежным проектам, а оценки по ПРОМЕТЕЮ – результат обобщения статистики – по 250 отечественным.
Таблица 2.13
Коэффициенты математической модели оценки трудозатрат в зависимости от типа программных систем
Тип программной |
СОСОМО |
ПРОМЕТЕЙ |
||
системы |
A |
E |
A |
E |
Первый тип - КПС |
3,6 |
1,2 |
10 |
1,21 |
Второй тип - ИСС |
3 |
1,12 |
6,1 |
1,17 |
Третий тип - ППП |
2,4 |
1,05 |
— |
— |
Длительность разработки программной системы определяет общие сроки разработки ПС, начиная от разработки технического задания (требований) на систему и завершая этапом проведения комплексных испытаний и может быть задана директивно заказчиком, исходя из реальных потребностей его бизнеса и наличия финансовых ресурсов.
Средняя численность сотрудников, занятых в проекте,
определяется по формуле:
Z T / Д |
(2.10) |
Расчет длительности и, соответственно, численности специалистов для разработки программного обеспечения может быть произведен также из среднестатистической производительности труда программиста.
32
Определение трудозатрат, длительности и средней численности специалистов на основе модифицированной модели – COCOMO II
В модифицированной модели COCOMO II (средний уровень) при определении трудоемкости учитываются дополни-
тельно пять групп факторов, влияющих на технико-
экономические показатели проекта:
масштабность проекта;
требования к показателям качества программного обеспечения;
квалификация коллектива разработчиков;
характеристики технологической среды разработки;
характеристики программно-аппаратной среды разра-
ботки.
В табл. 2.14 представлен перечень конкретных показателей по каждой из вышеперечисленных групп и их максимальные значения. Конкретные значения показателей определяются совместно представителями разработчика и заказчика. При значении показателя равным единице считается, что соответствующий фактор не влияет на трудоемкость разработки программной системы.
Таблица 2.14 Состав и максимальные значения факторов
модифицированной модели COCOMO II
Наименование фактора |
Обо- |
Макс. |
|
зна- |
значение |
|
че- |
|
|
ние |
|
1 |
2 |
3 |
1. Масштабные факторы |
|
|
1.1. Новизна проекта |
F1 |
1,33 |
1.2. Согласованность с требованиями и интер- |
F2 |
1,26 |
фейсами |
|
|
33
Продолжение табл. 2.14
1 |
2 |
3 |
1.3. Управление рисками и архитектурой про- |
F3 |
1,39 |
екта |
|
|
1.4. Слаженность работы коллектива |
F4 |
1,29 |
1.5. Технологическая зрелость обеспечения |
F5 |
1,43 |
разработки |
|
|
2. Требования и характеристики объекта |
|
|
разработки |
|
|
2.1. Надежность функционирования |
М1 |
1,54 |
2.2. Размер базы данных |
М2 |
1,42 |
2.3. Сложность функций и структуры |
М3 |
2,38 |
|
|
|
2.4. Требование повторного использования |
М4 |
1,31 |
компонентов |
|
|
2.5. Полнота и соответствие документации |
М5 |
1,52 |
проекта |
|
|
3. Характеристики коллектива специали- |
|
|
стов |
|
|
3.1. Квалификация аналитиков |
М9 |
2,00 |
3.2. Квалификация программистов |
М10 |
1,76 |
3.3. Стабильность коллектива |
М11 |
1,51 |
3.4. Опыт работы по тематике проекта |
М12 |
1,51 |
3.5. Опыт работы в инструментальной среде |
М13 |
1,40 |
3.6. Опыт работы с языками программирова- |
М14 |
1,43 |
ния |
|
|
4. Технологическая среда разработки |
|
|
4.1. Уровень инструментальной поддержки |
М15 |
1,50 |
проекта |
|
|
34
Продолжение табл. 2.14
|
|
|
1 |
|
|
|
|
|
|
2 |
|
|
3 |
4.2. Необходимость распределенной разработ- |
|
М16 |
|
1,53 |
|||||||||
ки проекта |
|
|
|
|
|
|
|
|
|
|
|
|
|
4.3. Ограничения длительности разработки |
|
|
|
М17 |
|
1,43 |
|||||||
проекта |
|
|
|
|
|
|
|
|
|
|
|
|
|
5. Аппаратно-вычислительная среда |
|
|
|
|
|
|
|
||||||
разработки |
|
|
|
|
|
|
|
|
|
|
|
|
|
5.1. Ограниченность времени исполнения |
|
|
|
М6 |
|
1,63 |
|||||||
программ |
|
|
|
|
|
|
|
|
|
|
|
|
|
5.2. Ограниченность доступной оперативной |
|
М7 |
|
1,46 |
|||||||||
памяти |
|
|
|
|
|
|
|
|
|
|
|
|
|
5.3. Изменчивость виртуальной среды |
|
|
|
М8 |
|
1,49 |
|||||||
разработки проекта |
|
|
|
|
|
|
|
|
|
|
|
||
Оценка трудоемкости разработки программной системы по |
|||||||||||||
модифицированной модели производится по выражению: |
|
||||||||||||
|
|
|
|
|
n |
|
1 |
|
|
|
|
|
|
|
E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
T A R |
(KLOC) |
|
П |
M (i) |
n |
/12 |
, |
|
(2.11) |
||||
|
|
|
|
||||||||||
|
|
|
|
i 1 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
где A = 2,94 |
B = 0,91 |
E = B + 0,01 |
|
|
|
|
|||||||
J 1
Данная модель предусматривает возможность прогнозирования длительности разработки проекта на основе регрессионной модели:
Д G T H , |
(2.12) |
где G = 3,67, K = 0,28, B = 0,91, H = K + 0,02 * (E – B)
Средняя численность сотрудников составляет:
Z T / Д |
(2.13) |
35
Использование модифицированной модели COCOMO II позволяет в среднем на 5 – 10% повысить точность определения технико-экономических показателей проекта.
2.3.3.Определение технико-экономических показателей проекта на основе размерности базы данных программной системы
Размерность программной системы определяется количеством объектов, атрибутов и их взаимосвязями на объектных диаграммах бизнес-процессов [6].
Атрибут – простейший элемент базы данных информационной модели, содержащей одну из характеристик предметной области и вводимой либо непосредственно пользователем, либо заносящийся в базу из справочников и классификаторов.
Объект – элемент базы данных, формируемый из атрибутов и содержащий информацию о реальном процессе, явлении, предмете.
Размерность программного обеспечения определяется по следующей формуле:
R 2N 5K1 10M , |
(2.14) |
где N – количество объектов (таблиц) предметной области, количество связей между таблицами неограниченно и определяется структурой базы данных;
K1 – суммарное количество взаимосвязей между объектами; М – суммарное количество атрибутов предметной области,
приходящихся на один объект.
Количество связей между атрибутами определяется количеством источников формирования атрибутивной информации.
Нормализованной величиной при создании программной системы является количество формируемых атрибутов, входящих в электронные таблицы посредством установленных связей.
При значениях N, K1, М, равных единице, величина, выражающая их количество равна 100. Трудозатраты разработки определяются по формуле 2.15 на основе статистических нормативов трудоемкости, приведенных в табл. 2.15 [6].
36
T 0.01 R , |
(2.15) |
где – норматив трудоемкости разработки программной системы.
Таблица 2.15 Нормативы трудоемкости разработки программной системы
|
Значение |
|
Категория сложности |
норматива |
|
|
(чел./месяц) |
|
* Разработка прикладных программ (пользователь- |
|
|
ских приложений) с использованием стандартных |
0,00566 |
|
средств СУБД |
|
|
** Количество прикладных программ (не более 3-х) |
|
|
*** Размерность базы данных (до 90 тыс. полей) |
|
|
|
|
|
* Разработка прикладных программ (пользователь- |
|
|
ских приложений) с использованием стандартных |
|
|
пакетов прикладных программ |
0,00808 |
|
** Количество прикладных программ (от 3-х до 10- |
||
|
||
ти) |
|
|
*** Размерность базы данных (от 90 тыс. до 200 |
|
|
тыс. полей) |
|
|
* Разработка прикладных программ (пользователь- |
|
|
ских приложений) с использованием языков высо- |
0,01537 |
|
кого уровня |
|
|
** Количество прикладных программ (не ограниче- |
|
|
но) |
|
|
*** Размерность базы данных (от 200 тыс. до 500 |
|
|
тыс. полей) |
|
Длительность разработки может быть задана директивно заказчиком, исходя из реальных потребностей его бизнеса и наличия финансовых ресурсов, при этом средняя численность специалистов определяется по формуле:
Z T / Д |
(2.16) |
37
Данный метод рекомендуется использовать при разработке программных систем на базе стандартных СУБД при:
больших размерностях базы данных, формируемой из различных источников;
наличии специализированных компонент, реализующих произвольные информационные запросы пользователей.
2.4.Определение стоимости программной системы
2.4.1.Определение фонда оплаты труда на разработку и комплексные испытания программной системы
В основу определения фонда оплаты труда положены:
длительность реализации каждого этапа жизненного цикла проекта;
количество и качественный состав специалистов, привлекаемых на каждом этапе проекта;
базовая месячная ставка специалиста-программиста.
В табл. 2.16, 2.17 приведены среднестатистические распределения первых двух величин по основным этапам жизненного цикла создания программных систем [4].
Таблица 2.16 Распределение трудозатрат и длительности по основным этапам
жизненного цикла создания программных систем
№ |
Этапы жизненного |
Трудозатраты |
Длительность |
п.п. |
цикла |
(%) |
(%) |
|
|
|
|
1 |
Анализ предметной об- |
|
|
|
ласти и разработка |
10 |
10 |
|
требований |
|
|
2 |
Проектирование |
22 |
30 |
3 |
Программирование |
40,5 |
35 |
4 |
Тестирование и ком- |
27,5 |
25 |
|
плексные испытания |
||
|
|
|
38
Используя эти распределения, по выражению 2.17 можно рассчитать среднюю численность сотрудников, занятых на каждом из этапов создания программной системы.
Zi iT / i Д , i=1,4 |
(2.17) |
В табл. 2.17 дано относительное распределение численности специалистов на каждом из четырех этапов жизненного цикла создания программной системы.
Таблица 2.17 Распределение специалистов по этапам жизненного цикла программной системы
№ |
Этапы жизненного цикла |
Типы специалистов (%) |
||
п.п. |
|
|
|
|
|
|
Анали- |
Програм- |
Техниче- |
|
|
тики |
мисты |
ские спе- |
|
|
|
|
циалисты |
1 |
Анализ предметной |
|
|
|
|
области и разработка |
40 |
20 |
40 |
|
требований |
|
|
|
2 |
Проектирование |
35 |
35 |
30 |
3 |
Программирование |
10 |
65 |
25 |
4 |
Тестирование и |
15 |
60 |
25 |
|
комплексные испытания |
|||
|
|
|
|
|
Численность каждого типа специалистов на каждом из этапов жизненного цикла создания программной системы определяется по выражению:
Z ij Pij |
Z i , i=1,4 j=1,3, |
(2.18) |
где Pij – относительная доля (%) специалистов j-го типа,
привлекаемых для реализации проекта на i-ом этапе.
Фонд заработной платы для реализации i-го этапа проекта определяется по формуле:
S i |
3 |
|
Z ij Д i S j , i = 1,4, |
(2.19) |
|
|
j 1 |
|
39
где Д i – длительность i-го этапа проекта;
S j – месячный фонд заработной платы специалиста j-го
типа.
В основу определения S j может быть положена месячная
базовая ставка программиста, размер которой может быть принят как одна из альтернатив: базовая ставка программиста заказчика; базовая ставка программиста разработчика; среднерыночная базовая ставка программиста в данном регионе.
В качестве ориентира для согласования базовой ставки может быть принята стоимость разработки одной строки исходного кода программы 20-50 $ US [4] и принятой производительности труда (раздел 2.3.1.).
При этом месячная ставка специалиста-программиста соотносится к месячной ставке системного аналитика как 1:1,3, а к ставке технического специалиста – как 1:0,7.
Общий фонд заработной платы на реализацию проекта определяется по формуле:
4 |
|
S Si |
(2.20) |
i1
2.4.2.Определение фонда оплаты труда на проведение опытной эксплуатации программной системы
На этапе опытной эксплуатации программной системы в соответствии с ГОСТ 34.603-92 [7] производится заполнение нормативной базы, справочников, классификаторов, эксплуатация программного обеспечения в регламентном режиме, доработка программного обеспечения и рабочей документации в случае несоответствия текущей версии системы требованиям технического задания. Срок опытной эксплуатации оговаривается в техническом задании.
Численность сотрудников, привлекаемых к опытной эксплуатации определяется по формуле:
Z оп tоп N , |
(2.21) |
40
где tоп — срок опытной эксплуатации;
N – норматив трудоемкости при проведении опытной эксплуатации.
Нормативы трудоемкости опытной эксплуатации программной системы определяются исходя из среднестатистических нормативов [6] согласно таблице 2.18.
Таблица 2.18
Нормативы трудоемкости опытной эксплуатации
Измеритель – 1 сеанс работы |
|
|
|
|
Значение |
Категория сложности |
норматива |
|
N |
|
(чел./месяц) |
* Количество пользователей (не более 10) |
|
** Количество сеансов работы с системой в те- |
0,00354 |
чение года (от 10 до 150) |
|
* Количество пользователей (не более 20) |
|
** Количество сеансов работы с системой в те- |
0,00504 |
чение года (от 150 до 650) |
|
* Количество пользователей (не ограничено) |
|
** Количество сеансов работы с системой в те- |
0,0095 |
чение года (от 650 до 6000) |
|
Опытная эксплуатация проводится группой внедрения разработчика с привлечением, в случае необходимости, программистов, при этом относительный норматив заработной платы специалиста составляет 0,85.
Фонд заработной платы на проведение опытной эксплуатации определяется по формуле:
S оп Z оп tоп S п · 0,85, |
(2.22) |
где Sп — месячная базовая ставка программиста.
