Для обеспечения полноты измерения качества требуется на ранних стадиях проекта на основе анализа целей проекта, области применения, ограничений и характеристик разработать проектно-ориентированные (design-oriented)
или структурные метрики (structural metrics) качества [31].
Термин «проектно-ориентированный» в данном контексте означает, что метрики разрабатываются в виде стандарта качества проекта на его ранних стадиях и представляют собой правила или нормы (guideline), которым должен удовлетворять промежуточный или конечный продукт. Термин структурный означает, что метрики разрабатываются структурным методом сверху - вниз (top – down) для обеспечения целостности и полноты.
Измерение качества в соответствии с данными метриками состоит в вычислении отклонения фактических характеристик продукта от норм и правил. Методология создания метрик качества указанным способом утверждена в стандарте IEEE 1061 [58]. Схематически методология создания метрик качества состоит из следующих шагов:
- Первый шаг (верхний уровень иерархии): Определение нетехнического уровня (то есть уровня предназначенного для менеджеров, пользователей, заказчика):
- Формирование требований качества
- Выбор свойств (атрибутов), установка приоритетов и связи с требованиями
- Присвоение атрибутов факторам качества, которые отражают представление заказчика на качество.
- Установка измерений для факторов качества. Определение допустимых коридоров для величин качества.
- Второй шаг (средний уровень иерархии): Определение технического уровня (то есть уровня предназначенного для аналитиков, конструкторов, разработчиков):
- Осуществление декомпозиции факторов качества в измеряемые характеристики программного обеспечения, определяемые как суб-факторы.
- Третий шаг (нижний уровень иерархии):
- Декомпозиция суб-факторов в метрики, которые могут быть применены непосредственно к программному продукту или процессу разработки. Данные метрики служат как непрямые меры (индикаторы) прямых измерений факторов качества на верхних уровнях иерархии. Иными словами это уровень разработанных правил и норм, которым должен удовлетворять продукт или процесс с тем, чтобы были выполнены факторы качества (рис. 11 [31]).
Рис. 11. Схема вывода метрик качества
Для иллюстрации метода можно привести следующие примеры:
Факторы качества программной системы:
- Переносимость (portability) – усилия, требуемые для переноса системы с одной платформы на другую.
- Надежность (reliability) – ожидаемая степень корректного выполнения системой требуемых функций
- Тестируемость (testability) – усилия, требуемые для тестирования функций программы
Прямые измерения факторов качества:
- Переносимость (portability) – трудоемкость - количество чел.-час., требуемое для переноса программы с платформы X на платформу Y. Допустимый порог: 1 чел.-час. на 1K строк исходного кода .
- Надежность (reliability) – среднее время наработки на отказ. Допустимый порог: 120 операционных дней.
- Тестируемость (testability) – трудоемкость – количество чел.-час., требуемое для полного тестирования 90% всех модулей. Допустимый порог 10 чел.-час. на 1K строк исходного кода.
Следующий шаг – проведение декомпозиции приведенных факторов на суб-факторы (рис. 12 [31]).
Рис. 12. Пример структуры факторов качества