Надёжность Программного Обеспечения Учебно-методический Материал: Образовательная Социальная Сеть
July 23, 2022Неисправность аппаратуры установки, на которой реализуется вычислительный процесс.
Важность тестирования программ в мире цифровых технологий – NewsRu.Ca – Новости Канады
Важность тестирования программ в мире цифровых технологий – NewsRu.Ca.
Posted: Mon, 09 Jan 2023 08:00:00 GMT [source]
Основные понятия и определения надежности программного обеспечения. Учитывая, что в процессе разработки ПО подвергается целому списку комбинированных внешних воздействий, требуется финальное тестирование ИС в целом. Проведение всеобъемлющих тестов, повторяющих систему тестов в процессе разработки технологического https://deveducation.com/ цикла, приведет к увеличению времени на их проведение, а также росту стоимости ИС. Поэтому в настоящее время достаточно остро стоит вопрос о разработки методологии ускоренных тестов ИС [1]. Безопасность связана с опасностями, которые могут привести к гибели людей и иным катастрофическим последствиям отказов.
Чтобы алгоритм машинного обучения считался надёжным, либо тестовая ошибка должна соответствовать ошибке обучения, либо производительность должна оставаться стабильной после добавления некоторого шума в набор данных[8]. Надёжное программирование — это стиль программирования, который фокусируется на обработке неожиданного завершения и неожиданных действий[7]. Используется специальный код для изящной обработки этих завершений и действий путем отображения точных и однозначных сообщений об ошибках.
Лекция “надежность Программного Обеспечения”
С точки зрения надежности принципиальное отличие ПО от аппаратуры состоит в том, что программы не изнашиваются и, следовательно, не выходят из строя из-за поломки. Важным аспектом надежности ПО является их непосредственная техническая реализация, применяемая при производстве ИС управления. В современных условиях уровень надежности ПО считается допустимым для ввода ИС в эксплуатацию, если на one thousand операторов будет приходиться одна ошибка. С ростом вычислительной мощности и развитием алгоритмических языков стало возможным разработать автономную и практически необслуживаемую ИС. Такие решения чаще всего используются во встроенных ИС управления, потребительские качества которых во многом определяются ПО [1].
Иначе говоря, надёжность объекта заключается в отсутствии непредвиденных недопустимых изменений его качества на стадии эксплуатации (при его использовании, обслуживании, хранении, транспортировании). Неисправность аппаратуры – неисправности, возникающие при работе аппаратуры, используемой для реализации вычислительного процесса, оказывают влияние на характеристику надежности Устойчивость (Robustness) ПО. Появление отказа или сбоя в работе аппаратуры приводит к нарушению нормального хода вычислительного процесса и во многих случаях к искажению данных и текстов программ в основной и внешней памяти. Безотказность программы или программного обеспечения есть его (ее) свойство сохранять работоспособность при использовании в процессе обработки информации на компьютере.
Под надёжностью ЯП будем понимать его свойство, которое характеризуется_вероятностью безошибочного написания и трансляции программ заданного размера. Во-первых, ошибки в написании программы зависят не только (и не столько!) от свойств языка, сколько от квалификации программиста. Поэтому надежность языка — понятие относи тельное; можно представить себе, что один и тот же программист, в равной мере владеющий двумя языками, при использовании одного из них совершает в программе меньше ошибок, чем при использовании другого. Следовательно, вполне естественно говорить, что первый из этих языков более надежен.
Эмпирические данные свидетельствуют о том, что на начальном этапе альфа тестирования ПО, на каждые a hundred операторов имеется 1 ошибка [17]. Из формулы (3) следует, что оценка надежности программы растет с увеличением числа ее запусков по гиперболическому закону. Для безопасности в связи с отказами объектов техники используют понятия отказобезопасность или отказоустойчивость.
Надёжность Программного Обеспеченияучебно-методический Материал
Эти сообщения об ошибках позволяют пользователю легче настраивать программу. В настоящее время компьютерные технологии не направлены на создание надежных систем[4]. Скорее они стремятся сосредоточиться на масштабируемости и эффективности. Одна из главных причин того, почему сегодня не уделяется внимания надежности, заключается в том, что это трудно сделать в общем виде[4].
Качественные не выражаются в виде числовых показателей, но указывают на способность ПО выполнять поставленные перед ним задачи. Порядковые позволяют расположить изучаемые варианты системы с учётом возрастания надёжности. Всесторонняя оценка софта требует учёта и количественных, и порядковых, и качественных показателей. Повреждение (Fault) — неисправность уже появилась, но еще не проявилась вовне.
Программа Обеспечения Надёжности[править Править Код]
Указанные свойства обеспечивают путём использования разных форм резервирования наиболее важных функций в сочетании с мерами повышения надёжности и охвата контролем составных частей объекта техники. Восстановление после отказа в программе может заключаться в корректировке и восстановлении текста программы, исправлении данных, внесении изменений в организацию вычислительного процесса. В связи с этим следует рассматривать аспект повышения надежности ПО, учитывая основные системные принципы [4,8]. «Внутренняя» характеристика — число оставшихся ошибок (безошибочность)— абсолютное или относительное. Считается, что в хорошо отлаженной программе — не более одной ошибки на 1 тыс. Например, для СОИ этот показатель был задан как не более 2,5 ошибок на 103 операторов языка Ада.
Тестирование ПО не предоставляет нужных гарантий надежности и качества в принципе, эта проблема рассматривалась еще классиками программирования [14]. Многие разработанные методы предусматривают оценку надежности созданной программы в целом [3,eleven,16]. Ошибки в ПО, которые приводят к снижению надежности, обычно находятся в какой-либо части, поэтому целесообразно выделить отдельные функциональные блоки в программе и проводить процедуру оценки надежности по ним. При таких условиях надежность ПО в целом складывается из надежности его частей [1]. Моделирование надёжности — это процесс прогнозирования или исследования надёжности системы и её составных частей до ввода в эксплуатацию. Наиболее часто для моделирования надёжности систем используются методы анализа деревьев отказов и структурных схем надёжности.
Другой формой подготовки специалистов в области надёжности могут быть аккредитованные при высших учебных заведениях или колледжах учебные программы или курсы. Инженер по надёжности может иметь профессиональный диплом именно по надёжности, но для большинства работодателей это не требуется. Проводятся многочисленные профессиональные конференции, реализуются отраслевые программы подготовки кадров по вопросам надёжности. К международным организациям инженеров и учёных в области надёжности относятся IEEE Reliability Society, American Society for Quality (ASQ) и Society of Reliability Engineers (SRE). Системы любой сложности разрабатываются организациями, такими, как коммерческие компании или государственные учреждения.
Одним из способов адаптации биологических систем к окружающей среде является использование избыточности[4]. Многие органы функционально избыточны в биологическом организме. Людям, как правило, нужна только одна почка, но наличие второй почки сохраняет возможности организма при отказе первой. Этот же принцип может быть применен к программному обеспечению, но есть некоторые проблемы. При применении принципа избыточности к информатике слепое добавление кода не рекомендуется.
Базовые Принципы[править Править Код]
Инженерные исследования проводятся для определения оптимального баланса между надёжностью и другими требованиями и ограничениями. Существенную помощь при инженерном анализе надёжности могут оказать программные средства проектирования, обеспечивающие работу с моделями надёжности. Несмотря на это, сложные системы должны обрабатывать любые ошибки.
- Такие решения чаще всего используются во встроенных ИС управления, потребительские качества которых во многом определяются ПО [1].
- В качестве примеров ошибок сопряжения можно привести – несовместимость аргументов и параметров подпрограммы, нарушение синхронизации при синхронном выполнении программы и т.д.
- Например, испытания компонент на воздействие внешних факторов может выявить проблемы перед тем, как они будут обнаружены на более высоком уровне интеграции.
- Испытания на надёжность проводятся для того, чтобы на более ранних этапах жизненного цикла изделия обнаружить потенциальные проблемы, обеспечить уверенность, что система будет отвечать заданным требованиям.
- Существенную помощь при инженерном анализе надёжности могут оказать программные средства проектирования, обеспечивающие работу с моделями надёжности.
- В этом случае между исходной информацией и характеристиками программы возникает несоответствие.
Надёжность в инженерной практике отличается от безопасности по рассматриваемым в этой дисциплине видам опасностей. Испытания на надёжность проводятся для того, чтобы на более ранних этапах жизненного цикла изделия обнаружить потенциальные проблемы, обеспечить уверенность, что система будет отвечать заданным требованиям. При анализе параметров системной надёжности учитывается структура системы, состав и взаимодействие входящих в неё элементов, возможность перестройки структуры и алгоритмов её функционирования при отказах отдельных элементов. Надёжный дизайн сети — это исследование дизайна сети в условиях переменных или неопределенных требований[9]. В некотором смысле, надёжность в проектировании сети является такой же широкой, как и в проектировании программного обеспечения, благодаря огромным возможностям изменений или вводимых данных. Надежность работы вычислительной аппаратуры следует рассматривать совместно с программным обеспечением как надежность вычислительного процесса.
Существуют алгоритмы, которые допускают ошибки во входящих данных[10] или во время вычислений[11]. В этом случае вычисления в конечном итоге сходятся к правильному выводу. Это явление было названо «правильностью притяжения» (англ. correctness attraction)[11]. Надёжное машинное обучение обычно относится к надёжности алгоритмов машинного обучения.
Примечания[править Править Код]
Безотказность программного средства можно также характеризовать средним временем между возникновениями отказов в функционировании программы. При этом предполагается, что аппаратура компьютера находится полностью в работоспособном состоянии. Безотказность ПО можно оценивать вероятностью его работы без отказов при определенных условиях внешней среды в течении заданного времени наблюдения. Качество ПО задается на этапе логического проектирования алгоритма функционирования ИС управления [13,15]. Типичный пример восстановления — с помощью резервной (backup) копии данных. Если выполнить восстановление в латентном периоде отказа, то он никогда не проявится вовне — в этом состоит идеальная отказоустойчивость.
Причины отказов программного обеспечения, признаки появления ошибок. Также количество найденных ошибок зависит от времени эксплуатации ПО, что неразрывно связано со стадиями жизненного цикла (см. рис1). Единицы системы, зависящей от программы, выполнять требуемую функцию в заданных пределах. Для исследования средней части распределения, которая чаще всего определяется свойствами материалов, необходимо применять повышенные нагрузки на достаточно малом отрезке времени.
Остальные отказы называются устойчивыми (по умолчанию отказ — устойчивый). В электронной аппаратуре сбои происходят на порядок чаще устойчивых. Их причины — флюктуации питания, ситуации «гонок» сигналов, альфа-частицы и др. В программах аналогично сбоям ведут себя времязависимые ошибки — их иногда называют «мерцающими» (blinking bugs). Некоторые высшие учебные заведения подготавливают инженеров по надёжности.
Одной из наиболее важных технологий проектирования является введение избыточности или резервирование. Резервирование — это способ обеспечения надёжности изделия за счёт дополнительных средств и (или) возможностей, избыточных по отношению к минимально необходимым для выполнения требуемых функций (ГОСТ 27.002). Путём введения избыточности совместно с хорошо организованным мониторингом отказов, даже системы с низкой надёжностью по одному каналу могут в целом обладать высоким уровнем надёжности. Однако введение избыточности на высоком уровне в сложной системе (например, на уровне двигателя самолёта) очень сложно и дорого, что ограничивает такое резервирование. На более низком уровне системы резервирование реализуется быстро и просто, например, использование дополнительного соединения болтом. Менеджер проекта или главный инженер проекта может иметь в непосредственном подчинении одного или более инженеров по надёжности.
В современных условиях возможным методом повышения качества тестирования ПО являются встроенные в ИС аппаратные или программные средства автотестирования, запускаемые как на начальном этапе работы программы, так и на стадии выполнения. Необходимость мониторинга за целостностью кода вводится в существующие стандарты на встроенные ИС управления [10]. ПОН разрабатывается на ранних стадиях проектирования и реализуется на всех этапах жизненного цикла изделия.
Литература[править Править Код]
Для любой системы одной из первых инженерных задач надёжности является адекватное нормирование показателей надёжности, например, в терминах требуемой готовности. Нормирование надёжности — это установление в проектной или иной документации количественных и качественных требований к надёжности. Например, требования по ремонтопригодности могут включать в себя показатели стоимости и времени восстановления. Оценивание эффективности процессов технического обслуживания и ремонта является частью процесса FRACAS (failure reporting, analysis and corrective motion system — система отчётов об отказах, анализа и коррекции действий). Экспериментальный метод определения надёжности (Experimental reliability assessment) основан на статистической обработке данных, получаемых при испытаниях или эксплуатации системы или её составных частей и элементов. Улучшение первого качества достигается хорошей технологией, предупреждающей ошибки (fault-avoidance).
Данные о надёжности и оценки параметров являются ключевыми входами для модели системной логистики. Общей практикой моделирования «ранней» интенсивности отказов является использование экспоненциального распределения. Это менее сложная модель для распределения времени отказа, содержащая только один параметр — постоянную интенсивность отказов. В этом случае в качестве критерия согласия может быть использован критерий хи-квадрат для оценки постоянства интенсивности отказов.
Аналитические модели определения надёжности ПО делятся на статические и динамические. Среди относительно новых моделей качества программного обеспечения можно упомянуть SQUALE и Quamoco[11], которые были применены в промышленных условиях, но пока не получили широкого распространения. Том Демарко в 1999 году предлагал при оценке качества программного обеспечения учитывать, что «качество программного продукта является показателем того, насколько он меняет мир к лучшему»[5]. Комплект контрольно – оценочных средств (далее – КОС) по профессиональному модулю 01 «Разработка программных модулей программного обеспечения для компьютерных систем»разработан на основе Федерального …