Методы и средства инженерии программного обеспечения

       

Качество ПО (Software Quality)


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

Стандарт ISO 9126-01 рассматривает  внешние и внутренние  характеристики качества. Первые отображают требования к функционирующему программному продукту. Для того чтобы количественно определить критерии качества, по которым будет осуществляться проверка и подтверждение соответствия ПО заданным требованиям, определяются соответствующие внешние измеряемые  свойства (внешние атрибуты) ПО и  метрики, к которым относятся . модели оценки атрибутов и диапазоны изменения значений соответствующих атрибутов. Метрики, применение которых возможно только для работающего на компьютере ПО, используются  на стадии тестирования или функционирования, называются внешними метриками.

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

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


Окончательная оценка качество проводится в соответствии  со стандартом  ISO 15504-98 [15]. Качество может повышаться за счет постоянного улучшения используемого продукта, в связи с  процессами обнаружения, устранения и предотвращения сбоев/ дефектов в ПО.  

Область знаний «Качество ПО (Software Quality)» состоит из следующих разделов:

– концепция качества ПО  (Software Quality Concepts),

– определение и  планирование качества (Definition & Planning for Quality),

– деятельности и техники гарантии  качества и V&V(Activities and Techniques for Software Quality Assurance, Validation –V & Verification – V),

– измерения в анализе качества ПО (Measurement in Software Quality Analysis).

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

 

Концепция качества ПО включает внешние и внутренние  характеристики  качества,  их метрики, а также  модели качества, определенные на множестве  внешних и внутренних характеристик, которые определены  в стандартах качества [16] – это  шесть характеристик  и для каждого из них  4-5 атрибутов. К характеристикам качества относятся:

– функциональность,

– надежность,



– удобства использования,

– эффективность, 

– сопровождаемость, 

– переносимость.

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

 

Определение  и планирование качества ПО

основывается на положениях  стандартов в этой области, составлении планов графиков работ и  процедурах проверки и др. План обеспечения качества включает набор действий для проверки  процессов обеспечения качества (верификация, валидация и др.) и формирование документа по управлению качеством. 

Управления качеством применяется к процессам, продуктами и ресурсам, а также включает требования к процессам и их результатам.


Планирование качества включает: 

– определение продукта в терминах заданных характеристик качества;     

– планирование процессов для получения требуемого качества;

– выбор методов оценки планируемых характеристик качества и установления соответствия продукта сформулированным требованиям.

В стандарте 12207 определены специальные процессы: обеспечения качества, верификации, аттестации (валидации), совместного анализа, аудита. Области ядра знаний  SWEBOK (пп.1.7 и 1.8) предлагают методы разработки программных продуктов  в организациях,  занимающихся ПО.

 

Деятельности и техники гарантии  качества включают: инспекцию, верификацию и валидацию  ПО.

Инспекция ПО – анализ и проверка различных представлений системы и ПО (спецификаций, архитектурных схем, диаграмм, исходного кода и др.) и  выполняется на всех этапах  ЖЦ разработки ПО.

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

Валидация – процесс проверки соответствия ПО функциональным и нефункциональным требованиям и ожидаемым  потребностям заказчика.

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

 

Измерение в анализе качества ПО основывается на: сборе данных при выполнении   процессов  создания  продукта на  заданных ресурсах; определении  метрик оценки  процессов,  ПО и  моделей их измерения; документировании измерений и др. Для оценки фактических  характеристик  качества продукта проводится  тестирование ПО путем  исполнения кода на тестовых данных, сбора статистики и проведения анализа  выходных результатов и полученных рабочих характеристик ПО.



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

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

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

Назначением аудита является независимая оценка продуктов и процессов  на соответствие регулирующим и регламентирующим документам (планам, стандартам и др.),  формулирование отчета о случаях несоответствия и  предложений для их корректировки.

 

Таким образом,   данная область знаний SWEBOK представляет методологию проведения мероприятий по достижению высокого качества ПО.  Рассматриваются характеристики и  атрибуты качества,  согласно  стандарта  ISO 9126-98,  и приведены способы  их достижения   на процессах ЖЦ ПО. Определяются  виды и техники   анализа  ПО, прогонки системы на тестах и методы оценки показателей качества.


Содержание раздела