Подсчет функциональных точек, связанных с транзакциями
Подсчет функциональных точек, связанных с транзакциями — это четвертый шаг анализа по методу функциональных точек.
Транзакция — это элементарный неделимый замкнутый процесс, представляющий значение для пользователя и переводящий продукт из одного консистентного состояния в другое.
В методе различаются следующие типы транзакций (Таблица 9):
· EI (external inputs) — внешние входные транзакции, элементарная операция по обработке данных или управляющей информации, поступающих в систему из вне.
· EO (external outputs) — внешние выходные транзакции, элементарная операция по генерации данных или управляющей информации, которые выходят за пределы системы. Предполагает определенную логику обработки или вычислений информации из одного или более ILF.
· EQ (external inquiries) — внешние запросы, элементарная операция, которая в ответ на внешний запрос извлекает данные или управляющую информацию из ILF или EIF.
Таблица 9. Основные отличия между типами транзакций. Легенда: О — основная; Д — дополнительная; NA — не применима.
Функция | Тип транзакции | ||
EI | EO | EQ | |
Изменяет поведение системы | О | Д | NA |
Поддержка одного или более ILF | О | Д | NA |
Представление информации пользователю | Д | О | О |
Оценка сложности транзакции основывается на следующих ее характеристиках:
· FTR (file type referenced) — позволяет подсчитать количество различных файлов (информационных объектов) типа ILF и/или EIF модифицируемых или считываемых в транзакции.
· DET (data element type) — неповторяемое уникальное поле данных. Примеры. EI: поле ввода, кнопка. EO: поле данных отчета, сообщение об ошибке. EQ: поле ввода для поиска, поле вывода результата поиска.
Для оценки сложности транзакций служат матрицы, которые представлены в Таблица 10 и Таблица 11.
Таблица 10. Матрица сложности внешних входных транзакций (EI)
EI | 1-4 DET | 5-15 DET | 16+ DET |
0-1 FTR | Low | Low | Average |
2 FTR | Low | Average | High |
3+ FTR | Average | High | High |
Таблица 11. Матрица сложности внешних выходных транзакций и внешних запросов (EO & EQ)
EO & EQ | 1-5 DET | 6-19 DET | 20+ DET |
0-1 FTR | Low | Low | Average |
2-3 FTR | Low | Average | High |
4+ FTR | Average | High | High |
Оценка транзакций в не выровненных функциональных точках (UFP) может быть получена из матрицы (Таблица 12)
Таблица 12. Сложность транзакций в не выровненных функциональных точках (UFP)
Сложность транзакций | Количество UFP (EI & EQ) | Количество UFP (EO) |
Low | ||
Average | ||
High |
В качестве примера, рассмотрим оценку управляющей транзакции (EI) для диалогового окна, задающего параметры проверки орфографии в MS Office Outlook (Рисунок 40).
Рисунок 40. Диалоговое окно, управляющее проверкой орфографии в MS Office Outlook
Каждый "Check box" оценивается, как 1 DET. Выпадающий список — 1 DET. Каждая управляющая кнопка должна рассматриваться как отдельная транзакция. Например, если оценивать управляющую транзакцию по кнопке «OK», то, для данной транзакции мы имеем 1 FTR и 8 DET. Поэтому, согласно матрице (Таблица 10), мы можем оценить сложность транзакции, как Low. И, наконец, в соответствие с матрицей (Таблица 12), данная транзакция должна быть оценена в 3 не выровненных функциональных точек (UFP).
Определение суммарного количества не выровненных функциональных точек (UFP)
Общий объем продукта в не выровненных функциональных точках (UFP) определяется путем суммирования по всем информационным объектам (ILF, EIF) и элементарным операциям (транзакциям EI, EO, EQ).
Определение значения фактора выравнивания (FAV)
Помимо функциональных требований на продукт накладываются общесистемные требования, которые ограничивают разработчиков в выборе решения и увеличивают сложность разработки. Для учета этой сложности применяется фактор выравнивания (VAF). Значение фактора VAF зависит от 14 параметров, которые определяют системные характеристики продукта:
1. Обмен данными (0 — продукт представляет собой автономное приложение; 5 — продукт обменивается данными по более, чем одному телекоммуникационному протоколу).
2. Распределенная обработка данных (0 — продукт не перемещает данные; 5 — распределенная обработка данных выполняется несколькими компонентами системы).
3. Производительность (0 — пользовательские требования по производительности не установлены; 5 — время отклика сильно ограничено критично для всех бизнес-операций, для удовлетворения требованиям необходимы специальные проектные решения и инструменты анализа.
4. Ограничения по аппаратным ресурсам (0 — нет ограничений; 5 — продукт целиком должен функционировать на определенном процессоре и не может быть распределен).
5. Транзакционная нагрузка (0 — транзакций не много, без пиков; 5 — число транзакций велико и неравномерно, требуются специальные решения и инструменты).
6. Интенсивность взаимодействия с пользователем (0 — все транзакции обрабатываются в пакетном режиме; 5 — более 30% транзакций — интерактивные).
7. Эргономика (эффективность работы конечных пользователей) (0 — нет специальных требований; 5 — требования по эффективности очень жесткие).
8. Интенсивность изменения данных (ILF) пользователями (0 — не требуются; 5 — изменения интенсивные, жесткие требования по восстановлению).
9. Сложность обработки (0 — обработка минимальна; 5 — требования безопасности, логическая и математическая сложность, многопоточность).
10. Повторное использование (0 — не требуется; 5 — продукт разрабатывается как стандартный многоразовый компонент).
11. Удобство инсталляции (0 — нет требований; 5 — установка и обновление ПО производится автоматически).
12. Удобство администрирования (0 — не требуется; 5 — система автоматически самовосстанавливается).
13. Портируемость (0 — продукт имеет только 1 инсталляцию на единственном процессоре; 5 — система является распределенной и предполагает установку на различные «железо» и ОС).
14. Гибкость (0 — не требуется; 5 — гибкая система запросов и построение произвольных отчетов, модель данных изменяется пользователем в интерактивном режиме).
14 системных параметров (degree of influence, DI) оцениваются по шкале от 0 до 5. Расчет суммарного эффекта 14 системных характеристик (total degree of influence, TDI) осуществляется простым суммированием:
TDI = ∑ DI
Расчет значения фактора выравнивания производится по формуле
VAF = (TDI *0.01) + 0.65
Например, если, каждый из 14 системных параметров получил оценку 3, то их суммарный эффект составит TDI = 3 * 14 = 42. В этом случае значение фактора выравнивания будет: VAF = (42 * 0.01) + 0.65 = 1.07
Расчет количества вьровненных функциональных точек (AFP)
Дальнейшая оценка в выровненных функциональных точках зависит от типа оценки. Начальное оценка количества выровненных функциональных точек для программного приложения определяется по следующей формуле:
AFP = UFP * VAF.
Она учитывает только новую функциональностсть, которая реализуется в продукте. Проект разработки продукта оценивается в DFP (development functional point) по формуле:
DFP = (UFP + CFP) * VAF,
где CFP (conversion functional point) — функциональные точки, подсчитанные для дополнительной функциональности, которая потребуется при установке продукта, например, миграции данных.
Проект доработки и совершенствования продукта оценивается в EFP (enhancement functional point) по формуле:
EFP = (ADD + CHGA + CFP) * VAFA + (DEL* VAFB),
где
· ADD — функциональные точки для добавленной функциональности;
· CHGA — функциональные точки для измененных функций, рассчитанные после модификации;
· VAFA — величина фактора выравнивания рассчитанного после завершения проекта;
· DEL — объем удаленной функциональности;
· VAFB — величина фактора выравнивания рассчитанного до начала проекта.
Суммарное влияние процедуры выравнивания лежит в пределах ±35% относительно объема рассчитанного в UFP.
Метод анализа функциональных точек ничего не говорит о трудоемкости разработки оцененного продукта. Вопрос решается просто, если компания разработчик имеет собственную статистику трудозатрат на реализацию функциональных точек. Если такой статистики нет, то для оценки трудоемкости и сроков проекта можно использовать метод COCOMO II.