Лекция
Привет, Вы узнаете о том , что такое обеспечение надежности программных средств , Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое обеспечение надежности программных средств , настоятельно рекомендую прочитать все из категории Надёжность программного обеспечения.
Анализ характеристики качества программных систем
Качество программного обеспечения состоит из трех аспектов:
– качество процесса;
– качество продукта;
– качество сопровождения (рис. 1).
3.1.1.Требования к технологии и средствам автоматизации разработки сложных программных средств
Содержание этапов и работ при создании компонент и программных систем в целом определено в стандартах и моделях жизненного цикла программного обеспечения. Необходимая надежность объектов формируется и обеспечивается в процессе выполнения каждого этапа и окончательно подтверждается испытаниями и документами при их завершении. Для обеспечения качества и надежности программных средств стандартами рекомендуется формулировать требования:
Выполнение этих требований должно контролироваться на каждом этапе. Показатели качества регистрируются и сопоставляются с заданными. При обнаружении отклонений от требований должны приниматься меры либо для улучшения реальных показателей, либо по корректировке требований к показателям.
Требования к инструментальным средствам автоматизации разработки сложных ПС наиболее полно изложены в стандарте IEEE 1209. Этот стандарт формулирует требования:
Мероприятия, обеспечивающие надежность и безопасность программ должны охватывать весь жизненный цикл программных средств. Для реализации мероприятий по планированию и управлению качеством и надежностью необходимы специалисты 2-х категорий. Специалисты первой категории, управляющие обеспечением качества программного средства, должны знать стандарты и методики, поддерживающие регистрацию, контроль, документирование и управляющие воздействием на показатели качества на всех этапах создания программ. Они должны обеспечить выявление всех отклонений от заданных показателей качества объектов и анализировать возможные последствия выявленных отклонений.
Далее определяются характеристики качества, отражающие различные точки зрения конеч-
ного пользователя на качество (рис. 2).
Рис. 2. Обобщенная модель качества программных систем
Специалисты второй категории непосредственно создают компоненты и программное средство в целом с заданными показателями качества и надежности и формируют все исходные и отчетные документы.
Такое разделение специалистов обеспечивает независимый и достоверный контроль качества результатов разработки. Чтобы контроль характеристик ПС на промежуточных этапах был целенаправленным, необходимы эталонные данные, к достижению которых нужно стремиться разработчикам. Показатели качества программных средств последовательно уточняются и корректируется в процессе взаимодействия заказчика и разработчика с учетом объективно изменяющихся характеристик проекта.
Организованной основой управления качеством ПС является план обеспечения заданных показателей качества на всех этапах разработки комплекса программ. Руководством по планированию обеспечения качества ПС является стандарт ANSI/IEEE 983. Согласно этому стандарту в плане обеспечения и управления качеством и надежностью комплекса программ должны быть отражены следующие показатели:
Наличие плана обеспечения качества ПС еще не гарантирует достижение заданных характеристик. Ограничения ресурсов, используемых в процессе разработки, изменение внешней среды и требований заказчика приводят к отклонениям плана от предполагавшегося. Эти отклонения должны отражаться в специальном документе и доводится до сведения всех специалистов.
На выполнение разработки ПС выделяются ресурсы различных видов:
Величины доступных ресурсов являются критериями, влияющими на выбор методов разработки, на достигаемые качество и надежность ПС. Об этом говорит сайт https://intellect.icu . Различают ресурсы, необходимые для непосредственного решения основных функциональных задач ПС, и ресурсы, требующиеся для обеспечения надежности и безопасности функционирования ПС. Соотношение между этими видами ресурсов зависит от сложности задач и требований к надежности и безопасности всей информационной системы. В различных ПС ресурсы на обеспечение надежности могут составлять от 5—20% до 100-300% от ресурсов, используемых на решение функциональных задач.
Систематизация видов тестирования и упорядоченное их проведение может оказать значительную помощь в повышении надежности сложных программных средств. Разные виды тестирования ориентированы на дифференциальное выявление определенных классов ошибок. Для каждого вида тестирования разрабатывается методика его выполнения с указанием контролируемых параметров и ожидаемых результатов. Рациональную последовательность тестирования сложных программных систем в реальном времени можно представить следующими видами тестирования:
Тестирование полноты решения функциональных задач при типовых исходных данных. Этот метод предназначен для обнаружения дефектов функционирования в нормальных условиях, определенных техническим заданием на базовую версию ПС.
Тестирование функционирования программ в критических ситуациях по условиям и логике решения задач. Проводится при испытаниях исполнения программ в нештатных ситуациях, которые редко реализуются, но важны для надежности функционирования систем обработки данных.
Тестирование для измерения достигнутых значении надежности базовых версий ПС. Этот вид тестирования предназначен для определения основных показателей надежности при реальном функционировании программ.
Тестирование корректности использования ресурсов памяти и производительности вычислительной системы. Этот вид тестирования служит для оценки надежности исполнения программ при перегрузках памяти и их производительности.
Тестирование параллельного исполнения программ используется для обнаружения снижений надежности, обусловленных несогласованным использованием исходных и промежуточных данных, а также устройств вычислительной системы при параллельном функционировании программ.
Тестирование эффективности защиты от искажения исходных данных служит для выявления дефектов и ошибок в программах, проявляющихся при ложных или искаженных данных.
Тестирование для оценки эффективности защиты от сбоев аппаратуры и невыявленных дефектов и ошибок программ и данных служит для проверки качества средств программного контроля и оперативного восстановления при различных непреднамеренных искажениях функционирования ПС.
Тестирование удобства эксплуатации и взаимодействия человека с ПС предназначено для обнаружения трудно формализуемых ошибок отображения и использования исходных и результирующих данных. При тестировании оценивается объем, удобство представления и контроля исходных данных, вводимых человеком, а также отображаемых результирующих данных, удобство их анализа и надежность использования.
Тестирование работы базовых версий ПС при переносе и конфигурации оборудования используется для обнаружения ошибок, проявляющихся при изменении состава или характеристик компонент вычислительной системы или внешней среды.
Сертификация – это процедура подтверждения соответствия продукта установленным требованиям. Спецификация выполняется для защиты интересов пользователя. Основная цель сертификации программных средств — это гарантия их высокого качества, надежности и безопасности применения.
Международный стандарт ISO/IEEE 0002 определяет сертификацию соответствия как действие 3-й стороны, доказывающее, что обеспечивается необходимая уверенность в том, что продукция, процесс или услуга соответствует конкретному стандарту или другому нормативному документу. В результате выполнения этого действия оформляется сертификат соответствия. Срок действия такого сертификата обычно ограничен либо по времени, либо до проведения значительной модификации изделия.
Сертификация может быть добровольной и обязательной. Обязательная сертификация необходима для ПС, выполняющих особо ответственные функции, в которых ошибки или отказы могут нанести большой ущерб или опасны для жизни и здоровья людей. Добровольная сертификация применяется для удостоверения качества ПС с целью повышения их конкурентноспособности, расширения сферы использования и получения дополнительных экономических преимуществ (большие тиражи изделий при производстве, большая длительность жизненного цикла с множеством версий, снижение налогов за высокое качество, увеличение прибыли).
Для сертифицированных испытаний должны быть подготовлены следующие исходные данные:
Организационная структура системы сертификации обычно включает: государственный орган по сертификации, ведомственные органы по управлению сертификацией продукции определенных классов и назначения, а также испытательные лаборатории. Основными функциями государственного органа по сертификации являются организация, координация, научно-методическое, информационное и нормативно-техническое обеспечение работ по испытаниям и сертификации, а также аккредитация лабораторий для сертификационных испытаний в соответствии с полномочиями органа по сертификации. Ведомственные органы сертификации выполняют те же функции в ограниченном объеме для конкретных классов продукции. Для проведения сертификационных испытаний ПС создаются специализированные лаборатории сертификации. Такие независимые от разработчиков и заказчиков лаборатории могут иметь статус международных, государственных, ведомственных или фирменных.
В программных системах реального времени для обеспечения высокой надежности их функционирования необходимо максимально быстро обнаруживать искажения и восстанавливать нормальное функционирование.
В сложных программных системах ошибки неизбежны, поэтому необходима регулярная автоматизированная проверка процесса исполнения программ и сохранности данных. От разработчиков требуется создание надежных программ, устойчивых к различным негативным возмущениям и способных сохранять достаточное качество результатов в реальных условиях функционирования. Причины искажений непредсказуемы и разнообразны, поэтому необязательно сразу установить эти причины. Главная задача сводится к максимально быстрому восстановлению нормального функционирования и ограничению последствий проявления дефектов. Чтобы обеспечить высокую надежность функционирования ПС, необходимы вычислительные ресурсы для максимально быстрого обнаружения проявления дефектов и автоматизированных мероприятий, обеспечивающих быстрое восстановление нормального функционирования ПС. Для этих целей используются следующие виды избыточности:
Временная избыточность состоит в использовании некоторой части производительности компьютера для контроля исполнения программ и восстановления (рестарта) вычислительного процесса. Для этого при проектировании информационной системы должен предусматриваться запас производительности, который будет затем использоваться на контроль и оперативное повышение надежности функционирования. Величина временной избыточности зависит от требований к надежности и находится в пределах от 5-10% производительности компьютера до 3-4-кратного дублирования производительности отдельной машины в многопроцессорных вычислительных системах. Временная избыточность или резерв времени используется на контроль и обнаружение искажений, на их диагностику и выработку решений по восстановлению вычислительного процесса или информации, а также на реализацию операций восстановления.
Информационная избыточность состоит в дублировании накопленных исходных и промежуточных данных, обрабатываемых программами. Избыточность используется для сохранения достоверности данных, которые в наибольшей степени влияют на нормальное функционирование ПС и требуют значительного времени для восстановления. Их защищают 2-3 кратным дублированием с периодичным обновлением.
Программная избыточность используется для контроля и обеспечения достоверности наиболее важных решений по обработке информации. Она заключается в сопоставлении результатов обработки одинаковых исходных данных программами, различающимися используемыми алгоритмами, и в исключении искажений при несовпадении результатов. Программная избыточность необходима также для реализации программ автоматического контроля и восстановления данных с использованием информационной избыточности и для функционирования всех средств обеспечения надежности, использующих временную избыточность.
Средства оперативного программного контроля включаются после использования прикладных и сервисных программ, поэтому средства программного контроля обычно не могут обнаружить непосредственно причину возникновения искажения вычислительного процесса или данных и фиксирует только последствия первичного искажения, т.е. вторичную ошибку. Результаты первичного искажения могут приобрести катастрофический характер при запаздывании их обнаружения и локализации. Для обеспечения надежности дефекты нужно обнаружить с минимальным запаздыванием, при этом желательны минимальные затраты аппаратных ресурсов, поэтому используются иерархические схемы контроля, при которых последовательно используется несколько методов в порядке углубления контроля и увеличения затрат до выявления источника искажения. Целесообразно акцентировать ресурсы на потенциально наиболее опасных дефектах и достаточно частых режимов восстановления: при искажениях программ и данных, при перегрузках по производительности и при параллельном использовании программ.
После анализа методов улучшения качества программного обеспечения стало очевидно, что наиболее перспективными способами улучшения кода являются тестирование, рефакторинг и реинжиниринг. Из этих методов рефакторинг кода и его тестирование являются самыми простыми решениями.
Оба метода, рефакторинг и тестирование, требуют меньше трудозатрат, чем реинжиниринг, который требует высокой квалификации программиста и значительного временного ресурса. Поэтому на первом этапе рекомендуется начать с использования тестирования, так как это логичный и наиболее очевидный метод улучшения качества программного обеспечения. Тестирование является процессом, требующим творческого подхода и фантазии. Чем больше код покрыт тестами, тем эффективнее и высококачественнее будет полученный код.
В дальнейшем рекомендуется постепенно вводить и выделять время на рефакторинг кода. Этот метод позволит существенно улучшить существующую архитектуру, сделать ее более логичной и понятной. Это, в свою очередь, положительно скажется на добавлении нового функционала в систему и взаимодействии с предыдущими версиями.
Однако лучше еще до стадии разработки программного обеспечения следует тчательно спроективровать информационнную систему с учетом того что она будет изменяться и расширяться
Анализ данных, представленных в статье про обеспечение надежности программных средств , подтверждает эффективность применения современных технологий для обеспечения инновационного развития и улучшения качества жизни в различных сферах. Надеюсь, что теперь ты понял что такое обеспечение надежности программных средств и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Надёжность программного обеспечения
Комментарии
Оставить комментарий
Надёжность программного обеспечения
Термины: Надёжность программного обеспечения