Upload
luxoftagilepractice
View
59
Download
2
Embed Size (px)
Citation preview
www.luxoft.com
Метод Функциональных ТочекОсновы оценки размера проекта методом функциональных точек
Основано на материалах David Consulting Group
Светлана Мухина
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
www.luxoft.com
Теория
www.luxoft.com
РазмерЗадачи
Усилия Человеко-часы
Длительность проекта
Время
Изменения
RFC
ЛюдиКоманда проекта
Дефекты
Качество
Критичные ресурсы
Ограничения
Оцениваем проект Основано на материалах David Consulting Group
www.luxoft.com
История
Анализ функциональных точек — стандартный метод измерения размера программного продукта с точки зрения пользователей системы.Метод разработан Аланом Альбрехтом (Alan Albrecht) в середине 70-х.
Метод был впервые опубликован в 1979 году.
В 1986 году была сформирована Международная Ассоциация Пользователей Функциональных Точек (International Function Point User Group — IFPUG), которая опубликовала несколько ревизий метода.
Основано на материалах David Consulting Group
www.luxoft.com
Основные Термины• Единица измерения функциональности программного
обеспечения с точки зрения пользовательской системы. Функциональная точка
• Человек или система, которая взаимодействует с программным обеспечением.Пользователь
• Функциональные пользовательские требования так, как они воспринимаются пользователем. User View
• Набор функций, который должна выполнять система в терминах задач и сервисов. Эти требования задают “что” система должна делать.
Функциональные пользовательские
требования
• Эти требования задают с соблюдением “каких условий” система должна что-то делать.
Нефункциональные пользовательские
требования
Основано на материалах David Consulting Group
www.luxoft.com
• ФТ помогают точно оценивать разменость приложения;
• ФТ могут быть подсчитаны разными людьми, в разное время с одним и тем же результатом;
• ФТ могут быть подсчитаны прокси; • ФТ понятны для не технических
пользователей;• С помощью ФТ можно сравнить
эффективность инструментов, команды, среды и т.д.
• Небольшой риск инфляции по сравнению с методом подсчета строк кода или стори поинтами;
• ФТ можно подсчитать используя написанные требования или готовое приложение;
• ФТ - это не лучший способ оценки дефектов или задач, связанных с производительностью приложения;
• ФТ не очень эффективны для оценки в ситуации, когда оценённая функциональность будет имплементирована одни или двумя разработчиками;
• Команда разработки не принимает участие в оценке задач;
• Метод ФТ требует значительных инвестиций в обучение;
• Для эффективного использования метода ФТ необходима постоянная практика;
Преимущества и недостатки метода Функциональных Точек
Основано на материалах David Consulting Group
www.luxoft.com
Практика
www.luxoft.com
Собираем доступную документац
ию
Определяем объем работ,
границы приложения, функциональ
ные требования
Идентифицируем основные
функциональные
компоненты
Считаем размер в
ФТ
Документируем
результаты подсчета
Предоставляем
результаты заказчику
Процесс оценки в функциональных точкахОсновано на материалах David Consulting Group
www.luxoft.com
Устанавливаем Границы ПриложенияГраницы приложения – это абстрактный интерфейс между приложением и всеми его пользователями
• Что является «внешним» по отношению к оцениваемому продукту? • Где располагается «граница системы», через которую проходят
транзакции передаваемые или принимаемые продуктом, с точки зрения пользователя?
• Какие данные поддерживаются приложением, а какие — внешние?
Основано на материалах http://citforum.ru/SE/project/arkhipenkov_lectures/12.shtml
www.luxoft.com
Определяем тип объекта оценки
Мы считаем
• Разработку. Оцениваем количество функциональности поставляемой пользователям в первом релизе продукта.
• Изменения. Оцениваем необходимые доработки: добавление, изменение и удаление функционала.
• Продукт. Оцениваем размер уже существующего продукта.
Мы не считаем• Поддержку – действия
необходимые совершить для устранения дефектов в программном обеспечение
• Улучшения - действия необходимые совершить для улучшения производительности, надежности, поддерживаемости или других атрибутов программного обеспечения
• Нефункциональные требования
Основано на материалах David Consulting Group
www.luxoft.com
Что мы считаем?
www.luxoft.com
Внутренние логические файлы и внешние интерфейсные файлы
Приложение
Внутренний логический файл (ILFs) — выделяемая пользователем логически связанная группы данных или блок управляющей информации, которые поддерживаются внутри продукта.
Внешний интерфейсный файл (EIFs) — выделяемый пользователем логически связанная группы данных или блок управляющей информации, на который ссылается продукт, но которые поддерживаются вне продукта.
Не считайте как ILF и EIF:• Файлы необходимы для поддержки той или иной технологии • Файлы индексации и сортировки • Временные файлы данных • Другие технические файлы
Основано на материалах David Consulting Group
www.luxoft.com
Элементы ILFs и EIFs
Количество ILFs и EIFs и их функциональная сложность влияет на размер приложения в функциональных точках. Функциональная сложность файлов определяется количеством связанных с ними элементов: логических групп данных и неповторяемых уникальных полей.
Приложение
Внешний интерфейсный файл (EIF)
RETsDETsDETsDETs
Внутренний логический файл (ILF)RET (record element type) логическая группа данных, например, адрес, паспорт, телефонный номер.
DET (data element type) неповторяемое уникальное поле данных, например, Имя Клиента
Основано на материалах David Consulting Group
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
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
www.luxoft.com
Определяем типы транзакцийОсновано на материалах David Consulting Group, http://citforum.ru/SE/project/arkhipenkov_lectures/12.shtml
Функция Тип транзакции
EI EO EQИзменяет поведение системы О Д NAПоддерживает один или более ILF О Д NAПредставление информации пользователю
Д О О
О — основная;Д — дополнительная; NA — не применима.
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
www.luxoft.com
Пример #2 – считаем уникальные поля и группы данных
Основано на материалах David Consulting Group
www.luxoft.com
Пример #2 – Результаты Основано на материалах David Consulting Group
www.luxoft.com
Как мы считаем?
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) и количества логических групп данных
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) модифицируемых или считываемых в транзакции.
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 =
Вес транзакций в функциональных точках
www.luxoft.com
Пример #3 – Считаем функциональные точки приложения
Осно
вано
на
мате
риал
ах D
avid
Con
sulti
ng G
roup
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)
www.luxoft.com
Выравниваем функциональные точки
www.luxoft.com
Общесистемные требованияПомимо функциональных требований на продукт накладываются общесистемные требования General Systems Characteristics (GSCs), которые ограничивают разработчиков в выборе решения и увеличивают сложность разработки. Для учета этой сложности применяется фактор выравнивания (VAF). Значение фактора VAF зависит от 14 параметров, которые определяют системные характеристики продукта:
Обмен данными Распределенная обработка данных
Производительность
Ограничения по аппаратным
ресурсамТранзакционная
нагрузка
Интенсивность взаимодействия с
пользователемЭргономика Интенсивность
изменения данныхСложность обработки
Повторное использование
Удобство инсталляции
Удобство администрировани
яПортируемость Гибкость
Основано на материалах David Consulting Grouphttp://citforum.ru/SE/project/arkhipenkov_lectures/12.shtml
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 Сильное
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
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
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
www.luxoft.com
www.luxoft.com
СпасибоОстаемся на связи:https://www.facebook.com/LuxoftAgilePracticehttp://www.youtube.com/c/LuxoftAgilePractice https://www.facebook.com/Svetlana.Mukhina8https://www.linkedin.com/in/svetlanamukhina