Задача оценки затрат на разработку программных продуктов в настоящее время очень актуальна. Так как прежде чем разработать проект необходимо знать его стоимость, чтобы как можно больше сократить затраты на его разработку, не уменьшив качество продукта. В настоящее время предлагается некоторое количество различных подходов к решению этой задачи, один из которых будет исследован в этой работе. Рассмотренный метод сложен для понимания, но достаточно эффективен в использовании.
В классическом случае трудозатраты вычисляют по формуле:
Т = Р * П,
где Р — размер кода программы, чаще всего измеряется в строках ; П — временная производительность. Сразу очевиден недостаток такого подхода: у разработчика программного кода будет отсутствовать стремление для повышения своей квалификации и написания более простого в отладке, а, следовательно, и более дешевого кода.
Оценка производительности разработки ПО содержит в себе измерение следующих показателей:
Показатель размера - самым известным критерием в оценке производительности является число строк в данном коде программы, но он зачастую не оптимален, потому что в написании кода используются совершенно разные языки программирования. Данный критерий определяется делением общего числа строк кода на время, которое необходимо для окончания проекта.
Функциональный показатель - для определения данного показателя можно использовать метод ФТ (функциональных точек). Здесь главным критерием производительности является число функциональных точек, созданных человеком за месяц.
Функциональная точка характеризуется как комбинация следующих свойств программного обеспечения:
интенсивность использования данных ввода и вывода;
выходные данные;
взаимодействие данной системы с её пользователем;
интерфейсов, находящихся вне системы;
файлов, которые использует система.
Использование данного метода функциональных точек началось еще в середине семидесятых годов. Сначала его использовали мало организаций, но после некоторых улучшений на сегодняшнее время его используют огромное число фирм во всем мире. Впервые данный метод был предложен Аланом Альбрехтом и назван «Анализ ФТ (функциональных точек)». Начиная с 80-х годов, специально организованная компания IFPUG постоянно улучшает данную методику, благодаря чему она имеет сейчас огромный успех. Преимущества данного метода очевидны, поскольку применение функциональных точек основано на изучении требований, а значит, оценка трудозатрат может быть выполнена на любой стадии разработки проекта. Функциональные точки вычисляются с помощью общей суммы оценки каждого фактора умноженного на выбранную величину этого фактора.
Какие же действия следует выполнить для подсчета функционального размера ПО? Во-первых, необходимо собрать все документы, а именно: технические требования, задания, руководства и т. д. Во-вторых, необходимо определить вид выполняемой оценки. Проект может находиться в трех стадиях: разработки, развития и в готовом виде. От того в какой стадии находится данный проект и зависит оценка. Следующим шагом будет определение границ данного продукта, а именно то, что влияет на продукт с «внешней стороны» и определение «границ системы», через которую выполняются транзакции. (Транзакция - это замкнутый процесс, который переводит данный продукт из одного состояния в другое). В-третьих, необходимо подсчитать функциональные точки, связанные с данными. Для этого, необходимо определить, к какой группе относятся данные, а именно к внешним логическим файлам (ILFs), которые находятся в самом продукте, или интерфейсные файлы вне продукта (EIFs), на которые данный продукт указывает, но не хранит в себе. После этого нужно определить сложность данных. DET уникальное поле данных и RET логическая группа данных.В-четвертых, необходимо подсчитать функциональные точки, связанные с транзакциями. Бывают внешние входные транзакции (EI), которые поступают в систему извне, внешние выходные транзакции, предполагающие обработку информации из одного или более ILF, внешние запросы (EQ), элементарная операция, которая извлекает данные в результате внешнего запроса. Оценка сложности транзакции делится на FTR – подсчитывает количество внешних логических и интерфейсных файлов и DET – уникальное неповторяющееся поле данных.
В итоге, после подсчета данных пунктов, можно произвести расчет функционального размера. Для этого необходимо все полученные ранее значения просуммировать. При этом размер программного обеспечения будет выражен в неявных функциональных точках.
Далее чтобы произвести расчет бюджета, который потребуется для разработки продукта необходимо использовать данные по затратам на зарплату разработчикам, налоги и т.д. Чтобы рассчитать оплату труда необходимо воспользоваться следующей формулой:
Оплата труда=Трудозатраты*Средняя зарплата разработчика
Также сюда нужно прибавить дополнительные расходы, такие как: налоги, страховые взносы, НДФЛ, налог на прибыль, НДС. После чего можно сформировать окончательную сумму, затраченную на разработку данного продукта.
Помимо рассмотренного метода ФТ, существует метод объектных точек. Данный метод основывается на подсчете следующих значений:
число изображений на дисплее; критерии оценки таковы: за простое изображение мы принимаем одну объектную точку, изображения средней сложности принимаются за две объектных точки, а очень сложные изображения принимаются за три точки;
число представленных отчетов; критерии: для простых отчетов мы назначаем две точки, для средних принимается пять точек, а для очень сложных отчетов предполагается восемь точек;
каждая часть программы, написанная на языке высшего поколения, считается за десять объектных точек.
В настоящее время существует несколько модифицированных методов функциональных точек:
Точки свойств. Он применяется, в случае если все сказанные характеристики не содержат в себе какой-то сложности. Данный метод предложил Кейперс Джонсон, усовершенствовав метод ФТ (функциональных точек), он получил новый метод, который вскоре назвали «Метод точек свойств». Сам метод практически ничем не отличается от его предшественника единственное отличие в том, что данный метод корректирует оценки, учитывая алгоритмическую сложность программного продукта.
Метод Mark II. Этот метод представил Чарльз Саймонс. Его можно применить к более сложным системам, так как с помощью него можно не только подсчитать оценку системы в целом, но также и по ее частям.
Трехмерные функциональные точки. В 1991 г. подразделение корпорации Boeing предложило на замену методу функциональных точек другой, метод «Трехмерные функциональные точки». Отличие данных методов состоит в том, что сложность данного продукта оценивается по трем направлениям – данные, функции и управление. Главным превосходством этого метода является то, что он применим не только к оценке программных проектов, но и к оценке трудоемкости задач.
Метод Демарко. Том Демарк разработал новый метод. Данный метод также схож с методом ФТ, но отличается тем, что полученные оценки корректируются с учетом данных по выполненным ранее проектам. Такой подход позволяет нам получить не только мысленные показатели, а совершенно точные значения реальных затрат ресурсов и времени.
В данном реферате был рассмотрен метод функциональных точек, как определитель оценки затрат на программный проект. Подытоживая вышесказанное, можно сделать вывод, что данный метод лучше применять на стороне заказчика, так как для него разница в конкретных условиях разработки не важна. Конечно, данный метод хорошо подходит для оценки затрат на программный продукт, однако его использование требует значительного времени как на изучение, так и на использование. Поэтому на смену этому методы приходят другие, позволяющие произвести оценку в сравнительно короткие сроки и с более высокой точностью результирующих данных.
Библиографический список:
Абрамова О. Ф., Использование мультимедийных технологий в процессе обучения дисциплине «Компьютерная графика»// О. Ф. Абрамова, С. В. Белова// Журнал «Успехи современного естествознания» №3, 2012 год, стр. 90-91.
Макконнелл С., «Сколько стоит программный проект», «Питер», 2007.
Гордашникова О.Ю. Функционально-стоимостной анализ качества продукции и управления маркетингом на предприятии. – М.: Издательство «Альфа-Пресс». 2006 г.
Function Point Counting Practices Manual, Release 4.2, IFPUG, 2004.