НАДЕЖНОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ

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

Первые исследования по теории надежности программных средств для информационных систем и автоматизированных систем управления появились в конце 70-х годов прошлого века. Автоматизированные системы управления являются сложными аппаратно-программными комплексами, во время их эксплуатации периодически происходят отказы и сбои. При этом во многих случаях сбои и отказы их функционирования обусловлены дефектами комплексов программ. Связано это в первую очередь с тем, что надежность программных средств имеет определенные особенности, которые приводят к тому, что при существующем уровне развития технологии, средств и методов автоматизированного проектирования, как указывает В.В. Липаев в книге «Методы обеспечения качества крупномасштабных программных средств» (см. [8]), «есть предельные объемы комплексов программ, при которых невозможно обеспечить (при допустимых затратах) необходимую надежность их функционирования и безопасность их применения. Это связано, в первую очередь, с реальными ограничениями всех видов ресурсов: бюджета, длительности разработки, характеристик вычислительных систем, квалификации специалистов. Очевидно, что при наличии неограниченного количества времени, специалистов и технических ресурсов может быть проведено полное тестирование, т. е. все возможные сочетания входных данных. Однако на практике это неприемлемо, поскольку проект выполняется в условиях ограничения ресурсов, а большие временные затраты могут привести к его моральному устареванию. Применение же такого рода систем при недостаточной их надежности и безопасности не только теряет смысл, но и может оказаться опасным». Поэтому для обеспечения надежной работы программного обеспечения определяется объем тестирования, достаточный для заключения о безопасности его применения в соответствии с задачами, для решения которых данное средство предназначено. Объем тестирования связан со структурой программного средства: чем больше условных переходов и передач управления, тем большее число тестов необходимо. Также объем тестирования зависит от типа информационной системы и требований к ее надежности. Очевидно, что для системы управления движением на воздушном транспорте и для справочной системы, например библиотечной, требования к надежности различны, следовательно, объем тестирования и ресурсы будут определяться в соответствии с необходимостью достижения заданного уровня надежности [3, 8—13 15, 17].

В соответствии с ГОСТ 27.002—89 «Надежность в технике. Термины и определения» надежность определяется как свойство объекта сохранять во времени в установленных пределах значения всех параметров, характеризующих способность выполнять требуемые функции в данных режимах и условиях применения, технического обслуживания, хранения и транспортирования.

Надежность программных средств, естественно, зависит от надежности аппаратуры, но эта зависимость, хоть и является значимой, не является единственной, поскольку реальное разрушение программ, хранящихся в памяти ЭВМ, или порча данных во время вычислительного процесса из-за дефектов аппаратуры происходят достаточно редко. Гораздо чаще ненадежная работа программ связана с наличием дефектов в самом программном обеспечении. Наиболее распространенными первопричинами некорректной работы программного обеспечения являются ошибки проектирования (в том числе и алгоритмизации) и недостаточное тестирование. К сожалению, размеры современных программных комплексов таковы, что провести их исчерпывающее тестирование не представляется возможным (об этом будет сказано ниже). Поэтому всегда остается вероятность обработки программой непроверенных сочетаний исходных данных, приводящих к выполнению программы по непротестирован- ному маршруту, который может содержать ошибки.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >