34
www.luxoft.com Метод Функциональных Точек Основы оценки размера проекта методом функциональных точек Основано на материалах David Consulting Grou Светлана Мухина

Основы оценки размера проекта методом функциональных точек

Embed Size (px)

Citation preview

Page 1: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Метод Функциональных ТочекОсновы оценки размера проекта методом функциональных точек

Основано на материалах David Consulting Group

Светлана Мухина

Page 2: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

ЗнакомимсяСветлана МухинаICAgile ICP, ICP-ATF, ICP-BVA, ICP- ACC, PSM I, CSPO, Professional Coach, Certified NLP Practitioner, KMP Foundation I

Agile and Professional Coach at Luxoft Agile Practice

Опыт работы: 14+ лет в IT, Agile коуч, руководитель проектов, компьютерный лингвист, технический писатель, бизнес-аналитик

Интересы: управление проектами, процессные трансформации, коучинг, психология

Хобби: верховая езда, музыка, покер, плаванье, путешествия

https://www.linkedin.com/in/svetlanamukhinahttps://www.facebook.com/Svetlana.Mukhina8

Page 3: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Теория

Page 4: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

РазмерЗадачи

Усилия Человеко-часы

Длительность проекта

Время

Изменения

RFC

ЛюдиКоманда проекта

Дефекты

Качество

Критичные ресурсы

Ограничения

Оцениваем проект Основано на материалах David Consulting Group

Page 5: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

История

Анализ функциональных точек — стандартный метод измерения размера программного продукта с точки зрения пользователей системы.Метод разработан Аланом Альбрехтом (Alan Albrecht) в середине 70-х.

Метод был впервые опубликован в 1979 году.

В 1986 году была сформирована Международная Ассоциация Пользователей Функциональных Точек (International Function Point User Group — IFPUG), которая опубликовала несколько ревизий метода.

Основано на материалах David Consulting Group

Page 6: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Основные Термины• Единица измерения функциональности программного

обеспечения с точки зрения пользовательской системы. Функциональная точка

• Человек или система, которая взаимодействует с программным обеспечением.Пользователь

• Функциональные пользовательские требования так, как они воспринимаются пользователем. User View

• Набор функций, который должна выполнять система в терминах задач и сервисов. Эти требования задают “что” система должна делать.

Функциональные пользовательские

требования

• Эти требования задают с соблюдением “каких условий” система должна что-то делать.

Нефункциональные пользовательские

требования

Основано на материалах David Consulting Group

Page 7: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

• ФТ помогают точно оценивать разменость приложения;

• ФТ могут быть подсчитаны разными людьми, в разное время с одним и тем же результатом;

• ФТ могут быть подсчитаны прокси; • ФТ понятны для не технических

пользователей;• С помощью ФТ можно сравнить

эффективность инструментов, команды, среды и т.д.

• Небольшой риск инфляции по сравнению с методом подсчета строк кода или стори поинтами;

• ФТ можно подсчитать используя написанные требования или готовое приложение;

• ФТ - это не лучший способ оценки дефектов или задач, связанных с производительностью приложения;

• ФТ не очень эффективны для оценки в ситуации, когда оценённая функциональность будет имплементирована одни или двумя разработчиками;

• Команда разработки не принимает участие в оценке задач;

• Метод ФТ требует значительных инвестиций в обучение;

• Для эффективного использования метода ФТ необходима постоянная практика;

Преимущества и недостатки метода Функциональных Точек

Основано на материалах David Consulting Group

Page 8: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Практика

Page 9: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Собираем доступную документац

ию

Определяем объем работ,

границы приложения, функциональ

ные требования

Идентифицируем основные

функциональные

компоненты

Считаем размер в

ФТ

Документируем

результаты подсчета

Предоставляем

результаты заказчику

Процесс оценки в функциональных точкахОсновано на материалах David Consulting Group

Page 10: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Устанавливаем Границы ПриложенияГраницы приложения – это абстрактный интерфейс между приложением и всеми его пользователями

• Что является «внешним» по отношению к оцениваемому продукту? • Где располагается «граница системы», через которую проходят

транзакции передаваемые или принимаемые продуктом, с точки зрения пользователя?

• Какие данные поддерживаются приложением, а какие — внешние?

Основано на материалах http://citforum.ru/SE/project/arkhipenkov_lectures/12.shtml

Page 11: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Определяем тип объекта оценки

Мы считаем

• Разработку. Оцениваем количество функциональности поставляемой пользователям в первом релизе продукта.

• Изменения. Оцениваем необходимые доработки: добавление, изменение и удаление функционала.

• Продукт. Оцениваем размер уже существующего продукта.

Мы не считаем• Поддержку – действия

необходимые совершить для устранения дефектов в программном обеспечение

• Улучшения - действия необходимые совершить для улучшения производительности, надежности, поддерживаемости или других атрибутов программного обеспечения

