Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

3. Обеспечение надежности функционирования сложных программных средств

Лекция



Привет, Вы узнаете о том , что такое обеспечение надежности программных средств , Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое обеспечение надежности программных средств , настоятельно рекомендую прочитать все из категории Надёжность программного обеспечения.

Анализ характеристики качества программных систем
Качество программного обеспечения состоит из трех аспектов:
– качество процесса;
– качество продукта;
– качество сопровождения (рис. 1).

3. Обеспечение надежности функционирования сложных программных средств

3.1. Обеспечение качества и надежности в процессе разработки сложных программных средств

3.1.1.Требования к технологии и средствам автоматизации разработки сложных программных средств

Содержание этапов и работ при создании компонент и программных систем в целом определено в стандартах и моделях жизненного цикла программного обеспечения. Необходимая надежность объектов формируется и обеспечивается в процессе выполнения каждого этапа и окончательно подтверждается испытаниями и документами при их завершении. Для обеспечения качества и надежности программных средств стандартами рекомендуется формулировать требования:

  • к объекту разработки на данном этапе — к его программным и информационном компонентам, а также к интерфейсу между ними и внешней средой;
  • к процессу, технологии и организации выполнения работ каждого этапа;
  • к методам и характеристикам средств автоматизации выполнения работ;
  • к методам и средствам контроля, измерения и документирования качества процессов и результатов выполненных работ.

Выполнение этих требований должно контролироваться на каждом этапе. Показатели качества регистрируются и сопоставляются с заданными. При обнаружении отклонений от требований должны приниматься меры либо для улучшения реальных показателей, либо по корректировке требований к показателям.

Требования к инструментальным средствам автоматизации разработки сложных ПС наиболее полно изложены в стандарте IEEE 1209. Этот стандарт формулирует требования:

  • к технологической среде и CASE-средствам разработки,
  • к средствам управления проектом сложного ПС,
  • к средствам поддержки технологической и эксплуатационной документации на комплекс программ,
  • к анализу корректности и надежности входящих в ПС программных компонент.

3.1.2. Планирование и управление обеспечением качества и надежности программ

Мероприятия, обеспечивающие надежность и безопасность программ должны охватывать весь жизненный цикл программных средств. Для реализации мероприятий по планированию и управлению качеством и надежностью необходимы специалисты 2-х категорий. Специалисты первой категории, управляющие обеспечением качества программного средства, должны знать стандарты и методики, поддерживающие регистрацию, контроль, документирование и управляющие воздействием на показатели качества на всех этапах создания программ. Они должны обеспечить выявление всех отклонений от заданных показателей качества объектов и анализировать возможные последствия выявленных отклонений.

Далее определяются характеристики качества, отражающие различные точки зрения конеч-
ного пользователя на качество (рис. 2).

3. Обеспечение надежности функционирования сложных программных средств

Рис. 2. Обобщенная модель качества программных систем

Специалисты второй категории непосредственно создают компоненты и программное средство в целом с заданными показателями качества и надежности и формируют все исходные и отчетные документы.

Такое разделение специалистов обеспечивает независимый и достоверный контроль качества результатов разработки. Чтобы контроль характеристик ПС на промежуточных этапах был целенаправленным, необходимы эталонные данные, к достижению которых нужно стремиться разработчикам. Показатели качества программных средств последовательно уточняются и корректируется в процессе взаимодействия заказчика и разработчика с учетом объективно изменяющихся характеристик проекта.

Организованной основой управления качеством ПС является план обеспечения заданных показателей качества на всех этапах разработки комплекса программ. Руководством по планированию обеспечения качества ПС является стандарт ANSI/IEEE 983. Согласно этому стандарту в плане обеспечения и управления качеством и надежностью комплекса программ должны быть отражены следующие показатели:

  • цели управления качеством, номенклатура показателей качества и требования к их значениям;
  • методы управления и достижения заданных значений качества, организация разработчиков и технология создания программных средств;
  • базовые документы и стандарты, используемые для обеспечения качества на всех этапах разработки;
  • средства автоматизации разработки, обеспечивающие достижение и измерение заданных значений показателей качества.
  • структура и содержание отчетных документов, удостоверяющих достижения определенного качества и надежности функционирования ПС.

Наличие плана обеспечения качества ПС еще не гарантирует достижение заданных характеристик. Ограничения ресурсов, используемых в процессе разработки, изменение внешней среды и требований заказчика приводят к отклонениям плана от предполагавшегося. Эти отклонения должны отражаться в специальном документе и доводится до сведения всех специалистов.

3.1.3. Ресурсы, необходимые для обеспечения надежности функционирования программных средств

На выполнение разработки ПС выделяются ресурсы различных видов:

  • допустимые финансово-экономические затраты;
  • кадры специалистов;
  • вычислительные ресурсы.

