Главная / О компании / Конкурентам / Исследования / Оценка трудозатрат на разработкку ПО

Оценка трудозатрат на разработку ПО

Одной из проблем, которая встала перед нами пару лет назад, была сложность определения трудозатрат на программирование. Мы все время ошибались в наших оценках. Причем ошибались сильно. Чтобы уйти от практики оценки метозом 3П (пол, палец, потолок) мы провели исследование различных существующих методов оценки и в итоге взяв за основу метод функциональных точек, адаптировали его под свои задачи.

Метод функциональных точек

Обзор

Суть метода заключается в выделении в разрабатываемом продукте составляющих элементов, количество которых примерно можно оценить до начала работ. Такие элементы называют «функциональными точками». Затем, на основе статистики по другим проектам определяют отношение всех затрат на разработку к количеству функциональных точек. Это даёт «стоимость» одной функциональной точки. Зная эту «стоимость» и количество предполагаемых функциональных точек рассчитывают стоимость нового проекта.

Литература

Упрощённый метод ФТ

Это экспериментальный упрощённый вид метода функциональных точек. Оценка, полученная с его помощью, должна проверяться экспертом!

  • function-point.ots — таблица рассчитывающая время на программирование по упрощённому методу функциональных точек.

Исходные данные

Исходными данными для расчёта служат:

  • Количество объектов данных. Объект данных — это товар, статья, вариант исполнения товара, фотография галереи и т. д. Объектами могут быть производители, категории, фотографии товара и т. д. если у них больше одного свойства (см. ниже).
  • Количество свойств у объектов. Каждый объект имеет набор свойств. Для статьи это могут быть заголовок, текст и время добавления, для фотографии — картинка, миниатюра, название.
  • Количество представлений информации. Представление — это страница определённого вида. Например, список товара и карточка товара — это два разных представления. Также отдельными представлениями считаются электронные письма, генерируемые файлы и т. д.
  • Количество элементов ввода. Элементы ввода — это то, что позволяет посетителю вводить информацию, управлять информацией или перемещаться по сайту. Это поля ввода в формах, это кнопки, ссылки или значки типа «Удалить», «Добавить в корзину», «Вернуться к списку»…
  • Количество элементов вывода. Элементы вывода — это количество выводимых свойств объектов. Например в карточке товара, имеющего 10 свойств, как правило, будет 10 элементов вывода.
  • Количество транзакций. Транзакция — это передача свойств объектов из БД к посетителю или наоборот. Для добавления товара нужна 1 транзакция: введённые пользователем данные надо поместить в БД. Для изменения товара нужно 2 транзакции: сначала текущие свойства объекта надо передать пользователю, затем записать обратно сделанные изменения.
  • Количество дополнительных сложных задач. Об этом ниже.

Всё это — функциональные точки.

Определение количества ФТ

Кол-во объектов и свойств объектов

Это количество определяется при написании эскизного проекта на основе информации от заказчика.

Кол-во представлений

Так же определяется при написании эскиза.

Для каталога (например, каталога товаров), как правило, надо 5 представлений:

  • Список объектов (КИ)
  • Карточка объекта (КИ)
  • Список объектов (АИ)
  • Добавление объекта (АИ)
  • Изменение объекта (АИ)

Для оформления заказа, как правило, требуется 4 представления:

  • Форма заказа (КИ)
  • Страница «Заказ отправлен» (КИ)
  • Список заказов (АИ)
  • Просмотр заказа (АИ)
Кол-во элементов ввода, вывода и транзакций

Примерные значения (для CMS Eresus):

(КСО — количество свойств объекта)

Представление

Эл. ввода

Эл. вывода

Транзакций

АИ: Диалог настройки

не менее 4

0

01)

АИ: Список объектов

3-62)

50-90% от КСО3)

2-44)

АИ: Добавление объекта

КСО + 25)

0

1

АИ: Изменение объекта

КСО + 36)

0

2

КИ: Список объектов

27)

50-90% от КСО

1

КИ: Карточка объекта

1 8)

КСО

1

 

1) CMS это делает автоматически

2) «Добавить», «Изменить», «Удалить», «Отключить», «Сортировка», переключатель страниц

3) но редко больше 7

4) получение списка объектов, удаление, отключение, сортировка

5) кнопки «Добавить» и «Отмена»

6) кнопки «OK», «Применить» и «Отмена»

7) «Подробнее» и переключатель страниц

8) «Вернуться»