Стоимость каждого программного продукта

Методика расчета стоимости создания

программного продукта на основе конструктора информационных систем

А.С. Астафьева, Санкт-Петербургский государственный университет, студентка, astafyeva.as@gmail.com;

А.А.Бабаев, Санкт-Петербургский государственный университет,

доцент, a.babaev@hotmail.com;

Е.А. Ледков, Санкт-Петербургский государственный университет, аспирант, icemanea@gmail.com

Одной из ошибок, которые может совершить менеджер проекта, является неправильная его оценка. Причинами неправильной оценки могут быть: отсутствие методики, отсутствие опыта, непредвиденные проблемы, непонимание ключевых проблем проекта.

Согласно ГОСТ 34.601-90 процесс создания автоматизированной системы включает определенные стадии и этапы работ. Основываясь на этих стадиях, ОСТ 4.071.030 устанавливает нормативы трудоёмкости на работы по созданию и дальнейшему развитию ИС, которые могут являться основой для прогнозирования затрат (микрооценка проекта). Среди известных методов расчета затрат, основанных на данных о продукте, (макрооценка) следует выделить Constructive Cost Model (COCOMO), COCOMO II и FPA IFPUG — метод функциональных точек. Следует отметить, что методы микрооценки основаны на точном знании процесса, а методы макрооценки основаны на функциональных требованиях и данных о продукте.

В связи с тем, что в основу создания всех ИС положены одни и те же принципы, становится возможным применение конструктора информационных систем KASKAD. Новейшая разработка позволяет создавать информационную систему не с нуля, а используя заготовки будущего продукта. Конструктор уже использовался для поддержки программы электронного экзамена EcExam . Суть работы конструктора заключается в возможности подключения Dynamic-link library — библиотек динамической компоновки (DLL-библиотек), содержащих формы внесения и просмотра данных. Функционирование системы основывается на двух базах данных: первая содержит структуру данных, вторая — сами данные. Разделение позволяет создавать новые ИС, не теряя старую информацию.

Готовая программа состоит из разделов, каждый из которых подразумевает наличие:

DLL-библиотеки с формой ввода,

шаблона для быстрого просмотра и вывода на печать одной записи,

таблиц в базе данных, в которых хранятся эти записи. Логически продукт делится на разделы, в разделах создаются записи, состоящие из полей, см. Рис. 18Рис. 18. При этом существуют разграничения доступа, основное из которых — ограничение числа пользователей, работающих в одном разделе одновременно (по сути — количество лицензий).

Рис. 18. Строение программного продукта на основе конструктора информационных систем

Каждая программа может несколько отличаться пользовательским интерфейсом: использовать различные цветовые схемы и изображения (например, логотип компании, особые кнопки). Обычно готовый программный продукт содержит панель со ссылками на разделы слева от области заполнения и область просмотра шаблона записи справа (или снизу). Это видно на простом примере системы для правоохранительных органов. Новая запись для удобства заполнения может состоять из нескольких вкладок, см. рис. 2. Необходимо отметить, что такая необходимая функция как ограничение прав доступа также присутствует в программе.

Использование конструктора влияет на определение состава и содержания работ по созданию системы. Изменяется трудоемкость разработки технического проекта. Формулировка технического задания и разработка рабочего проекта также приобретает ряд особенностей. Управление модификацией продукта, входящее в состав поддержки ИС, становится менее затратным. Вычисление основных затрат основывает-

ся не на количестве строк кода всего программного продукта и не может полностью основываться на функциональных требованиях (стоимость подобной разработки с нуля существенно отличается от разработки с конструктором). В связи с этими факторами и макрооценка, и микрооценка готового программного продукта будет давать не совсем верные данные, поэтому следует использовать особую методику расчета стоимости, которая будет учитывать и традиционный анализ , и особый способ создания программного обеспечения (ПО).

-а- . а «

Рис. 19. Пример добавление новой записи в разделе

