Методика расчета стоимости создания
программного продукта на основе конструктора информационных систем
А.С. Астафьева, Санкт-Петербургский государственный университет, студентка, astafyeva.as@gmail.com;
А.А.Бабаев, Санкт-Петербургский государственный университет,
доцент, a.babaev@hotmail.com;
Е.А. Ледков, Санкт-Петербургский государственный университет, аспирант, icemanea@gmail.com
Одной из ошибок, которые может совершить менеджер проекта, является неправильная его оценка. Причинами неправильной оценки могут быть: отсутствие методики, отсутствие опыта, непредвиденные проблемы, непонимание ключевых проблем проекта.
Согласно ГОСТ 34.601-90 [1] процесс создания автоматизированной системы включает определенные стадии и этапы работ. Основываясь на этих стадиях, ОСТ 4.071.030 [2] устанавливает нормативы трудоёмкости на работы по созданию и дальнейшему развитию ИС, которые могут являться основой для прогнозирования затрат (микрооценка проекта). Среди известных методов расчета затрат, основанных на данных о продукте, (макрооценка) [3] следует выделить Constructive Cost Model (COCOMO), COCOMO II и FPA IFPUG - метод функциональных точек. Следует отметить, что методы микрооценки основаны на точном знании процесса, а методы макрооценки основаны на функциональных требованиях и данных о продукте.
В связи с тем, что в основу создания всех ИС положены одни и те же принципы, становится возможным применение конструктора информационных систем KASKAD. Новейшая разработка позволяет создавать информационную систему не с нуля, а используя заготовки будущего продукта. Конструктор уже использовался для поддержки программы электронного экзамена EcExam [4]. Суть работы конструктора заключается в возможности подключения Dynamic-link library - библиотек динамической компоновки (DLL-библиотек), содержащих формы внесения и просмотра данных. Функционирование системы основывается на двух базах данных: первая содержит структуру данных, вторая - сами данные. Разделение позволяет создавать новые ИС, не теряя старую информацию.
Готовая программа состоит из разделов, каждый из которых подразумевает наличие:
DLL-библиотеки с формой ввода,
шаблона для быстрого просмотра и вывода на печать одной записи,
таблиц в базе данных, в которых хранятся эти записи. Логически продукт делится на разделы, в разделах создаются записи, состоящие из полей, см. Рис. 18Рис. 18. При этом существуют разграничения доступа, основное из которых - ограничение числа пользователей, работающих в одном разделе одновременно (по сути - количество лицензий).
Рис. 18. Строение программного продукта на основе конструктора информационных систем
Каждая программа может несколько отличаться пользовательским интерфейсом: использовать различные цветовые схемы и изображения (например, логотип компании, особые кнопки). Обычно готовый программный продукт содержит панель со ссылками на разделы слева от области заполнения и область просмотра шаблона записи справа (или снизу). Это видно на простом примере системы для правоохранительных органов. Новая запись для удобства заполнения может состоять из нескольких вкладок, см. рис. 2. Необходимо отметить, что такая необходимая функция как ограничение прав доступа также присутствует в программе.
Использование конструктора влияет на определение состава и содержания работ по созданию системы. Изменяется трудоемкость разработки технического проекта. Формулировка технического задания и разработка рабочего проекта также приобретает ряд особенностей. Управление модификацией продукта, входящее в состав поддержки ИС, становится менее затратным. Вычисление основных затрат основывает-
ся не на количестве строк кода всего программного продукта и не может полностью основываться на функциональных требованиях (стоимость подобной разработки с нуля существенно отличается от разработки с конструктором). В связи с этими факторами и макрооценка, и микрооценка готового программного продукта будет давать не совсем верные данные, поэтому следует использовать особую методику расчета стоимости, которая будет учитывать и традиционный анализ [5], и особый способ создания программного обеспечения (ПО).
-а- . а «
Рис. 19. Пример добавление новой записи в разделе
Расчет трудозатрат и стоимости основывается на многих параметрах. Главное в методике - разработать алгоритм расчета трудоемкости проектных работ по разработке системы, основывающейся на требованиях к продукту. Основные из них определяются из шаблонов для быстрого просмотра одной записи из раздела ИС. Значимыми являются такие данные, как
16) количество разделов,
17) количество видов записей в разделах (количество различных шаблонов отображения),
18) количество вкладок, оценка программиста загруженности каждой вкладки (для простоты используется только три варианта субъективной оценки: 30%, 70%, 100%),
19) количество пользователей и группы пользователей,
20) количество пользовательских списков.
Пример распределения значимых данных представлен в табл. 1.
Табл. 4. Пример распределения значимых параметров информационной системы, созданной на основе конструктора KASKAD
Количество разделов (Обращения, Задания)
Количество видов запи- ^ сей по разделам
Обращения Виды на отказ о возбуждении уголовного дела 3
на незаконное прекращение уголовного дела
на непринятие мер к раскрытию преступления
Типы присвоение вверенного имущества 3
взяточничество
должностные преступления
Задания Виды задание 1
Типы задание
Количество вкладок с оценкой загруженно- 19 сти
100% 10 10
70% 9 6.3
30% 9 2.7
Количество пользова- ^ телей по группам
Администраторы 2
Инспекторы 10
Количество пользовательских списков (От кого поступило, Кто подписал ответ)
В стоимость включается анализ деятельности, трудозатраты на оформление документации, амортизация оборудования, другие наклад-
ные расходы (как и в традиционных методиках). В общую сумму частично включается и часть стоимости самого конструктора (как отчисления автору). После расчета трудоемкости разработки этот параметр участвует в определении платы программистам (стоимости программирования), после чего включается в формулу расчета итоговой стоимости разработки. Необходимо отметить, что стоимость создания информационной системы является составляющей стоимости информационной системы, рассчитываемой по следующей формуле:
[ll]+[l]+[2]-[5]+[3]+[4]+X;([6]f-[7]f) + [8]+[9] + [10]
где:
n - количество разделов,
[1] - накладные расходы,
[2] - потребность в машинном времени для проектирования,
[3] - стоимость инструментальных программных средств (приобретенных для данного проекта),
[4] - прочие расходы на проектирование,
[5] - стоимость аренды машинного времени,
[6] - стоимость 1 лицензии по разделам,
[7] - количество лицензий по разделам,
[8] - затраты на информационное обеспечение,
[9] - стоимость обучения,
[10] - затраты на опытную эксплуатацию,
[11] - стоимость программирования.
Формирование стоимости должно быть прозрачным для заказчика программного продукта. Например, можно представить экономическое обоснование в виде табл. 2, либо более подробной версии (с более подробно описанными составляющими трудоемкости).
Использование специального калькулятора затрат на разработку ИС упрощает создание экономического обоснования и снижает стоимость документирования разработки. Для реализации методики расчета стоимости можно использовать сочетание языка разметки HTML и скрипто-вого языка программирования (JavaScript или PHP - Hypertext Preprocessor). Примером работающей формы расчета стоимости по методике COCOMO II, основанной на PHP, может являться инструмент Центра разработки программного обеспечения Университета Южной Калифорнии [6]. В итоге калькулятор выглядит, как форма, и может быть размещен в сети Интернет.
Табл. 5. Пример расчета стоимости информационной системы
№ п/п Виды затрат Объем
11. Трудоемкость проектных работ по разработ- 50 чел/дней
ки информационной системы
12. Средняя заработная плата проектировщика 25000 руб.
13. Накладные расходы 30% от ФЗП
14. Обязательные отчисления от ФЗП 38% от ФЗП
15. Потребность в машинном времени для проектирования 600 часов
16. Стоимость инструментальных программных средств (приобретенных для данного проекта) 0 рублей
17. Прочие расходы на проектирование 2000 рублей
18. Стоимость машинного времени 100 руб./час
19. Затраты на лицензии по разделам 20000 руб.
20. Затраты на информационное обеспечение 40 чел/час
(рабочее время проектировщиков и аренда информационно - вычислительной техники) 25 маш. часов
21. Обучение 10 специалистов в течение 5 дней 25000 руб-
(заработная плата в месяц одного специали- лей
ста)
22. Оплата 3х преподавателей при обучении специалистов (с начислениями) 1000 рублей
23. Затраты на опытную эксплуатацию 10000 руб.
Стоимость создания информационной системы, рублей 570284.09
Данный способ реализации методики расчета стоимости создания
ПО ИС на основе конструктора KASKAD позволяет оценить разработку
с учётом специфики конкретной организации и предоставить экономическое обоснование заказчику. Литература
1. ГОСТ 34.601-90 Автоматизированные системы. Стадии создания. Дата введения с 01.01.1992г.
2. ОСТ 4.071.030 Создание системы. Нормативы трудоёмкости. URL: http://yandex.ru/yandsearch?text=%D0%9E%D0%A1%D0%A2+4.071.030+&tex t=2&lr=2 (Дата обращения 25.10.2011).
3. Архипенков С. Лекции по управлению программными проектами. URL: http://citforum.ru/SE/project/arkhipenkov_lectures/13.shtml (Дата обращения 25.10.2011).
4. EcExam - программа электронного экзамена. URL: www.ecexam.spb.ru (Дата обращения: 10.09.2011)
5. С. Макконнелл, Сколько стоит программный проект. СПб.: «Питер», 2007. 304 с.
6. Ray Madachy, COCOMO II - Constructive Cost Model. URL: http://csse.usc.edu/tools/COCOMOII.php (Дата обращения 20.10.2011).