И. Соммервилл - Инженерия программного обеспечения (1133538), страница 133
Текст из файла (страница 133)
При построении такой модели необходим в первую очередь достаточный опыт работы со статистическими методами. Поэтому в такую деятельность следует во. влечь специалистов по математической статистике. Рис. 24 б. Вгаимостиь между енутречнки и и тмтнкии показателями ПО 24.4.1. Процесс измерения Процесс измерения показателей ПО, которгяй может быть частью контроля качества, показан на рис.
24.7. Каждый компонент системы анализируется отдельно, значения одинаковых показателей сравниваются между собой, а иногда и с аналогичными статистиче. скими данными других проекгов. Аномальные данные измерений по какомулибо системному компоненту должны стать поводом для проведения мероприятий по обеспечению качества этого компонента. Рис, 24, 7. Привесе изиеренил итеазателей нрофаммного продукта Процесс измерений состоит из пяти основных этапов.
24. Управление качеством 509 Е ВьоУор иаклзлтееек доя иыыРеиия. Для начала следует сформулировать те вопросы, на которые необходимо получить ответ посредством нзиерения, после чего определяются измеряемые показатели. Не нужно выбирать показатели, которые не соответствуют поставленным задачам. Парадигма "цель-вопрос-измерение" [26), кото. рая рассматривается в следующей главе, является одним иэ лучших подходов к вы. бору измеряемых показателей. 2.
Оэ»бо)» сисэиииых комиоиеижое. Часто совсем необязательно оценивать показатели всех компонентов программной системы. В одних случаях для анализа целесооб. разно сделать представительную выборку компонентов; в других достаточно оце. нить наиболее вюкные [критические) компоненты системы. 3. Измерение иоклэлэмеек комионеижое. Это процесс измерения значений выбранных показателей для отобранных компонентов. Длл этого обычно используются среде». ва автоматического сбора данных.
Они могут быть либо отдельными специальными средствами, либо встроенными в САБЕ. средства. 4. Оиределенке лиомалъиых длиных. 3»»ачения измеренных показателей нужно сравнить между собой н с предыдущими измерениями, занесенными в базу данных. Важно отследить необычно высокие или„наоборот, низкис значения кам»лого вида пока. зателей, так как компоненты с такими показателями мо»ут быть причиной возник. новения последующих проблем. 5. Аиаекз л»»ома»алых комиокеиоме. Определив компоненты с аномальными показателями, их следует изучить для выявления возможного отрицательного влияния на качество программного продукта в цел»»м. Например, аномальное значение такого показателл, как сложность компонента, не обязательно будет означать сто плохое качество.
Может быть другая причина для высокого значения этого показатслл, которая нс ведет к снижению качества. Все собранные данные должны сохраняться в качестве ресурса организации, при этом обязателен анализ архивных данных по всси проектам, даже если они не используются в текущем проекте.
После создания достаточно большой базы данных измерений на основе сравнения информации по различным проектам можно организовать специальную систему измерения показателей, которая отвечает нуждам данной организации. 24.4.2. Показатели программного продукта Эти показатели отображают свойства программного продукта в целом. К сожалению, такие легко изл»сримые показатели, как размер и цикломатическая сложность программы, не имеют прямой и уннверсзлыюй взаимосвязи с такимн показателями качества, как надежность или удобство сопровождения. Эти взаимосвязи мо»уг изменяться в процессе разработ.
ки продукта, зависят от технологии разработк»» и типа разрабатываемой программной системы. Организации-разработчики обязательно должны вести базу статистических данных. Именно такая база данных поможет в дальней»пем разобраться, какие свойства продукта соотносятся с теми показателями качества, в которых заинтересована органиэация. Показатели программного продукта можно разделить надва класса.
Е Динамические показа»ели, которые измеряются в процессе выполнения программы. 2. Статические показатели, которые отражают статические представления системы, например структуру, программный код нли документацию. Эти два класса показателей соотносятся с разными свойствами продукта. Динамические показатели помогают в оценке эффективности и надежности программы, тогда как с помощью статических показателей можно оценить сложность, понятность и удобство эксплуатации программной системы. 510 Часть 71. Управление Таблица 24.5. Показатели программного продукта Показатели Описание Нагрузочпый множитель по входу и иагрузочный множитель по выкоду Нагрузочиый множитель по входу пропорционален количе- ству функций, которые вызывают другую функцию (назовем ее Х).
Нагрузочный множитель по выходу пропорционален количеству функций, которые вызываются функцией Х. Вы- сокис значения для множителя по входу означают, что функция Х тесно связана с остальными компонентами сис- темы и изменения в этой функции могут привести к сущест- венным изменениям во всей системе.
Высокое значение множителя по выходу означает высокую сложность самой функции Х, которая вытекает пз сложности логической схе- мы управления вызываемых ею компонентов Этот показатель определяет размер программы. В обвгем случае, чем больше объем кода программного компонента, тел~ более сложным и подверженным ошибкам будет сам компонент Объем программного кода Цикломатичсская сложность Это мера сложности логической структуры програчмы. В свою очередь, сложность структуры программы связана с таким по.
казателем, как понятность программного кода. Вычисление цикломатической сложности рассматривается в главе 20 Этот показатель измеряется как среднее длин идентифика- торов в программе. Чем ллиннес идентификаторы, тем по- нятнее, что опи означают, а следовательно, более понятна и сама программа Здесь измеряется глубина вложений условных операторов в программе. Большая глубина вложения условных опсрато.
ров затрудняет чтение программы, что ставит сс в разряд потенциально ошибочных программ Измеряется как среднее длин слов и предложений в долу' ментах. Чем выше показатель инлскса непонятности, тем труднее понять документ Длина идентификаторов Глубина вложсшш услов- ных операторов Индекс непонятности Динамические показатели тесно связаны с показателями качества ПО. Относительно легко измерить время выполнения определенных функций и оценить время, необходимое для запуска системы. Именно эти показатели соотносятся с эффективностью системы. Та. килг же образом можно регистрировать количество системных ошибок и ик типы, что напрямую связано с надежностью системы, как было описано в главе 1б.
Статические показатели, как правило, имеют отдаленное отношение к качественным характеристикам ПО. Было предложено достаточное количество таких показателей, с которымн был проведен ряд экспериментов для выявления и оценки возможных взаимосвязей между этими показателями и такимн свойстаачи, как сложность, понятность и удобство эксплуатации системы. В табл.
24.5 приведено несколько статических показателей, которые мо~уг использоваться при оценке качества. Среди них объем программного кода и сложность управления являются наиболес надежными показателями для прогнозирования сложности, понятности и удобства сопровождения программного продукта. 24.
Управление качеством 511 С начала 90-х годов был проведен рлд исследований для объектно.ориентированных показателей. Одни из них совпадают с показателями, приведенными в табл. 24.5, другие являются следствием объектно.ориентированного подхода к созданию ПО. Некоторые объектно. ориентированные показатели представлены в табл.
24.6. Они менее показатель. ны по сравнению с аналогами из табл. 24.5, которые ориентированы на функциональный подход к созданию систем. Таблица 24.6. Объектно орнентнрованнъге ноказателн Показатели Описание Представляет количество дискретных уровней в дереве насле- дования, когда подклассы наследуют свойства и функции (методы) родительских классов. Чем глубже дерево наследо. ванна, тем сложнее структура системы Глубина дерева наследо- вания Метод ветвления по вхо. ду и выходу Зтот метод тесно связан с нагруэочными множителями по входу и выходу, описанными ранее, и означает, по существу, то жс са- мое. Однако может оказаться полезным разделение вызовов от методов внутри объекта и вызовов от в певших методов Означает количество методов. включенных в класс, средневзвешенных по сложности каждого метода. Таким образом, простой метод может иметь сложность 1, у более сложного метода будет более высокое значение сложности.
Чем выше значение этого показателя. тем сложнее будет класс объектов. Сложные объекты более трудны для понимания Взвешенные методы на класс Количество игнорируе. мых операций (методов) Зто количество операций класса, которые игнорируются в подклассе. Высокое значение этого показателя говорит атом, что использ> емыс классы плохо подходят в качестве роди. тсльских для данных подклассов 'к' '. КЛЮЧЕВЫЕ ПОНЯТИЯ; , °:, Упрашюние качеством ПО должно обесйечиват*ь ыиниемалгь~ое "количества дефектов в разрабаты- '- и;, ь' взимай система и соответствие сшидяртвм удобства эксплуатации, иадежнасти, переносимости и -' го .''. тзь Деятельность по управлению'качеством включает мероприятия по обеспечению качесша, что создает необходимую базу стандартов по разрабшхе ПО; плзнирашиие и иипроль качества, где программный продукт проверяется на соответствие стандартам.