Программная инженерия............................................................................................................................2
Качество программного обеспечения (Software Quality)......................................................................2
1. Основы качества программного обеспечения (Software Quality Fundamentals).........................3
1.1 Культура и этика программной инженерии (Software Engineering Culture and Ethics)..........3
1.2 Значение и стоимость качества (Value and Costs of Quality)..................................................4
1.3 Модели и характеристики качества (Models and Quality Characteristics)...............................4
1.4 Повышение качества (Quality Improvement).............................................................................6
2. Процессы управления качеством программного обеспечения (Software Quality Processes)....6
2.1 Подтверждение качества программного обеспечения (Software Quality Assurance, SQA)..7
2.2 Проверка (верификация) и аттестация (Verification and Validation, V&V)..............................8
2.3 Оценка (обзор) и аудит (Review and Audits).............................................................................9
3. Практические соображения (Practical Considerations)................................................................11
3.1 Требования к качеству программного обеспечения (Software Quality Requirements)........11
|
|
3.2 Характеристика дефектов (Defect Characterization)..............................................................13
3.3 Техники управления качеством программного обеспечения (Software Quality Management
Techniques)......................................................................................................................................14
3.4 Количественная оценка качества программного обеспечения (Software Quality
Measurement)..................................................................................................................................17
Что такое качество и почему оно должно быть столь глубоко представлено (в виде
самостоятельной области знаний, прим. автора) в SWEBOK? На протяжении многих лет
отдельные авторы и целые организации определяли термин “качество” по-разному. Фил Кросби
(Phil Crosby) в 1979 году дал определение качеству как “соответствие пользовательским
требованиям”. Уотс Хемпфри (Watts Hamphrey, оригинальный автор концепции модели оценки
зрелости CMM, а также PSP и TSP – People Software Process и Team Software Process, прим.
автора) описывает качество как “достижение отличного уровня пригодности к использованию”.
Компания IBM, в свою очередь, ввела в оборот фразу “качество, управляемое рыночными
потребностями” (“market-driven quality”). Критерий Бэлдриджа (Baldrige) для организационного
качества (см. NIST - National Institute of Standards and Technology, “Baldrige National Quality Program”,
https://www.quality.nist.gov) использует похожую фразу - “качество, задаваемое потребителем”
(“customer-driven quality”), рассматривая удовлетворение потребителя в качестве главного
соображения в отношении качества. Чаще, понятие качества используется в соответствии с
определением системы менеджмента качества ISO 9001 как “степень соответствия присущих
характеристик требованиям” (именно так это сформулировано в официальном переводе ИСО
|
|
9000-2000 "Системы менеджмента качества. Основные положения и словарь”, прим. автора).
Данные взгляды перекликаются и с введенным автором “приемлемым качеством”, определяемым
не только уровнем запросов конечных потребителей в отношении параметров создаваемого
продукта, но и заданным контекстом/ограничениями проекта. Это не значит, что “приемлемое
качество” противопоставляется “качеству, диктуемому заказчиком”. Конечно, не стоит и проводить
параллель “приемлемого качества” с “продуктом второй свежести”. Введение категории
“приемлемости” в отношении качества является лишь прагматичным взглядом на желаемую
степень совершенства создаваемого продукта (услуги), способную удовлетворить пользователей
и достижимую в рамках заданных проектных ограничений. Интересно, что и сама “степень
приемлемости” также выступает в роли ограничения проекта, а в приложении к индустрии
программного обеспечения представлена практически во всех областях проектной деятельности –
от управления требованиями (“атрибуты качества” как категория нефункциональных требований),
до тестирования (т.н. наработка на отказ, такие метрики как MTTF - Mean Time To Failure, то есть
среднее время между обнаруженными сбоями системы, и т.п.). В какой-то степени, “приемлемое
качество” можно сравнивать с уровнем обслуживания в рамках заданного SLA – Service Level
Agreement, давно уже принятого на вооружение в телекоммуникационной индустрии. Таким
образом, приемлемое качество может рассматриваться как <количественно выраженный>
компромисс между заказчиком и исполнителем в отношении характеристик продукта,
создаваемого исполнителем в интересах <решения задач> заказчика с учетом других
ограничений проекта (в частности, стоимостью, что часто именуется как “cost of quality” –