В 80-е и 90-е годы в области разработки программного обеспечения (ПО) преобладали две тенденции:
- быстрый рост приложений, в том числе создаваемых для Web;
- расцвет инструментальных средств и парадигм (подходов к программированию).
Однако, основные этапы разработки программного обеспечения остались неизменными:
- получение задания на разработку;
- анализ требований;
- разработка ТЗ на программный продукт;
- анализ предметной области и создание спецификаций;
- описание целевого программного продукта;
- определение процесса разработки ПО, который будет использоваться в дальнейшем;
- организация управления проектом разработки;
- проектирование продукта;
- разработка продукта (т.е. программирование);
- тестирование частей продукта;
- интеграция частей продукта и тестирование продукта в целом;
- развертывание продукта;
- сопровождение продукта.
следующие составляющие
персонал (те, кем выполняется работа),
процесс (способ, которым это делается)
проект (совокупность действий, необходимая для создания артефакта)
продукт (артефакты)
Еще более подробно структура взаимосвязи єлементов программного проекта описана в документе SWEBOK (Guide to the Software Engineering Body of Knowledge — Руководство по Своду Знаний по Программной Инженерии), разрабатываемого с 1993 года организациями IEEE (Institute of Electrical and Electronics Engineers — Институт инженеров по электротехники и электроники) и ACM (Association of Computer Machinery — Ассоциация Вычислительной техники) [7].
Описание областей знаний в SWEBOK построено по иерархическому принципу, как результат структурной декомпозиции. Такое иерархическое построение обычно начисляет два-три уровня детализации, принятых для идентификации тех или других общепризнанных аспектов программной инженерии. При этом, структура декомпозиции областей знаний детализирована только к тому уровня, который нужный для понимания природы соответствующих тем и возможности поиска источников компетенции и других справочных данных и материалов. В принципе, полагает, что как такой «свод знаний» из программной инженерии представленный не в обсуждаемом руководстве (SWEBOK),а в первоисточниках ( как указанных в нем, так и представленных за его рамками) [7 ].
SWEBOK описывает 10 областей знаний:
Разработка программных продуктов
... проблемы. 2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 2.1. Разработка программных продуктов Процесс разработки программных продуктов - это сумма различных видов деятельности, необходимых для преобразования требований пользователей в программную систему . Основные этапы разработки программных продуктов: Требования – четкое определение того, ...
1. Software requirements — программные требования
2. Software design — дизайн (архитектура)
3. Software construction — конструирование программного обеспечения
4. Software testing — тестирование
5. Software maintenance — эксплуатация (поддержка) программного обеспечения
6. Software configuration management — конфигурационное управление
7. Software engineering management — управление в программной инженерии
8. Software engineering process — процессы программной инженерии
9. Software engineering tools and methods — инструменты и методы
10. Software quality — качество программного обеспечения.
В дополнение к ним SWEBOK также включает обзор сопредельных дисциплин, связь с которыми представлена как фундаментальная, важная и обоснованная для дисциплины программная инженерия:
1. Computer engineering — компьютерная инженерия
2. Computer science — компьютерные науки
3. Management — менеджмент
4. Mathematics — математика
5. Project management — управление проектом
6. Quality management — управление качеством
7. Software ergonimics — эргономика ПО
8. Systems engineering — системная инженерия
На рис. 5.1. представлены первые пять областей знаний, описываемых в документе SWEBOK, содержащем более 500 страниц [7].
Рис. 5.1. Первые пять областей знаний SWEBOK
Из всего вышесказанного следует, что процесс оценки стоимости разработки программных проектов представляет достаточно сложную и многокритериальную задачу. Поэтому применяются различные упрощенные методики такой оценки.
1. Определение трудоемкости разработки программного обеспечения
Нормирование работы в процессе создания ПО существенным образом затруднено в связи с существенно творческим характером работы программиста, а также других участников процесса разработки.
В число участников разработки ПО включается широкий спектр производителей работ:
system analyst
software system architect
в) проектировщик ПО ( designer ) или вычислительных машин (computer designer ), разработчик спецификаций к будущим программам (program designer );
builder, coder, developer
Поэтому трудоемкость разработки ПО может быть рассчитана на основе системы моделей с разной точностью оценки.
Например, трудоемкость разработки ПО можно рассчитать по формуле [7]:
, человеко-часов, (5.1)
Где to — расходы на работы на подготовке и описанию поставленной задачи (принимается = 50);
t и — расходы на работы по исследованию алгоритма решения задачи;
t а — расходы на работы по разработке блок-схемы алгоритма;
t п — расходы на работы по программированию по готовой блок-схеме;
t отл — расходы на работы по отладке программы на ЭВМ;
t д — расходы на работы по подготовке документации.
Составные расходы работы определяются с использованием условного числа операторов в разрабатываемом ПО.
Условное число операторов (подпрограмм):
, (5.2)
Где q — число операторов (исходных команд) в программном продукте;
С — коэффициент сложности программы;
p — коэффициент коррекции программы в ходе ее разработки (зависит от точности и корректности поставленной задачи — принимаем равным 0.06).
Коэффициент сложности программы определяется из таблицы 5.1 на пересечении «группы сложности» и «степени новизны» [7].
При этом новизна определяется по принципу:
- А — разработка принципиально новых задач;
- Б — разработка оригинальных программ;
- B — разработка программ с использованием типовых решений;
- Г — разовая типовая задача.
Сложность определяется исходя из типа решаемых задач: 1 — алгоритмы оптимизации и моделирования систем, 2 — задачи учета, отчетности и статистики, 3 — стандартные алгоритмы. Кроме того, в таблице указан коэффициент недостаточности описания программы, который потребуется чуть позже.
Таблица 5.1
Коэффициенты расчета трудоемкости
Язык программирования |
Группа сложности |
Степень новизны |
Коэф-фициент 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 |
||
3 |
1,38 |
1,26 |
1,15 |
0,69 |
1,5 |
||
Программа «Мониторинг результатов управления проектами с использованием фреймворка Ruby» написана на объектно-ориентированном языке высокого уровня Ruby, является принципиально новой разработкой, поэтому коэффициент сложности можно принять С = 1,38 .
q = 435; C = 1,38; p =0,06 .
Q =
Расходы на работы по исследованию алгоритма решения задачи t и определяется с учетом уточнения описания и квалификации программиста:
, человеко-часов, (5.2)
Где B — коэффициент увеличения расходов работы вследствие недостаточного описания задачи, берется из таблицы 5.1 и равен 1,2;
k — коэффициент квалификации программиста, обусловленный его стажем работы по данной специальности выбирается из таблицы 5.2 [7].
Таблица 5.2
Коэффициенты квалификации программиста
Опыт работы |
Коэффициент квалификации |
|
До двух лет |
0.8 |
|
2-3 года |
1 |
|
3-5 лет |
1.1 — 1.2 |
|
5-7 лет |
1.3 — 1.4 |
|
более 7 лет |
1.5 — 1.6 |
|
По таблице определяем коэффициент k = 0.8.
При: Q = 636,3; B = 1,2; k = 0,8.
t u = 12,7
Расходы на работы по разработке блок-схем алгоритма решения задачи:
, человеко-часов. (5.3)
При: k = 0,8
ta
Расходы на составление программы по готовой блок-схеме:
, человеко-часов. (5.4)
t n = 3 9 ,8
Расходы на работы по отладке программы на ЭВМ:
- при условии автономной отладки одной задачи:
, человеко-часов. (5.5)
- при условии комплексной отладки задачи:
, человеко-часов. (5.5)
t отл = 198,8 чел.-час.
Расходы на работы на подготовку документации:
, человеко-часов, (5.6)
Где t др — трудоемкость подготовки материалов и рукописи
, человеко-часов. (5.7)
t др = 53,0
t до — трудоемкость редактирования, печати и оформления документации
, человеко-часов. (5.8)
t д o = 39,8
Таким образом, при:
- to = 50;
- tu = 12,7;
- ta = 39,8;
- tn 39,8= ;
- tотл = 198,8;
- tдо = 39,8.
t =
2. Расходы на создание программного обеспечения
Расходы на создание ПО Кпо включают расходы на заработную плату исполнителя программы Ззп и расходов машинного времени, необходимое на отладку программы на ЭВМ:
, грн. (5.9)
Заработная плата исполнителей определяется по формуле:
, грн,(5.10)
где: t — общая трудоемкость, человеко-часов
С пр — средняя часовая заработная плата программиста, грн/час. Может быть рассчитана путем деления средней зарплаты по отрасли (4 000 грн.) на среднее количество дней в месяце (21 день) и на длительность рабочего дня (8 часов).
Следует отметить, что средняя зарплата программистов в Украине составляет $1500. Однако такую зарплату получают программисты с опытом работы от 2-х лет и выше. Поэтому рассматривается средняя зарплата в секторе начинающих программистов, так называемых «молодых» (junior), равную 4000 грн.
Ззп = 10 331,95 грн.
Стоимость машинного времени, необходимого для отладки программы на ЭВМ:
, грн, (5.11)
Где t отл — трудоемкость отладки программы на ЭВМ, ч. (tотл=198,8 )
С мч — стоимость машино-часов ЭВМ, грн/ч. Вычисляется как произведение времени отладки и затрат на оплату электроэнергии (28,02 кВт/коп в 2013 г.), потребляемой компьютером. Предполагается, что компьютер потребляет в среднем 200 вт/час. Оплата оператора отсутствует, так как разработка и отладка программы производится собственно разработчиком программы.
С мч = 11,1 грн.
Змв = 2214 грн.
К ПО = 12546,25 грн.
Ожидаемый период создания ПО:
, ме с,(5.12)
Где Bk — число исполнителей (один)
Fp — месячный фонд рабочего времени (при 40 часовой рабочей неделе
Fp = 176 часов).
Т = 2,4 мес.
3. Маркетинговые исследования рынка сбыта разработанного программного продукта
Программное обеспечение для управления проектами используется не только руководителями групп разработчиков программного обеспечения, но и рядовыми пользователями. Такое ПО может использоваться также для решения многих других задач. При использовании сетевого программного обеспечения управление работами по руководству группами существенно улучшается. К сетевому программному обеспечению для управления проектами (Web-Based Project Management Software) можно получить доступ через интранет или WAN/ЛВС, используя Веб-браузер. При этом не требуется установка других компонентов программного обеспечения на компьютере. Сетевое программное обеспечение может быть простым в использовании с (многопользовательскими) особенностями управления доступом. При этом в большинстве реализованных и используемых программных продуктах для управления проектами для всех ведомых проектов применяются инструменты для выявления проблем по отслеживанию ошибок, календарь, диаграммы Ганта, почтовое уведомление и многие другие [8].
Кроме большого количества лицензионных (платных) продуктов, существует достаточно большое количество программных продуктов с так называемыми «открытыми кодами» (open source).
Такие продукты доступны, как правило, бесплатно.
Например, на начало 2013 года среди более чем 50-ти программ с открытым кодом, десять наиболее эффективных были выстроены специалистами в следующей последовательности [9]:
1. Codendi
2. Redmine
3. ProjectPier
4. Trac
5. Project HQ
6/ Collabtive
7. eGroupWare
8. KForge
9. OpenGoo
10. ClockingIT
Все эти и другие программные продукты могут свободно (т.е. бесплатно) загружаться на компьютер пользователя и позволяют осуществлять интерактивное взаимодействие с командой исполнителей при управлении проектами. Кроме того, их можно использовать и индивидуально для решения частных задач.
Ввиду такой острой конкуренции маркетинг данного вида ПО достаточно сложен.
Решаемая в дипломе задача является специализированной, и поэтому для позиционирования ее на рынке следует искать группы разработчиков ПО, решающих подобные задачи.
4. Оценка экономической эффективности внедрения программного обеспечения для новой электронной информационной системы (ЭИС)
Этот расчет производится в том случае, если электронная информационная система (ИС) внедряется в отдел с уже имеющимися техническими средствами и предустановленными программными средствами.
Применительно к ИС группировать капитальные затраты можно следующим образом:
К = К пр + К тс + К лс + К пс + К иб + К уч + К во + К пл + К неучт , , (5.13)
где К пр — затраты на проектирование ИС;
К тс — затраты на технические средства управления;
К лс — затраты на создание линий связи локальных сетей;
К пс — затраты на программные средства;
К иб — затраты на формирование информационной базы;
К уч — затраты на обучение персонала;
К во — затраты на вспомогательное оборудование (устройства пожаротушения, источники бесперебойного питания и др.);
К пл — затраты на производственную площадь;
К неучт — неучтенные затраты, обычно составляют 7-8% от общих затрат.
Затраты на формирование информационной базы К иб относятся к формированию условно-постоянной информации.
Произведем расчет капитальных затрат:
Затраты на проектирование информационной системы
К пр = З ФОТП + З ОВФ ,
, (5.14)
где О П j — оклад j -го программиста. В разработке участвовал 1 человек, его оклад составляет 4000 грн.;
Т РПР j — общее время работы над ПР в месяцах (срок проектирования), ;
k Д — коэффициент дополнительной зарплаты, ;
k У — районный коэффициент, .
Таким образом,
З ФОТП = 4000 * 1 * (1 + 0) * (1 + 0,15) = 4600 грн.
Сумма начислений на заработную плату во внебюджетные фонды составляет:
З ОВФ = 0,262 * З ФОТП ,
З ОВФ = 0,262 * 4600 = 1205,2 грн.
К пр = 4600 + 1205,2 = 5805,2 грн..
Затраты на формирование информационной базы ( К иб ):
К иб = З ФОТЭ + З ОВФ ,
,(5.15)
где О Э j — оклад j -го эксперта. В разработке участвовало 3 эксперта, оклад 1 человека составляет 1700 грн.;
Т РПР j — общее время работы над ПР в месяцах (срок проектирования), Т РПР = 0,5;
Таким образом,
З ФОТЭ = 3 * 1700 * 0,5 * (1 + 0) * (1 + 0,15) = 2932,5 грн.
Сумма начислений на заработную плату во внебюджетные фонды составляет:
З ОВФ = 0,262 * З ФОТЭ ,
З ОВФ = 0,262 * 2932,5 = 768,3 грн.
К иб = 2932,5 + 768,3 = 3700,8 грн.
Затраты на обучение персонала:
К уч = З ФОТИ + З ОВФ ,
, (5.16)
где О И j — оклад j -го инженера, курирующего ИС. В разработке участвовал 1 человек, оклад составляет 2000 грн.;
Т РПР j — общее время работы над ПР в месяцах (срок обучения), Т РПР = 0,03;
Таким образом,
З ФОТИ = 2000 * 0,03 * (1 + 0) * (1 + 0,15) = 69 грн.
Сумма начислений на заработную плату во внебюджетные фонды составляет:
З ОВФ = 0,262 * З ФОТИ ,
З ОВФ = 0,262 * 69 = 18 грн.
К уч = 69 + 18 = 87 грн.
К тс , К пс , К во , К пл , К лс — данные показатели не будем учитывать в данном случае, так как при внедрения ИС они не повлияют на затраты. ИС внедряется в отдел с уже имеющимися техническими средствами и предустановленными программными средствами.
Итого получаем капитальных затрат:
К = (5805,2 + 3700,8 + 87) + 7% неучтенных затрат = 9593 + 671,5 = 10264,6 грн.
Эксплуатационные затраты ( С
Эксплуатационные затраты, в отличие от капитальных, являются повторяющимися.
Они повторяются в каждом цикле производства, а рассчитываются суммарно за год.
В состав эксплуатационных затрат на информационную систему входят следующие затраты:
C = С ао + С то + С ин + С эл + С пр , (5.17)
где С ао — амортизационные отчисления;
С то — затраты на техническое обслуживание, включая заработную плату персонала ИС;
С ин — затраты, связанные с использованием глобальных вычислительных сетей (Интернета и др.);
С эл — затраты на электроэнергию;
С пр — прочие затраты составляют примерно 7%.
Наибольший удельный вес в эксплуатационных затратах принадлежит заработной плате, амортизационным отчислениям, техническому обслуживанию.
Рассчитаем элементы эксплуатационных затрат:
Введение новой ИС не повлияет на такие затраты, как:
а) амортизационные отчисления ( С ао ) — их величина не изменится, так как не изменится парк оборудования;
б) затраты, связанные с использованием глобальных вычислительных сетей ( С ин ) — эти затраты будут неизменными, поэтому при проведении расчетов их тоже опускаем.
Затраты на техническое обслуживание, включая заработную плату персонала ИС:
- заработная плата инженера АСУ ( ЗП И ):
ЗП И = О С j * Т мес * (1 + k Д ) * (1 + k У ), (5.18)
где О С j — оклад j -го сотрудника. 1 человек, его оклад составляет 4500 грн.; Т мес , Т час — время, затрачиваемое сотрудником на обработку результатов, в месяцах и часах соответственно (Т час = 64 часа);
- , (5.19)
- число рабочих дней в месяц, 22 дня;
Ч рч — число рабочих часов в день, 8 часов;
k Д — коэффициент дополнительной зарплаты, k Д = 0;
k У — районный коэффициент, .
Таким образом,
ЗП И = 4500 * 0,36 * (1 + 0) * (1 + 0,15) = 1863 грн.
Сумма начислений на заработную плату во внебюджетные фонды составляет:
ОТ ВФ = 0,262 * ЗП И , (5.20)
ОТ ВФ = 0,262 * 1863 = 488 грн.
С то1 = 1863 + 488 = 2351 грн./год.
- заработная плата персонала ( ЗП П ):
ЗП П = О С j * Т мес * (1 + k Д ) * (1 + k У ), (5.21)
где О С j — оклад j -го сотрудника. 1 человек, его оклад составляет 6500 грн.;
Т мес , Т час — время, затрачиваемое сотрудником на обработку результатов, в месяцах и часах соответственно (Т час = 528 часов);
k Д — коэффициент дополнительной зарплаты, k Д = 0;
k У — районный коэффициент, .
Таким образом,
ЗП П = 6500 * 3 * (1 + 0) * (1 + 0,15) = 22425 грн.
Сумма начислений на заработную плату во внебюджетные фонды составляет:
ОТ ВФ = 0,262 * ЗП П , (5.22)
ОТ ВФ = 0,262 * 22425 = 5875 грн.
С то2 = 22425 + 5875 = 28300 грн./год.
С то = 2351 + 28300 = 30651 грн./год.
Затраты на электроэнергию:
Исходя из стоимости одного кВт/час в 2013 г.(28,02 кВт/коп в 2013 г.) положим, что годовые затраты составят:
С эл = 1800 грн./год
Тогда состав эксплуатационных затрат С составит:
С = С m о1 + С m о2 + С эл + 7% (5.23)
С = 2351 + 28300 + 1800 + 7%= 32451,5 + 7% = 34723 грн./год.
При разнонаправленных эффектах от реализации проекта может быть использован индивидуальный подход или экспертная оценка.
годовой экономический эффект (экономическая прибыль)
Э = Э год — П Э год — С — Е * К , (5.24)
где ?Э год — годовая экономия (прибыль), вызванная ЭИС, без учета эксплуатационных затрат на ЭИС, грн./г.;
С — эксплуатационные затраты на ИС, грн./г.;
К — единовременные затраты (капиталовложения), связанные с созданием ИС, грн.;
Е — норма прибыли на капитал (нормативная прибыльность), 1/г.;
П — годовые приведенные затраты на ЭИС, грн./г.
П = С + Е * К.
С точки зрения экономического содержания, величина Е состоит из нормы отдачи на капитал и нормы предпринимательского дохода. Величина Е в рыночных условиях не должна быть меньше годовой банковской процентной ставки.
Как известно, ?Э год — годовая экономия (прибыль), вызванная разработкой ИС, без учета эксплуатационных затрат на ИС, будет определяться по формуле:
П = С + К * Е
Расчет прямого экономического эффекта
Рассмотрим расчет прямого экономического эффекта , он сводится к следующему:
определяем разность в годовых приведенных затратах по базовому ( П 0 ) и предлагаемому (П 1 ) вариантам ЭИС:
Э прям = П 0 — П 1 = С зп — ?С -К * Е, (5.26)
где С зп — сокращение заработной платы управленческого персонала при внедрении ЭИС;
?С — суммарные эксплуатационные затраты на ЭИС за исключением заработной платы управленческого персонала.
Так как не предполагается понижать зарплату работникам или увольнять их при внедрении ЭИС, то:
С зп = С 0 зп — С 1 зп =0, (5.27)
где С 0 зп — заработная плата управленческого персонала в базовом варианте;
С 1 зп — заработная плата управленческого персонала в предлагаемом варианте.
Следовательно:
Э прям = 0 — 35596 = — 35596 грн.
Величина прямого экономического эффекта является недостаточной (даже отрицательной) для оправдания затрат на внедрение ИС. Это объясняется тем, что ИС создается с нуля и отсутствием экономии на заработной плате управленческого персонала.
В этом случае внедрение ИС целесообразно, только если есть уверенность в достаточно большом косвенном экономическом эффекте.
Расчет косвенного экономического эффекта
косвенного экономического эффекта
Данный расчет предполагает определение следующих составляющих:
Э косв = ?А+?С себ +?Ш, (5.28)
где ?А — годовой прирост выручки от реализации продукции, прочей реализации или внереализационной деятельности, связанной с ЭИС; ЭИС напрямую не влияет на увеличение выпуска продукции, она помогает сократить риски потерь документов и время, затрачиваемое на обработку;
?С себ — годовая экономия на себестоимости продукции объекта управления;
?Ш — сокращение штрафов и других непланируемых потерь за год.
Предположим, что общая сумма штрафов за год, вызванная потерей документов по вине отдела, равна примерно 95 000 грн. (до разработки ИС).
АИС позволит снизить эти потери на 80% в год.
Итого ?Ш = 19 000 грн. В структуре себестоимости общества основную долю занимают материальные затраты — 38% и затраты на оплату труда с отчислениями — 36%
Запланируем 3% сокращения затрат на оплату труда за счет отмены некоторых функций и 20% сокращения затрат на канцелярию. Для простоты расчета объединим экономию по энергии, содержанию оборудования и потерям и запланируем 1% экономии.
Для проведения расчетов необходима себестоимость работ, условно принимаем ее за 5 000 грн./мес., для удобства проведения расчетов.
Получаем:
?С к = 5000 * 38% — (38% * 500 — 20%) = 1700 грн./мес.
?С зппр =5000 * 36% — (36% * 5000 — 3%) = 1605 грн./мес.
?С проч = ?С э + ?С сэо + ?С док = 26% * 5000 — (26%*5000 — 1%) = 1120 грн./мес.
?С себ = 12*( ?С см + ?С зппр + ?С проч )=
12*(3040+3492+2574) = 53100 грн./год.
Если внедрение ИС не влияет на какую-либо статью затрат в составе себестоимости, то эта статья, очевидно, не фигурирует в расчете косвенного экономического эффекта.
Э косв = ?А + ?С себ + ?Ш = 0 + 53100 + 19000 = 72100 грн.
?Э год = Э косв + Э прям = 72100 — 35595 = 36504 грн.
Э = ?Э год — П = 36504 — 35595 = 909 грн.
Годовой экономический эффект представляет собой абсолютный показатель эффективности. Система считается эффективной, если Э>0 .
Вспомогательными показателями экономической эффективности являются:
- Расчетная прибыльность (рентабельность) Р :
Р = ?Э год / К = 36504 / 10264 = 3,6 (5.29)
- Срок окупаемости Т :
Т = 1 / Р = К / ?Э год = 0,28 (5.30)
Таким образом, можно сделать вывод, что проект окупится через 3 месяца.
После внедрения данной ИС сократятся затраты по материальным расходам на 20%. Это приведет к снижению условной общей себестоимости работ отдела, данная экономия позволит окупить создание и внедрение ИС. Предполагаемое время окупаемости проекта составляет три месяца.