Расчет трудозатрат и стоимости основывается на многих параметрах. Главное в методике — разработать алгоритм расчета трудоемкости проектных работ по разработке системы, основывающейся на требованиях к продукту. Основные из них определяются из шаблонов для быстрого просмотра одной записи из раздела ИС. Значимыми являются такие данные, как

16) количество разделов,

17) количество видов записей в разделах (количество различных шаблонов отображения),

18) количество вкладок, оценка программиста загруженности каждой вкладки (для простоты используется только три варианта субъективной оценки: 30%, 70%, 100%),

19) количество пользователей и группы пользователей,

20) количество пользовательских списков.

Пример распределения значимых данных представлен в табл. 1.

Табл. 4. Пример распределения значимых параметров информационной системы, созданной на основе конструктора KASKAD

Количество разделов (Обращения, Задания)

Количество видов запи- ^ сей по разделам

Обращения Виды на отказ о возбуждении уголовного дела 3

на незаконное прекращение уголовного дела

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

на непринятие мер к раскрытию преступления

Типы присвоение вверенного имущества 3

взяточничество

должностные преступления

Задания Виды задание 1

Типы задание

Количество вкладок с оценкой загруженно- 19 сти

100% 10 10

70% 9 6.3

30% 9 2.7

Количество пользова- ^ телей по группам

Администраторы 2

Инспекторы 10

Количество пользовательских списков (От кого поступило, Кто подписал ответ)

В стоимость включается анализ деятельности, трудозатраты на оформление документации, амортизация оборудования, другие наклад-

ные расходы (как и в традиционных методиках). В общую сумму частично включается и часть стоимости самого конструктора (как отчисления автору). После расчета трудоемкости разработки этот параметр участвует в определении платы программистам (стоимости программирования), после чего включается в формулу расчета итоговой стоимости разработки. Необходимо отметить, что стоимость создания информационной системы является составляющей стоимости информационной системы, рассчитываемой по следующей формуле:

++-+++X;(f-f) + + +

где:

n — количество разделов,

— накладные расходы,

— потребность в машинном времени для проектирования,

— стоимость инструментальных программных средств (приобретенных для данного проекта),

— прочие расходы на проектирование,

— стоимость аренды машинного времени,

— стоимость 1 лицензии по разделам,

— количество лицензий по разделам,

— затраты на информационное обеспечение,

— стоимость обучения,

— затраты на опытную эксплуатацию,

— стоимость программирования.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Формирование стоимости должно быть прозрачным для заказчика программного продукта. Например, можно представить экономическое обоснование в виде табл. 2, либо более подробной версии (с более подробно описанными составляющими трудоемкости).

Использование специального калькулятора затрат на разработку ИС упрощает создание экономического обоснования и снижает стоимость документирования разработки. Для реализации методики расчета стоимости можно использовать сочетание языка разметки HTML и скрипто-вого языка программирования (JavaScript или PHP — Hypertext Preprocessor). Примером работающей формы расчета стоимости по методике COCOMO II, основанной на PHP, может являться инструмент Центра разработки программного обеспечения Университета Южной Калифорнии . В итоге калькулятор выглядит, как форма, и может быть размещен в сети Интернет.

Табл. 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г.

4. EcExam — программа электронного экзамена. URL: www.ecexam.spb.ru (Дата обращения: 10.09.2011)

5. С. Макконнелл, Сколько стоит программный проект. СПб.: «Питер», 2007. 304 с.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Программное обеспечение Microsoft Windows 10 – новая универсальная операционная система, которая предназначена для всех типов устройств. В число этих устройств входят не только персональные компьютеры, ноутбуки, планшеты, но и смартфоны, телевизоры, различные платы и промышленные устройства, используемые для сценариев Internet of Things. Windows 10 также предлагает улучшенный пользовательский интерфейс, который, с одной стороны, остался привычным для пользователей Windows 8, с другой стороны, приобрел несколько новых полезных возможностей, например, меню «Пуск», голосовой помощник Cortana, новый центр уведомлений и другое. Кроме того, ОС Windows 10 предлагает новый браузер под кодовым названием Spartan и приложение Xbox.

