Показатели программного продукта
Эти показатели отображают свойства программного продукта в целом. К сожалению, такие легко измеримые показатели, как размер и цикломатическая сложность программы, не имеют прямой и универсальной взаимосвязи с такими показателями качества, как надежность или удобство сопровождения. Эти взаимосвязи могут изменяться в процессе разработки продукта, зависят от технологии разработки и типа разрабатываемой программной системы. Организации-разработчики обязательно должны вести базу статистических данных. Именно такая база данных поможет в дальнейшем разобраться, какие свойства продукта соотносятся с теми показателями качества, в которых заинтересована организация.
Показатели программного продукта можно разделить на два класса.
1. Динамические показатели, которые измеряются в процессе выполнения программы.
2. Статические показатели, которые отражают статические представления системы, например структуру, программный код или документацию.
Эти два класса показателей соотносятся с разными свойствами продукта. Динамические показатели помогают в оценке эффективности и надежности программы, тогда как с помощью статических показателей можно оценить сложность, понятность и удобство эксплуатации программной системы.
Динамические показатели тесно связаны с показателями качества ПО. Относительно легко измерить время выполнения определенных функций и оценить время, необходимое для запуска системы. Именно эти показатели соотносятся с эффективностью системы. Таким же образом можно регистрировать количество системных ошибок и их типы, что напрямую связано с надежностью системы.
Статические показатели, как правило, имеют отдаленное отношение к качественным характеристикам ПО. Было предложено достаточное количество таких показателей, с которыми был проведен ряд экспериментов для выявления и оценки возможных взаимосвязей между этими показателями и такими свойствами, как сложность, понятность и удобство эксплуатации системы. В табл. 25.5 приведено несколько статических показателей, которые могут использоваться при оценке качества. Среди них объем программного кода и сложность управления являются наиболее надежными показателями для прогнозирования сложности, понятности и удобства сопровождения программного продукта.
Таблица 25.5. Показатели программного продукта
Показатели | Описание |
Нагрузочный множитель по входу и нагрузочный множитель по выходу | Нагрузочный множитель по входу пропорционален количеству функций, которые вызывают другую функцию (назовем ее X). Нагрузочный множитель по выходу пропорционален количеству функций, которые вызываются функцией X. Высокие значения для множителя по входу означают, что функция X тесно связана с остальными компонентами системы и изменения в этой функции могут привести к существенным изменениям во всей системе. Высокое значение множителя по выходу означает высокую сложность самой функции X, которая вытекает из сложности логической схемы управления вызываемых ею компонентов |
Объем программного кода | Этот показатель определяет размер программы. В общем случае, чем больше объем кода программного компонента, тем более сложным и подверженным ошибкам будет сам компонент |
Цикломатическая сложность | Это мера сложности логической структуры программы. В свою очередь, сложность структуры программы связана с таким показателем, как понятность программного кода. |
Длина идентификаторов | Этот показатель измеряется как среднее длин идентификаторов в программе. Чем длиннее идентификаторы, тем понятнее, что они означают, а следовательно, более понятна и сама программа |
Глубина вложения условных операторов | Здесь измеряется глубина вложений условных операторов в программе. Большая глубина вложения условных операторов затрудняет чтение программы, что ставит ее в разряд потенциально ошибочных программ |
Индекс непонятности | Измеряется как среднее длин слов и предложений в документах. Чем выше показатель индекса непонятности, тем труднее понять документ |
С начала 90-х годов был проведен ряд исследований для объектно-ориентированных показателей. Одни из них совпадают с показателями, приведенными в табл. 25.5, другие являются следствием объектно-ориентированного подхода к созданию ПО. Некоторые объектно-ориентированные показатели представлены в табл. 25.6. Они менее показательны по сравнению с аналогами из табл. 25.5, которые ориентированы на функциональный подход к созданию систем.
Таблица 25.6. Объектно-ориентированные показатели
Показатели | Описание |
Глубина дерева наследования | Представляет количество дискретных уровней в дереве наследования, когда подклассы наследуют свойства и функции (методы) родительских классов. Чем глубже дерево наследования, тем сложнее структура системы |
Метод ветвления по входу и выходу | Этот метод тесно связан с нагрузочными множителями по входу и выходу, описанными ранее, и означает, по существу, то же самое. Однако может оказаться полезным разделение вызовов от методов внутри объекта и вызовов от внешних методов |
Взвешенные методы на класс | Означает количество методов, включенных в класс, средневзвешенных по сложности каждого метода. Таким образом, простой метод может иметь сложность 1, у более сложного метода будет более высокое значение сложности. Чем выше значение этого показателя, тем сложнее будет класс объектов. Сложные объекты более трудны для понимания |
Количество игнорируемых операций (методов) | Это количество операций класса, которые игнорируются в подклассе. Высокое значение этого показателя говорит о том, что используемые классы плохо подходят в качестве родительских для данных подклассов |
Множество показателей, выбираемых для измерения, зависят от проекта, целей команды управления качеством и типа разрабатываемого ПО. Все показатели, описанные в табл. 25.5 и 25.6, могут использоваться в тех или иных случаях. Однако бывают ситуации, когда эти показатели неприменимы. В этом случае компания-разработчик должна экспериментировать с различными показателями для поиска наиболее полно отвечающих ее потребностям.
Дата добавления: 2015-08-14; просмотров: 1426;