Министерство образования и науки РФ
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра автоматизированных систем управления (АСУ)
Миньков С.Л.
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
Лабораторный практикум
Часть 2
Томск 2014
Миньков С.Л.
Программная инженерия. Лабораторный практикум. Часть 2: учебное пособие – Томск: ТУСУР, 2014. – 40 с.
Содержит методические указания к выполнению лабораторных работ по дисциплине «Программная инженерия» для направления подготовки бакалавров 230700 «Прикладная информатика». Рекомендуется для всех форм обучения, в том числе с применением дистанционных технологий.
Миньков С.Л., Иллюстрация на обложке: http://ru.123rf.com/photo_7066570_software-word-collage-on-white-background.html
СОДЕРЖАНИЕ
Лабораторная работа 1 АВТОМАТИЗАЦИЯ РАСЧЕТА ТЕХНИКОЭКОНОМИЧЕСКОГО ОБОСНОВАНИЯ ПРОЕКТА1.1 Оценка конкурентоспособности проекта в сравнении с аналогом
1.2 Планирование комплекса работ по разработке темы и оценка трудоемкости... 1.3 Расчет затрат на разработку проекта
1.4 Расчет эксплуатационных затрат
1.5 Расчет показателей экономической эффективности
Задание
Лабораторная работа 2. КОНСТРУКТИВНАЯ МОДЕЛЬ СТОИМОСТИ COCOMO
2.1. COCOMO
2.2. COCOMO II
Задание
Приложение (справочное) Некоторые примеры автоматизации расчета СОСОМО
1. Интерфейс онлайн-калькулятора
2. Интерфейс программы-калькулятора Costar 7.0
ВВЕДЕНИЕ
Экономика разработки программных продуктов – одна из составляющих программной инженерии. В главе 23 «Оценка стоимости программного продукта» классического учебника И. Соммервилла «Инженерия программного обеспечения» [1] подчеркивается, что менеджеры проекта должны уметь отвечать на вопросы:1) Какие затраты необходимы для выполнения проекта?
2) Сколько это займет времени?
3) Какова стоимость выполнения проекта?
Во второй части лабораторного практикума по дисциплине «Программная инженерия», предназначенного для студентов, обучающихся по направлению подготовки бакалавров «Прикладная информатика», предлагаются лабораторные работы по изучению методов оценки трудовых и временных затрат на разработку программных продуктов (в частности, модели Б. Боэма) с дальнейшей автоматизацией расчета этих затрат и оценки экономической эффективности проекта.
При составлении лабораторного практикума использован опыт преподавания дисциплин «Разработка и применение программных средств и информационных технологий» и «Программная инженерия» студентам факультета систем управления Томского государственного университета систем управления и радиоэлектроники и факультета инновационных технологий Национального исследовательского Томского государственного университета.
Лабораторная работа
АВТОМАТИЗАЦИЯ РАСЧЕТА ТЕХНИКО-ЭКОНОМИЧЕСКОГО
ОБОСНОВАНИЯ ПРОЕКТА
Цель работы: изучить структуру технико-экономического обоснования эффективности проекта по разработке автоматизированной информационной системы на основе сравнения с аналогом и автоматизировать процесс расчета ТЭО.Технико-экономическое обоснование (ТЭО) – это анализ, расчет, оценка экономической целесообразности осуществления предлагаемого проекта, в данном случае – проекта по разработке автоматизированной информационной системы. ТЭО основано на сопоставительной оценке затрат и результатов, установлении эффективности использования, срока окупаемости вложений.
Технико-экономическое обоснование является необходимым для каждого инвестора исследованием, в ходе подготовки которого проводится ряд работ по изучению и анализу всех составляющих инвестиционного проекта и разработке сроков возврата вложенных в бизнес средств.
В качестве примера рассмотрено технико-экономическое обоснование разработки автоматизированной системы контроля договоров на поставку материально-технических ресурсов на предприятии ООО «Стройсервис» [2].
1.1 Оценка конкурентоспособности проекта в сравнении с аналогом В качестве программы-аналога для сравнения при разработке проекта принята программа «Dogo Pro» (производитель – компания «InterBuild»).
Эта разработка принята в качестве базового варианта исходя из трех факторов:
1) смежный профиль;
2) соответствие требованиям технического задания проекта;
3) доступность для исследования и сравнения с разрабатываемым проектом реальной версии программы.
Для оценки конкурентоспособности разрабатываемого продукта необходимо провести анализ и сравнение с выбранным аналогом по функциональному назначению, основным техническим и эксплуатационным параметрам, областям применения. Подобный анализ осуществляется с помощью оценки эксплуатационно-технического уровня разрабатываемого продукта.
Эксплуатационно-технический уровень (ЭТУ) разрабатываемого продукта – это обобщенная характеристика его эксплуатационных свойств, возможностей, степени новизны, являющихся основой качества продукта. Для определения ЭТУ продукта можно использовать индекс эксплуатационнотехнического уровня JЭТУ, который рассчитывается как сумма частных индексов, куда входят показатели качества программного продукта. Для учета значимости отдельных параметров применяется балльно-индексный метод.
где JЭТУ – комплексный показатель качества продукта по группе показателей;
n – число рассматриваемых показателей;
Вj – коэффициент весомости j-го показателя в долях единицы, назначаемый в соответствии с потребностями организации-заказчика программного продукта;
Xj – экспертная оценка j-го показателя качества по выбранной шкале оценивания.
В таблице 2.1 представлены результаты расчета балльно-индексным методом при пятибалльной шкале оценивания. Показатели качества выбираются в соответствии с деревом характеристик качества программного изделия (стандарт «ГОСТ Р ИСО/МЭК 9126-93. Информационная технология.
Оценка программного продукта. Характеристики качества и руководство по их применению» (рис. 1.1).
Таблица 1.1 – Расчет показателя качества балльно-индексным методом интерфейс) требованиям) заказчика Отношение двух найденных индексов называют коэффициентом технического уровня (КТУ) Аk первого программного продукта по отношению ко второму:
Так как КТУ больше 1, то разработка проекта с технической точки зрения оправдана.
Рисунок 1.1 - Дерево характеристик качества программного изделия 1.2 Планирование комплекса работ по разработке темы и оценка трудоемкости Для разработки было задействовано два человека: руководитель проекта и исполнитель (инженер-программист). Руководитель выполняет постановку задачи, курирует ход работ и дает необходимые консультации при разработке системы. Исполнитель отвечает за проектирование информационного обеспечения, разработку структур баз данных, реализацию вычислительных алгоритмов в виде завершенного продукта, разработку интерфейсных блоков и отладку программы.
Выбор комплекса работ по разработке проекта производится в соответствии со стандартом «ГОСТ Р ИСО/МЭК 12207-99 Информационная технология. Процессы жизненного цикла программных средств», устанавливающим стадии разработки программных продуктов, и приведен в таблице 1.1.
Таблица 1.2 – Комплекс работ по разработке проекта 1. Подготовка процесса разработки и анализ требований 1.1 Исследование и обоснование разработки 1.2 Поиск аналогов и прототипов 1.3 Анализ требований 2. Проектирование 3. Программирование и тестирование программных модулей 4. Оформление рабочей документации На основе данных таблицы 1.2 разработан календарный график выполнения работ (таблица 1.3), показывающий последовательность и взаимосвязь выполнения комплекса работ (с учетом воскресенья; можно брать без учета воскресенья и праздничных дней).
Таблица 1.3 - Календарный график выполнения работ Содержание работы Исполнители 1 Постановка задачи 2 Сбор исходных данных программных средств принципиальной необходимости разработки 6 Определение структуры средств и программных средств реализации утверждение технического задания программы программирования жизнедеятельности 1.3 Расчет затрат на разработку проекта Капитальные вложения, связанные с автоматизацией обработки информации, рассчитываются по формуле где Кп - капитальные вложения на проектирование, руб.;
Кр - капитальные вложения на реализацию проекта, руб.
Предпроизводственные затраты представляют собой единовременные расходы на разработку обеспечивающих или функциональных систем или элементов на всех этапах проектирования, а также затраты на их усовершенствование, т.е. на проведение обследования и обработку материалов исследования, разработку технического задания, разработку технического и рабочего проекта системы и ее опытного внедрения. Сюда включаются затраты на разработку алгоритмов и программ, стоимость разработок по привязке типовых проектных решений (ТПР) и пакетов прикладных программ (ППП) к конкретному объекту автоматизации.
Суммарные затраты на проектирование системы и ее разработку и отладку на компьютере определяются по формуле где m – количество работников, участвующих в разработке проекта;
Зoi – затраты на основную заработную плату работника i-й категории, руб.;
Wd – коэффициент, учитывающий дополнительную заработную плату в долях к основной заработной плате ( Wd = 0,4 и состоит из коэффициента отпускных, равного 0,1, и районного коэффициента – 0,3 для Томска);
Wс – коэффициент, учитывающий отчисления на социальные нужды, в долях к сумме основной и дополнительной заработной платы разработчиков:
страховые взносы в Пенсионный фонд – 0,22, страховые взносы в ФСС – 0,029, страховые взносы в ФФОМС – 0,051, страховые взносы на производственный травматизм – 0,002; итого Wc =0,302 (в соответствии с Федеральным законом 379-ФЗ от 03.12.2011г,).
Wн – коэффициент, учитывающий накладные расходы организации, в долях к основной заработной плате разработчиков (принимается по фактическим данным, WН = 0,6);
СM – затраты на материалы;
Мв – затраты на использование машинного времени.
Затраты на основную заработную плату работника i-й категории:
где Зднi – среднедневная заработная плата работника i-й категории, руб./дн.;
ti – количество дней, отработанных работником i-й категории.
Затраты времени на разработку системы по каждому исполнителю принимаются, исходя из его загрузки по календарному графику выполнения работ (табл. 1.3).
Расчет основной заработной платы разработчиков проекта приведен в таблице 1.4 из расчета, что в месяце в среднем 21 рабочий день.
Таблица 1.4 – Основная заработная плата разработчиков Примечание. С сентября 2013 г. в бюджетных образовательных учреждениях введены следующие должностные оклады профессорскопреподавательского состава: преподаватель 14000 руб., доцент, канд.н. – 19000 руб., профессор, докт.н. – 24000 руб.
Ввиду того, что проектируемая информационная система должна быть запрограммирована и отлажена с помощью компьютеров, к суммарным затратам на разработку добавляются затраты на использование машинного времени, исчисляемые как:
где tмв – машинное время компьютера, необходимое для разработки программного продукта; tмв = 460 час.;
Sмч – стоимость 1 часа машинного времени: Sмч=20 руб./час.; (рассчитать или использовать среднюю стоимость платного доступа к ПК в вашем городе);
Км – коэффициент мультипрограммности (показывает долю машинного времени, отводимого непосредственно на работу над проектом); Км=1.
Материалы, приобретенные в процессе выполнения работы, и их стоимость приведены в таблице 1.5.
Таблица 1.5 - Затраты на материалы принтера Таким образом, капитальные вложения на проектирование равны:
Кп = (17190,48 + 38333,33) ((1+0,4) (1 + 0,302) + 0,6) + 460 20 1+ Смета затрат на разработку представлена в таблице 1.6.
Таблица 1.6 – Затраты на разработку Дополнительная зарплата Отчисления на социальные нужды Затраты на материалы Затраты на машинное время ИТОГО Капитальные вложения на реализацию проекта:
где Ко – затраты на основное и вспомогательное оборудование, руб.;
Кзд – затраты на строительство, реконструкцию здания и помещений, руб.;
Кпп – затраты на приобретение типовых разработок, пакетов, руб.;
Ксв – затраты на прокладку линий связи, руб.;
Киб – затраты на создание информационной базы, руб.;
Кпк – затраты на подготовку и переподготовку кадров, руб.
В связи с тем, что для внедрения системы, рассматриваемой в данном проекте, не было затрат связанных с прокладкой линии связи, затрат на основное и вспомогательное оборудование, затрат на реконструкцию и строительство зданий, то данные затраты для внедрения системы не учитывают. Также не принимаются в расчет затраты по подготовке и переподготовке кадров, затраты на создание информационной базы и затраты на приобретение типовых разработок.
Таким образом, при внедрении системы, рассматриваемой в данном проекте, затраты на его реализацию определяются затратами на оборудование и материалы. В оборудование и материалы входит компьютер на базе процессора Pentium-4. Стоимость компьютера 22500 руб.
Тогда затраты на основное и вспомогательное оборудование составят где Cbj – балансовая стоимость j-го вида оборудования, руб. (при n= Cb1=22500 руб.);
Qj – количество единиц j-гo оборудования, руб. (1 шт.);
Yj – коэффициент загрузки j-го вида оборудования при обработке информации по решению задач предметной области:
где Фэфj – эффективный годовой фонд времени работы технического средства jго вида, час./год.
Время работы технического средства j-го вида по решению s задач, час./год:
где tкj – трудоемкость однократной обработки информации по к-й задаче на j-м виде технических средств, часов машинного времени (tкj=6);
Uк – частота (периодичность) решения к-й задачи, дней /год (Uк =247).
Затраты на реализацию:
Кр = 2250016247/(2478) руб. = 16875 руб.
Таким образом, суммарные затраты на разработку проекта:
К = Кп + Кр = 144923,09+ 16875 руб. =161798,09 руб.
Суммарные затраты, связанные с внедрением аналога складываются из следующих затрат:
затраты на приобретение программного продукта (37300 руб.);
затраты по оплате услуг на установку и сопровождение продукта ( руб.);
затраты на основное и вспомогательное оборудование (22500 руб.) (предполагается, что для внедрения аналога понадобится такой же компьютер, что и для проектируемой системы);
затраты на подготовку пользователя (оплата курсов повышения квалификации, командировочные расходы и пр.) (9000 руб.).
(Постарайтесь расписать эти статьи расходов и обосновать их).
Итого суммарные затраты, связанные с внедрением аналога составят руб.
1.4 Расчет эксплуатационных затрат К эксплуатационным затратам относятся затраты, связанные с обеспечением нормального функционирования проекта. Эти затраты называют также текущими затратами. Это могут быть затраты на ведение информационной базы, эксплуатацию комплекса технических средств, эксплуатацию систем программно-математического обеспечения, реализацию технологического процесса обработки информации по задачам, эксплуатация системы в целом.
Текущие затраты рассчитываются по формуле где ЗзП – затраты на зарплату основную и дополнительную с отчислениями во внебюджетные фонды, руб.;
Са – амортизационные отчисления от стоимости оборудования и устройств системы, руб.;
Зэ – затраты на силовую энергию, руб.;
Срем – затраты на текущий ремонт оборудования и устройств системы, руб.;
Зм – затраты на материалы и машинные носители, руб.;
Зн – накладные расходы информационного отдела, руб.
Эксплуатацию разработанной системы осуществляют специалисты.
Затраты на заработную плату основную и дополнительную с отчислениями на социальные нужды производственного персонала рассчитываются по формуле где ti – время эксплуатации системы i-м работником, дни;
3i – среднедневная заработная плата i-го работника, руб./день.
Данные расчета заработной платы специалистов приведены в таблицах 1. и 1.8.
Таблица 1.7 – Данные по заработной плате специалистов (для проекта) МТС Сзп1 = (40714,29+20476,19)1,41,302 руб. = 69440,0 руб. (за год).
Таблица 1.8 – Данные по заработной плате специалистов (для продукта-аналога) Сотрудник отдела МТС Сзп2 = (60714,29+40476,19)1,41,302=112840,0 руб. (за год).
Сумма амортизационных отчислений рассчитывается следующим образом:
где Cbj – балансовая стоимость j-гo вида оборудования, руб.;
tj – время работы j-гo вида оборудования, час;
Fэфj – эффективный фонд времени работы оборудования в год, час;
aj – норма годовых амортизационных отчислений для j-гo вида оборудования;
gj – количество единиц оборудования j-гo вида.
Эффективный фонд времени работы оборудования можно вычислить по формуле где Dp – количество рабочих дней в году. Dp = 247 (в соответствии с производственным календарём на 2013 год);
Нэ – норматив среднесуточной загрузки, час./день, Нэ = 8.
Таким образом, эффективный фонд времени работы оборудования составит Fэф =2478=1976 час.
Данные для расчета:
aj =0,2 (используется ускоренная амортизация – 20-30 %);
tj (для проекта) = (40 + 20)8 = 480 час.;
tj (для аналога) = (60 + 40)8 = 800 час.;
Cb1=22500 руб.; Cb2=22500 руб.
Сумма амортизационных отчислений для проекта составит Сумма амортизационных отчислений для аналога составит Затраты на силовую энергию рассчитываются по формуле где Nj – установленная мощность j-го вида технических средств, кВт;
tj – время работы j-го вида технических средств, час;
gj – коэффициент использования установленной мощности оборудования;
Тэ – тариф на электроэнергию, руб./кВт ч.
В настоящее время тариф на электроэнергию на данной территории составляет 2,6 руб./кВт ч (указать конкретно, каждый год тариф меняется для каждой территории), установленная мощность для компьютера равна 0, кВт (укажите суммарную мощность используемого оборудования), таким образом затраты на силовую энергию для проекта составят З э = 0,414802, руб. = 499,20 руб., для аналога составят Зэ = 0,418002,6 руб. = 832,00 руб.
Затраты на текущий ремонт оборудования рассчитываются по формуле где Cpi – норматив затрат на ремонт (Cpi = 0,05).
Затраты на текущий ремонт оборудования составят:
для проекта Зрем1 = (0,0522500480) /1976= 273,28 руб., для аналога Зрем2 = (0,0522500800) /1976= 455,47 руб.
Затраты на материалы, потребляемые в течение года, составляют 1 % от балансовой стоимости основного оборудования и равны 225 руб. (225000,01) для проекта и аналога.
Накладные расходы включают затраты на содержание административного и управленческого персонала, на содержание помещения и т.д. Норматив накладных расходов составляет 20 % от прямых затрат, включающих первые пять статей затрат, представленных в таблице 1.9.
Накладные расходы для проекта:
Зн1 = (69440,00+1093,12+499,20 +273,28+225)0,2 = 14306,12 руб.
Накладные расходы для аналога:
Зн2 = (112840,00+1821,86+832,00+455,47+225)0,2 = 23234,87 руб.
Таблица 1.9 – Годовые эксплуатационные затраты зарплата с отчислениями во внебюджетные фонды 1.5 Расчет показателей экономической эффективности Оценка экономической эффективности вариантов проектных решений элементов АИС основывается на расчете показателей сравнительной экономической эффективности капитальных вложений. Годовой экономический эффект от использования разрабатываемой системы определяется по разности приведенных затрат на базовый (аналог) и новый (проектируемый) варианты в расчете на годовой объем выпуска:
где З1,З2 – приведенные затраты на единицу работ, выполняемых с помощью базового и проектируемого вариантов процесса обработки информации, руб.;
Ak – коэффициент эксплуатационно-технической эквивалентности, или технического уровня, Ak = 1,60 (формула (1.3));
N – объем работ, выполняемых с помощью разрабатываемого продукта (примем равным 1).
Приведенные затраты Зi на единицу работ, выполняемых по базовому и разрабатываемому вариантам, рассчитываются по формуле где Ci – себестоимость (текущие эксплуатационные затраты единицы работ), руб.;
Ен – нормативный коэффициент экономической эффективности (Ен =0,33);
Ki – суммарные затраты, связанные с внедрением нового проекта.
Затраты на единицу работ по аналогу:
Затраты на единицу работ по проекту:
З2=85836,72+0,33161798,09 =139230,08 руб.
Экономический эффект от использования разрабатываемой системы:
Сводные данные по расчету экономического эффекта приведены в таблице 1.10.
Таблица 1.10 – Экономический эффект Себестоимость (текущие эксплуатационные 139409,19 85836, затраты), руб.
проекта, руб.
Приведенные затраты на единицу работ, руб. 166073,19 139230, Экономический эффект от использования разрабатываемой системы, руб.
После определения годового экономического эффекта необходимо рассчитать срок окупаемости затрат на разработку продукта по формуле Срок окупаемости составит: Ток =161798,09 /126757,06 = 1,28 года.
Затем рассчитаем фактический коэффициент экономической эффективности разработки (Еф) и сопоставим его с нормативным значением коэффициента эффективности капитальных вложений Ен =0,33:
Фактический коэффициент экономической эффективности разработки получился больше, чем нормативный, поэтому разработка и внедрение разрабатываемого продукта является эффективной.
Таким образом, в ходе проделанной работы найдены все необходимые данные, доказывающие целесообразность и эффективность данной разработки.
Приведем эти данные в сводной таблице 1.11.
Таблица 1.11 – Результаты экономического обоснования проекта Затраты на разработку и внедрение проекта, руб. 161798, В предлагаемых методических указаниях приведен расчет для модельных условий. В каждом конкретном случае следует учесть конкретные обстоятельства и сроки выполнения работы, действующие цены и нормативы.
Задание 1. Выбрав инструментальную среду программирования, автоматизировать весь расчетный процесс технико-экономического обоснования, создав удобный пользовательский интерфейс, позволяющий проводить параметрические исследования.
2. Обратить особое внимание на то, чтобы значения для каждого входного данного для расчета ТЭО вводились в программе только один раз. Все используемые коэффициенты вводить в формулы не константами, а переменными, включив их в список входных данных.
В календарном графике работ (таблица 1.3) в качестве временных исходных данных вводить только дату начала работы.
3. Весь расчетный процесс предлагается разбить на пять расчетных блоков:
1) расчет КТУ;
2) расчет план-графика работ;
3) расчет затрат на разработку проекта и внедрение аналога;
4) расчет эксплуатационных затрат;
5) расчет показателей экономической эффективности.
4. Изменяя входные данные, проанализировать степень их влияния на итоговые результаты (табл. 1.11).
КОНСТРУКТИВНАЯ МОДЕЛЬ СТОИМОСТИ COCOMO
Цель работы: изучить алгоритмы различных уровней конструктивных моделей Б. Боэма и автоматизировать процесс расчета экономических показателей проекта по разработке программного продукта.COCOMO (Constructive Cost Model) – это конструктивная модель стоимости, разработанная в начале 80-х годов Барри Боэмом для оценки трудоемкости разработки программных продуктов1. Она основана на статистическом анализе фактических данных по выполнению 63 проектов в компании TRW Aerospace, где Барри Боэм был директором отдела исследований программного обеспечения и технологий. Анализировались проекты объемом от 2 до 100 тысяч строк кода, на языках программирования от ассемблеров до высокоуровневого языка PL/1, основанные на каскадной модели жизненного цикла разработки ПО.
Модель состоит из иерархии трех последовательно детализируемых и уточняемых уровней [3]. На каждом уровне все проекты разбиваются на три группы по уровню сложности:
1) распространенный тип (organic projects);
2) встроенный тип (embedded projects);
3) полунезависимый тип (semidetached projects).
Распространенный тип характеризуется тем, что проект выполняется небольшой группой специалистов, имеющих опыт в создании подобных изделий и опыт применения технологических средств. Условия работы стабильны, и изделие имеет относительно невысокую сложность.
Встроенный тип характеризуется очень жесткими требованиями на программный продукт, интерфейсы, параметры ЭВМ. Как правило, у таких изделий высокая степень новизны и планирование работ осуществляется при недостаточной информации, как о самом изделии, так и об условиях работы.
Встроенный проект требует больших затрат на изменения и исправления.
Полунезависимый тип занимает промежуточное положение между распространенным и встроенным – это проекты средней сложности.
Исполнители знакомы лишь с некоторыми характеристиками (или компонентами) создаваемой системы, имеют средний опыт работы с подобными изделиями, изделие имеет элемент новизны. Только часть требований к изделию жестко фиксируется, в остальном разработки имеют степени выбора.
Тип той или иной группы можно рассматривать как один из параметров модели COCOMO.
Опубликована в книге Barry Boehm. Software Engineering Economics (Englewood Cliffs, NJ: Prentice-Hall, 1981).
Рассмотрим уровни модели.
2.1.1 Базовый уровень (Basic COCOMO) Модель этого уровня – двухпараметрическая. В качестве параметров выступают тип проекта и объем программы (число строк кода).
Уравнения базового уровня модели имеют вид:
где PM (PeopleMonth) – трудоемкость (чел.мес.);
TM (Time at Month) – время разработки в календарных месяцах;
SIZE – объем программного продукта в тысячах строк исходного текста (Kilo of Source Line of Code – KSLOC).
Kоэффициенты ai, bi, ci и di выбираются из табл. 2.1.
Таблица 2.1. Значения коэффициентов базовой уровня модели COCOMO в зависимости от типа проекта Модель этого уровня подходит для ранней быстрой приблизительной оценки затрат, но точность её весьма низка, т.к. не учитываются такие факторы, как квалификация персонала, характеристики оборудования, опыт применения современных методов разработки программного обеспечения и современных инструментальных сред разработки и др.
2.1.2 Промежуточный уровень (Intermediate COCOMO) На этом уровне базовая модель уточнена за счет ввода дополнительных «атрибутов стоимости» (или факторов затрат) Cost Drivers (CDk), которые сгруппированы по четырем категориям:
Характеристики продукта (Product Аttributes):
Требуемая надежность ПО (Required Software Reliability);
Размер БД приложения (Size of Application Database);
Сложность продукта (Complexity of the Product);
Характеристики аппаратного обеспечения (Hardware Аttributes):
Ограничения быстродействия при выполнении программы (Run-Time Performance Constraints);
Ограничения памяти (Memory Constraints);
Неустойчивость окружения виртуальной машины (Volatility of the Virtual Machine Environment);
Требуемое время восстановления (Required Turnabout Time);
Характеристики персонала (Personnel Аttributes):
Аналитические способности (Analyst Capability);
Способности к разработке ПО (Software Engineer Capability);
Опыт разработки (Applications Experience);
Опыт использования виртуальных машин (Virtual Machine Experience);
Опыт разработки на языках программирования (Programming Language Experience);
Характеристики проекта (Project Аttributes):
Использование инструментария разработки ПО (Use of Software Tools);
Применение методов разработки ПО (Application of Software Engineering Methods);
Требования соблюдения графика разработки (Required Development Schedule).
Значения каждого атрибута выбирается из табл. 2.2 в соответствии с его степенью значимости (рейтингом) в конкретном проекте.
Таблица 2.2. Значения атрибутов стоимости в зависимости от их уровня Характеристики продукта Характеристики аппаратного обеспечения 4. Ограничения быстродействия при выполнении программы 6. Неустойчивость окружения виртуальной машины 7. Требуемое время восстановления Характеристики персонала 10. Способности к разработке 11. Опыт использования виртуальных машин 12. Опыт разработки на языках программирования Характеристики проекта 13. Применение методов разработки ПО 14. Использование инструментария разработки ПО 15. Требования соблюдения графика разработки Примечание: n/a (not available) – данные отсутствуют, т.е. соответствующий уровень не оценивается Формула промежуточного уровня модели имеет вид где PM – трудоемкость (чел.мес.);
SIZE – объем программного продукта в тысячах строк исходного текста (Kilo of Source Line of Code – KSLOC).
EAF (Effort Adjustment Factor) – произведение выбранных атрибутов Коэффициенты модели ai и bi выбираются из табл. 2.3.
Таблица 2.3. Значения коэффициентов промежуточного уровня модели СОСОМО в зависимости от типа проекта Время разработки рассчитывается по той же формуле, что и для базовой модели.
2.1.3 Детальный уровень (Advanced COCOMO) Повышает точность оценки за счет иерархической декомпозиции создаваемого ПО и учета стоимостных факторов на каждом уровне иерархии и по фазам работ (здесь не рассматривается).
2.2. COCOMO II В 1997 методика была усовершенствована и получила название COCOMO II. Калибровка параметров производилась уже по 161 проекту разработки ПО.
Различаются две стадии оценки проекта: предварительная оценка на начальной фазе (Early Design) и детальная оценка после проработки архитектуры (Post Architecture).
Формула оценки трудоемкости проекта в чел.мес. имеет вид:
B = 0,91; A = 2,94 для предварительной оценки; A = 2,45 для детальной оценки1;
SFj – факторы масштаба (Scale Factors) (табл. 5);
SIZE – объем программного продукта в тысячах строк исходного текста (KSLOC – Kilo of Source Line of Code);
EMj – множители трудоемкости2 (Effort Multiplier). n=7 – для предварительной оценки (табл. 6), n=17 – для детальной оценки (табл. 7);
EAF (Effort Adjustment Factor) – произведение выбранных множителей 2.2.1 Факторы масштаба (Scale Factors) В методике COCOMO II используются пять факторов масштаба SFj, описание которых приведено в табл.4.
Таблица 4. Описание уровней значимости факторов масштаба 1. PREC. Прецедентно опыт в продукт некотор продукт продукт продукт и tedness.
2. FLEX. Гибкость процесс допуска значител относите незначит определен ment Flexibilit Architect и известны известны известны известны известны разрешен рисков проанал проанал проанал проанал проанал Resoluti Приведены параметры модели COCOMO II.2000 (Version 2.1). Источник: СОСОМОII: Model Definition Manual. – USC, Center for Software Engineering. – URL:
http://csse.usc.edu/csse/TECHRPTS/2000/usccse2000-500/usccse2000-500.pdf Иное название: Cost Driver (CD) – атрибут стоимости (фактор затрат).
TEAM.
Team Cohesion Maturity Примечание. СММ (Capability Maturity Model) — пятиуровневая модель зрелости возможностей компании-разработчика ПО, предложенная SEI (Software Engineering Institute, США).
Эти факторы применяются на обеих стадиях оценки проекта.
Числовые значения фактора масштаба в зависимости от оценки его уровня, приведены в таблице 5.
Таблица 5. Значение фактора масштаба в зависимости от оценки его уровня 2.2.2 Множители трудоемкости (Effort Multipliers) Количество и значения множителей трудоёмкости отличаются для разных стадий оценки проекта.
1. Стадия предварительной оценки трудоемкости программного проекта (Early Design). Для этой оценки необходимо оценить для проекта уровень семи множителей трудоемкости EMj:
– параметры персонала:
1. PERS (Personnel Capability) – квалификация персонала (Extra Low – аналитики и программисты имеют низшую квалификацию, текучесть больше 45%; Extra High – аналитики и программисты имеют высшую квалификацию, текучесть меньше 4%);
2. PREX (Personnel Experience) – опыт персонала (Extra Low – новое приложение, инструменты и платформа; Extra High – приложение, инструменты и платформа хорошо известны);
– параметры продукта:
3. RCPX (Product Reliability and Complexity) – сложность и надежность продукта (Extra Low – продукт простой, специальных требований по надежности нет, БД маленькая, документация не требуется; Extra High – продукт очень сложный, требования по надежности жесткие, БД сверхбольшая, документация требуется в полном объеме);
4. RUSE (Developed for Reusability) – разработка для повторного использования (Low – не требуется; Extra High – предполагается переиспользование в других продуктах);
– параметры платформы:
5. PDIF (Platform Difficulty) – сложность платформы разработки (Extra Low – специальные ограничения по памяти и быстродействию отсутствуют, платформа стабильна; Extra High – жесткие ограничения по памяти и быстродействию, платформа нестабильна);
– параметры проекта:
6. FCIL (Facilities)– оборудование (Extra Low – инструменты простейшие, коммуникации затруднены; Extra High – интегрированные средства поддержки жизненного цикла, интерактивные мультимедиа коммуникации);
7. SCED (Required Development Schedule) – требуемое выполнение графика работ (Very Low – 75% от номинальной длительности; Very High – 160% от номинальной длительности).
Значения множителей трудоемкости в зависимости от их уровня приведены в табл. 6.
Таблица 6. Значения множителей трудоемкости в зависимости от оценки их уровня (Early Design) № трудоёмкости, Extra Low Very Low Low Nominal High Very High Extra High Примечание: n/a (not available) – данные отсутствуют, т.е. соответствующий уровень не оценивается 2. Стадия детальной оценки после проработки архитектуры (Post Architecture). Для этой оценки необходимо оценить для проекта уровень семнадцати множителей трудоемкости EMj:
– параметры персонала:
1) Analyst Capability (ACAP) – возможности аналитика;
2) Applications Experience (AEXP) – опыт разработки приложений;
3) Programmer Capability (PCAP) – возможности программиста;
4) Personnel Continuity (PCON) – продолжительность работы персонала;
5) Platform Experience (PEXP) –опыт работы с платформой;
Language and Tool Experience (LTEX) – опыт использования языка программирования и инструментальных средств.
– параметры продукта:
7) Required Software Reliability (RELY) – требуемая надежность программы;
8) Database Size (DATA) – размер базы данных;
9) Software Product Complexity (CPLX) – сложность программы;
10) Required Reusability (RUSE) – требуемая возможность многократного использования;
11) Documentation Match to Life-Cycle Needs (DOCU) – соответствие документации потребностям жизненного цикла.
– параметры платформы:
12) Execution Time Constraint (TIME) – ограничения времени выполнения;
13) Main Storage Constraint (STOR) – ограничения памяти;
14) Platform Volatility (PVOL) – изменяемость платформы.
– параметры проекта:
15) Use of Software Tools (TOOL) – использование инструментальных программных средств;
16) Multisite Development (SITE) – многоабонентская (удаленная) разработка;
17) Required Development Schedule (SCED) – требуемое выполнение графика работ.
Значения множителей трудоемкости в зависимости от их уровня приведены в табл. 7.
Таблица 7. Значения множителей трудоемкости в зависимости от оценки их уровня (Post Architecture) 6 LTEX Language and Tool Experience 1,20 1,09 1,00 0,91 0,84 n/a 7 RELY Required Software Reliability 0,84 0,92 1,00 1,10 1,26 n/a 9 CPLX Software Product Complexity 0,73 0,87 1,00 1,17 1,34 1, 11 DOCU Documentation Match to Life- 0,81 0,91 1,00 1,11 1,23 n/a 16 Required Development Примечание: n/a (not available) – данные отсутствуют, т.е. соответствующий уровень не оценивается 2.2.3 Оценка длительности проекта Время разработки проекта TM в методике COCOMO II для обоих уровней рассчитывается по формуле:
где С = 3,67; D = 0,28;
PMNS – рассчитанная трудоемкость проекта без учета множителя SCED, определяющего сжатие расписания.
Остальные параметры определены выше.
1. Используя выбранную инструментальную среду разработки, создать программное приложение «Калькулятор СОСОМО» для расчета трудоёмкости и сроков разработки программного продукта на основе различных конструктивных моделей стоимости COCOMO с удобным пользовательским интерфейсом.
2. Исследовать влияние объема программного кода (SIZE) на трудоемкость (РМ) и время разработки проекта (ТМ) для разных уровней и версий COCOMO.
2. Получить значения PM и ТМ по всем моделям для одного и того же значения параметра SIZE, выбрав номинальный (средний) уровень сложности проекта. Повторить расчет для простого проекта и проекта, имеющего высокую степень новизны.
3. Результаты исследований оформить графически.
ЛИТЕРАТУРА
1. Соммервилл, Иан. Инженерия программного обеспечения, 6-е изд. : Пер.с англ. – М.: Издательский дом «Вильямс», 2002. – 624 с.
2. Миньков С.Л. Технико-экономическое обоснование выполнения проекта: методическое пособие. – Томск: ТУСУР, 2014. – 30 с. [Электронный ресурс]. – Режим доступа:
http://asu.tusur.ru/learning/spec080801/d26/s080801_d26_work.docx 3 Миньков С.Л. Разработка и применение ППП в экономике: Учебное пособие. – Томск: ТМЦДО, 2002. – 231 с.
Некоторые примеры автоматизации расчета СОСОМО 1. Интерфейс онлайн-калькулятора На сайте Центра системного и программного инжиниринга Университета Южной Каролины (США) (USC Center for Systems and Software Engineering) можно посмотреть интерфейс интернет-калькулятора COCOMO Suite of Constructive Cost Models (http://csse.usc.edu/tools/COCOMOSuite.php).
Рис. 1. Интерфейс интернет-калькулятора «COCOMO Suite of Constructive Cost Models»
В правом верхнем углу расположено окно выбора модели.
COSYSMO – Constructive Systems Engineering Cost Model, COQUALMO – Constructive Quality Model.
На сайте http://csse.usc.edu/csse/tools/ находятся ссылки на другие программные продукты по расчету моделей СОСОМО, разработанные в USC CSSE.
2. Интерфейс программы-калькулятора Costar 7. Программа-калькулятор Costar 7.0 разработана компанией Softstar (http://www.softstarsystems.com/) на основе модели COCOMO II для автоматизации оценки стоимости разработки программных продуктов.
Ниже приведены примеры интерфейса этой программы для уровня детальной оценки после проработки архитектуры (Post Architecture).
Рис. 2. Установка 5-ти факторов масштаба (Scale Drivers) Рис. 3. Выбор уровня фактора масштаба «Прецедентность» (Precedentedness, PREC ) Рис. 4. Выбор уровня фактора масштаба «Гибкость разработки» (Development Flexibility, Рис. 5. Выбор уровня фактора масштаба «Архитектура/Разрешение рисков» (Architecture / Рис. 6. Выбор уровня фактора масштаба «Сработанность команды» (Team Cohesion, TEAM) Рис. 7. Выбор уровня фактора масштаба «Зрелость процессов» (Process Maturity, PMAT) Рис. 8. Установка 17-ти факторов затрат (Cost Drivers, или Effort Multipliers) Рис. 9. Методические рекомендации по выбору факторов затрат. Например, «если вы не уверены в выборе фактора, оставьте его значение по умолчанию (Nominal)»
Рис. 10. Выбор уровня фактора затрат ACAP Рис. 11. Выбор уровня фактора затрат APEX Рис. 12. Выбор уровня фактора затрат PCAP Рис. 13. Выбор уровня фактора затрат PLEX Рис. 14. Выбор уровня фактора затрат LTEX Рис. 15. Выбор уровня фактора затрат PCON Рис. 16. Выбор уровня фактора затрат TOOL Рис. 17. Выбор уровня фактора затрат SITE Рис. 18. Выбор уровня фактора затрат SCED Рис. 19. Выбор уровня фактора затрат TIME Рис. 20. Выбор уровня фактора затрат STOR Рис. 21. Выбор уровня фактора затрат PVOL Рис. 22. Выбор уровня фактора затрат RELY Рис. 23. Выбор уровня фактора затрат DATA Рис. 24. Выбор уровня фактора затрат CPLX Рис. 25. Выбор уровня фактора затрат RUSE Рис. 27. Оценка трудоемкости и времени выполнения проекта объемом в 100 SLOC