Лагоша О.Н. - Сертификация информационных систем (2021). Курс лекций по дисциплине Сертификация информационных систем. Предназначено для студентов специальности Информационные системы и программирование
Скачать 5.4 Mb.
|
ГЛАВА 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 79 Для численной оценки надежности используются методы теории вероят- ностей. Таким образом, обеспечение надежности ПО — это трудоемкий процесс, требующий создания устойчивой работы системы по отношению к отказам ПО, т. е. обеспечения достаточно высокой вероятности того, что система восстано- вится самопроизвольно в некоторой точке после возникновения в ней отказа (fault). Удобство применения. Этот показатель характеризуется множеством ат- рибутов, определяющих необходимые пригодные условия использования ПО (например, диалоговое, недиалоговое) заданным кругом пользователей для по- лучения соответствующих результатов. В стандарте ДСТУ 2850-1994 удобство применения определено как множество атрибутов ПП, характеризующих его эргономичность: – понимаемость — атрибут, который определяет усилия, затрачиваемые на распознавание логических концепций и условий применения ПО; – изучаемость (легкость изучения) — атрибут, который определяет уси- лия пользователей, затрачиваемые на определение применимости ПО путем использования операционного контроля, диагностики, а также установленных процедур, правил, изложенных в документации; – оперативность — атрибут, который определяет реакцию системы при выполнении операций и операционного контроля; – согласованность — атрибут, который показывает соответствие разра- ботки требованиям стандартов, соглашений, правил, законов и предписаний. Эффективность. Это множество атрибутов, которые определяют взаимо- связь уровней выполнения ПО, степень использования ресурсов (средств, аппа- ратуры, материалов — бумаги для печатающего устройства и др.) и услуг, вы- полняемых штатным обслуживающим персоналом. К атрибутам эффективно- сти ПО относятся: – реактивность — атрибут, который показывает время отклика, обработ- ки и выполнения функций; – эффективность ресурсов — атрибут, показывающий количество и про- должительность используемых ресурсов при выполнении функций ПО; – согласованность — атрибут, который показывает соответствие данного атрибута заданным стандартам, правилам и предписаниям. |