• Нефункциональные требования

Основано на материалах David Consulting Group

Page 12: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Что мы считаем?

Page 13: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Внутренние логические файлы и внешние интерфейсные файлы

Приложение

Внутренний логический файл (ILFs) — выделяемая пользователем логически связанная группы данных или блок управляющей информации, которые поддерживаются внутри продукта.

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

Не считайте как ILF и EIF:• Файлы необходимы для поддержки той или иной технологии • Файлы индексации и сортировки • Временные файлы данных • Другие технические файлы

Основано на материалах David Consulting Group

Page 14: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Элементы ILFs и EIFs

Количество ILFs и EIFs и их функциональная сложность влияет на размер приложения в функциональных точках. Функциональная сложность файлов определяется количеством связанных с ними элементов: логических групп данных и неповторяемых уникальных полей.

Приложение

Внешний интерфейсный файл (EIF)

RETsDETsDETsDETs

Внутренний логический файл (ILF)RET (record element type) логическая группа данных, например, адрес, паспорт, телефонный номер.

DET (data element type) неповторяемое уникальное поле данных, например, Имя Клиента

Основано на материалах David Consulting Group

Page 15: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Транзакции

ПриложениеExternal Interface File (EIF)

RETsDETsDETsDETs

Internal Logical File (ILF)RET - A record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF

DET is a unique user recognizable, non-repeated attribute

UserEI = External InputEO = External OutputEQ = External Inquiry

EI

EO

EQ

EO

Основано на материалах David Consulting Group

Page 16: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Описание Транзакций Транзакция — это элементарный процесс, представляющий значение для пользователя:

EI (external inputs) — внешние входные транзакции, элементарная операция по обработке данных или управляющей информации, поступающих в систему из вне. ­ Слова, которые идентифицируют EIs: Add, Make Inactive, Allocate, Modify, Assign, Record, Associate,

Remove, Change, Reset, Create, Delete, Import, Reverse, Set, Undo, Update, Upload, Withdraw;

EO (external outputs) — внешние выходные транзакции, элементарная операция по генерации данных или управляющей информации, которые выходят за пределы системы. Предполагает определенную логику обработки или вычислений информации из одного или более ILF. ­ Слова, которые идентифицируют EOs: Adjust, Export, Generate, Notify, Print, Report, Summary

EQ (external inquiries) — внешние запросы, элементарная операция, которая в ответ на внешний запрос извлекает данные или управляющую информацию из ILF или EIF. ­ Слова, которые идентифицируют EQs: Browse, Display, Enquire, Extract, Inquire, List, Pick List, View

Основано на материалах David Consulting Group

Page 17: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Определяем типы транзакцийОсновано на материалах David Consulting Group, http://citforum.ru/SE/project/arkhipenkov_lectures/12.shtml

Функция Тип транзакции

EI EO EQИзменяет поведение системы О Д NAПоддерживает один или более ILF О Д NAПредставление информации пользователю

Д О О

О — основная;Д — дополнительная; NA — не применима.

Page 18: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Пример #1 – определяем файлы и транзакции для радиобудильника

Inputs (EIs)• Set time• Set alarm• Set type of alarm (radio, buzz) Set radio station• Set volume of radio• Set am/fm• Set Snooze• On/Off alarm

Outputs (EOs/EQs)• Alarm• Sound(Music/ Radio/Buzzer)• Display Time

Internal Data Stores (ILFs)• Time Data (Alarm Data/Time

Data)• Radio Data

External Data Sources (EIFs)• Radio Frequency

from David Consulting Group

Page 19: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Пример #2 – считаем уникальные поля и группы данных

Основано на материалах David Consulting Group

Page 20: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Пример #2 – Результаты Основано на материалах David Consulting Group

Page 21: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Как мы считаем?

Page 22: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

RETs 1-19 DETs

20-50 DETs

51+ DETs

1 Low Low Avg2-5 Low Avg High6+ Avg High High

Матрица сложности данных для ILF и EIF

Оценка сложности файлов ILF и EIF Оценка сложности файлов зависит от количества неповторяемых уникальных полей данных (DETs) и количества логических групп данных

Page 23: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Матрица сложности данных EI FTRs 1-4

DETs5-15 DETs

16+ DETs

0-1 Low Low Avg2 Low Avg High3+ Avg High High

Матрица сложности данных для EO и EQ

FTRs 1-5 DETs

6-19 DETs

20+ DETs

0-1 Low Low Avg2-3 Low Avg High4+ Avg High High