Величины доступных ресурсов являются критериями, влияющими на выбор методов разработки, на достигаемые качество и надежность ПС. Об этом говорит сайт https://intellect.icu . Различают ресурсы, необходимые для непосредственного решения основных функциональных задач ПС, и ресурсы, требующиеся для обеспечения надежности и безопасности функционирования ПС. Соотношение между этими видами ресурсов зависит от сложности задач и требований к надежности и безопасности всей информационной системы. В различных ПС ресурсы на обеспечение надежности могут составлять от 5—20% до 100-300% от ресурсов, используемых на решение функциональных задач.

3.2. Виды тестирования для обеспечения надежности программных средств

Систематизация видов тестирования и упорядоченное их проведение может оказать значительную помощь в повышении надежности сложных программных средств. Разные виды тестирования ориентированы на дифференциальное выявление определенных классов ошибок. Для каждого вида тестирования разрабатывается методика его выполнения с указанием контролируемых параметров и ожидаемых результатов. Рациональную последовательность тестирования сложных программных систем в реальном времени можно представить следующими видами тестирования:

Тестирование полноты решения функциональных задач при типовых исходных данных. Этот метод предназначен для обнаружения дефектов функционирования в нормальных условиях, определенных техническим заданием на базовую версию ПС.

Тестирование функционирования программ в критических ситуациях по условиям и логике решения задач. Проводится при испытаниях исполнения программ в нештатных ситуациях, которые редко реализуются, но важны для надежности функционирования систем обработки данных.

Тестирование для измерения достигнутых значении надежности базовых версий ПС. Этот вид тестирования предназначен для определения основных показателей надежности при реальном функционировании программ.

3. Обеспечение надежности функционирования сложных программных средств

Тестирование корректности использования ресурсов памяти и производительности вычислительной системы. Этот вид тестирования служит для оценки надежности исполнения программ при перегрузках памяти и их производительности.

Тестирование параллельного исполнения программ используется для обнаружения снижений надежности, обусловленных несогласованным использованием исходных и промежуточных данных, а также устройств вычислительной системы при параллельном функционировании программ.

Тестирование эффективности защиты от искажения исходных данных служит для выявления дефектов и ошибок в программах, проявляющихся при ложных или искаженных данных.

Тестирование для оценки эффективности защиты от сбоев аппаратуры и невыявленных дефектов и ошибок программ и данных служит для проверки качества средств программного контроля и оперативного восстановления при различных непреднамеренных искажениях функционирования ПС.

Тестирование удобства эксплуатации и взаимодействия человека с ПС предназначено для обнаружения трудно формализуемых ошибок отображения и использования исходных и результирующих данных. При тестировании оценивается объем, удобство представления и контроля исходных данных, вводимых человеком, а также отображаемых результирующих данных, удобство их анализа и надежность использования.

Тестирование работы базовых версий ПС при переносе и конфигурации оборудования используется для обнаружения ошибок, проявляющихся при изменении состава или характеристик компонент вычислительной системы или внешней среды.

3.3. Сертификация для обеспечения надежности программных средств

Сертификация – это процедура подтверждения соответствия продукта установленным требованиям. Спецификация выполняется для защиты интересов пользователя. Основная цель сертификации программных средств — это гарантия их высокого качества, надежности и безопасности применения.

Международный стандарт ISO/IEEE 0002 определяет сертификацию соответствия как действие 3-й стороны, доказывающее, что обеспечивается необходимая уверенность в том, что продукция, процесс или услуга соответствует конкретному стандарту или другому нормативному документу. В результате выполнения этого действия оформляется сертификат соответствия. Срок действия такого сертификата обычно ограничен либо по времени, либо до проведения значительной модификации изделия.

Сертификация может быть добровольной и обязательной. Обязательная сертификация необходима для ПС, выполняющих особо ответственные функции, в которых ошибки или отказы могут нанести большой ущерб или опасны для жизни и здоровья людей. Добровольная сертификация применяется для удостоверения качества ПС с целью повышения их конкурентноспособности, расширения сферы использования и получения дополнительных экономических преимуществ (большие тиражи изделий при производстве, большая длительность жизненного цикла с множеством версий, снижение налогов за высокое качество, увеличение прибыли).

Для сертифицированных испытаний должны быть подготовлены следующие исходные данные:

  • критерии и четко определенные значения показателей качества, которые должны быть достигнуты;
  • значения исходных данных и результатов, в пределах которых должны удовлетворяться заданные показатели качества;
  • стандарты, нормативные документы и методики точных измерений показателей качества, а также состав и значение исходных и результирующих данных обязательны для проведения сертификации.

Организационная структура системы сертификации обычно включает: государственный орган по сертификации, ведомственные органы по управлению сертификацией продукции определенных классов и назначения, а также испытательные лаборатории. Основными функциями государственного органа по сертификации являются организация, координация, научно-методическое, информационное и нормативно-техническое обеспечение работ по испытаниям и сертификации, а также аккредитация лабораторий для сертификационных испытаний в соответствии с полномочиями органа по сертификации. Ведомственные органы сертификации выполняют те же функции в ограниченном объеме для конкретных классов продукции. Для проведения сертификационных испытаний ПС создаются специализированные лаборатории сертификации. Такие независимые от разработчиков и заказчиков лаборатории могут иметь статус международных, государственных, ведомственных или фирменных.

