Пояснительная записка (1210525), страница 7
Текст из файла (страница 7)
Рисунок 5.16 Ошибочное прочтение сообщения
6 Экономическая часть. Расчет трудоемкости и стоимости проекта
В данном разделе дипломного проекта будут рассчитаны трудоемкость и стоимость создания разрабатываемого программного обеспечения.
Экономический эффект от внедрения программного обеспечения чаще всего является косвенным, так как внедренные средства как правило не являются прямым источником дохода, а являются либо вспомогательным средством получения прибыли, либо помогают минимизировать затраты. В связи с этим необходимо отметить, что применение рассматриваемого стеганографического метода прямым образом не влияет на экономические показатели, но позволяет снизить риски нарушения конфиденциальности при передаче информации.
Точная структура затрат на создание программного обеспечения существенно зависит от процессов, используемых при разработке ПО, а также от типа, разрабатываемого программного продукта. В общем случае процесс разработки можно разделить на следующие этапы:
-
анализ требований;
-
определение возможностей;
-
разработка архитектуры;
-
проектирование интерфейсов;
-
кодирование и сборка;
-
составление документации;
-
тестирование продукта.
Исходя из этого, задача оценки трудозатрат состоит в нахождении для каждого этапа достоверных оценок длительности и стоимости, удовлетворяющих следующим требованиям:
-
оценка должна оценивать, как новую работу, так и работу по внесению изменений и переработку алгоритмов работы компоненты;
-
оценка должна учитывать квалификацию сотрудников;
-
оценка должна учитывать расходы на весь цикл создания программной компоненты, включая руководство процессом и этап тестирования;
-
необходимо иметь оценку точности.
При создании ПО немало важную роль играют затраты. Затраты могут быть следующих видов:
-
основные, непосредственно связанные с процессом разработки и эксплуатации ПО;
-
накладные, носящие обеспечивающий характер;
-
прямые затраты, которые могут быть учтены при создании конкретного экземпляра продукта;
-
косвенные, связанные с созданием нескольких продуктов;
-
капитальные, разовые затраты, необходимые для приобретения программного продукта, оборудования, производственных помещений, требуемого инвентаря и т.д.;
-
текущие затраты, складываются из заработной платы работников и других расходов, связанных с обслуживанием при выполнении проводимых работ.
-
При группировке затрат на разработку ПО следует исходить из общего положения в определении статей расходов для традиционной продукции. Так, выделяют следующие статьи расходов:
-
затраты по заработной плате (основной, дополнительной и все отчисления на социальные нужды);
-
затраты на технологию (на инструментальные средства, используемые при создании ПО), в основном затраты на приобретение и освоение программных продуктов, используемых как инструментальные средства;
-
расходы на содержание и эксплуатацию технических средств разработки, эксплуатацию и сопровождение (затраты на машинное время);
-
затраты на материалы (информационные носители);
-
затраты на энергию, на использование каналов связи (для отдельных видов);
-
общепроизводственные расходы (затраты на управленческий персонал, на содержание помещений);
-
непроизводственные расходы (затраты, связанные с рекламой, поиском заказчиков, поставками конкретных экземпляров).
Основные отличия в расчете затрат на программную продукцию от традиционных продуктов состоят в следующем:
-
большая динамичность и большая неопределенность результата в заданные сроки, особенно на ранних стадиях разработки;
-
отсутствует сложившаяся технологическая база для создания программной продукции, что приводит к разнообразию приемов и методов разработки при создании схожей продукции различными разработчиками.
Затраты на создание программного обеспечения складываются из расходов по оплате труда разработчика программы и расходов по оплате машинного времени при отладке программы и общих затрат:
Зспп = Ззп + Змв + Зосв, (6.1)
где Зспп – затраты на создание программного продукта;
Ззп – затраты на оплату труда разработчика программы;
Змв – затраты на оплату машинного времени;
Зосв– затраты на электроэнергию по освещению.
Предполагается, что разработка будет вестись на заказ, и разработчик использует свое оборудование, поэтому показатели затрат на оплату машинного времени и электроэнергии по освещению не учитываются.
Основная часть проекта будет реализована с помощью языка Java на базе Spring Framework. Выбор обусловлен тем, что Spring предоставляет большую свободу Java-разработчикам в проектировании. Помимо этого, существуют хорошо документированные и лёгкие в использовании средства решения проблем, возникающих при создании приложений различного масштаба. По этим причинам Spring приобрёл большую популярность и признаётся разработчиками как стратегически важный фреймворк.
Расходы на оплату труда разработчика программы определяются путем умножения трудоёмкости создания программного продукта на среднюю часовую оплату программиста:
Ззп.осн = t × Tчас, (6.2)
где t – трудоемкость создания программного проекта;
Тчас – средняя часовая оплата программиста.
Трудоёмкость разработки программного продукта можно определить следующим образом:
t = tи + tа + tб + tп + tд + tот, (6.3)
где tи– затраты труда на изучение описания задачи;
tа– затраты труда на разработку алгоритма решения задачи;
tб– затраты труда на разработку блок-схемы алгоритма решения задачи;
tп– затраты труда на составление программы по готовой блок-схеме;
tд– затраты труда на подготовку документации задачи;
tот– затраты труда на отладку программы на ЭВМ при комплексной отладке задачи.
Составляющие затрат, в свою очередь можно вычислить через условное число операторов (Q). Условное число команд определяется по формуле 6.4:
Q = q × c, (6.4)
где q–коэффициент, учитывающий условное число команд в зависимости от типа задачи;
с –коэффициент, учитывающий новизну и сложность программы.
Значение коэффициента, учитывающего условное число команд, в зависимости от типа задачи (q), можно определить исходя из таблицы 6.1.
Таблица 6.1 – Значения коэффициента q
| Тип задачи | Пределы изменений коэффициента |
| Задачи учета | от 1400 до 1500 |
| Задачи оперативного управления | от 1500 до 1700 |
| Задачи моделирования | от 1700 до 3000 |
| Задачи планирования | от 3000 до 3500 |
| Многовариантные задачи | от 4500 до 5000 |
| Комплексные задачи | от 5000 до 5500 |
Разрабатываемое решение следует отнести к типу задач оперативного управления, поэтому необходимо выбрать значение коэффициента q равным 1600.
Программные продукты по степени новизны могут быть отнесены к одной из четырех групп:
-
группа А–разработка принципиально новых задач;
-
группа Б–разработка оригинальных программ;
-
группа В–разработка программ с использованием типовых решений;
-
группа Г –разовая типовая задача.
По степени сложности программные продукты могут быть отнесены к одной из трёх групп:
-
алгоритмы оптимизации и моделирования систем;
-
задачи учета, отчетности и статистики;
-
стандартные алгоритмы.
Таблица 6.2 – Значение коэффициента С
| Язык Программирования | Группа сложности | Степень новизны | Коэффициент В | ||||
| А | Б | В | Г | ||||
| Высокого уровня | 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 | ||
| 3 | 1,38 | 1,26 | 1,15 | 0,69 | 1,5 | ||
Создаваемый программный комплекс по степени новизны относится к разработке оригинальных программ (группа А), а по степени сложности к группе 2.
Тогда, по таблице 6.2 коэффициент с = 1,3.
Далее, для определения условного числа команд Q необходимо воспользоваться формулой (6.4):
Q = 1600×1,3=2080 (6.4)
Затраты труда на изучение описания задачи с учётом уточнения описания и квалификации программиста определяются по формуле 6.5:
tи = Q × B / (75…85 × K), (6.5)
где B – коэффициент увеличения затрат труда вследствие недостаточного описания задачи, уточнений и некоторой не доработки;
K – коэффициент квалификации разработчика.
Коэффициент увеличения затрат труда вследствие недостаточного описания задачи, уточнений и некоторой недоработки равен 1,35 (по таблице 6.2). Определить значение коэффициента квалификации разработчика (К) можно по данным таблицы 6.3.
Таблица 6.3 – Коэффициент квалификации разработчика
| Опыт работы | Коэффициент квалификации |
| До двух лет | 0.8 |
| от 2 до 3 лет | 1 |
| от 3 до 5 лет | от 1.1 до 1.2 |
| от 5 до 7 лет | от 1.3 до 1.4 |
| более 7 лет | от 1.5 до 1.6 |
Исходя из данных таблицы 6.3 и времени существования Spring Framework 4 (3 года), коэффициент квалификации разработчика следует брать равным 1.
Таким образом, по формуле (6.5), получим:
tи = 2080×1,35/(80×1) = 35.1 (чел-час). (6.5)
Затраты труда на разработку алгоритма решения задачи определяются по формуле 6.6:
tа = Q/(60...75 × K) (6.6)
tа = 2080/ (70×1) = 29,7 (чел-час).
Затраты труда на разработку блок-схемы алгоритма решения задачи вычислим следующим образом (формула 6.7):
tб = Q /(60...75 × K) (6.7)















