Добавлен: 07.07.2023
Просмотров: 349
Скачиваний: 10
Ключом к совершенствованию повторного использования продукта наличие какой-либо логической разбивки ваших действий и процессов, определение способа их реализации и понимание потребительских свойств для внесения изменений в процесс разработки и обслуживание в дальнейшем.
1.3 Надежность и стойкость к ошибкам в программной инженерии
Надежность — набор атрибутов, относящихся к способности программного обеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени. Следует заметить, что характер отказов программного средства зависит от внутренних дефектов и условий функционирования ПО. Характер отказов детализируется следующими субхарактеристиками:
• завершенность характеризует частоту отказов при наличии ошибок в программном обеспечении, традиционно измеряется в наработке на отказ при отсутствии средств рестарта;
• устойчивость к ошибкам— сохранение работоспособного состояния в случаях программных ошибок или взаимодействия с внешней средой, традиционно измеряется в наработке на отказ при наличии средств автоматического рестарта;
• восстанавливаемость характеризует возможности восстанавливать определенный уровень качества функционирования и данные, непосредственно поврежденные в случае отказа, а также ресурсы, необходимые для этого. Обычно измеряется длительность восстановления;
• доступность (готовность) — относительное время работоспособного функционирования, измеряется как вероятность нахождения в работоспособном состоянии;
• соответствие— соответствие стандартам надежности.
рассмотрим более подробно характеристику качества — надежность. Как было сказано выше (и как следует из стандарта), надежность программного средства является динамическим понятием (как и для аппаратных средств), поскольку проявляется во времени. В соответствии со стандартом надежное ПО должно иметь низкую вероятность отказа при функционировании в реальном времени. Кроме того, поскольку теория надежности разрабатывалась первоначально для технических средств, существуют некоторые особенности при ее применении к программным средствам. В частности, если проанализировать определение надежности, то очевидно, что понятия и методы теории надежности применимы только к программным средствам, которые функционируют в реальном времени и непосредственно взаимодействуют с внешней средой.
Очевидно, что работоспособность программных средств можно гарантировать при конкретных исходных данных, которые использовались при тестировании и испытаниях. Как было сказано ранее, к нарушению работоспособности программ при безотказности аппаратуры обычно приводит обработка программой реальных входных данных, которые по каким-либо причинам приводят к неадекватной работе программы: выполнению не по требуемому маршруту, зацикливанию и т. п. Чаще всего это означает, что тщательного тестирования на конкретных входных данных и данной конфигурации программного обеспечения не проводилось. Поэтому для обеспечения надежности в плане субхарактеристики завершенности необходимо тщательное тестирование, которое снизит уровень невыделенных ошибок и повысит наработку до отказа при отсутствии средств рестарта, а в плане субхарактеристик устойчивости к ошибкам и восстанавливаемости — разработка средств рестарта и введения временной, информационной и программной избыточности, позволяющих увеличить наработки на отказ и снизить время восстановления.
Следует обратить внимание, что так же, как и в случае аппаратного обеспечения, необходимо разделять такие понятия, как отказ и сбой. Если время восстановления меньше некоторого порогового значения, являющегося для объекта или системы критическим, то в этом случае дефекты функционирования программ следует относить к сбоям, в противном случае — к отказам. Очевидно, что для любого объекта управления (или системы) существует некоторое допустимое время, определяемое аналитически или на основе эксперимента, когда в отсутствие данных от программного средства он может нормально функционировать. Очевидно, что чем менее инерционным является объект управления, тем меньшее время он может функционировать без нарушения работоспособности в отсутствие воздействий от программного обеспечения. Таким образом, в отличие от понятий сбоя и отказа для аппаратных средств, для понятий сбоя и отказа программных средств не рассматривается случай физического разрушения программ, следовательно, восстановление связано не с понятием ремонтопригодности, а с наличием средств рестарта, которые обеспечивают перевод отказовой ситуации в нормальное функционирование.
Теория надежности программных средств оперирует теми же понятиями, что и теория надежности аппаратных средств, однако, как было сказано ранее, в случае показателей надежности программных средств они имеют свою специфику. Рассмотрим основные показатели надежности, применяемые для оценки надежности ПО. Определения большинства из них совпадают с определением соответствующих показателей для аппаратных средств.
Наработка на отказ — для ее определения измеряется время работоспособного состояния между двумя последовательными отказами или началами нормального функционирования системы после них. В данном контексте рассматривается случай, когда объект переходит в неработоспособное состояние, т. е. длительность восстановления превышает пороговое значение.
Здесь также следует учесть, что в вычислительных системах сбои (несмотря на аппаратные противосбойные мероприятия) появляются на порядок чаще, чем устойчивые отказы. Для оценки показателей надежности по отношению к сбоям могут применяться такие же оценки, как и по отношению к устойчивым отказам.
При этом большое значение приобретают средства контроля и восстановления (рестарта), которые позволяют за счет быстрого восстановления перевести отказовую ситуацию в режим нормального функционирования. Поскольку в реальных системах невозможно достичь наработки на отказовую ситуацию (реализовать программное средство без дефектов), которая была бы соизмерима с наработкой на отказ аппаратуры, на которой функционирует программное средство, то задача восстановления нормального функционирования ПО не может быть эффективно решена без наличия средств рестарта. Их проектированию и реализации должно уделяться серьезное внимание.
Восстанавливаемость характеризуется полнотой и длительностью восстановления функционирования программ в процессе перезапуска — рестарта, поскольку перезапуск должен обеспечивать возобновление нормального функционирования ПС, на что нужны ресурсы ЭВМ и время.
Коэффициент готовности — вероятность иметь восстанавливаемую систему в работоспособном состоянии в произвольный момент времени.
Среднее время восстановления — математическое ожидание времени восстановления работоспособного состояния объекта после отказа.
Таким образом, в отличие от аппаратных средств, где восстановление является не только аппаратной характеристикой, но и учитывает навыки обслуживающего персонала, в программных средствах восстановление может проходить и без участия оператора, особенно в тех случаях, когда отказ не связан с аппаратурой и восстановление происходит за счет средств рестарта.
ЗАКЛЮЧЕНИЕ
Проведенный анализ позволяет сделать вывод, что программная инженерии касается не только слепого действия, а более масштабных размеров, и также связанные с данным процессом, действия, которые могут и должны применяться с конструктивной стороны, командами и отдельными специалистами. Учитывать многие аспекты, которые позволяют сделать качественный продукт, следуя основными принципами.