Знакомая и усовершенствованная Windows 10 привычна и удобна, у нее много сходств с Windows 7, в том числе меню «Пуск». Она быстро запускается и возобновляет работу, включает больше встроенных функций системы безопасности и работает с уже имеющимся программным обеспечением и оборудованием.

Работа в Интернете с Microsoft Edge. Microsoft Edge позволяет быстрее переходить от поиска информации к работе с ней. Пользователь может писать или печатать заметки прямо на web-страницах, а также делиться с ними, читать статьи без помех и сохранять понравившиеся материалы, чтобы позже с легкостью к ним вернуться.

Удобная организация рабочего стола. Пользователь может выполнять работу быстрее, удобнее организовав свой рабочий стол. Можно прикрепить одновременно до четырех элементов на одном экране и создавать виртуальные рабочие столы, если нужно больше места или надо сгруппировать элементы по проектам.

Новый Магазин Windows унифицирует процедуру совершения покупок на всех устройствах с Windows 10.

Встроенные приложения Windows 10 включает отличные встроенные приложения, например, «Карты», «Фотографии», «Почта», «Календарь», «Музыка», «Фильмы и ТВ-передачи». Эти приложения создают резервные копии данных в OneDrive, которые затем синхронизируются между всеми пользовательскими устройствами с Windows 10.

Функция Continuum. Пользователь может подключить монитор, мышь и клавиатуру, чтобы использовать телефон с Windows 10 как компьютер для работы или для просмотра фильмов на большом экране.

Функция Windows Hello. С Windows Hello устройство опознает пользователя по его внешнему виду, обеспечивая дополнительную безопасность, удобство и даже дружественное приветствие.

Доступные редакции Microsoft Windows 10:

  • Windows 10 Home — эта редакция предназначена для ПК, планшетов и гибридных устройств. Домашняя версия получила все анонсированные нововведения, включая Cortana, Microsoft Edge, Windows Hello, поддержку режима Continuum, набор новых универсальных приложений, таких как «Фотографии», «Музыка», «Видео», «Карты», «Почта» и «Календарь», а также Xbox.
  • Windows 10 Pro — это «десктопная» операционная система, разработанная на базе Windows 10 Home. Версия создана с оглядкой на нужды малого бизнеса, позволяет эффективно управлять устройствами и приложениями, защищать конфиденциальные данные, поддерживает сценарии максимально продуктивного удаленного и мобильного использования, позволяет воспользоваться различными облачными технологиями. С Windows 10 Pro можно использовать Windows Update для бизнеса, чтобы снизить стоимость обслуживания, получить полный контроль над установкой обновлений, максимальный быстрый доступ к обновлениям безопасности и новейшим инновациям Microsoft.
  • Версия Windows 10 Enterprise (на базе Windows 10 Pro) обладает продвинутыми функциями, созданными для удовлетворения потребностей средних и крупных организаций. В этой редакции особое внимание уделяется защите от современных угроз безопасности, поддерживается больший набор инструментов для управления устройствами, приложениями и операционной системой. Для этой редакции доступна бизнес-версия Windows Update, а также Long Term Servicing Branch — специальная ветка обновления для критически важных устройств и окружений.
  • Редакция Windows 10 Education предназначена образовательным учреждениям, может использоваться персоналом, администраторами, учителями и студентами. Эта редакция будет поставляться по специальной программе лицензирования, но школы и учащиеся смогут при желании обновить свои устройства с Windows 10 Home и Windows 10 Pro до Windows 10 Education.
  • Для небольших сенсорных устройств была разработана Windows 10 Mobile. В этой редакции будут доступны те же универсальные приложения, что входят в состав Windows 10 Home, а кроме того новая сенсорная версия Office. Некоторые новые устройства вместе с Windows 10 Mobile смогут использовать режим Continuum для телефонов. Тем, кто использует свой смартфон или планшет на работе, в Windows 10 Mobile подготовлены расширенные возможности по обеспечению максимальной продуктивности, безопасности и управляемости устройства.
  • Редакция Windows 10 Mobile Enterprise создана для крупного бизнеса, сочетает в себе все возможности Windows 10 Mobile с более гибкими инструментами для управления обновлениями. Кроме того, для этой реакции будут быстрее выпускаться обновления безопасности и различные инновационные функции.

