Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Статический анализ программ.doc
Скачиваний:
32
Добавлен:
01.05.2014
Размер:
82.43 Кб
Скачать

Расстояние от главной последовательности

Теперь можно ввести последние метрики. Если желательно для категории быть на главной последовательности или быть близко к главной последовательности, мы можем создать метрику оценивающую близость категории к этому идеалу.

  • D: Расстояние (Distance): D = | (A+I-1) / sqrt(2) |. Это перпендикулярное расстояние категории от главной последовательности. Диапазон значений этой метрики [0, ~0.707].

  • Dn: Нормализованное расстояние. Можно нормализовать метрикуD, поместив ее значения между [0,1], либо используя более простую форму | (A+I-1) |.

С помощью данной метрики категории проекта могут быть проанализированы на их полное соответствие главной последовательности. МетрикаDможет быть рассчитана для каждой категории. Любая категория, которая имеет значениеDне близкое к нулю, может быть повторно исследована и реструктурирована.

Возможен  также и статистический анализ проекта. Можно вычислять среднее величину и отклонения всех Dметрик в пределах проекта. Отклонение может использоваться для того, чтобы установить диапазон, который позволит идентифицировать категории  "исключительные" по сравнению со всеми другими категориями.

Заключение и предостережение

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

Возможно, что имеются лучшие метрики, которые могут использоваться для измерения качества проекта. Таким образом, не стоит решать, что все проекты должны соответствовать метрикам Мартина. Проектировщики должны экспериментировать с этими метриками на своих проектах и оценить их.

Литература

[1] R.C. Martin. Designing Object-Oriented C++ Applications Using the Booch Method. Prentice-Hall. 1995.