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