Для небольших, простейших встраиваемых устройств будет предложена Windows 10 IoT Core, а специальные версии Windows 10 Enterprise и Windows 10 Mobile Enterprise будут предусмотрены для промышленных устройств вроде роботов, банкоматов, ручных терминалов и так далее.

Бессрочная электронная лицензия Windows 10 Professional для использования в организациях.

Существует несколько способов сократить затраты на разработку программного обеспечения без потери качества программных продуктов. Все зависит от того, как вы управляете этим процессом и помните ли о том, где скрыты возможные источники дополнительных расходов.

Разработка программного обеспечения обходится достаточно дорого. Для типичного проекта требуются специалисты с различными навыками и знаниями. Чтобы создать качественный продукт или решение, необходимы усилия руководителей проектов, бизнес-аналитиков, дизайнеров, разработчиков, инженеров-испытателей, специалистов по контролю качества и других. Кроме того, возможно, придется изменить приложение или добавить новые функции после начала проекта, что приведет к дополнительным затратам. Программе может потребоваться некоторый уровень интеграции со сторонними продуктами, и это также способствует увеличению расходов. Неудивительно, что вы можете столкнуться с постоянным ростом затрат.

Тем не менее существует несколько эффективных способов сократить затраты на разработку программного обеспечения без потери качества программных продуктов. Для этого необходимо знать факторы, определяющие затраты, и контролировать их.

Шаг первый: выбор модели разработки программного обеспечения

Важность выбора модели разработки программного обеспечения для эффективного управления затратами невозможно переоценить.

