Лекция
Привет, Вы узнаете о том , что такое модель анализа надежности программных средств, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое модель анализа надежности программных средств , настоятельно рекомендую прочитать все из категории Надёжность программного обеспечения.
Надежность программного обеспечения — это вероятность того, что программное обеспечение вызовет отказ системы в течение некоторого определенного времени работы. Программное обеспечение не выходит из строя из-за износа, но выходит из строя из-за неисправной функциональности, синхронизации, последовательности, данных и обработки исключений. Программное обеспечение выходит из строя как функция времени работы, а не календарного времени. С начала 1970-х годов было разработано более 225 моделей, однако некоторые из них имеют схожие, если не идентичные, предположения. Модели бывают двух основных типов — прогнозное моделирование и оценочное моделирование.
модель анализа надежности программных средств (ПС) помогает оценивать и прогнозировать их устойчивость к ошибкам, сбоям и различным внешним воздействиям. Вот несколько ключевых аспектов:
Этапы анализа:
Сбор данных о функционировании системы.
Построение математической модели, описывающей надежность.
Тестирование и верификация системы.
Методы анализа:
Использование статистических данных о сбоях.
Построение моделей, основанных на теории вероятностей.
Симуляция работы программы в условиях различных нагрузок.
Цели:
Минимизация числа ошибок в коде.
Повышение устойчивости к внешним воздействиям.
Прогнозирование времени безотказной работы системы.
Последующий анализ безопасности ИС (информационной системы) при отсутствии злоумышленных дестабилизирующих факторов базируется на модели взаимодействия основных компонент, представленных на рисунке. В качестве объектов уязвимости рассматриваются:
динамический вычислительный процесс обработки данных, автоматизированной подготовки решений и выработки управляющих воздействий;
информация, накопленная в базах данных;
объектный код программ, исполняемых вычислительными средствами в процессе функционирования ИС;
информация, выдаваемая потребителям и на исполнительные механизмы.
На эти объекты воздействуют различные непредумышленные дестабилизирующие факторы, которые можно разделить на внутренние, присущие самим объектам уязвимости, и внешние, обусловленные средой, в которой эти объекты функционируют. Внутренними источниками угроз безопасности функционирования сложных ИС являются:
системные ошибки при постановке целей и задач проектирования ИС, формулировке требований к функциям и характеристикам решения задач, определении условий и параметров внешней среды, в которой предстоит применять ИС;
алгоритмическая ошибки проектирования при непосредственной алгоритмизации функций программных средств и баз данных, при определении структуры и взаимодействия компонент комплексов программ, а также при использовании информации баз данных;
ошибки программирования в текстах программ и описаниях данных, а также в исходной и результирующей документации на компоненты ИС;
недостаточная эффективность используемых методов и средств оперативной защиты программ и данных и обеспечения безопасности функционирования ИС в условиях случайных негативных воздействий.
Внешними дестабилизирующими факторами, создающими угрозы безопасности функционирования перечисленных объектов уязвимости ИС являются:
ошибки оперативного и обслуживающего персонала в процессе эксплуатации ИС;
искажения в каналах телекоммуникации информации, поступающей от внешних источников и передаваемой потребителям, а также недопустимые изменения характеристик потоков информации;
сбои и отказы аппаратуры;
изменения состава и конфигурации ИС за пределы, проверенные при испытаниях или сертификации.
Полностью исключить все эти факторы невозможно. Поэтому необходимо разрабатывать средства и методы уменьшения их влияния на надежность ПС (программных средств). Степень влияния всех внутренних дестабилизирующих факторов и некоторых внешних на надежность ПС в наибольшей степени определяется качеством технологий проектирования, разработки, сопровождения и документирования ПС.
Методы предотвращения угроз надежности:
предотвращение ошибок проектирования;
систематическое тестирование;
обязательная сертификация.
Методы повышения надежности:
временная избыточность;
информационная избыточность;
программная избыточность.
В современных автоматизированных технологиях создания сложных ПС с позиции обеспечения их необходимой и заданной надежности можно выделить методы и средства, позволяющие:
создавать программные модули и функциональные компоненты высокого, гарантированного качества;
предотвращать дефекты проектирования за счет эффективных технологий и средств автоматизации обеспечения всего жизненного цикла комплексов программ и баз данных;
обнаруживать и устранять различные дефекты и ошибки проектирования, разработки и сопровождения программ путем систематического тестирования на всех этапах жизненного цикла ПС;
удостоверять достигнутые качество и надежность функционирования ПС в процессе их испытаний и сертификации перед передачей в регулярную эксплуатацию;
оперативно выявлять последствия дефектов программ и данных и восстанавливать нормальное, надежное функционирование комплексов программ.
Обеспечение качества ПС предполагает формализацию и сертификацию технологии их разработки, а также выделение в специальный процесс поэтапное измерение и анализ текущего качества создаваемых и применяемых компонент.
Основные методы предотвращения угроз надежности:
предотвращение ошибок проектирования в CАSE-технологиях;
систематическое тестирование;
резервирование;
обязательная сертификация
Комплексное применение этих методов позволяет значительно ослаблять влияние угроз. Об этом говорит сайт https://intellect.icu . Таким образом, уровень достигнутой надежности зависит от ресурсов, выделяемых на его достижение и от качества технологий, используемых на всех этапах жизненного цикла программного средства.
Вычислительный процесс − это процесс выполнения программы совместно с ее данными на процессоре (редактирование текста, трансляция, выполнение какой-либо программы).
Объектный код - это промежуточное представление кода. Еще не машинный, но уже не исходный. Используется на этапе сборки программы из нескольких кусков (возможно, написанных в исходном коде разными людьми и в разное время).
Информационная избыточность (InformationRedundancy) наиболее присуща телекоммуникационным системам, в которых информация передается многократно. Информационная избыточность заключается в дублировании накопленных исходных и промежуточных данных.
Громоздкость кода, сложно избавляется от вредоносного ПО встроенного в код, сложность модификаций, низко ур-е код не предназначен для простых пользователей, не запускается на большинстве компиляторах.
Временная избыточность (TimeRedundancy) заключается в использовании некоторой части производительности компьютера для контроля за исполнением программ и восстановления (рестарта) вычислительного процесса (запас времени для повторного выполнения операции (например, двойного или тройного просчета на вычислительной машине).
Информация баз данных - Данными называют зарегистрированную информацию, представление фактов, понятий или инструкций в форме, которая подходит для передачи, связи, обработки человеком или с помощью машины.
Информация для потребителей – субъект, обращающийся к информационной системе или посреднику за получением необходимой ему информации и пользующийся ею в соответствии с порядком, установленным собственником или владельцем информации.
Уязвимость утечки личной информации - это уязвимость, при которой информация предоставляет конкретные сведения о конкретных лицах, которые, в свою очередь, помогают отличить этих конкретных лиц от остальных других лиц. Кроме того, эта уязвимость становится критической, когда информация используется для отслеживания, идентификации или установления контакта с конкретным человеком. Например, информация, используемая для точного определения личности, – это адрес, имя, номер телефона, идентификационный номер, такой как номер aadhaar или данные карты pan, пол, дата рождения, адрес электронной почты или комбинация этих данных. Конфиденциальная информация о человеке, такая как имя, пол и т. д., Может быть передана в небезопасной форме, не причиняя никакого вреда человеку, Но конфиденциальная информация, такая как данные карты aadhaar, номер карты pan и т. д., Должна передаваться безопасным способом, таким как шифрование данных, Чтобы предотвратить любое нежелательное раскрытиеданные или причинить вред личности. Организации используют PIIL (утечку личной информации), чтобы понять, какую информацию необходимо сохранить в безопасности, а какая информация не нуждается в дополнительной защите.
Такие модели особенно важны для критически значимых приложений, например, в медицинской, авиационной или банковской отрасли.
Надежность программного обеспечения является особым аспектом инженерии надежности. Она фокусируется на основах и методах, чтобы сделать программное обеспечение более надежным, т. е. устойчивым к сбоям. Надежность системы, по определению, включает все части системы, включая аппаратное обеспечение, программное обеспечение, поддерживающую инфраструктуру (включая критические внешние интерфейсы), операторов и процедуры. Традиционно инженерия надежности фокусируется на критических аппаратных частях системы. С момента широкого использования технологии цифровых интегральных схем программное обеспечение стало все более важной частью большинства электронных устройств и, следовательно, почти всех современных систем. Поэтому надежность программного обеспечения приобрела известность в области надежности системы.
Однако существуют значительные различия в поведении программного и аппаратного обеспечения. Большая часть ненадежности оборудования является результатом отказа компонента или материала, в результате которого система не выполняет свою предполагаемую функцию. Ремонт или замена аппаратного компонента восстанавливает систему до ее первоначального рабочего состояния. Однако программное обеспечение не выходит из строя в том же смысле, что и оборудование. Вместо этого ненадежность программного обеспечения является результатом непредвиденных результатов операций программного обеспечения. Даже относительно небольшие программы могут иметь астрономически большие комбинации входных данных и состояний, которые невозможно исчерпывающе протестировать. Восстановление программного обеспечения до его первоначального состояния работает только до тех пор, пока та же комбинация входных данных и состояний не приведет к тому же непредвиденному результату. Инженерия надежности программного обеспечения должна это учитывать.
Несмотря на это различие в источнике сбоев между программным обеспечением и оборудованием, было предложено несколько моделей надежности программного обеспечения, основанных на статистике, для количественной оценки того, что мы испытываем при работе с программным обеспечением: чем дольше работает программное обеспечение, тем выше вероятность того, что оно в конечном итоге будет использоваться непроверенным образом и проявит скрытый дефект, который приведет к сбою ( Shooman 1987), (Musa 2005), (Denney 2005).
Как и в случае с оборудованием, надежность программного обеспечения зависит от хороших требований, проектирования и реализации. Проектирование надежности программного обеспечения в значительной степени опирается на дисциплинированный процесс проектирования программного обеспечения для прогнозирования и проектирования с учетом непреднамеренных последствий . Существует больше совпадений между проектированием качества программного обеспечения и проектированием надежности программного обеспечения, чем между качеством и надежностью оборудования. Хороший план разработки программного обеспечения является ключевым аспектом программы обеспечения надежности программного обеспечения. План разработки программного обеспечения описывает стандарты проектирования и кодирования, экспертные оценки , модульные тесты , управление конфигурацией , метрики программного обеспечения и модели программного обеспечения, которые будут использоваться при разработке программного обеспечения.
Модели бывают двух основных типов — прогнозное моделирование и оценочное моделирование.
1.0 Обзор моделей прогнозирования надежности программного обеспечения
Эти модели выводятся из реальных исторических данных из реальных программных проектов. Пользователь отвечает на список вопросов, которые калибруют исторические данные для получения прогноза надежности программного обеспечения. Точность прогноза зависит от того, сколько параметров (вопросов) и наборов данных содержится в модели, насколько актуальны данные и насколько пользователь уверен в своих входных данных. Одной из самых ранних моделей прогнозирования была Римская лаборатория TR-92-52. Она была разработана в 1987 году и последний раз обновлялась в 1992 году и была ориентирована на программное обеспечение в системах авионики.
2.0 Обзор моделей роста (оценки) надежности программного обеспечения
Модели роста (или оценки) надежности программного обеспечения используют данные об отказах, полученные в ходе тестирования, для прогнозирования частоты отказов или MTBF в будущем. Модели зависят от предположений о частоте отказов во время тестирования, которая может увеличиваться, достигать пика, уменьшаться или иметь некоторую комбинацию уменьшения и увеличения. Некоторые модели предполагают, что существует конечное и фиксированное число неотъемлемых дефектов, в то время как другие предполагают, что оно бесконечно. Некоторые модели требуют усилий для оценки параметров, в то время как другие имеют только несколько параметров для оценки. Некоторые модели требуют точного времени между каждым отказом, обнаруженным при тестировании, в то время как другим нужно только иметь количество отказов, обнаруженных в течение любого заданного интервала времени, например, дня.
Название модели | Количество внутренних дефектов | Требуются усилия | Требуется точное время между отказами |
---|---|---|---|
Увеличение частоты отказов | |||
Вейбулл | Конечный/не фиксированный | Высокий | NA |
Пик | |||
Модель скорости удаления дефектов с константой Шумана | Конечный/фиксированный | Низкий | Да |
Уменьшение количества отказов | |||
Модель скорости удаления дефектов с константой Шумана | Конечный/фиксированный | Низкий | Да |
Линейно убывающий | |||
Общие экспоненциальные модели, включая:
· Гоэль-Окумото (экспоненциальный) · Базовая модель Musa · Джелински-Моранда |
Конечный/фиксированный | Середина | Да |
Линейно убывающая модель Шумана | Конечный/фиксированный | Низкий | Да |
Дуэйн | Бесконечный | Середина | Нет |
Нелинейно убывающий | |||
Муса-Окумото (логарифмический) | Бесконечный | Низкий | Да |
Модель экспоненциального убывания Шумана | Конечный/фиксированный | Высокий | Да |
Логистика | Конечный/фиксированный | Высокий | Да |
Геометрический | Бесконечный | Высокий | Да |
Увеличивается, а затем уменьшается | |||
Ямада (Задержка)
S-образный |
Бесконечный | Высокий | Да |
Вейбулл | Конечный/не фиксированный | Высокий |
Инструменты обеспечения надежности программного обеспечения, реализующие некоторые из этих моделей, включают CASRE (компьютерная оценка надежности программного обеспечения) и SFRAT (инструмент оценки отказов и надежности программного обеспечения) с открытым исходным кодом.
Анализ данных, представленных в статье про модель анализа надежности программных средств, подтверждает эффективность применения современных технологий для обеспечения инновационного развития и улучшения качества жизни в различных сферах. Надеюсь, что теперь ты понял что такое модель анализа надежности программных средств и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Надёжность программного обеспечения
Комментарии
Оставить комментарий
Надёжность программного обеспечения
Термины: Надёжность программного обеспечения