- •1. Основы качества программного обеспечения (Software Quality Fundamentals)
- •1.1. Культура и этика программной инженерии (Software Engineering Culture and Ethics)
- •1.2. Значение и стоимость качества (Value and Costs of Quality)
- •1.3. Модели и характеристики качества (Models and Quality Characteristics)
- •1.3.1. Качество процессов программного обеспечения (Software engineering process quality)
- •1.3.2. Качество программного продукта (Software product quality)
- •1.4. Повышение качества (Quality Improvement)
- •2.1. Подтверждение качества программного обеспечения (Software Quality Assurance, sqa)
- •2.2. Проверка (верификация) и аттестация (Verification and Validation, V&V)
- •2.3. Оценка (обзор) и аудит (Review and Audit)
- •2.3.1. Управленческие оценки (Management Reviews)
- •2.3.2. Технические оценки (Technical Reviews)
- •2.3.3. Инспекции (Inspections)
- •2.3.4. Прогонки (Walk-throughs)
- •2.3.5. Аудиты (Audits)
- •3. Практические соображения (Practical Considerations)
- •3.1. Требования к качеству программного обеспечения (Software Quality Requirements)
- •3.1.1. Факторы влияния (Influence factors)
- •3.1.2. Гарантоспособность (Dependability)
- •3.1.3. Уровни целостности программного обеспечения (Integrity levels of software)
- •3.2. Характеристика дефектов (Defect Characterization)
- •3.3. Техники управления качеством программного обеспечения (Software Quality Management Techniques)
- •3.3.1. Статические техники (Static techniques)
- •3.3.2. Техники коллективной оценки (People - intensive techniques)
- •3.3.4. Динамические техники (Dynamic techniques)
- •3.3.5. Тестирование (Testing)
- •3.4. Количественная оценка качества программного обеспечения (Software Quality Measurement)
1.3. Модели и характеристики качества (Models and Quality Characteristics)
В различных источниках терминология характеристик качества программного обеспечения отличается. Каждая модель включает различное число уровней, иерархии и характеристик качества.
Различные авторы создали разные модели качества со своим набором характеристик и атрибутов (например, Барри Боэм, автор спиральной модели жизненного цикла разработки программного обеспечения, которая рассматривалась ранее).
Эти модели могут быть полезны для обсуждения, планирования, адаптации и оценки качества программных продуктов.
ISO/ IEC определяет три связанных модели качества программного обеспечения (ISO 9126-01 Software Engineering - Product Quality, Part 1: Quality Model) – внутреннее качество, внешнее качество и качество в процессе эксплуатации, а также набор соответствующих работ по оценке качества программного обеспечения (ISO14598-98 Software Product Evaluation).
1.3.1. Качество процессов программного обеспечения (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.
