Оценка качества программ на основе процедурно-ориентированных метрик.
Метрики на основе функциональных указателей
Для косвенной оценки уровня качества процедурно-ориентированных ПС используют метрику дефектов качества
DQ=
Предполагается 0<=DQ<=1
Эту метрику качества можно рассчитать не на основе количества строк программы(LOC), а на основе функциональных указателей (FP-Function Points) Алана Альбрехта(ввел метрику в 1979 году)
Достоинство – легкость вычисления.
Недостаток – результаты основываются на субъективных данных: используются не прямые, а косвенные измерения.
Количество функциональных указателей является мерой внешних обращений к данным, под которыми понимают ссылки на внешние ввод, внешний вывод, внешний запрос, автономный локальный файл, раздельный глобальный файл
F=
Ki=коэффициенты регулировки сложности
F-общее количество функциональных указателей
F=
Оценочные элементы:
f1-количество внешних вводов (вводов данных пользователем)
f2-количество внешних выводов (отчеты , экраны, распечатки, сообщения)
f3-количество внешних запросов (диалоговых вводов-выводов)
f4-количество локальных внутренних логических файлов (группа логически связанных данных, которая размещена внутри приложения и обслуживается через внешние вводы, наборы без данных)
f5-количество внешних интерфейсных файлов-разделяемых с другими программами глобальных файлов (группа логически связанных данных, которая размещена внутри другого приложения и поддерживается им, внутренний логический файл в другом приложении)
Исходные данные для расчета FP-метрик
| 
			 Характеристика  | 
		
			 Учет сложности  | 
		
			 Итого  | 
	|||
| 
			 
  | 
		
			 Низкая  | 
		
			 Средняя  | 
		
			 Высокая  | 
		
			 
  | 
	|
| 
			 Внешние вводы  | 
		
			 m × 3 =  | 
		
			 m × 4 =  | 
		
			 m × 5 =  | 
		
			 
  | 
	|
| 
			 Внешние выводы  | 
		
			 m × 4 =  | 
		
			 m × 5 =  | 
		
			 m × 7 =  | 
		
			 
  | 
	|
| 
			 Внешние запросы  | 
		
			 m × 3 =  | 
		
			 m × 4 =  | 
		
			 m × 6 =  | 
		
			 
  | 
	|
| 
			 Внутренние логические файлы  | 
		
			 m × 7 =  | 
		
			 m × 10 =  | 
		
			 m × 15 =  | 
		
			 
  | 
	|
| 
			 Внешние интерфейсные файлы  | 
		
			 m × 5 =  | 
		
			 m × 7 =  | 
		
			 m × 10 =  | 
		
			 
  | 
	|
| 
			 Общее количество  | 
		
			 
  | 
	||||
Значение
коэффициентов регулировки сложности
зависит
от ответов на 14 вопросов, касающихся
влияния определенных факторов на
выполнение функций программного
обеспечения:
1. Какое влияние имеет наличие средств передачи данных?
2. Какое влияние имеет распределенная обработка данных?
4. Какое влияние имеет критичность к требованиям производительности и ограничению времени
ответа?
5. Какое влияние имеет частота транзакций?
6. Какое влияние имеет ввод данных в режиме реального времени?
7. Какое влияние имеет эффективность работы конечного пользователя?
8. Какое влияние имеет оперативное обновление локальных файлов в режиме реального времени?
9. Какое влияние имеет скорость обработки данных (вычислений)?
10. Какое влияние имеют количество и категории пользователей?
11. Какое влияние имеет легкость инсталляции?
12. Какое влияние имеет легкость эксплуатации?
13. Какое влияние имеет разнообразие условий применения?
14. Какое влияние имеет простота внесения изменений?
Варианты ответов:
- 
Влияние случайное

 - 
Небольшое эпизодическое

 - 

 - 

 - 
Основное, существенное

 
DQ=
На основе FP формируются другие оценки:
Производительность = Функц_Указатель/Затраты(FP/чел-мес)
Удельная Стоимость = Стоимость/Функц_Указатель(тыс.руб/FP)
Документированность = Страниц_Документа/Функц_Указатель(Страниц/FP)
Для продуктов с высокой алгоритмической сложностью используются метрики свойств (Features Points) применимы к системному и инженерному ПО, ПО реального времени и встроенному ПО
Для вычисления указателя свойств добавляется ещё одна характеристика – количество алгоритмов (алгоритм здесь определяется как ограниченная программа вычислений, которая включается в общую программу)
Значение каждого указателя свойств вычисляется по формуле расчета функционального указателя FP
Для сложных систем в реальном масштабе времени это значение на 25-30 % больше значения, вычисляемого по таблице для количества функциональных указателей
Известны примерные соотношения значений указателей FP c количеством строк кода LOC для различных языков программирования

Метрики связанности и сцепления модулей
Уровень качества ПС – прямо пропорционален силе связанности(прочности) и обратно пропорционален силе сцепления модулей
Для повышения надежности качество ПС предполагает максимизацию связанности и минимизацию сцепления модулей.
Для измерения связанности используют целочисленную шкалу силы связанности в интервале значений от 0 до 10.
Для каждого из значений силы связанности определен тип связанности, который может быть прописан модулю в процессе проектирования.
Процедура определения типа связанности модуля
В случаях, когда такая процедура окажется неприемлемой (модулю соответствует сразу
несколько типов связанности) ему приписывают тип с наименьшей связанностью.

Слабое сцепление между модулями служит признаком хорошо спроектированной системы по следующим причинам:
- 
Уменьшение количества соединений между модулями приводит к уменьшению вероятности появления «волнового эффекта»
 - 
Минимализация риска появления «эффекта ряби», т.к. изменение влияет на минимальное количество модулей
 - 
При сопровождении модуля отсутствие необходимости беспокоиться о внутренних деталях других моделей
 - 
Упрощение системы для понимания, насколько это возможно
 
Способы достижения слабого сцепления модулей:
- 
Удаление необязательных связей
 - 
Упрощение необходимых связей
 - 
Уменьшение количества необходимых связей
 
Рекомендации по ослаблению сцепления модулей:
- 
Создание минимальных по количеству параметров межмодульных связей
 - 
Создание прямых межмодульных связей
 - 
Создание гибких связей для облегчения модификаций
 - 
Создание локализированных связей
 - 
Создание явных связей
 
