Дитер Ромбах (Dieter Rombach), сотрудник американской организации Software Engineering Laboratory (SEL), еще в 1991 году на парижской конференции по вопросам компьютерных вычислений заявил: «Мы больше не должны задаваться вопросом, нужны ли метрики. Проблема заключается в том, как их строить». Подобный подход исповедует и Международная организация по стандартизации – ИСО [16]. (фрагмент из диплома по специальности ПО)
Существуют следующие методики и мероприятия верификации программного кода:
статический анализ;
метрики.
Статический анализ – это изучение предоставленных исходных кодов программных модулей. Статический анализ является формой инспектирования программ – это технология обнаружения тех ошибок, которые могут быть пропущены другими технологиями (например, тестированием). К методам статического анализа кода относятся: анализ указателей, устранение мертвого кода, минимизация количества переменных, обнаружение типичных ошибок.
Метрики программного кода – это количественные показатели, отражающие его отдельные характеристики.
Метрики кода принято разделять на три основные группы:
метрики размера программ;
метрики сложности потока управления программ;
метрики сложности потока данных программ.
Размерно-ориентированные метрики прямо измеряют программный продукт и процесс его разработки (показатели оценки объема работ). Метрики этой группы базируются на определении количественных характеристик, связанных с размером программы. К наиболее известным метрикам данной группы относятся количество строк исходного текста, набор метрик Холстеда, метрики стилистики и понятности программ. Метрики этой группы ориентированы на анализ исходного текста программ. Поэтому они могут использоваться для оценки сложности промежуточных продуктов разработки.
Помимо показателей оценки объема работ по проекту очень важными для получения объективных оценок по проекту являются показатели оценки его сложности. Как правило, данные показатели не могут быть вычислены на самых ранних стадиях работы над проектом, поскольку требуют, как минимум, детального проектирования. Однако эти показатели очень важны для получения прогнозных оценок длительности и стоимости проекта, поскольку непосредственно определяют его трудоемкость. Эти метрики базируются на анализе управляющего графа программы. Представителем данной группы является метрика МакКейба. Управляющий граф программы, который используют метрики данной группы, может быть построен на основе алгоритмов модулей. Поэтому метрики второй группы также могут применяться для оценки сложности промежуточных продуктов разработки.
Метрики третьей группы базируются на оценке использования, конфигурации и размещения данных в программе. В первую очередь это касается глобальных переменных. К данной группе относятся метрики Чепина. Суть метода состоит в оценке информационной прочности отдельно взятого программного модуля с помощью анализа характера использования переменных из списка ввода-вывода.