Лекция: Критерии и метрики определения качества и сложности разработки ПС. Фунционально и размерно-ориентированные метрики. Метрики ООПС (метрики Чидамбера-Кемерерва).

Функционально-ориентированные метрики косвенно измеряют программный

продукт и процесс его разработки. Вместо подсчета LOC – оценки при этом

рассматривается не размер, а функциональность или полезность продукта.

Используется 5 информационных характеристик.

1.Количество внешний вводов. Подсчитываются все вводы пользователя, по

которым поступают разные прикладные данные.

2.Количество внешних выводов. Подсчитываются все выводы, по которым к

пользователю поступают результаты, вычисленные программным приложением.

3.Количество внешних запросов. Под запросами понимают диалоговый ввод,

который приводит к немедленному программному ответу в форме диалогового вывода.

4.Количество внутренних логических файлов. Подсчитываются все логические

файлы (т.е. логические группы данных, которые могут быть частью базы данных или

отдельным файлом).

5.Количество внешних интерфейсных файлов. Подсчитываются все логические

файлы из других приложений, на которые ссылается данное приложение.

 

После сбора всей необходимой информации приступают к расчетам метрики – количества

функциональных указателей FP (Function Points).

FP= Общее количество*(0,65+0,01*F

i

),

Где F

i

– коэффициент регулировки сложности (I=1..14).

После вычисления FP на его основе формируются метрики производительности,

качества и другие оценки.

Производительность = ФункцУказатель / Затраты (FP/чел.-мес.);

Качество = Ошибки / ФункцУказатель (Единиц/FP);

Удельная Стоимость = Стоимость / ФункцУказатель (Тыс.$/FP);

Документированность=СтраницДокумента/ФункцУказатель (Страниц/FP)

Размерно-ориентированные метрики прямо измеряют программный продукт и процесс его разработки. Основываются такие метрики на LOC-оценках (Lines Of Code). LOC-оценка — это количество строк в программном продукте. Исходные данные для расчета этих метрик сводятся в таблицу (табл. 2.1)

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

— общие затраты (в человеко-месяцах — чел.-мес);

— объем программного изделия (в тысячах строк исходного кода -KLOC);

— стоимость разработки (в тыс.рублей или в долларах $);

— объем документации (в страницах документов -СД);

— ошибки, обнаруженные в течение первого года эксплуатации (число ошибок — ЧО);

— число людей, работавших над изделием (человек);

— срок разработки (в календарных месяцах).

Достоинства размерно-ориентированных метрик:

1) широко распространены;

2) просты и легко вычисляются.

Недостатки размерно-ориентированных метрик:

1) зависимы от языка программирования;

2) требуют исходных данных, которые трудно получить на начальной стадии проекта;

3) не приспособлены к непроцедурным языкам программирования.

 

Набор Чидамбера-Кемерера наиболее часто цитируется в программной индустрии и научных исследованиях. Рассмотрим каждую из метрик набора.

Метрика 1: Взвешенные методы на класс WMC (Weighted Methods Per Class)

 

Допустим, что в классе С определены п методов со сложностью с1...,c2,..., сn. Для оценки сложности может быть выбрана любая метрика сложности (например, цикломатическая сложность). Главное — нормализовать эту метрику так, чтобы номинальная сложность для метода принимала значение 1. В этом случае

Очень часто применяют упрощенную версию метрики. При этом полагают Сi= 1, и тогда WMC — количество методов в классе.

Оказывается, что подсчитывать количество методов в классе достаточно сложно. Возможны два противоположных варианта учета.

1. Подсчитываются только методы текущего класса. Унаследованные методы игнорируются. Обоснование — унаследованные методы уже подсчитаны в тех классах, где они определялись. Таким образом, инкрементность класса — лучший показатель его функциональных возможностей, который отражает его право на существование. Наиболее важным источником информации для понимания того, что делает класс, являются его собственные операции. Если класс не может отреагировать на сообщение (например, в нем отсутствует собственный метод), тогда он пошлет сообщение родителю.

2. Подсчитываются методы, определенные в текущем классе, и все унаследованные методы. Этот подход подчеркивает важность пространства состояний в понимании класса (а не инкрементности класса).

Метрика 2: Высота дерева наследования DIT (Depth of Inheritance Tree)

 

DIT определяется как максимальная длина пути от листа до корня дерева наследования классов. Для показанной на рис. 14.3 иерархии классов метрика DIT равна 3.

Рис. 14.3.Дерево наследования классов

 

Соответственно, для отдельного класса DIT, это длина максимального пути от данного класса до корневого класса в иерархии классов.

По мере роста DIT вероятно, что классы нижнего уровня будут наследовать много методов. Это приводит к трудностям в предсказании поведения класса.

Метрика 3: Количество детей NOC (Number of children)

 

Подклассы, которые непосредственно подчинены суперклассу, называются его детьми. Значение NOC равно количеству детей, то есть количеству непосредственных наследников класса в иерархии классов. На рис. 14.3 класс С2имеет двух детей — подклассы С21 и С22.

С увеличением NOC возрастает многократность использования, так как наследование — это форма повторного использования.

Однако при возрастании NOC ослабляется абстракция родительского класса. Это означает, что в действительности некоторые из детей уже не являются членами родительского класса и могут быть неправильно использованы.

Метрика 4: Сцепление между классами объектов СВО (Coupling between object classes)

 

СВО — это количество сотрудничеств, предусмотренных для класса, то есть количество классов, с которыми он соединен. Соединение означает, что методы данного класса используют методы или экземплярные переменные другого класса.

Данная метрика характеризует статическую составляющую внешних связей классов.

Метрика 5: Отклик для класса RFC (Response For a Class)

 

Введем вспомогательное определение. Множество отклика класса RS — это множество методов, которые могут выполняться в ответ на прибытие сообщений в объект этого класса. Формула для определения RS имеет вид

,

где {Ri} — множество методов, вызываемых методом г, {М} — множество всех методов в классе.

Метрика RFC равна количеству методов во множестве отклика, то есть равна мощности этого множества:

RFC – card{RS}.

Метрика RFC является мерой потенциального взаимодействия данного класса с другими классами, позволяет судить о динамике поведения соответствующего объекта в системе. Данная метрика характеризует динамическую составляющую внешних связей классов.

Метрика 6: Недостаток связности в методах LСOM (Lack of Cohesion in Methods)

 

Метрика LCOM показывает, насколько методы не связаны друг с другом через свойства (переменные). Если все методы обращаются к одинаковым свойствам, то LCOM = 0.

Введем обозначения:

q НЕ СВЯЗАНЫ — количество пар методов без общих экземплярных переменных;

q СВЯЗАНЫ — количество пар методов с общими экземплярными переменными.

q Ij— набор экземплярных переменных, используемых методом Мj

Очевидно, что

НЕ СВЯЗАНЫ = card {Iij | Ii Ij = 0},

СВЯЗАНЫ = card {Iij | IiIj 0}.

Тогда формула для вычисления недостатка связности в методах примет вид

Можно определить метрику по-другому: LCOM — это количество пар методов, не связанных по свойствам класса, минус количество пар методов, имеющих такую связь.

 

еще рефераты
Еще работы по информатике