Программная инженерия. Качество программного обеспечения.
Copyright © Сергей Орлик, 2004-2005.
mailto:sorlik@borland.ru
https://sorlik.blogspot.com
Эти процессы отличаются от процессов SQM, как таковых, которые, в свою очередь, направлены
на оценку планируемых характеристик качества, а не на реальную реализацию этих планов.
Процессы управления качеством должны адресоваться вопросам, насколько хорошо продукт
будет удовлетворять потребностям заказчика и требованиям заинтересованных лиц,
обладать ценностью для заказчика и заинтересованных лиц и качеством, необходимым для
соответствия сформулированным требованиям к программному обеспечению.
SQM может использоваться для оценки и конечных и промежуточных продуктов.
Некоторые из специализированных процессов SQM определены в стандарте 12207:
• Процесс обеспечения качества (quality assurance process)
• Процесс верификации (verification process)
• Процесс аттестации (validation process)
• Процесс совместного анализа (joint review process)
• Процесс аудита (audit process)
Все эти процессы поддерживают стремление к достижению качества и, кроме того, помогают в
|
|
поиске возможных ошибок. Однако, они отличаются в том, на чем концентрируют внимание.
Процессы SQM помогают в обеспечении лучшего качества программного обеспечения в данном
проекте. Они предоставляют менеджерам основную информацию по каждому продукту и, кроме
того, включают параметры качества всего процесса программной инженерии. Области знаний
SWEBOK “Процесс программной инженерии” и “Управление программной инженерией” обсуждают
программы качества для организаций, занимающихся разработкой программного обеспечения.
SQM может предоставить соответствующую обратную связь для этих областей.
Процессы SQM состоят из задач и техник, предназначенных для оценки того, как начинают
реализовываться планы по созданию программного обеспечения и насколько хорошо
промежуточные и конечные продукты соответствуют заданным требованиям. Результаты
выполнения этих задач представляются в виде отчетов для менеджеров перед тем, как будут
предприняты соответствующие корректирующие действия. Управление SQM-процессом ведется
исходя из уверенности, что данные отчетов точны.
Как описано в данной области знаний, процессы SQM тесно связаны между собой. Они могут
перекрываться, а иногда даже и совмещаться. Они кажутся реактивными по своей природе, в
силу того, что они рассматривают процессы в контексте полученной практики и уже
произведенные продукты. Однако, они играют главную роль на стадии планирования, являясь
проактивными как процессы и процедуры, необходимые для достижения характеристик и уровня
|
|
качества, востребованных заинтересованными лицами <проекта> программного обеспечения.
Управление рисками также может играть значительную роль для выпуска качественного
программного обеспечения. Включение “регулярного” (как постоянно действующего, а не
периодического; в оригинале – disciplined, прим. автора) анализа рисков и <соответствующих>
техник управления <рисками> в процессы жизненного цикла программного обеспечения может
увеличить потенциал для производства качественного продукта. Более подробную информацию
по управлению рисками можно найти в области знаний “Управление программной инженерией”.
2.1 Подтверждение качества программного обеспечения (Software Quality Assurance, SQA)
Процессы SQA обеспечивают подтверждение того, что программные продукты и процессы
жизненного цикла проекта соответствуют заданным требованиям. Такое подтверждение
проводится на основе планирования (planning), постановки <работ> (enacting) и исполнения
(performing) набора действий, направленных на то, чтобы качество стало неотъемлемой частью
программного обеспечения (см. выше определения качества). Такой взгляд подразумевает ясное и
точное формулирование проблемы, а также то, что определены и четко выражены (полны и
однозначно интерпретируемы, прим. автора) требования к соответствующему <программному>
решению. SQA добивается обеспечения качества в процессе разработки и сопровождения за счет
выполнения различных действий на всех этапах <жизненного цикла>, что позволяет
идентифицировать проблемы еще на ранних стадиях, которые практически неизбежны в любой
сложной деятельности.