Из Википедии, свободной энциклопедии
Перейти к навигацииПерейти к поиску

Взвешенные микрофункциональные точки ( WMFP ) - это современный алгоритм определения размера программного обеспечения , который является преемником таких научных методов, как COCOMO , COSYSMO , индекс ремонтопригодности, цикломатическая сложность , функциональные точки и сложность Холстеда . Он дает более точные результаты, чем традиционные методологии определения размера программного обеспечения [1], при этом требуя меньшей конфигурации и знаний от конечного пользователя, поскольку большая часть оценки основана на автоматических измерениях существующего исходного кода.

Поскольку многие методы измерения предков используют исходные строки кода (SLOC) для измерения размера программного обеспечения, WMFP использует синтаксический анализатор, чтобы понять исходный код, разбивая его на микро-функции и вывести несколько показателей сложности и объема кода, которые затем динамически интерполируются в окончательный результат. оценка усилий. Помимо совместимости с методологией жизненного цикла разработки программного обеспечения « водопад» , WMFP также совместим с более новыми методологиями, такими как Six Sigma, Boehm spiral и Agile (AUP / Lean / XP / DSDM), благодаря возможностям дифференциального анализа. за счет более точных измерительных элементов. [2]

Измеряемые элементы

Измеряемые элементы WMFP - это несколько различных программных показателей, выведенных из исходного кода с помощью анализа алгоритма WMFP. Они представлены в процентах от усилий всей единицы (проекта или файла) и переведены во время.

Сложность потока (FC) - измеряет сложность пути управления потоком программ аналогично традиционной цикломатической сложности с более высокой точностью за счет использования весов и расчета отношений.
Словарь объектов (OV) - измеряет количество уникальной информации, содержащейся в исходном коде программ, аналогично традиционному словарю Холстеда с динамической языковой компенсацией.
Заклинание объекта (OC) - измеряет количество использований информации, содержащейся в исходном коде программы.
Сложность арифметики (AI) - измеряет сложность арифметических вычислений в программе.
Передача данных (DT) - измеряет манипуляции со структурами данных внутри программы.
Структура кода (CS) - измеряет количество усилий, затрачиваемых на структуру программы, например разделение кода на классы и функции.
Встроенные данные (ID) - измеряет количество усилий, затрачиваемых на встраивание жестко закодированных данных.
Комментарии (CM) - измеряет количество усилий, затраченных на написание комментариев к программе.

Расчет

Алгоритм WMFP использует трехэтапный процесс: анализ функций, преобразование APPW и преобразование результатов. Динамический алгоритм уравновешивает и суммирует измеренные элементы и выдает общую оценку усилий. Основная формула:

∑ (WiMi) ∏Dq
M = значение исходной метрики, измеренное на этапе анализа WMFP.
W = скорректированный вес, присвоенный метрике M моделью APPW
N = количество типов метрики
i = текущий индекс типа метрики (итерация)
D = фактор драйверов затрат, предоставляемый пользователем.
q = текущий индекс драйвера затрат (итерация)
K = количество факторов затрат

Затем эта оценка преобразуется во время с помощью статистической модели, называемой средними весами профиля программиста (APPW), которая является запатентованной преемницей COCOMO II 2000 и COSYSMO . Полученное время в часах работы программиста затем умножается на определенную пользователем стоимость часа для среднего программиста, чтобы получить среднюю стоимость проекта, переведенную в валюту пользователя.

Минусы

Базовые элементы WMFP по сравнению с традиционными моделями определения размеров, такими как COCOMO, более сложны до такой степени, что их невозможно реально оценить вручную даже в небольших проектах, и для анализа исходного кода требуется программное обеспечение. В результате его можно использовать только для прогнозирования затрат на основе аналогий, а не для теоретических предположений.

См. Также

Ссылки

  1. ^ Каперс Джонс (октябрь 2009 г.) «Лучшие практики разработки программного обеспечения»: страницы 318–320 [1]
  2. ^ Ежеквартальная публикация TickIT (2009 г.) «1 квартал 2009 г.»: стр. 13