Взвешенные микро-функциональные точки - Weighted Micro Function Points
Взвешенные микро-функциональные точки (WMFP) это современный размер программного обеспечения алгоритм, который является преемником научных методов твердого предка, как КОКОМО, КОСИСМО, индекс ремонтопригодности, цикломатическая сложность, функциональные точки, и Сложность Холстеда. Он дает более точные результаты, чем традиционные методики определения размера программного обеспечения.[1], требуя меньшего количества настроек и знаний от конечного пользователя, поскольку большая часть оценок основана на автоматических измерениях существующего исходного кода.
Поскольку многие методы измерения предков используют исходные строки кода (SLOC) для измерения размера программного обеспечения, WMFP использует синтаксический анализатор, чтобы понять исходный код, разбивая его на микро-функции и вывести несколько показателей сложности и объема кода, которые затем динамически интерполируются в окончательную оценку трудозатрат. Помимо совместимости с водопадом жизненный цикл разработки программного обеспечения методологии, WMFP также совместим с более новыми методологиями, такими как Six Sigma, Спираль Бема, и Гибкий (AUP / Lean / XP / DSDM), благодаря возможности дифференциального анализа, которая стала возможной благодаря элементам измерения более высокой точности.[2]
Измеряемые элементы
Измеряемые элементы WMFP несколько отличаются показатели программного обеспечения выводится из исходного кода анализом алгоритма WMFP. Они представлены в процентах от усилий всей единицы (проекта или файла) и переведены во время.
- Сложность потока (FC) - Измеряет сложность программ » управление потоком путь аналогично традиционному цикломатическая сложность, с большей точностью за счет расчета весов и соотношений.
- Словарь объектов (OV) - Измеряет количество уникальной информации, содержащейся в исходном коде программ, аналогично традиционному Словарь Холстеда с динамической языковой компенсацией.
- Заклинание объекта (OC) - Измеряет количество использований информации, содержащейся в исходном коде программ.
- Арифметическая сложность (AI) - Измеряет сложность арифметических вычислений в программе
- Передача данных (DT) - Измеряет манипуляции со структурами данных внутри программы
- Структура кода (CS) - Измеряет количество усилий, затрачиваемых на структуру программы, например разделение кода на классы и функции.
- Встроенные данные (ID) - Измеряет количество усилий, затрачиваемых на встраивание жестко закодированных данных.
- Комментарии (см) - Измеряет количество усилий, затраченных на написание комментариев к программе.
Расчет
Алгоритм WMFP использует трехэтапный процесс: анализ функций, преобразование APPW и преобразование результатов. Динамический алгоритм балансирует и суммирует измеренные элементы и выдает общую оценку трудозатрат. Основная формула:
- ∑ (WiMi)∏Dq
- M = значение исходной метрики, измеренное на этапе анализа WMFP.
- W = скорректированный вес, присвоенный метрике M моделью APPW
- N = количество типов метрики
- i = текущий индекс типа метрики (итерация)
- D = фактор драйверов затрат, вводимый пользователем
- q = текущий индекс драйвера затрат (итерация)
- K = количество факторов затрат
Затем эта оценка преобразуется во время с помощью статистической модели, называемой средними весами профиля программиста (APPW), которая является проприетарным преемником COCOMO II 2000 и КОСИСМО. Полученное время в часах работы программиста затем умножается на определенную пользователем стоимость часа для среднего программиста, чтобы получить среднюю стоимость проекта, переведенную в валюту пользователя.
Минусы
Базовые элементы WMFP по сравнению с традиционными моделями определения размеров, такими как COCOMO, более сложны до такой степени, что их невозможно реально оценить вручную, даже в небольших проектах, и для анализа исходного кода требуется программное обеспечение. В результате его можно использовать только для прогнозирования затрат на основе аналогий, а не для теоретических предположений.
Смотрите также
- Размер программного обеспечения
- Метрика программного обеспечения
- Функциональные точки
- Цикломатическая сложность
- Меры сложности Холстеда
- Программные параметрические модели
Рекомендации
- ^ Каперс Джонс (октябрь 2009 г.) «Лучшие практики разработки программного обеспечения»: страницы 318–320. [1]
- ^ Ежеквартальная публикация TickIT (2009 г.) «1 квартал 2009 г.»: стр. 13