Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Показатели программного продукта




 

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

Показатели программного продукта можно разделить на два класса.

 

1. Динамические показатели, которые измеряются в процессе выполнения программы.

2. Статические показатели, которые отражают статические представления системы, например структуру, программный код или документацию.

 

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

Динамические показатели тесно связаны с показателями качества ПО. Относительно легко измерить время выполнения определенных функций и оценить время, необходимое для запуска системы. Именно эти показатели соотносятся с эффективностью системы. Таким же образом можно регистрировать количество системных ошибок и их типы, что напрямую связано с надежностью системы, как было описано в главе 16.

Статические показатели, как правило, имеют отдаленное отношение к качественным характеристикам ПО. Было предложено достаточное количество таких показателей, с которыми был проведен ряд экспериментов для выявления и оценки возможных взаимосвязей между этими показателями и такими свойствами, как сложность, понятность и удобство эксплуатации системы. В табл. 24.5 приведено несколько статических показателей, которые могут использоваться при оценке качества. Среди них объем программного кода и сложность управления являются наиболее надежными показателями для прогнозирования сложности, понятности и удобства сопровождения программного продукта.

Таблица 24.5. Показатели программного продукта

 

Показатели Описание
Нагрузочный множитель по входу и нагрузочный множитель по выходу Нагрузочный множитель по входу пропорционален количеству функций, которые вызывают другую функцию (назовем ее X). Нагрузочный множитель по выходу пропорционален количеству функций, которые вызываются функцией X. Высокие значения для множителя по входу означают, что функция X тесно связана с остальными компонентами системы и изменения в этой функции могут привести к существенным изменениям во всей системе. Высокое значение множителя по выходу означает высокую сложность самой функции X, которая вытекает из сложности логической схемы управления вызываемых ею компонентов  
Объем программного кода Этот показатель определяет размер программы. В общем случае, чем больше объем кода программного компонента, тем более сложным и подверженным ошибкам будет сам компонент  
Цикломатическая сложность Это мера сложности логической структуры программы. В свою очередь, сложность структуры программы связана с таким показателем, как понятность программного кода. Вычисление цикломатической сложности рассматривается в главе 20  
Длина идентификаторов Этот показатель измеряется как среднее длин идентификаторов в программе. Чем длиннее идентификаторы, тем понятнее, что они означают, а следовательно, более понятна и сама программа  
Глубина вложения условных операторов Здесь измеряется глубина вложений условных операторов в программе. Большая глубина вложения условных операторов затрудняет чтение программы, что ставит ее в разряд потенциально ошибочных программ  
Индекс непонятности Измеряется как среднее длин слов и предложений в документах. Чем выше показатель индекса непонятности, тем труднее понять документ

 

С начала 90-х годов был проведен ряд исследований для объектно-ориентированных показателей. Одни из них совпадают с показателями, приведенными в табл. 24.5, другие являются следствием объектно-ориентированного подхода к созданию ПО. Некоторые объектно-ориентированные показатели представлены в табл. 24.6. Онименее показательны по сравнению с аналогами из табл. 24.5, которые ориентированы на функциональный подход к созданию систем.

Таблица 24.6. Объектно-ориентированные показатели

 

Показатели Описание
Глубина дерева наследования Представляет количество дискретных уровней в дереве наследования, когда подклассы наследуют свойства и функции (методы) родительских классов. Чем глубже дерево наследования, тем сложнее структура системы  
Метод ветвления по входу и выходу Этот метод тесно связан с нагрузочными множителями по входу и выходу, описанными ранее, и означает, по существу, то же самое. Однако может оказаться полезным разделение вызовов от методов внутри объекта и вызовов от внешних методов  
Взвешенные методы на класс Означает количество методов, включенных в класс, средневзвешенных по сложности каждого метода. Таким образом, простой метод может иметь сложность 1, у более сложного метода будет более высокое значение сложности. Чем выше значение этого показателя, тем сложнее будет класс объектов. Сложные объекты более трудны для понимания  
Количество игнорируемых операций (методов) Это количество операций класса, которые игнорируются в подклассе. Высокое значение этого показателя говорит о том, что используемые классы плохо подходят в качестве родительских для данных подклассов

 

Множество показателей, выбираемых для измерения, зависят от проекта, целей команды управления качеством и типа разрабатываемого ПО. Все показатели, описанные в табл. 24.5 и 24.6, могут использоваться в тех или иных случаях. Однако бывают ситуации, когда эти показатели неприменимы. В этом случае компания-разработчик должна экспериментировать с различными показателями для поиска наиболее полно отвечающих ее потребностям.

КЛЮЧЕВЫЕ ПОНЯТИЯ

 

• Управление качеством ПО должно обеспечивать минимальное количество дефектов в разрабатываемой системе и соответствие стандартам удобства эксплуатации, надежности, переносимости и т.д. Деятельность по управлению качеством включает мероприятия по обеспечению качества, что создает необходимую базу стандартов по разработке ПО, планирование и контроль качества, где программный продукт проверяется на соответствие стандартам.

• Руководство по качеству любой организации должно формально представлять собой ряд нормативов по обеспечению качества. Оно может основываться на базовой модели стандартов ISO 9000.

• Стандарты в области разработки и сопровождения ПО аккумулируют лучшие практические приемы и знания. Процесс контролирования качества включает проверку того, соответствует ли разрабатываемое ПО определенным стандартам.

• Среди методик оценки качества наиболее широко используется проверка контрольных проектных элементов.

• Измерения показателей ПО проводятся для сбора количественной информации о программном продукте и процессе его разработки. Значения показателей ПО, которые получаются в результате измерений, используются для выводов о качестве продукта и процесса разработки.

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

• Для проверки качества программного обеспечения пока не существует стандартизированных и универсальных показателей. Выбор показателей и анализ измерений в значительной мере зависит от разрабатываемого программного продукта и наличия необходимых знаний и опыта у разработчиков ПО.

Упражнения

 

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

24.2. Из каких основных этапов состоит процесс проверки структуры ПО?

24.3. Дайте оценку качества ПО на основе показателей, приведенных в табл. 24.3. Рассмотрите каждый показатель в отдельности и объясните его значение.

24.4. Спроектируйте электронную форму, которую можно использовать для регистрации комментариев по проверке ПО и для рассылки их по электронной почте членам проверяющей команды.

24.5. Кратко опишите возможные стандарты, которые могут быть применены для следующих действий.

• Использование управляющих структур в языках программирования С, C++ или Java.

• Создание отчетов для срочных проектов.

• Процесс выполнения и утверждения изменений в программе (см. главу 29).

• Процесс покупки и установки нового компьютера.

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

24.7. Объясните, почему структурные показатели ПО не являются полноценными показателями для прогнозирования качества структуры системы.

24.8. Просмотрите соответствующую литературу и найдите другие показатели качества системной структуры, которые не описаны в этой книге. Изучите эти показатели и сделайте заключение о целесообразности их использования.

24.9. Мешают ли стандарты технологическим инновациям?

24.10. Программист высокого класса создает программный продукт с очень низким уровнем недоработок, однако упорно игнорирует организационные стандарты качества. Какой должна быть реакция менеджеров на подобное поведение?

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...