Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник ТРПП.doc
Скачиваний:
31
Добавлен:
23.04.2019
Размер:
7.83 Mб
Скачать

4).Зависимость

Зависимость — это отношение, которое показывает, что изменение в одном классе (независимом) может влиять на другой класс (зависимый), который использует его. Графически зависимость изображается как пунктирная стрелка, направленная на класс, от которого зависят. С помощью зависимости уточняют, какая абст­ракция является клиентом, а какая — поставщиком определенной услуги. Пунк­тирная стрелка зависимости направлена от клиента к поставщику. Наиболее часто зависимости показывают, что один класс использует другой класс как аргумент в сигнатуре своей операции.

Зависимый элемент --------------- > Независимый элемент

Полиморфизм . Полиморфизм — возможность с помощью одного имени обозначать операции из раз­личных классов (но относящихся к общему суперклассу). Вызов обслуживания по полиморфному имени приводит к исполнению одной из некоторого набора операций

Конкретизация Г. Буч определяет конкретизацию как процесс наполнения шаблона (родового или параметризованного класса). Целью является получение класса, от которого воз­можно создание экземпляров. Родовой класс служит заготовкой, шаблоном, параметры которого могут напол­няться (настраиваться) другими классами, типами, объектами, операциями. Он может быть родоначальником большого количества обычных (конкретных) клас­сов. Возможности настройки родового класса представляются списком формаль­ных родовых параметров. Эти параметры в процессе настройки должны заменять­ся фактическими родовыми параметрами. Процесс настройки родового класса называют конкретизацией.

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

Метрический аппарат объектно-ориентированных систем развивает идеи классического оценивания сложных программных систем, основанного на метриках сложности, связности и сцепления. Вместе с тем он учитывает специфические особенности объектно-ориентированных решений. Рассматриваются наиболее известные объектно-ориентированные метрики, а также описывается методика их применения.

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

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

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

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

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

Все эти цели важны, но для программного инженера главная цель- повышение качества продукта. Возникает вопрос - как измерить качество объектно-ориентированных системы? Для любого инженерного продукта метрики должны ориентироваться на его уникальные характеристики. Например, для электропоезда вряд ли полезна метрика «расход угля на километр пробега». С точки зрения метрики выделяют пять характеристик объектно-ориентированных систем:

  1. локализацию

  2. инкапсуляцию,

  3. информационную закрытость

  4. наследование

  5. способы абстрагирования объектов.

Эти характеристики оказывают максимальное влияние на О-О метрики.

Локализация

Локализация фиксирует способ группировки информации в программе.

  • В классических методах используется группировка вокруг функций; функции в них реализуется как процедурные модули.

  • В методах, управляемых данными, информация группируется вокруг структур данных.

  • В О-О среде информация группируются внутри классов или объектов (инкапсуляцией как данных, так и процессов).

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

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

Инкапсуляция

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

В О-О системах инкапсулируются обязанности класса, представляемые его свойствами (а для агрегатов и свойствами др. классов), операциями и состояниями.

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

Информационная закрытость

Информационная закрытость делает невидимыми операционные детали программного компонента. Другим компонентам доступна только необходимая информация. Качественные О-О системы поддерживают высокий уровень ИЗ. Таким образом, метрики, измеряющие степени достигнутой закрытости ,тем самым отображают качество О-О проекта.

Наследрвание

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

Абстракция

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

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