Зависимость изменения между классами
Зависимость изменения между классами CDBC (Change Dependency Between Classes) определяет потенциальный объем изменений, необходимых после модификации класса-сервера SC (server class) на этапе сопровождения. До тех пор, пока реальное количество необходимых изменений класса-клиента СС (client class) неизвестно, CDBC указывает количество методов, на которые влияет изменение SC.
CDBC зависит от:
q области видимости изменяемого класса-сервера внутри класса-клиента (определяется типом отношения между CS и СС);
q вида доступа СС к CS (интерфейсный доступ или доступ реализации).
Возможные типы отношений приведены в табл. 14.3, где п — количество методов класса СС, — количество методов СС, потенциально затрагиваемых изменением.
Таблица 14.3.Вклад отношений между клиентом и сервером в зависимость изменения
Тип отношения | |
SC не используется классом СС SC — класс экземплярной переменной в классе СС Локальные переменные типа SC используются внутри /-методов класса СС SC является суперклассом СС SC является типом параметра для/-методов класса СС СС имеет доступ к глобальной переменной класса SC | n j n j n |
Конечно, здесь предполагается, что те элементы класса-сервера SC, которые доступны классу-клиенту СС, являются предметом изменений. Авторы исходят из следующей точки зрения: если класс SC является «зрелой» абстракцией, то предполагается, что его интерфейс более стабилен, чем его реализация. Таким образом, многие изменения в реализации SC могут выполняться без влияния на его интерфейс. Поэтому вводится фактор стабильности интерфейса для класса-сервера, он обозначается как к (0 < k < 1). Вклад доступа к интерфейсу в зависимость изменения можно учесть умножением на (1 - k).
Метрика для вычисления степени CDBC имеет вид:
;
CDBC(CC, SC) = min(n, A).
Пути минимизации CDBC:
1) ограничение доступа к интерфейсу класса-сервера;
2) ограничение видимости классов-серверов (спецификаторами доступа public, protected, private).
Дата добавления: 2015-03-07; просмотров: 703;