3.4. Повышение надежности функционирования программных средств за счет избыточности

В программных системах реального времени для обеспечения высокой надежности их функционирования необходимо максимально быстро обнаруживать искажения и восстанавливать нормальное функционирование.

В сложных программных системах ошибки неизбежны, поэтому необходима регулярная автоматизированная проверка процесса исполнения программ и сохранности данных. От разработчиков требуется создание надежных программ, устойчивых к различным негативным возмущениям и способных сохранять достаточное качество результатов в реальных условиях функционирования. Причины искажений непредсказуемы и разнообразны, поэтому необязательно сразу установить эти причины. Главная задача сводится к максимально быстрому восстановлению нормального функционирования и ограничению последствий проявления дефектов. Чтобы обеспечить высокую надежность функционирования ПС, необходимы вычислительные ресурсы для максимально быстрого обнаружения проявления дефектов и автоматизированных мероприятий, обеспечивающих быстрое восстановление нормального функционирования ПС. Для этих целей используются следующие виды избыточности:

  • временная избыточность,
  • информационная избыточность,
  • программная избыточность.

Временная избыточность состоит в использовании некоторой части производительности компьютера для контроля исполнения программ и восстановления (рестарта) вычислительного процесса. Для этого при проектировании информационной системы должен предусматриваться запас производительности, который будет затем использоваться на контроль и оперативное повышение надежности функционирования. Величина временной избыточности зависит от требований к надежности и находится в пределах от 5-10% производительности компьютера до 3-4-кратного дублирования производительности отдельной машины в многопроцессорных вычислительных системах. Временная избыточность или резерв времени используется на контроль и обнаружение искажений, на их диагностику и выработку решений по восстановлению вычислительного процесса или информации, а также на реализацию операций восстановления.

Информационная избыточность состоит в дублировании накопленных исходных и промежуточных данных, обрабатываемых программами. Избыточность используется для сохранения достоверности данных, которые в наибольшей степени влияют на нормальное функционирование ПС и требуют значительного времени для восстановления. Их защищают 2-3 кратным дублированием с периодичным обновлением.

Программная избыточность используется для контроля и обеспечения достоверности наиболее важных решений по обработке информации. Она заключается в сопоставлении результатов обработки одинаковых исходных данных программами, различающимися используемыми алгоритмами, и в исключении искажений при несовпадении результатов. Программная избыточность необходима также для реализации программ автоматического контроля и восстановления данных с использованием информационной избыточности и для функционирования всех средств обеспечения надежности, использующих временную избыточность.

Средства оперативного программного контроля включаются после использования прикладных и сервисных программ, поэтому средства программного контроля обычно не могут обнаружить непосредственно причину возникновения искажения вычислительного процесса или данных и фиксирует только последствия первичного искажения, т.е. вторичную ошибку. Результаты первичного искажения могут приобрести катастрофический характер при запаздывании их обнаружения и локализации. Для обеспечения надежности дефекты нужно обнаружить с минимальным запаздыванием, при этом желательны минимальные затраты аппаратных ресурсов, поэтому используются иерархические схемы контроля, при которых последовательно используется несколько методов в порядке углубления контроля и увеличения затрат до выявления источника искажения. Целесообразно акцентировать ресурсы на потенциально наиболее опасных дефектах и достаточно частых режимов восстановления: при искажениях программ и данных, при перегрузках по производительности и при параллельном использовании программ.

Выводы

После анализа методов улучшения качества программного обеспечения стало очевидно, что наиболее перспективными способами улучшения кода являются тестирование, рефакторинг и реинжиниринг. Из этих методов рефакторинг кода и его тестирование являются самыми простыми решениями.

Оба метода, рефакторинг и тестирование, требуют меньше трудозатрат, чем реинжиниринг, который требует высокой квалификации программиста и значительного временного ресурса. Поэтому на первом этапе рекомендуется начать с использования тестирования, так как это логичный и наиболее очевидный метод улучшения качества программного обеспечения. Тестирование является процессом, требующим творческого подхода и фантазии. Чем больше код покрыт тестами, тем эффективнее и высококачественнее будет полученный код.

В дальнейшем рекомендуется постепенно вводить и выделять время на рефакторинг кода. Этот метод позволит существенно улучшить существующую архитектуру, сделать ее более логичной и понятной. Это, в свою очередь, положительно скажется на добавлении нового функционала в систему и взаимодействии с предыдущими версиями.

Однако лучше еще до стадии разработки программного обеспечения следует тчательно спроективровать информационнную систему с учетом того что она будет изменяться и расширяться

Вау!! 😲 Ты еще не читал? Это зря!

Анализ данных, представленных в статье про обеспечение надежности программных средств , подтверждает эффективность применения современных технологий для обеспечения инновационного развития и улучшения качества жизни в различных сферах. Надеюсь, что теперь ты понял что такое обеспечение надежности программных средств и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Надёжность программного обеспечения

создано: 2018-02-02
обновлено: 2023-05-20
4



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Надёжность программного обеспечения

Термины: Надёжность программного обеспечения