Метрические особенности объектно-ориентированных программных систем
Объектно-ориентированные метрики вводятся с целью:
улучшить понимание качества продукта;
оценить эффективность процесса конструирования;
улучшить качество работы на этапе проектирования.
Все эти цели важны, но для программного инженера главная цель — повышение качества продукта. Возникает вопрос —
как измерить качество объектно-ориентированной системы?
Для любого инженерного продукта метрики должны ориентироваться на его уникальные характеристики. Например, для
электропоезда вряд ли полезна метрика «расход угля на километр пробега». С
точки зрения метрик выделяют пять
характеристик объектно-ориентированных систем: локализацию, инкапсуляцию, информационную закрытость, наследование
и способы абстрагирования объектов. Эти характеристики оказывают максимальное влияние на объектно-ориентированные
метрики.
Локализация
Локализация фиксирует
способ группировки информации в программе. В классических методах, где используется
функциональная декомпозиция, информация локализуется вокруг функций. Функции в них реализуются как процедурные
модули. В методах, управляемых данными, информация группируется вокруг структур данных. В объектно-ориентированной
среде информация группируется внутри классов или объектов (инкапсуляцией как данных, так и процессов).
Поскольку в классических
методах основной механизм локализации — функция, программные метрики ориентированы на
внутреннюю структуру или сложность функций (длина модуля, связность, цикломатическая сложность) или на способ,
которым функции связываются друг с другом (сцепление модулей).
Так как в объектно-ориентированной системе базовым элементом является класс, то локализация здесь основывается на
объектах. Поэтому метрики должны применяться к классу (объекту) как к комплексной сущности. Кроме того, между
операциями (функциями) и классами могут быть отношения не только «один-к-одному». Поэтому метрики, отображающие
способы взаимодействия классов, должны быть приспособлены к отношениям «один-ко-многим», «многие-ко-многим».
Достарыңызбен бөлісу: