Файл: Курс лекций по дисциплине Сертификация информационных систем. Предназначено для студентов специальности Информационные системы и программирование.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.03.2024

Просмотров: 230

Скачиваний: 30

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ГЛАВА 2
СЕРТИФИКАЦИЯ
ИНФОРМАЦИОННЫХ СИСТЕМ
1 / 10

72
ЛЕКЦИЯ 9. УРОВНИ КАЧЕСТВА
ПРОГРАММНОЙ ПРОДУКЦИИ
1. Основы качества программного обеспечения
Качество это совокупность характеристик объекта, имеющая отноше- ние к его способности удовлетворять установленные и предполагаемые требо- вания потребителя. Под объектом качества может пониматься как собственно продукция (товары или услуги, информационная технология), процесс ее про- изводства, так и производитель (организация, организационная структура или даже отдельный работник).
Система качества это структурированный набор документов, регла- ментирующий определенные аспекты производственной деятельности пред- приятия.
Основой регламентирования показателей качества систем является меж- дународный стандарт ISO:
ISO 9126:1-4 «Характеристики и метрики качества программного обеспе- чения»;
ISO 14598-1-6:1998-2000 «Оценивание программного продукта».
Разработанный комплекс стандартов ISO 9126-1-4 состоит из четырех частей под общим заголовком «Информационная технология — качество про- граммных средств»:
Часть 1: Модель качества;
Часть 2: Внешние метрики;
Часть 3: Внутренние метрики;
Часть 4: Метрики качества в использовании.
Метрики в информационных технологияхэто совокупность прин- ципиально важных показателей, которые определяются и используются для оценки качества программных комплексов. Метрики применимы к любому ти- пу программных систем, включая компьютерные программы и данные, содер- жащиеся в программируемом оборудовании.
Внешние метрики — используются метрики АСОИУ, определенные на основе поведения системы в процессе испытаний, эксплуатации или наблюде- ния исполняемой системы.
Внутренние метрики —применяются в ходе проектирования и про- граммирования к неисполняемым компонентам системы, таким как специфика- ция или исходный программный текст.
Метрики качества в использовании измеряют, в какой степени продукт удовлетворяет потребности конкретных пользователей в достижении заданных целей с результативностью, продуктивностью и удовлетворением в заданном контексте использования. Результативность подразумевает точность и полно- ту достижения определенных целей пользователями при применении ПС. Про-
дуктивность соответствует соотношению израсходованных ресурсов и резуль- тативности при эксплуатации ПС. Удовлетворенность — психологическое от- ношение к качеству использования продукта.
2 / 10


73
Качество в использовании определяет объединенный эффект от всех ха- рактеристик качества ПС для пользователя. Качество в использовании — это восприятие пользователем качества системы, содержащей ПС. Оно измеряется в терминах результатов использования комплекса программ, а не собственных внутренних свойств ПС.
Разработка ПО достигла такого уровня развития, что возникла необходи- мость в использовании инженерных методов оценивания результатов его про- ектирования на всех этапах ЖЦ, контроля степени достижения запланирован- ных показателей качества и их метрического анализа, оценки риска и степени использования готовых компонентов для снижения стоимости разработки но- вого проекта. Основу инженерных методов в программировании составляет
повышение качества ПО, для достижения которого сформировались методы определения требований к качеству, подходы к выбору и усовершенствованию моделей метрического анализа показателей качества и методы количественного измерения показателей качества на всех этапах ЖЦ. Статические техники оценки качества ПО представлены на рисунке 13. Динамические техники, так или иначе, связаны с тестированием ПО.
Рис. 13
Качество программного обеспечения
Программные требования определяют требуемые характеристики качест- ва ПО, а также влияют на методы количественной оценки и сформулированные для оценки этих характеристик соответствующие критерии приемки.
Качество ПО является предметом стандартизации. Согласно ГОСТ 2844-94
качество ПО — совокупность свойств (показателей качества) ПО, которые
3 / 10

74
обеспечивают его способность удовлетворять потребности заказчика в соответ- ствии с его назначением. Этот стандарт регламентирует базовую модель качест- ва и показатели, главным среди которых является надежность. Стандарт
180/1ЕС12207 определил не только основные процессы ЖЦ разработки ПО, но и организационные и дополнительные процессы, которые регламентируют инже- нерию, планирование и управление качеством ПО.
Согласно этому стандарту на всех этапах ЖЦ разработки ПО должен проводиться следующий контроль качества ПО:
– проверка соответствия требований проектируемому программному продукту и критериев их достижения;
– верификация и аттестация (валидация) промежуточных результатов ПО на этапах ЖЦ и измерение степени удовлетворения достигаемых показателей;
– тестирование готового ПО, сбор данных об отказах, дефектах и других ошибках, обнаруженных в системе;
– подбор моделей надежности для оценивания надежности по получен- ным результатам тестирования (дефекты, отказы и др.);
– оценка показателей качества, заданных в требованиях на разработку ПО.
Инспектирование качества — это процесс проверки качества, ориенти- рованный на команду разработчиков. Он применяется на всех этапах разработ- ки ПП.
Доказательство правильности — это математическая или логическая ме- тодика, используемая для убеждения себя и других в том, что программа делает то, что должна делать. Такое доказательство является формальным (строгим) методом.
Для любого инженерного продукта существует множество интерпретаций качества. Показатели качества могут требоваться в той или иной степени, могут отсутствовать или могут отражать определенные требования потребителя и других заинтересованных сторон, быть результатом определенного компромис- са (что вполне перекликается с пониманием приемлемого качества, менее жест- кой точки зрения на обеспечение качества как достижение совершенства).
Стоимость качества может быть дифференцирована на стоимость пре- дупреждения дефектов, стоимость оценки, стоимость внутренних, а также внешних сбоев. Движущей силой программных проектов является желание создать ПО, обладающее определенной ценностью (значимое для решения оп- ределенных задач или достижения целей). Ценность ПО может выражаться в форме стоимости или какой-то другой форме. Заказчик обычно имеет свое представление о максимальных стоимостных вложениях, возврат которых ожи- дается в случае достижения основных целей создания ПО. Заказчик может так- же иметь определенные ожидания в отношении качества ПО. Иногда заказчики не задумываются о вопросах качества и связанной с ними стоимости, поэтому на этом этапе предметом обсуждения может стать вопрос о полном понимании заказчиком стоимости и выгоды, связанных с достижением того или иного уровня качества, и о степени вовлечения заказчика в процесс принятия реше- ния. В идеальном случае большинство такого рода решений должно прини- маться на этапе работы с требованиями, но эти вопросы могут (и должны) под-
4 / 10


75
ниматься на протяжении всего ЖЦ ПО. Не существует каких-то «стандартных» правил того, как именно необходимо принимать такие решения. Однако инже- неры должны быть способны представить различные альтернативы способов достижения различного уровня качества и их стоимость.
Качество ПО является относительным понятием, имеющим смысл только при учете реальных условий его применения, и требования, предъявляемые к качеству, должны соотноситься с этими условиями и конкретной областью их применения.
Качество ПО характеризуется тремя аспектами: качеством ПП, качеством процессов ЖЦ и качеством сопровождения или внедрения (рис. 14).
Рис. 14
Основные аспекты качества ПО
Аспект, связанный с процессами ЖЦ ПО, определяет степень формализа- ции, достоверности самих процессов ЖЦ разработки ПО, а также верификацию и валидацию (кратко — V&V) промежуточных результатов этих процессов.
Поиск и устранение ошибок в готовом ПО проводятся методами тестирования, которые снижают количество ошибок и повышают качество этого продукта.
Качество ПП достигается за счет использования процедур контроля про- межуточных продуктов на всех этапах их ЖЦ, проверкой их на достижение не- обходимого качества, а также использованием методов сопровождения ПП.
Эффект от внедрения программного средства в значительной степени зависит от знаний обслуживающего персонала функций продукта и правил их выпол- нения.
2. Модель качества программного обеспечения
Модель качества ПОимеет четыре уровня представления.
Первый уровень соответствует определению характеристик (показателей) качества ПО, каждая из которых отражает отдельную точку зрения пользовате- ля на качество. Согласно существующим стандартам (ISO/IEC9126, ДСТУ
2844-1994, ДСТУ 2850-1994, ДСТУ 3230-1995) в модель качества входит шесть характеристик или шесть показателей качества (рис. 15): функциональность
(functionality), надежность (realibility), удобство (usability), эффективность
(efficiency), сопровождаемость (maitainnability), переносимость (portability).
На втором уровне определяют атрибуты для каждой конкретной характе- ристики качества, которые детализируют разные ее аспекты. Набор этих атри- бутов используется при оценке качества ПП.
Третий уровень предназначен для измерения качества с помощью мет-
рик, каждая из которых, согласно стандарту 1SO/IEC9126, определяется как комбинация метода измерения атрибута и шкалы измерения его значений. Для оценки атрибутов качества на этапах ЖЦ ПО (при просмотре документации и программ, а также результатов тестирования программ) используются метрики
5 / 10


76
с заданным оценочным весом для нивелирования результатов метрического анализа совокупных атрибутов конкретного показателя и качества в целом. Ат- рибут качества определяется с помощью одной или нескольких методик оценки на этапах ЖЦ ПО и на завершающем этапе его разработки.
На четвертом уровне для оценки количественного или качественного значения отдельного атрибута используется оценочный элемент метрики — вес. В зависимости от назначения, особенностей и условий сопровождения ПО выбираются наиболее важные характеристики качества и их атрибуты.
Рис. 15
Модель характеристик качества
Выбранные атрибуты и их приоритеты отражаются в требованиях на раз- работку системы, либо используются соответствующие приоритеты эталона класса ПО, к которому это ПО относится.
6 / 10

77
Показатели качества ПО:
Функциональность. Это совокупность свойств, определяющих способ- ность ПО выполнять перечень функций в заданной среде в соответствии с тре- бованиями к обработке и требованиями к общесистемным средствам. Под функцией понимается некоторая упорядоченная последовательность действий для удовлетворения потребительских свойств ПО. Функции бывают целевые
(основные) и вспомогательные. Приведем атрибуты, которые относятся к функциональности.
Функциональная полнота — свойство компонента ПО, которое показыва- ет степень достаточности основных функций для решения задач в соответствии с назначением ПО.
Правильность (точность) — атрибут, который показывает степень дос- тижения правильных результатов.
Интероперабельность — атрибут, который показывает возможность взаи- модействия компонентов ПО на специальных системах и средах (ОС, сети и пр.).
Защищенность — атрибут, определяющий способность ПО предотвра- щать несанкционированный доступ (случайный или умышленный) к програм- мам и данным.
Надежность. Это совокупность атрибутов, которые определяют способ- ность ПО преобразовывать исходные данные в результаты при условиях, зави- сящих от периода времени жизни ПО (износ и его старение не учитываются).
Снижение надежности ПО происходит из-за ошибок в требованиях, проектиро- вании и выполнении. Отказы и ошибки в программах появляются на заданном промежутке времени.
К подхарактеристикам (субхарактеристикам) надежности ПО относятся следующие.
Безотказность — атрибут, который определяет способность ПО функ- ционировать без отказов (как программы, так и оборудования).
Устойчивость к ошибкам — атрибут, который показывает способность
ПО выполнять функции при аномальных условиях (сбой аппаратуры, ошибки в данных и интерфейсах, нарушение в действиях оператора и др.).
Восстанавливаемость — атрибут, который показывает способность ПО к перезапуску для повторного выполнения и восстановления данных после отка- зов.
К некоторым типам «критических систем» (реального времени, радарных, систем безопасности, коммуникаций и др.) предъявляются требования по обес- печению высокой надежности (недопустимость ошибок, точность, достовер- ность, удобство применения и др.). Надежность ПО в значительной степени за- висит от числа оставшихся и неустраненных ошибок в процессе его разработки на этапах ЖЦ. В ходе эксплуатации ошибки обнаруживаются и устраняются.
Если при исправлении ошибок не вносятся новые или, по крайней мере, новых ошибок вносится меньше, чем устраняется, то в ходе эксплуатации надежность
ПО непрерывно возрастает. Чем интенсивнее проводится эксплуатация, тем ин- тенсивнее выявляются ошибки и быстрее растет надежность ПО.
7 / 10


78
На надежность ПО влияют следующие факторы:
– совокупность угроз, приводящих к неблагоприятным последствиям и к ущербу системы или среды ее функционирования;
– угроза как проявление нарушения безопасности системы;
– целостность как способность системы сохранять устойчивость работы и не иметь риска.
Обнаруженные ошибки могут быть результатом угрозы извне или отказов, они повышают риск и уменьшают некоторые свойства надежности системы.
Надежность — одна из ключевых проблем современных программных систем, и ее роль будет постоянно возрастать, поскольку постоянно повышают- ся требования к качеству компьютерных систем. Новое направление — инже-
нерия программной надежности (Software reliability engineering) — ориентиро- вано на количественное изучение операционного поведения компонентов сис- темы по отношению к пользователю, ожидающему надежной работы системы, и включает следующие аспекты:
измерение надежности, т. е. проведение ее количественной оценки с помощью предсказаний, сбора данных о поведении системы в процессе экс- плуатации, а также современных моделей надежности;
стратегии и метрики конструирования и выбора готовых компонентов, процесса разработки компонентной системы, а также среды функционирования, влияющей на надежность работы системы;
– применение современных методов инспектирования, верификации, ва-
лидации и тестирования при разработке системы, а также при ее эксплуатации.
Верификация применяется для определения соответствия готового ПО установленным спецификациям, а валидация — для установления соответствия системы требованиям пользователя, которые были предъявлены заказчиком.
В инженерии надежности термин пригодноспособностъ (dependability) обозначает способность системы иметь свойства, желательные для пользовате- ля, который уверен в качественном выполнении функций, заданных в требова- ниях. Данный термин определяется дополнительным количеством атрибутов, которыми должна обладать система:
– готовностью к использованию (availability);
– готовностью к непрерывному функционированию (reliability);
– безопасностью для окружающей среды, т. е. способностью системы не вызывать катастрофических последствий в случае отказа (safety);
– секретностью и сохранностью информации (confidential);
– способностью к сохранению системы и устойчивости к самопроизволь- ному ее изменению (integrity);
– способностью к эксплуатации ПО, простотой выполнения операций об- служивания, а также устранения ошибок, восстановлением системы после их устранения (maintainability);
– готовностью и сохранностью информации (security) и др. Достижение надежности системы обеспечивается предотвращением отказа (fault prevention) или его устранением (removal fault), а также оценкой возможности появления новых отказов и мер борьбы с ними.
8 / 10