<<
>>

Нечеткая логика

Метод, называемый нечеткой логикой, применяется для оценки размера проекта в строках кода (Putnam and Myers 1992, Humphrey 1995). Оценщики обычно могут классифицировать функции по таким группам: «очень малые», «малые», «средние», «большие» и «очень большие».

Затем по историческим данным мы определяем, сколько строк кода в среднем требует очень малая функция, сколько — малая и т. д. В табл. 12.1 показан пример создания подобных оценок.

Таблица 12.1. Пример использования нечеткой логики для оценки размера программы

Размер функции

Среднее количество строк кода на функцию

Количество

функций

Оценка количества строк кода

Очень малая

127

22

2794

Малая

253

15

3795

Средняя

500

10

5000

Большая

1014

30

30 420

Очень большая

1998

27

53 946

ИТОГО

104

95 955

Содержимое столбца «Среднее количество строк кода на функцию» базируется на исторических данных вашей организации и фиксируется до начала оценки. В столбце «Количество’функций» содержится количество функций в каждой категории размера. Содержимое столбца «Оценка количества строк кода» вычисляется по двум другим столбцам. Как видно из таблицы, оценка состоит из 5 значащих цифр, что выходит за пределы точности базовых данных. Я бы представлял эту оценку как «96 ООО строк кода» или даже «100 ООО строк кода» (то есть с 1-2 значащими цифрами), чтобы не создавать ложного впечатления высокой точности.

Как получить средние размеры

Метод нечеткой логики лучше всего работает при калибровке размеров по историческим данным вашей организации. Обычно размеры смежных категорий должны отличаться как минимум в два раза. Некоторые эксперты рекомендуют использовать 4-кратные различия (Putnam and Myers 1992).

Начальные средние показатели размеров создаются на основе данных, получаемых классификацией одной или нескольких законченных систем. Проанализируйте старую систему и отнесите каждую функцию к одной из категорий — очень малая, малая, средняя, большая или очень большая. Затем подсчитайте суммарное количество строк кода в функциях одной категории и разделите его на количество функций; вы получите средний размер в строках кода одной функции данной категории. Пример приведен в табл. 12.2.

Таблица 12.2. Пример вычисления среднего размера функции в строках кода

Размер

Количество

функций

Общее количество строк кода

Средний размер функции

Очень малый

117

14 859

127

Малый

71

17 963

253

Средний

56

28 ООО

500

Большой

169

171 366

1014

Очень большой

119

237 762

1998

Данные в таблице приведены исключительно для примера. Используйте собственные показатели, базирующиеся на исторических данных вашей организации.

СОВЕТ № 55

Используйте нечеткую логику для оценки размера программы в строках кода.

Классификация новой функциональности

При классификации новой функциональности по размерам очень важно, чтобы ваши предположения относительно того, что считать очень малой, малой, средней, большой или очень большой функцией, в оценке соответствовали предположениям, которые использовались при исходном вычислении средних размеров.

Это можно сделать тремя способами: Поручите исходные вычисления тем же людям, которые будут заниматься созданием оценок. Проведите обучение оценщиков, чтобы они правильно классифицировали функции. Документируйте критерии классификации, чтобы оценщики последовательно применяли их в своей работе.

Как не следует использовать нечеткую логику

У статистики имеется один интересный аспект: статистические сводные показатели часто оказываются более достоверными, чем отдельные элементы данных. Как упоминалось в главе 10, закон больших чисел наделяет сводные оценки точностью, превосходящей точность отдельных оценок. Целое действительно становится чем-то большим, нежели простой совокупностью частей.

При использовании нечеткой логики важно помнить об этом явлении. Работа нечеткой логики основана на наших предположениях о том, что если каждая из 71 мелких функций в прошлом состояла в среднем из 235 строк кода, то и в будущем каждая из 15 мелких функций будет состоять примерно из 253 строк. Тем не менее из этого вовсе не следует, что любая отдельная функция будет действительно состоять из 253 строк. Размеры отдельных мелких функций могут лежать в диапазоне от 50 до 1000 строк кода. Следовательно, хотя монолитная оценка, полученная с применением нечеткой логики, может быть на удивление точной, не следует расширять методику для оценки размеров отдельных функций.

По тем же причинам нечеткая логика хорошо работает при 20 и более составляющих. Если вы не располагаете данными по крайней мере по 20 функциям, статистика этого метода будет работать некорректно, и вам лучше поискать другой метод.

Расширения нечеткой логики

Нечеткая логика также может использоваться для оценки объема работ — разумеется, если вы располагаете соответствующими данными. Пример показан в табл. 12.3.

Таблица 12.3. Пример использования нечеткой логики для оценки объема работ

Размер

Среднее количество человекодней на функцию

Количество

функций

Оценка объема работ (в человеко-днях)

Очень малый

4,2

22

92,4

Малый

8,4

15

126

Средний

17

10

170

Большой

34

30

1020

Очень большой

67

27

1809

ИТОГО

104

3217

Данные в таблице приведены исключительно для примера.

Используйте собственные значения количества человеко-дней на функцию, базирующиеся на исторических данных вашей организации.

Окончательная оценка в 3217 человеко-дней снова получилась излишне четкой. Ее желательно упростить до 3200 человеко-дней, 3000 человеко-дней или человеко-лет (для 250 рабочих дней в году). Также всегда следует рассматривать возможность представления результата в виде диапазона — скажем, от 10 до 15 человеко-лет. Такая оценка создает совершенно иное ощущение точности, чем 3217 человеко-дней.

<< | >>
Источник: Макконнелл С.. Сколько стоит программный проект. 2007

Еще по теме Нечеткая логика:

  1. 6.3. Нечеткие коалиции
  2. 1.4 Целесообразность использования нечетко-множественного подхода в описании неопределенностей процесса производства нефти и газа
  3. 3.3 Оценка эффективности инвестиций в объекты нефтегазовой отрасли с помощью теории нечетких множеств
  4. 3.4 Оценка экономической целесообразности замены оборудования на предприятиях нефтегазового комплекса с помощью теории нечетких множеств
  5. Логика формирования цен на реальном рынке
  6. Логика распределения
  7. § 1.1. Научная методология логико-семантического анализа категорий кредита и лизинга
  8. 2.2 Разработка автоматизированной системы поддержки принятия ' решений в управлении процессом обеспечения промышленной безопасности нефтегазового предприятия на основе нечеткой базы знаний
  9. Принцип успеха как пример новой логики планирования бизнеса
  10. 2.6. Логика системного кризиса
  11. 17.2. Структура и логика «Капитала»
  12. Логика распада СССР и административно-территориальная структура России.
  13. РАЗДЕЛ 2. Логика сложных процентов
  14. Размытая логика инвестиционных решений
  15. § 3. Предмет и внутренняя логика математических рукописей
  16. Заблуждение № 7 Трудно понять логику клиентов