Диагностика и надежность автоматизированных систем. Даныкина Донцова Диагностика и надежность автоматизированных сис. Федеральное государственное автономное образовательное учреждение высшего профессионального образования Сибирский федеральный университет
Скачать 0.75 Mb.
|
Контрольные вопросы и задания 1. Опишите способ преобразования сложной структуры с помощью эк- вивалентной замены треугольника звездой и обратно. 2. Опишите способ преобразования сложной структуры с помощью ее разложения по некоторому базовому элементу. 3. В чем заключается комбинаторный метод расчета системы “m из n“. 4. По структурной схеме надежности технической системы и значениям интенсивностей отказов ее элементов λ i определите вероятность безотказной работы системы для t = 10 000 час. Значения интенсивностей равны: λ 1 = 0,1; λ 2 = λ 3 = λ 4 = 0,5; λ 5 = λ 6 = λ 7 = 0,2; λ 8 = λ 9 = λ 10 = 0,01 ⋅10 -6 час -1 42 Практическая работа 10 Расчет надежности информационной сети Содержание работы : 1) изучить топологию информационных сетей; 2) составить структурную схему надежности сети и рассчитать ее зна- чение; 3) написать программу реализующую расчет. Краткие теоретические сведения Составление структурной схемы, являющейся логической схемой для расчета надежности системы (технического средства) включает некоторые моменты, на которых необходимо остановиться более подробно. Структурная схема для расчета надежности в общем случае существенно отличается от функциональной схемы. Структурной схемой для расчета надежности назы- вается графическое отображение элементов системы, позволяющее однознач- но определить состояние системы (работоспособное или неработоспособное) по состоянию (работоспособное или неработоспособное) ее элементов. Для многофункциональных систем, например АСУ ТП, такие структур- ные схемы составляют по каждой функции; их обычно называют надежност- ными схемами функции или надежностно-функциональными схемами. При составлении схемы элементы системы могут соединяться последо- вательно (рис. 10.1, а) или параллельно (рис. 10.1, б) в зависимости от их влияния на работоспособное состояние системы. Рис. 10.1. Соединение элементов системы: а – последовательное (основное); б – параллельное (резервное); в – смешанное 43 Если отказ элемента независимо от его назначения вызывает отказ сис- темы, то элемент соединяют последовательно. Если отказ системы возникает при отказе всех или части однотипных элементов, то такие элементы соеди- няют параллельно. Последовательное соединение элементов называют также основным, а параллельное – резервным. Пример решения задачи Разработать и начертить расчетную схему надежности информационной сети. Разработать и начертить топологическую схему надежности информа- ционной сети. Выполнить расчет надежности информационной сети. Составить блок-схему алгоритма и написать программу расчета надеж- ности информационной сети согласно своему варианту, выданному препода- вателем, и привести результаты расчета в отчете. Исходные данные: Тип сети – «шина»; Число ПК – 9; Сервер – нет; Принтер – есть. Вероятность безотказной работы: Кабель (РЛС) – 0,946; Компьютер (РК) – 0,937; Концентратор (РКОНЦ) – 0,981; Сервер (РС) – 0,983; Принтер (РПР) – 0,953. Решение. Составим структурную схему надёжности информационной сети (рис. 10.2). Так как отказ компьютера в топологии «звезда» не выводит сеть из строя, то все компьютеры в схеме будут подключены параллельно. Далее строим топологическую схему надежности информационной сети (рис. 10.3). Для расчета вероятности безотказной работы системы воспользуемся следующей формулой [ ] , ) ( 1 1 1 ∏ = − − = n i i m t p p где n – количество элементов. Так как сеть одноранговая и вероятности безотказной работы всех ком- пьютеров равны – формула будет следующей: ( ) ( ) ( ) ( ) 953 , 0 946 , 0 1 937 , 0 946 , 0 1 1 1 1 1 9 лс пр лс ПК сети ⋅ − ⋅ ⋅ − − = = ⋅ − ⋅ ⋅ − − = р p р р p n 44 Рис 10.2. Расчетная схема надежности ИС Рис 10.3. Топологическая схема надежности ИС На рис. 10.4 и 10.5 приведены программные реализации расчета надеж- ности информационной сети 45 Рис 10.4. Расчет надежности сети «Шина» Рис 10.5. Расчет надежности сети «Звезда» Контрольные вопросы и задания 1. Что называют структурной схемой для расчета надежности? 2. Опишите, каким образом составляется структурная схема надежности. 3. Разработайте расчетную схему надежности информационной сети и рассчитайте ее надежность. 4. Напишите программу расчета надежности информационной сети. 46 Практическая работа 4 Тестирование программ Содержание работы : 1) изучить методы проектирования тестов программного обеспечения; 2) составить программу решения уравнения и протестировать ее с по- мощью разработанных тестов. Краткие теоретические сведения Рассмотрим структурное и функциональное тестирование. Поскольку исчерпывающее структурное тестирование невозможно, необходимо выбрать такие критерии его полноты, которые допускали бы их простую проверку и облегчали бы целенаправленный подбор тестов. Наиболее слабым из критериев полноты структурного тестирования яв- ляется требование хотя бы однократного выполнения (покрытия) каждого оператора программы. Более сильным критерием является так называемый критерий С1: каж- дая ветвь алгоритма (каждый переход) должна быть пройдена (выполнена) хотя бы один раз. Для большинства языков программирования покрытие пе- реходов обеспечивает и покрытие операторов, но, например, для программ на языке ПЛ/1 дополнительно к покрытию всех ветвей требуется всех дополни- тельных точек входа в процедуру (задаваемых операторами ENTRY) и всех ON – единиц. Использование критерия покрытия условий может вызвать подбор тес- тов, обеспечивающих переход в программе, который пропускается при ис- пользовании критерия С1 (например, в программе на языке Паскаль, исполь- зующей конструкцию цикла WHILE х AND y DO... , применение критерия покрытия условий требует проверки обоих вариантов выхода из цикла: NOT x и NOT y ). С другой стороны покрытие условий может не обеспечивать покрытия всех переходов. Например, конструкция IF A AND B THEN... требует по кри- терию покрытия условий двух тестов (например, A=true, B=false и A=false, B=true ), при которых может не выполняться оператор, расположенный в then-ветви оператора if. Практически единственным средством, предоставляемым современны- ми системами программирования, является возможность определения часто- ты выполнения различных операторов программы (ее профилизации). Но с помощью этого инструмента поддержки тестирования можно проверить вы- полнение только слабейшего из критериев полноты – покрытие всех операто- ров. 47 С помощью этого же инструмента можно проверить и выполнение кри- терия С1. Но для этого предварительно текст программы должен быть преоб- разован таким образом, чтобы все конструкции условного выбора (IF и CASE или SWITCH) содержали ветви ELSE или DEFAULT, хотя бы и пустые. В этом случае все ветви алгоритма, не выполнявшиеся на данном тесте будут “видимы” из таблицы частоты выполнения операторов преобразованной про- граммы. Актуальной остается задача создания инструментальных средств, по- зволяющих: 1) накапливать информации о покрытых и непокрытых ветвях для всех использованных тестов; 2) выделять разработчику еще не покрытые при тестировании участки программы, облегчая выбор следующих тестов; 3) поддерживать более мощные критерии полноты структурного тести- рования. Тестовые данные должны обеспечить проверку всех возможных усло- вий возникновения ошибок: - должна быть испытана каждая ветвь алгоритма; - очередной тестовый прогон должен контролировать нечто такое, что еще не было проверено на предыдущих прогонах; - первый тест должен быть максимально прост, чтобы проверить, ра- ботает ли программа вообще; - арифметические операции в тестах должны предельно упрощаться для уменьшения объема вычислений; - количества элементов последовательностей, точность для итерацион- ных вычислений, количество проходов цикла в тестовых примерах должны задаваться из соображений сокращения объема вычислений ; - минимизация вычислений не должна снижать надежности контроля; - тестирование должно быть целенаправленным и систематизирован- ным, так как случайный выбор исходных данных привел бы к трудностям в определении ручным способом ожидаемых результатов; кроме того, при слу- чайном выборе тестовых данных могут оказаться непроверенными многие ситуации; - усложнение тестовых данных должно происходить постепенно . Обзор методов проектирования тестов при функциональном тестиро- вании начнем с метода эквивалентного разбиения. Т.к. нашей целью является построения множества тестов, характери- зующегося наивысшей вероятностью обнаружения большинства ошибок в тестируемой программе, то тест из этого множества должен: 1) уменьшать (более чем на единицу) число других тестов, которые должны быть разработаны для достижения заранее поставленной цели “удов- летворительного” тестирования; 48 2) покрывать собой значительную часть других возможных тестов. Другими словами: 1) каждый тест должен заключать в себе проверку наибольшего числа задаваемых внешней спецификацией входных условии (ограничений на вход- ные данные) для того, чтобы минимизировать общее число необходимых тес- тов; 2) необходимо разбить область значений входных данных на конечное число подобластей (которые будут называться классами эквивалентности), чтобы можно было полагать каждый тест, являющийся представителем неко- торого класса, эквивалентным любому другому тесту этого класса (т.е. обна- руживающим одни и те же ошибки). В общем случае использование термина “класс эквивалентности” явля- ется здесь не вполне точным, т.к. выделенные подобласти могут пересекаться. Проектирование тестов по методу эквивалентного разбиения проводит- ся в два этапа: - выделение по внешней спецификации классов эквивалентности; - построение множества тестов. На первом этапе происходит выбор из спецификации каждого входного условия и разбиение его на две или более группы, соответствующие так на- зываемым “правильным” (ПКЭ) и “неправильным” классом эквивалентности (НКЭ), т.е. областям до пустых для программы и недопустимых значений входных данных. Этот процесс зависит от вида входного условия. Если вход- ное условие описывает область (например, х <=0.5) или количеством (напри- мер, размер массива А равен 50) допустимых значений входных данных, то определяются один ПКЭ (х <=0.5 или размер А равен 50) и два НКЭ (х< -0.5 ; х>0.5 или размер А меньше 50 ; размер А больше 50). Если входное условие описывает дискретное множество допустимых значений входных данных (например, В может равно -1, 0 или 1) , то опреде- ляются ПКЭ для каждого значения из множества (в данном примере 3) и один НКЭ (В<>-1 & В<>0 & В<>1). Если входное условие описывает ситуацию “должно быть ” (например, N>0), то определяются один ПКЭ (N>0) и один НКЭ (N<=0). На втором этапе метода эквивалентного разбиения выделенные классы эквивалентности используются для построения тестов: - каждому классу присваивается свой номер; - проектируются тесты для ПКЭ таким образом, что каждый тест по- крывает как можно больше еще не покрытых ПКЭ, до тех пор, пока все ПКЭ не будут покрыты; - проектируются тесты для НКЭ таким образом, что каждый тест покры- вает один и только один НКЭ, до тех пор, пока все НКЭ не будут покрыты. Нарушение третьего условия приводит к тому, что некоторые тесты с недопустимыми значениями входных данных проверяют только одну ошибку и скрывают реакцию программы на другие ошибки. 49 Метод эквивалентного разбиения значительно лучше случайного под- бора тестов, но имеет свои недостатки. Основной из них – пропуск опреде- ленных типов высокоэффективных тестов (т.е. тестов, характеризующихся большой вероятностью обнаружения ошибок). От этого недостатка во многом свободен метод анализа граничных условий. Под граничными условиями понимают ситуации, возникающие непо- средственно на границе определенного в спецификации входного или выход- ного условия, выше или ниже ее. Метод анализа граничных условий отличается от метода эквивалентно- го разбиения следующим: - выбор любого представителя класса эквивалентности осуществляется таким образом, чтобы проверить тестом каждую границу этого класса ; - при построении тестов рассматриваются не только входные условия, но и выходные (т.е. определенные во внешней спецификации ограничения на значения входных данных). Общие правила метода анализа граничных условий: 1) построить тесты для границ области допустимых значений входных данных и тесты с недопустимыми значениями, соответствующими незначи- тельному выходу за границы этой области (например, для области [-1.0; 1.0] строим тесты -1.0; 1.0; -1.001; 1.001); 2) построить тесты для минимального и максимального значений вход- ных условий, определяющих дискретное множество допустимых значений входных данных, и тесты для значений, больших или меньших этих величин (например, если входной файл может содержать от 1 до 225 записей, то выби- раются тесты для пустого файла, содержащего 1, 255 и 256 записей); 3) использовать правило 1 для каждого выходного условия (например, программа вычисляет ежемесячный расход частного лица или небольшого предприятия, минимум которого 0.00 $, а максимум 1165.50 $; тогда необхо- димо построить тесты, вызывающие отрицательный расход, расходы, равные 0.00 $ и 1165.50 $, и расход, больший 1165.50 $); 4) использовать правило 2 для каждого выходного условия (например, программа ищет и отображает на экране дисплея наиболее подходящие, в за- висимости от входного условия, рефераты статей, но не более четырех ; тогда необходимо построить тесты, приводящие к отображению 0, 1, 4 рефератов и попытки ошибочного отображения 5 рефератов); 5) если входные и выходные данные програмы представляют собой упорядоченное множество (последовательный файл, линейный список, таб- лицу), то пре тестировании сосредоточить внимание на первом и последнем элементе множества; 6) попытаться найти и проверить тестами другие граничные условия. Важность проверки границ выходных условий объясняется тем, что не всегда граничным значениям входных данных соответствуют граничные зна- чения результатов работы программ. 50 Для иллюстрации необходимости анализа граничных условий приведем тривиальный пример. Пусть имеется программа, осуществляющая ввод трех чисел интерпретирующая их как длины сторон треугольника и выводящая со- общение о типе треугольника (“разносторонний”, “равнобедренный” или “равносторонний ”). Допустим также, что в программе содержится ошибка : при проверке условия построения треугольника (сумма длин любых двух сто- рон должна быть больше третьей) используется операция отношения >= вме- сто >. При проектировании тестов по методу эквивалентного разбиения будут построены тесты для случаев возможности построения треугольника (напри- мер, 3, 4, 5) и невозможности его построения (например, 1, 2, 4), т.е. ошибка в программе не будет обнаружена (на входные данные 1, 2, 3 будет выведено сообщение “разносторонний треугольник”). Но подобный тест будет получен при использовании метода анализа граничных условий. Пример составления теста Система тестов для задачи нахождения корней квадратного уравнения ax 2 + bx + c = 0 приведена в табл. 11.1. Таблица 11.1 – Система тестов для тестирования программы нахождения корней квадратного уравнения Номер теста Проверяемый случай Коэффициенты Результаты a b c 1 d >0 1 1 -2 x1 = 1, x2 = - 2 2 d=0 1 2 1 Корни равны: x1 = - 1, x2 = - 1 3 d < 0 2 1 2 Действительных корней нет 4 a=0, b=0, c=0 0 0 0 Все коэффициенты равны нулю. х - любое число. 5 a=0, b=0, c<>0 0 0 2 Неправильное уравнение 6 a=0, b<>0 0 2 1 Линейное уравнение. Один корень: x = - 0,5 7 a <> 0, b <> 0, с = 0 2 1 0 x1 = 0, x2 = - 0,5 Контрольные вопросы и задания 1. Назовите методы проектирования тестов. В чем они заключаются? 2. Составьте программу нахождения корней квадратного уравнения ax 2 + bx + c = 0. Протестируйте ее с помощью приведенных тестов. 3. Составьте программу определяющую по трем значениям, какой тип треугольника задает пользователь (равносторонний, равнобедренный, прямо- угольный и можно ли построить треугольник). Протестируйте ее с помощью приведенных тестов. 51 Библиографический список 1. Шкляр, В.Н. Надёжность систем управления: учебное пособие / В.Н. Шкляр; Томский политехнический университет. – Томск: Изд-во Том- ского политехнического университета, 2011. – 126 с. 2. Глазунов, Л.П. Основы теории надёжности автоматических систем управления: учебное пособие для вузов / Л.П. Глазунов, В.П. Грабовецкий, О.В. Щербаков. – Л.: Энергоатомиздат, 1984. – 208 с. 3. ГОСТ 27.002-89. Надёжность в технике. Основные понятия. Термины и определения. – М.: Изд-во стандартов, 1989. 4. Половко А.М., Гуров С.В. Основы теории надежности, 2-е издание. – СПб.: БХВ-Петербург – 2006. – 702 с. 5. Половко А.М. Основы теории надежности. Практикум. БХВ- Петербург – 2006. – 560 с. 6. Острейковский В.А. Теория надежности: учебник для вузов. – М.: Высшая школа, 2003. 7. Голинкевич Т.А. Прикладная теория надежности. – М.: "Высшая школа", 1997. 8. Ушаков И.А. Вероятностные модели надежности информационно- вычислительных систем. – М.: Радио и связь, 1991. – 132 с. 9. Дружинин Г.В. Надёжность автоматизированных производственных систем. – М.: Энергоатомиздат, 1986. – 480 с. 10. Липаев В.В. Надежность программных средств. – М.: СИНТЕГ, 1998. 11. Ястребенецкий М.А., Иванова Г.М. Надежность автоматизирован- ных систем управления технологическими процессами. – Энергоатомиздат, 1989. – 264 с. 12. Калявин В.П. Надежность и диагностика. – СПб.: «Элмор», 1998. – 230 с. 13. Журнал «Современные технологии автоматизации» [электронный ресурс]: http://www.cta.ru/ 14. Образовательный математический сайт Exponenta.ru [электронный ресурс]: http://www.exponenta.ru. 15. Промышленная автоматизация в России [электронный ресурс]: http://www.industrialauto.ru/ 16. Мир компьютерной автоматизации [электронный ресурс]: http://www.mka.ru/ |