Предположим, вы придерживаетесь гибкой методики (https://www.scnsoft.com/blog/what-is-agile-software-development-from-customers-perspective). В этом случае не требуется определять весь проект с самого начала целиком: можно добавлять новые компоненты по ходу работы и вносить изменения на любой стадии. Гибкая методика (Agile) — лучший выбор для длительного и сложного проекта, так как изменения в подобных проектах неизбежны.

Однако, если для реализации проекта требуется менее полугода и вы абсолютно уверены в его масштабах, можно выбрать модель водопада. Далее мы сосредоточимся на гибкой методике, но некоторые советы будут полезны для всех.

Шаг второй: выбирайте функции на основе приоритетов

Арифметика простая: чем сложнее проект, тем больше стоимость. Лучший способ оптимизировать затраты — определить приоритеты функций и в первую очередь реализовать самые важные, отложив остальные на более поздний срок.

Определить приоритеты поможет метод анализа MoSCoW. Буквы аббревиатуры обозначают следующее:

Не добавляйте новых функций, если в этом нет необходимости. Следует также избегать сложных дорогостоящих компонентов, если вы не уверены, что они действительно пригодятся пользователям. Лучшее время подумать о расширении функциональности продукта — когда вы продемонстрировали отдачу от инвестиций или увеличили количество пользователей.

Чтобы понять, как действует приоритизация, рассмотрим пример. Допустим, вы хотите открыть интернет-магазин одежды. В первую очередь вам нужен хороший каталог с удобной классификацией продуктов, в котором указаны цены и показано, как выглядят товары. Добавьте службу доставки и различные методы оплаты, и ваши посетители начнут превращаться в покупателей.

После этого можно начать думать о добавлении новых функций, например раздела «Вам также может понравиться» с перечнем сопутствующих товаров и аксессуаров или специальных предложений для постоянных покупателей. Функция «Сформировать интернет-гардероб» поможет покупателям получить советы специалистов относительно покупок в вашем магазине. Список дополнительных возможностей может быть бесконечным, но не все они в интернет-магазине нужны, по крайней мере поначалу.

Шаг третий: составьте план изменений

Согласно теории Дарвина, выживают не самые сильные виды, а те, которые наиболее успешно приспосабливаются к изменениям. Для выживания на рынке программный продукт должен постоянно эволюционировать. Не только пользователям нужны новые и обновленные функции, постоянно меняются и системы, на которых выполняются программы. Возможно ли контролировать стоимость разработки программного обеспечения в условиях непрерывной адаптации программных продуктов к меняющейся среде?

Для успешного выполнения программного проекта требования должны формулироваться в процессе разработки, а не жестко определяться в самом начале. Кроме того, функциональность программного продукта должна гибко реагировать на изменения, а база кода предусматривать легкость добавления новых функций для адаптации программ к меняющимся нуждам потребителей. Таким образом можно удовлетворить требования к проекту с минимальными трудозатратами на перепроектирование, а программную архитектуру не нужно изменять для реализации новой функциональности.

Шаг четвертый: строгое ограничение расходов на тестирование

На тестирование обычно приходится более 30% затрат на разработку программного обеспечения. Однако существует несколько способов сократить расходы на тестирование.

  • Откажитесь от исчерпывающего тестирования. В первую очередь проверьте критическую функциональность продукта; менее важные функции можно будет протестировать позднее.
  • Автоматизируйте повторяющиеся процедуры испытаний, чтобы сократить число операций, выполняемых вручную.

В целях устранения ошибок начинайте проверку качества как можно раньше. Чем раньше обнаружены ошибки, тем дешевле они обходятся. Расходы на исправление ошибок на стадии сбора требований в 100 раз меньше, чем на производственной стадии.

Шаг пятый: контроль затрат на разработку программных продуктов внешних поставщиков

Вы можете поручить разработку программ своим инженерам или заказать у сторонней компании. Однако передавая заказ внешнему поставщику, приходится учитывать дополнительные риски, зависящие от способа организации работы над проектом.

Внешние компании обычно взимают плату в зависимости от времени, и чем дольше они работают, тем больше зарабатывают. Без достаточного контроля ваш проект может затянуться надолго. Чтобы избежать подобной ситуации, постарайтесь правильно организовать проект. Как это сделать?

  • В проектах Agile следует четко указать объем работ, выполняемых на каждом этапе. Таким образом вы, в сущности, получите несколько небольших проектов с фиксированной ценой вместо одного крупного и не поддающегося контролю.
  • Настаивайте на выполнении поставленных целей на каждом этапе.
  • Попросите участников группы сделать предварительную оценку и сравните ее с результатами. Регулярно анализируйте их и не стесняйтесь задавать вопросы. Это хороший способ вовремя выявить слабые места организации или недостаточную компетентность специалистов.

Если разработчики успешно достигают всех целей этапа, то высока вероятность получить в конечном итоге желаемый результат.

Список задач

При разработке программного обеспечения ключ к эффективному управлению — понимание факторов, определяющих затраты. Ниже перечислены основные рекомендации, которых следует придерживаться при определении стоимости.

  • В целях контроля стоимости изменений воспользуйтесь методологией Agile, чтобы приспособиться к изменчивым масштабам проекта и иметь возможность вносить изменения на любом этапе.
  • Приоритизируйте функции, вводя только необходимые и отложив остальные.
  • Убедитесь, что программная архитектура позволяет без труда вносить изменения, не изменяя всю систему.
  • Избегайте лишнего тестирования и заботьтесь о контроле качества с самого начала.
  • Помните о дополнительных рисках, связанных с разработкой внешним поставщиком.
  • Определите точный объем и бюджет для каждого этапа и контролируйте работу программистов, чтобы выяснить, могут ли они выполнить поставленную задачу.

Разработка программного обеспечения в рамках бюджета может быть сложной задачей, но она выполнима, если владеть методами управления растущими затратами в процессе реализации проекта.