Измерение и оценка характеристик качества ПО
Метрология, стандартизация и сертификация в информационных технологиях
Лабораторный практикум
Содержание
Лабораторная работа № 1. Разработка программных систем. Метрология программного обеспечения 3
Лабораторная работа № 2. Разработка программ оценки сложности программного обеспечения на базе отдельных метрик размера программ.. 9
Лабораторная работа № 3. Разработка программ оценки сложности по на базе отдельных метрик сложности потока управления программ.. 26
Лабораторная работа № 4. Разработка программ оценки сложности ПО на базе отдельных метрик сложности программ - метрик сложности потока данных. 38
Лабораторная работа № 5. Разработка программ оценки сложности ПО на базе отдельных метрик сложности программ - метрик стилистики, и понятности программ.. 46
Лабораторная работа № 1. Разработка программных систем. Метрология программного обеспечения
Цель работы: Оптимизация программ (процесс замены имеющихся операторов на более быстро работающие, различные способы реализации вычислений).
Краткие теоретические сведения и методические указания к выполнению работы
Процессы разработки, приобретения и внедрения сложных систем, к которым относятся в частности программные комплексы, должны находиться под жестким управленческим контролем. В настоящее время практически во всех организациях обеспечивается контроль важнейших характеристик, связанных с производством и использованием программных продуктов, таких как время, финансовые средства, ресурсы и т.п. Однако в большинстве случаев вне пределов сферы контроля оказывается наиболее важная характеристика программных продуктов, ради которой, собственно и осуществляются затраты времени, финансовых средств и ресурсов – это качество продукта, поскольку "невозможно контролировать то, что нельзя измерить" ("You cannot control what you cannot measure"). Отсутствие возможности установки полного контроля вызывает рост количества необоснованных решений, увеличивает финансовые и проектные риски, связанные с разработкой и внедрением систем. Однако в настоящее время уже существуют организации, в которых накоплен достаточно большой опыт использования метрик в управлении качеством разрабатываемых и внедряемых программных продуктов. Использование апробированных подходов в управлении качеством разработки и внедрения крупных программных систем значительно повышает предсказуемость проектов, снижает финансовые и ресурсные издержки. Сейчас существует несколько определений качества, которые в целом совместимы друг с другом. К числу наиболее распространенных относятся:
Определение 1 (ISO): Качество – это полнота свойств и характеристик продукта, процесса или услуги, которые обеспечивают способность удовлетворять заявленным или подразумеваемым потребностям.
Определение 2 (IEEE): Качество программного обеспечения – это степень, в которой оно обладает требуемой комбинацией свойств.
Анализ всех составляющих качества должен проводиться с учетом сфер ответственности заинтересованных сторон, как внутренних участников исполняемого процесса (in-process stakeholder), так и пользователей процесса (end-of-process stakeholders).
Очевидно, что управление качеством требует контроля всех измерений и оценок качества в жизненном цикле ПС (рис.1).
Измерение и оценка характеристик качества ПО
Программное обеспечение, в зависимости от особенностей разработки и применения, может представлять программу, программный комплекс, программное средство или программный продукт (изделие). Введем и будем в дальнейшем использовать следующие определения.
Качество программного обеспечения – это совокупность свойств, характеризующих способность программного обеспечения удовлетворять потребностям пользователя в соответствии с предназначением.
Рис.1. Анализ Измерения и оценки качества в контуре управления качеством.
Управление качеством – это система организационных, экономических, технологических и правовых мероприятий, осуществляемых для удовлетворения требований к качеству программного обеспечения в течение жизненного цикла.
Свойства программы – это особенности, объективно присущие программе, которые проявляются в ее жизненном цикле (разработке, применении, сопровождении).
Характеристика программы – это понятие, отражающее проявление отдельного измеримого фактора присущего программе свойства. Иначе говоря, характеристика – это проявляемый и измеримый атрибут свойства.
Измерение (оценка) одной или нескольких характеристик программы дает представление о том, насколько программе присуще то или иное свойство.
Каждому свойству соответствует одна или несколько характеристик программного обеспечения.
Для решения задачи количественной оценки характеристик программного обеспечения необходимо наличие системы измерений и методов оценки.
Система измерений характеристик программного обеспечения – это совокупность измеряемых характеристик, единиц измерения, измерительных шкал и связей, установленных между ними. Если между измеряемыми характеристиками установлены иерархические связи, систему измерений называют иерархической, в противном случае – одноранговой.
Измерительная шкала устанавливает границы (диапазон) и точность измерений характеристик свойств в установленных единицах.
Результаты измерений в избранной измерительной шкале позволяют обнаружить сходство и различие в свойствах программного обеспечения с целью последующей оценки и классификации. Применительно к ПО используют главным образом следующие известные виды измерительных шкал: номинальные (категорийные), порядковые, интервальные.
Номинальная (категорийная) шкала фиксирует наличие или отсутствие некоторой характеристики свойства без учета градаций и позволяет классифицировать программы по этому принципу.
Порядковая шкала фиксирует отношение порядка и позволяет ранжировать программы относительно некоторого опорного значения характеристик свойств.
Интервальная шкала фиксирует не только отношение порядка, но и величину, отличающую одно значение характеристики от другого (интервал между значениями).
Методы оценки характеристик программного обеспечения делят на следующие шесть групп: измерительные, регистрационные, органолептические, расчетные, экспертные, социологические, традиционные.
Измерительные методы основаны на получении информации о характеристиках программного обеспечения с использованием специальных инструментальных средств (технических или программных средств, обеспечивающих проведение измерений и их автоматизацию).
Регистрационные методы основаны на получении информации о характеристиках программного обеспечения во время испытаний или функционирования путем регистрации и подсчета определенных событий (например, моментов и количества ошибок, времени начала и окончания расчетов и т.д.), регистрируемых извне программы с помощью средств измерений общего назначения.
Органолептические методы основаны на получении информации о характеристиках программного обеспечения путем их восприятия органами чувств – в первую очередь зрения, слуха и осязания.
Расчетные методы основаны на получении информации о характеристиках программного обеспечения за счет использования теоретических или эмпирических зависимостей.
Экспертные методы используют опыт экспертов-специалистов, компетентных в оценке характеристик программного обеспечения.
Социологические методы используют обработку специальных анкет-опросников, содержащих качественные оценки характеристик программного обеспечения социальными группами, имеющими отношение к применению программного обеспечения.
Традиционные методы объединяют группу сформировавшихся и традиционно используемых в организациях, на предприятиях и иных учреждениях методов количественной оценки характеристик программного обеспечения.
Проявляемые свойства программного обеспечения условно можно разделить на две группы (рис. 1): функциональные (внешние), конструктивные (внутренние).
Для разработчиков и пользователей программы представляют интерес определенные функциональные и конструктивные свойства, (например, надежность, эффективность, модульность, структурность). Как правило, пользователя (заказчика) интересуют те функциональные свойства, которые характеризуют полезность программного обеспечения. Именно эти внешние свойства, отражающие точку зрения пользователя, обуславливают качество программного обеспечения, то есть являются его факторами (рис. 2). Заметим, что для разработчиков представляют интерес не только внешние, но и внутренние, или конструктивные свойства, от которых зависит выполнение требований к программному обеспечению и восприятие его пользователем.
Характеристики качества отражают свойства, определяющие качество программного обеспечения. В силу сложной природы количественной оценки характеристик качества программного обеспечения для их оценки используют иерархические системы измерений. Иерархию характеристик качества образуют факторы, критерии, метрики и оценочные элементы (рис.3). Факторы и критерии, составляющие два верхних уровня иерархии измерений, отражают функциональные характеристики программного обеспечения, а нижние (метрики и оценочные элементы) – конструктивные характеристики, от которых зависит качество программного обеспечения. Измеримость характеристик качества обеспечивается составом характеристик самого нижнего уровня – оценочных элементов.
Фактором качества будем называть свойство, в той или иной степени обуславливающее качество программного обеспечения. При оценке качества учитывают несколько факторов. Для получения численной оценки фактора качества используют один или несколько критериев качества.
Критерий качества – это понятие, признак или численный показатель, характеризующий оцениваемый фактор качества. Критерий качества может быть представлен имеющим физический смысл вычислимым выражением, составленным из характеристик качества, значением которого является показатель качества. Для вычисления значения критерия используют одну или несколько метрик.
Метрика– мера количественной оценки качества ПО по заданному критерию, система или способ измерений качества программного обеспечения. Метрика содержит один или несколько оценочных элементов.
Оценочный элемент – измеримая характеристика программного обеспечения, имеющая численное значение в избранной измерительной шкале.
Показатель качества – численное значение критерия качества, определяющее степень, в которой программе присуще определенное критерием свойство. В соответствии с ГОСТ 15467-79 под показателем качества следует понимать количественную характеристику одного или нескольких свойств программной продукции, составляющих ее качество применительно к определенным условиям ее создания и эксплуатации.
Комплексный показатель качества – показатель качества, значение которого получают в результате композиции значений других, в том числе комплексных показателей. Таким образом, качество ПС многомерное понятие.
Базовое значение показателя качества – это реально достижимое значение показателя, отражающее современный уровень развития программного обеспечения.
Совокупность операций, включающих выбор номенклатуры (состава) показателей качества, определения значений этих показателей и сравнения их с базовыми значениями, называют оценкой качества программного обеспечения.
Процесс определения соответствия программного обеспечения действующему стандарту качества называют сертификацией.Процесс определения соответствия программного обеспечения предназначению называют верификацией.Процесс подтверждения функциональной пригодности программного обеспечения называют аттестацией.
Очевидно, что сертификация, верификация и аттестация программного обеспечения не исключают, а предполагают проведение количественных оценок характеристик программ.
Учитывая, что по определению программное обеспечение состоит не только из программ, но и документации к ним, одной из задач оценки качества ПО является измерение и оценка характеристик программных и эксплуатационных документов.