- •Понятие программного обеспечения, классификация программного обеспечения
- •Жизненный цикл по и его стандартизация, процессы жц по, группы процессов жц по
- •Процесс разработки по: основные действия и их содержание
- •Анализ требований к по
- •Проектирование архитектуры по
- •Кодирование и тестирование по
- •Сертификация процессов разработки по, модель cmm
- •Стратегии жизненного цикла по: понятие, виды и их сравнительная характеристика
- •Каскадная модель жизненного цикла по: описание, преимущества и недостатки, критерии применения
- •Процесс макетирования по: его содержание, преимущества и недостатки, критерии применения
- •Недостатки:
- •Инкрементная модель жизненного цикла по: описание, преимущества и недостатки, критерии применения
- •Спиральная модель жизненного цикла по: описание, преимущества и недостатки, критерии применения
- •Rad модель жизненного цикла по: описание, преимущества и недостатки, критерии применения
- •Структурный подход к разработке по: основные принципы и методы
- •Методология idef0: назначение, icom-модель, правила построения диаграммы
- •Методология idef0: назначение, правила построения иерархии диаграмм, критерии завершения и стратегии декомпозиции
- •Методология dfd: назначение, элементы диаграммы и их назначение, правила построения диаграммы
- •Методология dfd: правила построения иерархии диаграмм, спецификации и их содержание
- •Модификация dfd п. Варда и с. Меллора
- •Модификация dfd д. Хетли и и. Пирбхаи
- •Методология idef1x: назначение, сущности и связи: понятие и их обозначения
- •Методология idef1x: назначение, виды и уровни моделей, порядок построения
- •21 Методология idef3: назначение, единица работы, связи и их виды, соединения и их виды
- •Типы связей idef3
- •Типы соединений
- •Виды указателей idef3
- •22 Основные этапы проектирования программных систем и их содержание
- •Информационные потоки процесса синтеза программной системы
- •23 Структурирование программной системы: цели и модели
- •Широковещательная модель
- •Модель, управляемая прерываниями
- •Модульность программной системы: понятие и свойства модуля, цели модульной декомпозиции
- •Затраты на модульность
- •26 Связность модуля: понятие, виды связности и их описание
- •Характеристика связностей модуля
- •27 Сцепление модулей: понятие, виды сцепления и их описание
- •28 Сложность программной системы, основные подходы к ее оценке
- •29 Структурные карты Констайнтайна
- •Элементы структурных карт: а) – модуль; б) – вызов модуля; в) – связь по данным; г) – связь по управлению
- •Типы вызовов модулей
- •30 Метод анализа и проектирования Джексона
- •Соединения между физическими процессами и их моделями
- •31.Объектно-ориентированный подход к разработке по: основные понятия и принципы
- •32.Язык uml: причины появления и история развития языка, структура языка
- •33.Канонические диаграммы языка uml: их виды и типы, рекомендации построения
- •34.Механизмы расширения uml: виды, примеры использования
- •35.Диаграмма вариантов использования: назначение, принципы построения
- •36.Диаграмма классов: назначение, классы, обозначение классов, их атрибутов и операций
- •37.Диаграмма классов: назначение, отношения между классами и их применение
- •38.Диаграмма композитной структуры: композитные классы и их части, принципы построения
- •39.Диаграмма композитной структуры: кооперации и их использование
- •40. Диаграмма пакетов: назначение, пакеты и отношения между ними
- •41.Диаграмма объектов, назначение, объекты и отношения между ними
- •42.Диаграмма последовательности: назначение, линии жизни, прием и передача сообщений между линиями жизни
- •43.Диаграмма последовательности: назначение, комбинированные фрагменты, их виды и использование
- •44.Диаграмма деятельности: назначение, понятие, семантика и обозначение деятельности, действия и дуг
- •45.Диаграмма деятельности: узлы управления, их виды и применение
- •46. Дополнительные элементы диаграммы деятельности: действия приема и передачи сигналов, центральный буфер и хранилище данных
- •Дополнительные элементы диаграммы деятельности: разбиения, регион прерываемой деятельности, обработчик исключений
- •Диаграмма коммуникации: назначение, принципы построения
- •Диаграмма обзора взаимодействия: назначение, принципы построения
- •Когда применяются диаграммы обзора взаимодействия
- •50. Временные диаграммы: назначение, принципы построения
- •51. Диаграмма конечного автомата: назначение, простое и композитное состояния
- •52. Диаграмма конечного автомата: простые и составные переходы, правила срабатывания переходов
- •6.3. Переход
- •6.6. Сложные переходы
- •53. Диаграмма конечного автомата: псевдосостояния, их виды и применение
- •54. Протокольные конечный автомат: назначение, элементы и принципы построения
- •55. Диаграмма компонентов: назначение, компоненты, интерфейсы и порты, соединения и их виды
- •56. Диаграмма развертывания: назначение, узлы, артефакты, соединения и их виды
- •57. Объектно-ориентированные метрики: назначение, связь с принципами ооп
- •58. Объектно-ориентированные метрики: связность по данным
- •59. Объектно-ориентированные метрики: связность по методам
- •60. Объектно-ориентированные метрики: сцепление объектов и локальность данных
- •61. Объектно-ориентированные метрики: набор метрик Чидамбера и Кемерера
- •62. Объектно-ориентированные метрики: набор метрик Лоренца и Кидда
- •63. Объектно-ориентированные метрики: набор метрик Фернандо Аббреу
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), которая определяется как отношение суммы количеств секций, содержащих каждую склеенную лексему, к произведению количества лексем данных в классе на количество секций данных. Расчет метрики осуществляется по формуле: