Пояснительная записка (1191409), страница 7
Текст из файла (страница 7)
Оценка трудозатрат по разработке программной компоненты может служить основой для предварительного планирования всего проекта.
Экономический эффект проекта характеризует положительный абсолютный экономический результат, полученный при внедрении проекта. Это могут быть следующие параметры: увеличение доходов, увеличение прибыли предприятия, снижение его текущих затрат или ликвидация экономического ущерба от некачественной работы оборудования, устройств электроснабжения или систем управления производством.
Экономический эффект от внедрения алгоритма шифрования в существующую информационную систему может быть лишь косвенным, так как внедряемый алгоритм сам по себе не является источником дохода. В данном случае алгоритм шифрования минимизирует риски возникновения угроз безопасности информации (такие как инсайдерские или хакерские атаки), а, следовательно, уменьшает ущерб, который может быть причинен при появлении утечек информации в информационной системе.
При разработке программного обеспечения использовалась спиральная стратегия разработки. Особенность данного типа стратегии заключается в том, что весь процесс разработки представляет собой последовательность версий. В начале проекта определяются начальные требования не в полном объеме и по ходу проекта они могут меняться, заставляя корректировать план работ.
Данная стратегия позволяет заказчику быстрее увидеть работоспособный продукт, а также обеспечивает большую гибкость в управлении проектом (так как всегда есть обратная связь с разработчиком). В данном случае уменьшаются риски заказчика, так как при несоблюдении обязательств со стороны разработчика, заказчик может завершить поддержку данного проекта без значительных финансовых затрат.
Послe нaчaлa работы и выпoлнения определенного числа требoваний становятся известны реальные временные сроки выполнения запланированных работ. Реальное время выполнения работ может отличаться от запланированного времени вследствие ошибок в объёме работ или мощности используемых ресурсов.
Следовательно, задача оценки трудозатрат состоит в нахождении достоверных оценок длительности и стоимости разработки, удовлетворяющих следующим требованиям:
-
оценка должна оценивать как новую работу, так и работу по внесению изменений и переработку алгоритмов работы компоненты;
-
оценка должна учитывать квалификацию сотрудников;
-
оценка должна учитывать расходы на весь цикл создания программного продукта, включая руководство процессом и этап тестирования;
-
необходимо иметь оценку точности.
При создании ПО огромную роль играют затраты. Затраты бывают следующих видов:
-
основные, непосредственно связанные с процессом разработки и эксплуатации ПО;
-
накладные, носящие обеспечивающий характер;
-
прямые затраты, учитывающиеся при создании конкретного экземпляра продукта;
-
косвенные, которые связаны с созданием нескольких продуктов;
-
капитальные, разовые затраты, необходимые для приобретения программного продукта, оборудования, производственных помещений, требуемого инвентаря и т.д.;
-
текущие затраты, рассчитываются из заработной платы работников и других расходов, которые связаны с обслуживанием при выполнении проводимых работ.
При группировке затрат на разработку ПО следует исходить из общего положения в определении статей расходов для традиционной продукции. Так, выделяют следующие статьи расходов:
-
затраты по заработной плате (основной, дополнительной и все отчисления на социальные нужды);
-
затраты на технологию (на инструментальные средства, используемые при создании ПО), в основном затраты на приобретение и освоение программных продуктов, используемых как инструментальные средства;
-
расходы на содержание и эксплуатацию технических средств разработки, эксплуатацию и сопровождение (затраты на машинное время);
-
затраты на материалы (информационные носители);
-
затраты на энергию, на использование каналов связи (для отдельных видов);
-
общепроизводственные расходы (затраты на управленческий персонал, на содержание помещений);
-
непроизводственные расходы (затраты, связанные с рекламой, поиском заказчиков, поставками конкретных экземпляров).
Основные отличия в расчете затрат на программную продукцию от традиционных продуктов состоят в большой динамичности и большой неопределенности результата в заданные сроки, особенно на ранних стадиях разработки и отсутствием стандартизированных методов создания программного обеспечения, что приводит к разнообразию приемов и методов разработки.
Затраты на создание программного обеспечения можно представить как сумма из затрат на оплату труда разработчика, затрат на оплату машинного времени и общих затрат [13]. Затраты на создание программного обеспечения можно рассчитать, используя формулу (5.1):
Зспп = Ззп + Змв + Зосв, (5.1)
где Зспп – затраты на создание программного продукта;
Ззп – затраты на оплату труда разработчика программы;
Змв – затраты на оплату машинного времени;
Зосв – затраты на электроэнергию по освещению.
Затраты на оплату машинного времени и затраты на электроэнергию учитываются тогда, когда разработчик программного обеспечения для разработки использует ресурсы заказчика (рабочие станции, процессорное время и т.д.). В нашем случае, разработка программного обеспечения ведется на заказ, то есть, разработчик для выполнения поставленной задачи использует собственные ресурсы, следовательно, показатели Змв и Зосв в расчетах можно не учитывать.
Для того чтобы определить затраты на оплату труда разработчика программы, необходимо определить следующие параметры:
-
трудоемкость создания программного обеспечения;
-
средняя часовая оплата инженера-программиста.
После определения необходимых параметров, необходимо воспользоваться формулой (5.2):
Ззп.осн = t × Tчас, (5.2)
где t – трудоемкость создания программного проекта;
Тчас – средняя часовая оплата программиста.
Особенность разрабатываемого проекта заключается в том, что для его разработки используется программная платформа JavaFX на языке Java. Спрос на разработчиков Java остается стабильным на протяжении нескольких лет.
Анализируя информацию о средней заработной плате Java разработчика в России с мая 2016-го года по апрель 2017-го года, можно сделать вывод о том, что средняя месячная заработная плата составляет 75 000 рублей. В качестве источника информации о средней заработной плате Java разработчика был выбран электронный ресурс russia.trud.com [14].
Анализируя информацию по вакансии Java разработчика в России, можно сделать вывод о том, что средняя месячная заработная плата составляет 75 000 рублей. Для расчета затрат на создание программного обеспечения необходимо узнать среднюю часовую оплату.
Среднюю часовую оплату разработчика можно определить, исходя из среднемесячной заработной платы, получаемой разработчиком при восьмичасовом рабочем дне и пятидневной рабочей неделе (в месяц в среднем 22 рабочих дня):
(5.3)
где Змес – среднемесячная заработная плата разработчика, руб.;
Проведя расчеты по формуле (5.3) получаем, что средняя часовая оплата .NET разработчика составляет 426 руб/час.
Следующим этапом необходимо определить трудоемкость разработки программного обеспечения. Сделать это можно, используя формулу (5.4):
Трудоёмкость разработки программного продукта можно определить следующим образом:
t = tи + tа + tб + tп + tд + tот, (5.4)
где tи – затраты труда на изучение описания задачи;
tа – затраты труда на разработку алгоритма решения задачи;
tб – затраты труда на разработку блок-схемы алгоритма решения задачи;
tп – затраты труда на составление программы по готовой блок-схеме;
tд – затраты труда на подготовку документации задачи;
tот – затраты труда на отладку программы на ЭВМ при комплексной отладке задачи.
Для того чтобы определить параметры, которые были перечислены в формуле ниже, необходимо определить 4 коэффициента, учитывающие: условное число команд в зависимости от типа задачи, новизну и сложность программы, увеличение затрат труда вследствие недостаточного описания задачи и квалификацию разработчика.
Также для вычисления составляющих затрат будет использоваться параметр, который отражает условное количество операторов в программном обеспечении, его можно вычислить по формуле (5.5):
Q = q × c, (5.5)
где q – коэффициент, учитывающий условное число команд в зависимости от типа задачи;
с – коэффициент, учитывающий новизну и сложность программы.
Значение коэффициента, учитывающего условное число команд, в зависимости от типа задачи (q), можно определить исходя из таблицы 5.1 [12].
Таблица 5.1 – Значения коэффициента q
Тип задачи | Пределы изменений коэффициента |
Задачи учета | от 1400 до 1500 |
Задачи оперативного управления | от 1500 до 1700 |
Задачи моделирования | от 1700 до 3000 |
Задачи планирования | от 3000 до 3500 |
Многовариантные задачи | от 4500 до 5000 |
Комплексные задачи | от 5000 до 5500 |
Коэффициент q определяется в результате экспертной оценки сложности реализации разработанных алгоритмов, на выбранном языке программирования. Разрабатываемое программное обеспечение должно выполнять задачу по извлечению информации из изображения, сжатого по алгоритму JPEG. Данная задача по типу относится к задачам моделирования, следовательно, значение коэффициента может изменяться от 1700 до 3000. Так как задача моделирования облачных вычислений является задачей моделирования средней сложности, в результате экспертной оценки было решено принять коэффициент q равным 2100.
Коэффициент, учитывающий новизну и сложность программы, определяется исходя из таблицы 5.2 на пересечении групп сложности и степени новизны [12, 14].
Программные продукты по степени новизны могут быть отнесены к одной из четырех групп:
-
группа А – разработка принципиально новых задач;
-
группа Б – разработка оригинальных программ;
-
группа В – разработка программ с использованием типовых решений;
-
группа Г – разовая типовая задача.
По степени сложности программные продукты могут быть отнесены к одной из трёх групп:
-
1 – алгоритмы оптимизации и моделирования систем;
-
2 – задачи учета, отчетности и статистики;
-
3 – стандартные алгоритмы.
Таблица 5.2 – Значение коэффициентов c и B
Язык программирования | Группа сложности | Степень новизны | Коэффициент В | ||||
А | Б | В | Г | ||||
Высокого уровня | 1 | 1,38 | 1,26 | 1,15 | 0,69 | 1,2 | |
2 | 1,30 | 1,19 | 1,08 | 0,65 | 1,35 | ||
3 | 1,20 | 1,10 | 1,00 | 0,60 | 1,5 | ||
Низкого уровня | 1 | 1,58 | 1,45 | 1,32 | 0,79 | 1,2 | |
2 | 1,49 | 1,37 | 1,24 | 0,74 | 1,35 |
Окончание таблицы 5.2 | |||||||
Язык программирования | Группа сложности | Степень новизны | Коэффициент В | ||||
А | Б | В | Г | ||||
Низкого уровня | 3 | 1,38 | 1,26 | 1,15 | 0,69 | 1,5 |
В разрабатываемом программном обеспечении реализуется алгоритм декодирования изображения, сжатого по алгоритму JPEG. Реализация данного алгоритма является оригинальным продуктом, не считая данную разработку. Следовательно, можно оценить степень новизны как разработка оригинальных программ (группа Б), а по степени сложности отнести к группе 1, так как в программном обеспечении реализуются некоторые процессы моделирования, а также при разработке применяется язык высокого уровня – Java.
Объединив полученные данные, можно определить значение коэффициента c по таблице 5.2. Значение коэффициента c равно 1,26.