Программная инженерия. Качество программного обеспечения.
Copyright © Сергей Орлик, 2004-2005.
mailto:sorlik@borland.ru
https://sorlik.blogspot.com
• Область применения системы, в которой будет работать программное обеспечение
(критичное для безопасности <людей>), критичное для бизнеса и т.п.)
• Системные и программные требования
• Какие компоненты используются в системе – коммерческие (внешние) или стандартные
(внутренние)
• Какие стандарты программной инженерии применимы в заданном контексте
• Каковы методы и программные инструменты, применяемые для разработки и
сопровождения, а также для обеспечения качества и совершенствования (продукта и
процессов, прим. автора)
• Бюджет, персонал, организация проектной деятельности, планы и расписания для всех
процессов
• Кто целевые пользователи и каково назначение системы
• Уровень целостности системы
Информация об этих факторах влияет на то, как именно будут организованы и документированы
процессы SQM, какие SQM-работы будут отобраны (стандартизированы в рамках проекта,
|
|
команды, организационной единицы, организации, прим. автора), какие необходимы ресурсы и
каковы ограничения, накладываемые в отношении усилий, направляемых на обеспечение
качества.
3.1.2 Гарантоспособность (Dependability)
(Гарантоспособость – гарантия <высокой> надежности, защищенности от сбоев, прим. автора)
В случаях, когда сбой системы может привести к крайне тяжелым последствиям (такие системы
иногда называют в англоязычных источниках “high confidence” или “high integrity system”, в русском
языке к ним иногда применяют название “системы повышенной надежности”, “высокой
доступности” и т.п.), общая (совокупная) гарантоспособность системы (как сочетания аппаратной
части, программного обеспечения и человека) является главным и приоритетным требованием
качества, по отношению к основной функциональности <системы>. Гарантоспособность
(dependability) программного обеспечения включает такие характеристики, как защищенность от
сбоев (fault-tolerance), безопасность использования (safety – безопасность в контексте
приемлемого риска для здоровья людей, бизнеса, имущества и т.п.), информационная
безопасность или защищенность (security – защита информации от несанкционированных
операций, включая доступ на чтение, а также гарантия доступности информации авторизованным
пользователям, в объеме заданных для них прав), а также удобство и простота использования
(usability). Надежность (reliability) также является критерием, который может быть определен в
терминах гарантоспособности (см. стандарт ISO/IEC 9126-1:2001 “Software Engineering - Product
Quality, Part 1: Quality Model”).
|
|
В обсуждении данного вопроса существенную роль играет обширная литература по системам
повышенной надежности. При этом, применяется терминология, пришедшая из области
традиционных механических и электрических систем (в т.ч. не включающих программное
обеспечение) и описывающая концепции опасности, рисков, целостности систем и т.п. SWEBOK
приводит ряд источников, где подробно обсуждаются эти вопросы.
3.1.3 Уровни целостности программного обеспечения (Integrity levels of software)
Уровень целостности программного обеспечения определяется на основании возможных
последствий сбоя программного обеспечения и вероятности возникновения такого сбоя. Когда
важны различные аспекты безопасности (применения и информационной безопасности), при
разработке планов работ в области идентификации возможных очагов аварий могут
использоваться техники анализа опасностей (в контексте безопасности использования, safety) и
анализа угроз (в информационной безопасности, security). История сбоев аналогичных систем
может также помочь в идентификации наиболее полезных техник, направленных на обнаружение
сбоев и <всесторонней> оценки качества программного обеспечения. Уровни целостности
(например, градации целостности) предлагаются, в частности, стандартом IEEE 1012-98 “IEEE
Standard for Software Reviews”.