Инженерия качества — это дисциплина инженерии, занимающаяся принципами и практикой обеспечения и контроля качества продукции и услуг . [1] В разработке программного обеспечения это управление, разработка, эксплуатация и обслуживание ИТ-систем и корпоративных архитектур с высоким стандартом качества. [2] [3] [4]
Инженерия качества — это дисциплина инженерии, которая создает и внедряет стратегии обеспечения качества при разработке и производстве продукции, а также при разработке программного обеспечения. [5]
Инженеры по качеству сосредоточены на оптимизации качества продукции, которое У. Эдвардс Деминг определил как:
Свод знаний по инженерии качества включает: [6]
Аудитор : Инженеры по качеству могут отвечать за аудит своих компаний или поставщиков на предмет соответствия международным стандартам качества, таким как ISO9000 и AS9100 . Они также могут быть независимыми аудиторами в составе аудиторского органа. [7]
Качество процесса : инженерам по качеству может быть поручено картирование потока создания ценности и статистический контроль процесса, чтобы определить, может ли процесс производить дефектный продукт. Они могут создавать планы и критерии проверки, чтобы гарантировать, что дефектные детали будут обнаружены до завершения. [8]
Качество поставщиков : инженеры по качеству могут отвечать за аудит поставщиков или выполнение действий по устранению основных причин и устранению неисправностей на их предприятии, а также за надзор за такой деятельностью для предотвращения поставки дефектной продукции.
IT-услуги все больше взаимодействуют в рабочих процессах через границы платформ, устройств и организационных границ, например, в киберфизических системах, рабочих процессах бизнес-бизнес или при использовании облачных сервисов. В таких контекстах проектирование качества способствует необходимому всеобъемлющему рассмотрению атрибутов качества.
В таких контекстах жизненно важен «сквозной» взгляд на качество от управления до эксплуатации. Качественная инженерия объединяет методы и инструменты из управления архитектурой предприятия , управления программными продуктами , управления ИТ-услугами , программной инженерии и системной инженерии , а также из управления качеством программного обеспечения и управления информационной безопасностью . Это означает, что качественная инженерия выходит за рамки классических дисциплин программной инженерии, управления информационной безопасностью или управления программными продуктами, поскольку она объединяет вопросы управления (такие как бизнес- и ИТ-стратегия, управление рисками, представления бизнес-процессов, управление знаниями и информацией, оперативное управление производительностью), соображения проектирования (включая процесс разработки программного обеспечения , анализ требований , тестирование программного обеспечения ) и оперативные соображения (такие как конфигурация, мониторинг, управление ИТ-услугами ). Во многих областях, где она используется, качественная инженерия тесно связана с соблюдением юридических и деловых требований, договорных обязательств и стандартов. Что касается качественных характеристик, то надежность, безопасность и сохранность ИТ-услуг играют главенствующую роль.
В инженерии качества цели качества реализуются в процессе сотрудничества. Этот процесс требует взаимодействия в значительной степени независимых участников, чьи знания основаны на различных источниках информации.
Цели качества описывают основные требования к качеству программного обеспечения . В проектировании качества они часто касаются таких качественных атрибутов, как доступность, безопасность, надежность и производительность. С помощью таких моделей качества, как ISO/IEC 25000, и таких методов, как подход Goal Question Metric, можно приписывать метрики целям качества. Это позволяет измерять степень достижения целей качества. Это является ключевым компонентом процесса проектирования качества и, в то же время, предпосылкой для его постоянного мониторинга и контроля. Для обеспечения эффективного и действенного измерения целей качества благоприятна интеграция основных чисел, которые были определены вручную (например, с помощью экспертных оценок или обзоров), и автоматически определенных метрик (например, с помощью статистического анализа исходных кодов или автоматизированных регрессионных тестов) в качестве основы для принятия решений. [9]
Подход к сквозному управлению качеством в области проектирования качества требует участия множества участников с различными обязанностями и задачами, разным опытом и степенью вовлеченности в деятельность организации.
Различные роли, связанные с проектированием качества:
Обычно эти роли распределены по географическим и организационным границам. Поэтому необходимо принять соответствующие меры для координации разнородных задач различных ролей в проектировании качества, а также для консолидации и синхронизации данных и информации, необходимых для выполнения задач, и предоставления их каждому участнику в соответствующей форме.
Управление знаниями играет важную роль в проектировании качества. [10] База знаний по проектированию качества включает в себя разнообразные структурированные и неструктурированные данные , начиная от репозиториев кода через спецификации требований, стандарты, отчеты об испытаниях и модели архитектуры предприятия до конфигураций систем и журналов времени выполнения. Программное обеспечение и системные модели играют важную роль в отображении этих знаний. Данные базы знаний по проектированию качества генерируются, обрабатываются и предоставляются как вручную, так и на основе инструментов в географически, организационно и технически распределенном контексте. Первостепенное значение имеет фокусирование на задачах обеспечения качества , раннее распознавание рисков и соответствующая поддержка сотрудничества участников.
Это обуславливает следующие требования к качественной базе инженерных знаний:
Процесс проектирования качества включает в себя все задачи, выполняемые вручную и (полу)автоматически для определения, выполнения и измерения любых характеристик качества в выбранном контексте. Процесс является в высокой степени совместным в том смысле, что он требует взаимодействия участников, действующих в значительной степени независимо друг от друга.
Процесс проектирования качества должен интегрировать любые существующие подпроцессы, которые могут включать в себя высокоструктурированные процессы, такие как управление ИТ-услугами , и процессы с ограниченной структурой, такие как гибкая разработка программного обеспечения . Другим важным аспектом является процедура, управляемая изменениями, где события изменения, такие как измененные требования, рассматриваются в локальном контексте информации и субъектов, затронутых таким изменением. Предпосылкой для этого являются методы и инструменты, которые поддерживают распространение изменений и обработку изменений.
Целью эффективного процесса проектирования качества является координация автоматизированных и ручных задач обеспечения качества . Обзор кода или выявление целей качества являются примерами ручных задач, в то время как регрессионные тесты и сбор метрик кода являются примерами автоматически выполняемых задач. Процесс проектирования качества (или его подпроцессы) может поддерживаться такими инструментами, как системы тикетов или инструменты управления безопасностью.
Ассоциации