- •Статический анализ программ. Метрики для измерения качества программного обеспечения.
- •Введение.
- •Зависимости.
- •Пример: программа копирования.
- •Инвертирование зависимостей при объектно-ориентированном проектировании.
- •Хорошие зависимости
- •Стабильность
- •Категории классов: единицы повторного использования и реализации
- •Зависимости между категориями - это то, чем мы должны управлять.
- •Метрики зависимостей
- •Не все категории должны быть устойчивы
- •Главная последовательность
- •Расстояние от главной последовательности
- •Заключение и предостережение
- •Литература
Расстояние от главной последовательности
Теперь можно ввести последние метрики. Если желательно для категории быть на главной последовательности или быть близко к главной последовательности, мы можем создать метрику оценивающую близость категории к этому идеалу.
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.