Качество процессов программного обеспечения (Software engineering process quality)



Управление качеством (software quality management) и качество процессов программной инженерии (software engineering process quality) определяют качество создаваемого программного продукта.

Модели и критерии оценки возможностей организаций, занимающихся разработкой программного обеспечения, прежде всего касаются рассмотрения организации проектных работ и аспектов управления. Соответственно, они рассматриваются в лекции 6 «Управление программной инженерией» и лекции 7  «Процесс программной инженерии».

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

Существует два важнейших стандарта в области качества программного обеспечения.

TickIT (дословно не переводится, по сути логотип стандарта) этосхема сертификации систем качества для программного обеспечения - касается рассмотрения общей системы менеджмента качества ISO 9001-00 в приложении к программным проектам (в частности в сочетании с положениями стандарта жизненного цикла ISO 12207) и представленный, также, в виде специальных рекомендаций ISO 90003-04 «Software and Systems Engineering - Guidelines for the Application of ISO9001:2000 to Computer Software».

Другой важный стандарт – CMMI (Capability Maturity Model Integration – функционально зрелые модели интеграции) , лекция 7 «Процесс программной инженерии», предоставляет рекомендации по совершенствованию процесса.

Непосредственно с управлением качеством связаны следующие области компетенции CMMI:

 

· обеспечение качества процесса и продукта (категория процессов CMMI «Support»);

· проверка (категория «Engineering»);

· аттестация (категория «Engineering»).

 

Дебаты в отношении того, какой именно стандарт стоит использовать инженерам для обеспечения качества программного обеспечения – CMMI или ISO 9001, продолжаются с самого создания этих стандартов.

Сегодня преобладающая точка зрения такова:

- данные стандарты являются взаимодополняющими. При этом, сертификация по ISO 9001 помогает в достижении старших уровней зрелости по CMMI.

 

Качество программного продукта (Software product quality)

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

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

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

Стандарт ISO 9126-01 (Software Engineering - Product Quality, Part 1: Quality Model) определяет характеристики качества, а также метрики, полезные для оценки качества программных продуктов.

Понимание термина «продукт» расширено включением всех артефактов, создаваемых на выходе всех процессов, используемых для создания конечного программного продукта: полная спецификация системных требований (system requirements specification), спецификация программных требований для программных компонентов системы (software requirements specification, SRS), модели, код, тестовая документация, отчеты, создаваемые в результате работ по анализу качества.

Повышение качества (Quality Improvement)

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

· жизненного цикла; 

· обнаружения, устранения и предотвращения дефектов неисправностей, сбоев;

· улучшения качества.

 

Существуют теории и концепции, лежащие в основе совершенствования качества.

Например, предотвращение и ранняя диагностика ошибок, постоянное совершенствование процессов и внимание к требованиям заказчика, составляющие принцип «building in quality» (дословно «строя в качество» - жаргон, по сути - создавая программную систему во главу угла ставить качество).

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

Такие подходы, как TQM (Total Quality Management – всеобщее управление качеством), PDCA (Plan, Do, Check, Act – Планирование, Действие, Проверка, Реакция/Корректировка), являются инструментами решения задач, связанных с качеством.

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

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

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

 

2. Процессы управления качеством программного обеспечения (SQM, Software Quality M anagement)

 

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

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

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

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

SQM может использоваться для оценки конечных и промежуточных продуктов. 

Некоторые из специализированных процессов SQM определены в стандарте 12207:

· Процесс обеспечения качества (quality assurance process).

· Процесс верификации (verification process).

· Процесс аттестации (validation process).

· Процесс совместного анализа (joint review process).

· Процесс аудита (audit process).

 

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

Результаты представляются в виде отчетов для менеджеров с целью выполнения соответствующих корректирующих действий. Управление SQM-процессом ведется исходя из уверенности, что данные отчетов точны.

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

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

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

Включение «регулярного» анализа рисков и соответствующих техник в процессы жизненного цикла программного обеспечения может увеличить потенциал для создания качественного продукта (см. Лекцию 6 «Управление программной инженерией»).


Дата добавления: 2018-10-26; просмотров: 177; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!