Оценка сложности транзакцийОценка сложности транзакций зависит от количество различных файлов (информационных объектов (File type referenced FTR типа ILF и/или EIF) модифицируемых или считываемых в транзакции.

Page 24: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Type Low Avg High Total

EI _ X 3 +

_ X 4 +

_X6 =

EO _ X 4 +

_ X 5 +

_X7 =

EQ _ X 3 +

_ X 4 +

_X6 =

ILF _ X 7 +

_ X 10 +

_X15 =

EIF _ X 5 +

_ X 7 +

_X6 =

Вес транзакций в функциональных точках

Page 25: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Пример #3 – Считаем функциональные точки приложения

Осно

вано

на

мате

риал

ах D

avid

Con

sulti

ng G

roup

Page 26: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Пример #3 – Результаты

Description ILF/EIF/EI/EO/EQ

FTRs DETs

Add EI 1 6Change EI 1 6Delete EI 1 5Student Data ILF 1 4

16 FPs

Основано на материалах David Consulting Group

(ЗFPs + ЗFPs + ЗFPs + 7FPs)

Page 27: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Выравниваем функциональные точки

Page 28: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Общесистемные требованияПомимо функциональных требований на продукт накладываются общесистемные требования General Systems Characteristics (GSCs), которые ограничивают разработчиков в выборе решения и увеличивают сложность разработки. Для учета этой сложности применяется фактор выравнивания (VAF). Значение фактора VAF зависит от 14 параметров, которые определяют системные характеристики продукта:

Обмен данными Распределенная обработка данных

Производительность

Ограничения по аппаратным

ресурсамТранзакционная

нагрузка

Интенсивность взаимодействия с

пользователемЭргономика Интенсивность

изменения данныхСложность обработки

Повторное использование

Удобство инсталляции

Удобство администрировани

яПортируемость Гибкость

Основано на материалах David Consulting Grouphttp://citforum.ru/SE/project/arkhipenkov_lectures/12.shtml

Page 29: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Определяем фактор выравнивания (VAF, value added factor)

Оцениваем каждый критерий от 1 до 5

Считаем общую степень влияния (total degree of influence, TDI)

Используя формулу, считаем фактор выравнивания

Формула: VAF=(TDI*0.01)+0.65

Основано на материалах David Consulting Group

Общесистемные требования ВесОбмен данными 5Распределенная обработка данных 4Производительность 3Ограничения по аппаратным ресурсам 2Транзакционная нагрузка 3Интенсивность взаимодействия с пользователем 5Эргономика 4Интенсивность изменения данных 5Сложность обработки 2Повторное использование 3Удобство инсталляции 1Удобство администрирования 3Портируемость 2Гибкость 5

Общая степень влияния 47

Фактор выравнивания 1.12

Значение

Влияние на систему

0 Не влияет 1 Незначительное2 Умеренное3 Среднее 4 Значительное 5 Сильное

Page 30: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Пример #4 – Используем фактор выравнивания

Если количество не выровненных функциональных точек равно 100 (fps) и VAF равен 1.1,тогда количество выравненных функциональных точек будет 110 fps.

Выровненные функциональные точки = не выровненные функциональные точки x VAF

Ни одно приложение на получает 0 при оценке General Systems Characteristics и не одно не набирает 5 по всем параметрам, но если бы такое было возможно то, • Для всех 0 VAF = (0*.01) +.65 = .65 • Для всех 5 VAF = (70*.01)+.65 = 1.35

В среднем использование выравнивания изменяет оценку до -30% до +35%

Основано на материалах David Consulting Group

Page 31: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Чек-лист для подсчета функциональных точек Соберите необходимую документацию;

Определите функциональные требования и границы приложения;

Определите и классифицируйте основные функциональные компоненты;

Посчитайте файлы данных;

Внутренние логические файлы (ILF);

Внешние интерфейсные файлы External Groupings of data or External Interface Files (EIF);

Посчитайте транзакции;

внешние входные транзакции (EI);

внешние выходные транзакции (EO);

внешние запросы (EQ);

Определите функциональную сложность каждого компонента и его размер (L-A-H) в функциональных точках;

Посчитайте общий размер приложения в функциональных точках;

Выровняйте функциональные точки, используя VAF;

Осно

вано

на

мате

риал

ах D

avid

Con

sulti

ng G

roup

Page 32: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Что дальше почитать/посмотреть?

Producing realistic estimates - http://www.softwarevalue.com/insights/publications/better-estimation-better-decisions/

Webinars and publication on Function Points: http://www.softwarevalue.com/insights/ Trainings: http://www.softwarevalue.com/news/training/ Статья - Обзор метода функциональных точек http

://citforum.ru/SE/project/arkhipenkov_lectures/12.shtml Вебинар - Основы оценки размера проекта методом функциональных точекhttps

://attendee.gotowebinar.com/register/666912455395478273?source=conf

Page 33: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

Page 34: Основы оценки размера проекта методом функциональных точек

www.luxoft.com

СпасибоОстаемся на связи:https://www.facebook.com/LuxoftAgilePracticehttp://www.youtube.com/c/LuxoftAgilePractice https://www.facebook.com/Svetlana.Mukhina8https://www.linkedin.com/in/svetlanamukhina