Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kratkaya_versia_2.docx
Скачиваний:
37
Добавлен:
19.09.2019
Размер:
1.12 Mб
Скачать

57. Объектно-ориентированные метрики: назначение, связь с принципами ооп

При разработке объектно-ориентированных программных систем основная часть затрат приходится на создание визуальных моделей. При этом очень важной является корректная и всесторонняя оценка качества этих моделей. Для выполнения этой задачи необходимо создание специального метрического аппарата, который бы развивал классические оценки сложных программных систем (на основе метрик сложности, связности и сцепления), а также учитывал специфические особенности объектно-ориентированного подхода. В рамках данной главы будут рассмотрены основные метрики, применяемые для оценки объектно-ориентированных систем.

Метрические особенности объектно-ориентированных программных систем

Объектно-ориентированные метрики вводятся с целью:

  • улучшить понимание качества программного продукта;

  • оценить эффективность процесса разработки;

  • улучшить качество работы на этапе проектирования.

С точки зрения метрик выделяют пять характеристик объектно-ориентированных систем: локализация, инкапсуляция, информационная закрытость, наследование, механизмы абстрагирования.

Локализация – фиксирует способ группировки информации о программе. В объектно-ориентированных системах локализация основывается на объектах, поэтому метрики должны применяться к классу (объекту) как комплексной сущности и учитывать возможность таких отношений как «один-ко-многим» и «многие-ко-многим»;

Инкапсуляция – упаковка (связывание) совокупности элементов. В объектно-ориентированных системах инкапсулируются обязанности классов, предоставляемые его атрибутами, операциями и состояниями. Для метрик учет инкапсуляции приводит к измерению группы атрибутов и обрабатывающих модулей (операций класса). Инкапсуляция переводит измерения на более высокий уровень абстракции (пример – метрика «количество операций на класс»);

Информационная закрытость (делает невидимыми операционные детали программного компонента). Качественные объектно-ориентированные системы должны поддерживать высокий уровень информационной закрытости, поэтому метрики, определяющие степень достигнутой закрытости, тем самым отображают качество объектно-ориентированного проекта;

Наследование – механизм, обеспечивающий тиражирование обязанностей класса на другие классы. Так как наследование является одним из основных принципов ООП, то на нем фокусируются многие объектно-ориентированные метрики (количество потомков класса, количество родителей, высота класса в иерархии наследования);

Способы абстрагирования – механизмы, которые позволяют проектировщику выделять главное в программном компоненте (атрибуты и операции) без учета второстепенных деталей. Так как класс – это основная абстракция в ООП, то объектно-ориентированные метрики должны представлять абстракции в терминах измерений класса. Примеры: количество экземпляров класса в приложении, количество родовых классов в приложении, отношение родовых классов к количеству неродовых классов.

58. Объектно-ориентированные метрики: связность по данным

В объектно-ориентированных программных системах вводятся метрики связности и сцепления объектов. В рамках объектной связности выделяют две метрики: связность по данным и связность по методам. Метрика связности по данным вычисляется с использованием модели секционирования класса, которая основывается на экземплярных переменных класса. Авторами данной методики являются Л. Отт и Б. Мехра. К базовым понятиям методики относят:

  • Лексема данных – это определение констант, переменных или ссылок на них.

  • Секция данных – это последовательность лексем данных в операторах, которые требуются для вычисления некоторого выходного параметра метода.

  • Секционированная абстракция – это объединение всех секций данных метода.

  • Секционированная абстракция класса (Class Slice Abstraction – CSA) – это объединение секций всех экземплярных переменных класса, который составляют путем обработки всех методов класса.

  • Склеенная лексема – лексемы данных, которые являются элементами более чем одной секции данных.

  • Сильно склеенная лексема – склеенные лексемы, которые являются элементами всех секций данных.

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

Сильная связность по данным (Strong data cohesion – SDC) – это метрика, основанная на количестве лексем данных, входящих во все секции данных для класса. Данная метрика учитывает количество сильно склеенных лексем в классе и вычисляется по формуле:

где SG(CSA(C)) – объединение сильно связанных лексем каждого из методов класса;

лексемы(C) – множество всех лексем данных класса.

Класс без сильно склеенных лексем имеет нулевую сильную связность по данным.

Слабая связность по данным (Weak data cohesion – WDC) – метрика, которая оценивает связность, базируясь на склеенных лексемах. Склеенные лексемы не требуют связывания всех секций данных, поэтому данная метрика определяет более слабый тип связности. Метрика WDC рассчитывается по формуле:

где G(CSA(C)) – объединение связанных лексем каждого из методов класса.

Класс без склеенных лексем не имеет слабой связности по данным.

Более точной метрикой связность между секциями данных является клейкость данных (Data adhesiveness – DA), которая определяется как отношение суммы количеств секций, содержащих каждую склеенную лексему, к произведению количества лексем данных в классе на количество секций данных. Расчет метрики осуществляется по формуле:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]