Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Надёжность систем автоматизации

..pdf
Скачиваний:
2
Добавлен:
12.11.2023
Размер:
6.66 Mб
Скачать

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

При тестировании белого ящика (от англ. white-box testing, также говорят – прозрачного ящика) разработчик теста имеет доступ к исходному коду и может писать код, который связан с библиотеками тестируемого ПО.

При тестировании черного ящика (от англ. black-box testing) тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования.

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

В обоих случаях это динамическое тестирование.

При статическом тестировании программный код не выполняется – анализ программы происходит на основе исходного кода, который высчитывается вручную либо анализируется специальными инструментами. В некоторых случаях анализируется не исходный, а промежуточный код.

Используются также методы математической логики

для доказательства правильности программ без перебора всего множества вариантов исходных данных.

12.5. Доказательство правильности программ

Каждая программа рассматривается как теорема [24]: «Если исходные данные удовлетворяют некоторым услови-

211

ям, то после выполнения данной программы для ее результатов будут справедливы некоторые другие условия».

1.В программе выделяют несколько контрольных точек, для каждой из которых формируют утверждение, характеризующее состояние переменных программы в данной точке. Эти утверждения используются при доказательстве как промежуточные (аналогично леммам).

2.Исходя из логики программы составляется ее схема, описывающая переходы из контрольных точек в контрольные точки.

3.Для каждого перехода доказывается следующее: если

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

4.После того, как достигнута заключительная точка, программа завершена.

Пример 12.1. Пусть имеется ящик с деталями разного веса. С помощью чашечных весов (без гирь) необходимо определить самую тяжелую деталь.

Алгоритм с тремя контрольными точками может быть записан следующим образом:

1.Самая тяжелая деталь – в ящике.

Начало цикла Пока: в ящике больше одной детали (n > 1). Действие Z1. Положить любые две детали на чашки весов.

2.Самая тяжелая деталь – в ящике или на весах. Взвешивание: Какая деталь тяжелее? х = 1? Действие Z2. Легкую деталь отложить. Действие Z3. Тяжелую деталь вернуть в ящик.

Конец цикла.

3.В ящике ровно одна деталь – самая тяжелая. Действие Z4. Взять самую тяжелую деталь из ящика. Схема алгоритма имеет вид, представленный на рис. 12.1.

212

Рис. 12.1. Алгоритм определения самой тяжелой детали

А. В начальный момент утверждение 1 верно: самая тяжелая деталь в ящике (даже если она всего одна).

В. Если утверждение 1 верно, то при входе в цикл верно и утверждение 2: в промежутке между этими двумя точками детали «уходили» только на весы.

С. Если верно утверждение 2, то при следующем проходе цикла верно и утверждение 1. Таким образом, если в точке 2 самая тяжелая деталь находилась в ящике, она там и осталась. Между точками 2 и 1 из ящика ничего не вынималось. Если же в точке 2 самая тяжелая деталь была на весах, то она будет возвращена в ящик.

D. Если верно утверждение 1, то при выходе из цикла верно и утверждение 3. Выполнение утверждения 1 означает, что ящик не пуст. Переход в 3 возможен, только если не выполняется предусловие цикла: в ящике не больше одной детали. Следовательно, в ящике ровно одна деталь и в соответствии с утверждением 1 она самая тяжелая.

213

Е. Выполнение алгоритма обязательно завершится (это сходимость – алгоритм сходится), так как при каждом исполнении цикла в ящике становится на одну деталь меньше.

12.6. Формализация программирования

Для повышения надежности программ весьма полезна формализация программирования, позволяющая переходить из программирования как искусства к программированию на основе строгих математических подходов. Большое значение имеет использование схем алгоритмов и программ. Схемы алгоритмов выполняют по ГОСТ 19.701–90 «Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения».

Алгоритм может быть реализован также и схемой элементов (устройств), которые выполняются по ГОСТ 2.701–84 «Схемы. Виды и типы. Общие требования к выполнению».

Одним из подходов к формализации ПС является так называемая switch-технология.

Switch-технология – технология разработки систем логического управления на базе конечных автоматов, охватывающая процесс спецификации, проектирования, реализации, отладки, верификации, документирования и сопровождения. Предложена профессором А.А. Шалыто в 1991 г.

Стиль программирования, основанный на явном выделении состояний и применении автоматов для описания по-

ведения программ, назван автоматным программированием,

а соответствующий стиль проектирования программ – авто-

матным проектированием программ. Автоматное програм-

мирование можно рассматривать не только как самостоятельный стиль программирования, но и как дополнение к другим стилям, например к объектно-ориентированному.

В этом ключе рассмотрим формализацию алгоритма в виде некоторого конечного автомата.

214

12.7. Представление алгоритма в виде конечного автомата

Пример 12.2. Построить конечный автомат по заданной схеме алгоритма (рис. 12.2).

Начало

 

 

 

z1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z2

 

 

 

 

 

 

1

x1

 

 

 

 

 

 

0

 

 

 

z3

 

 

0

x2

 

 

 

 

 

 

1

 

 

 

 

z4

 

z5

 

 

 

 

Конец

Рис. 12.2. Алгоритм построения конечного автомата

Выполним отметку схемы алгоритма для автомата Мили. Получим отмеченную схему алгоритма (рис. 12.3).

215

Начало

 

 

x

Y0

 

 

z1

Y1

 

 

x

 

 

 

 

 

z2

 

 

1

x

Y2

 

x1

 

 

 

 

 

 

0

 

 

 

z3

 

 

 

x

Y3

 

0

x2

 

 

 

 

 

 

1

 

z4

 

z5

 

 

 

x

Y0

Конец

Рис. 12.3. Отмеченная схема алгоритма

На рис. 12.3 указаны метки состояния Y0, Y1, Y2, Y3, Y0. Построим граф соответствующего автомата Мили (рис. 12.4).

Рис. 12.4. Граф автомата Мили

216

Построим обобщенную таблицу переходов-выходов

(табл. 12.1).

Таблица 12.1

y2

y1

x2

x1

y2(t + 1)

y1(t + 1)

 

Микрооперации

 

d2(t)

d1(t)

z1

z2

z3

z4

z5

 

 

 

 

0

0

~

~

0

1

1

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

0

1

~

~

1

1

0

1

0

0

0

1

1

~

0

1

0

0

0

1

0

0

1

1

~

1

1

1

0

1

0

0

0

1

0

0

~

0

0

0

0

0

1

0

1

0

1

~

0

0

0

0

0

0

1

Проведем минимизацию полученных логических функ-

ций (ПФ) y2(t + 1).

y2

y1

x2

x1

0

1

~

~

1

1

~

0

1

1

~

1

0

0

~

~

1

0

0

~

1

0

1

~

Очевидно, что эта импликанта (– 1 – –) покрывает все рабочие наборы, т.е. y2(t + 1) = y1.

у2

у1

x2

х1

0

0

~

~

0

1

~

~

1

1

~

1

1

1

~

0

1

0

0

~

1

0

1

~

 

 

217

 

Импликанта (0 – – –) покрывает два рабочих набора: ((00~~), (01~~)), импликанта (–1–1) – последний рабочий набор (11~1), т.е. у1(t +1) = у2 у1х1. Минимизируем функции

выходов.

Очевидно, что минимизация функций z1, z3, z4, z5 практически невозможна вследствие единственных их рабочих наборов. Поэтому запишем

z1 = у2 у1; z3 = y2 y1х1; z4 = y2 у1х2 ; z5 = y2 у1x2.

Попробуем минимизировать z2:

y2

y1

x2

x1

0

1

~

~

1

1

~

1

0

0

~

~

1

1

~

0

1

0

0

~

1

0

1

~

Таким образом, z2 = у2 y1 y1x1.

Пользуясь полученными уравнениями, можно обеспечить контроль выполнения соответствующей программы, например, аппаратно.

218

13. УЧЕТ НАДЕЖНОСТИ ЧЕЛОВЕКА-ОПЕРАТОРА В СА

Большое значение в автоматизированных системах помимо учета аппаратной и программной составляющих имеет учет надежности человека-оператора (по материалам интер- нет-источников). У всех на слуху словосочетание, тут и там мелькающее в СМИ при оценке тех или иных, часто трагических, событий: «человеческий фактор». Одно время даже предпринимались попытки вывести формулу «человека» как звена системы (по аналогии с передаточными функциями теории автоматического управления). Автор даже помнит соответствующую статью в популярном журнале 70-х гг. ХХ в. – «Техника-молодежи». Соответственно, можно говорить

ио функции (формуле!) надежности (ненадежности) оператора.

Человек-оператор (ЧО) – статус индивида, занятого профессиональной деятельностью, связанной с управлением удаленными процессами или влиянием на них через пульт управления (ПУ).

Оператор принимает участие в управлении объектами

инесет ответственность за сохранность и жизненный цикл машины.

При непосредственном контакте с машинными системами человек-оператор выступает в роли приемника и ретранслятора информации. Естественно, имеются ограничения, связанные с физиологическими возможностями организма.

Зрение и слух

80 % информации человек-оператор получает с помощью зрения. Зона четкого видения – 2°, ясного – 22° по вертикали и 30° по горизонтали.

Число точечных объектов, воспринимаемых одновременно, – семь.

219

Пропускная способность зрительного канала – 20–

70бит/с.

Спомощью слуха оператор получает до 15 % инфор-

мации.

Надежность оператора определяется его способностью сохранять качество работы не ниже допустимого в заданных условиях деятельности.

Важная характеристика оператора – время ответной реакции.

На подачу команды голосом затрачивается 1–2 с, с помощью технических средств – 0,25 с.

Улучшают характеристики оператора путем обучения и тренировки.

Оператор в пределах его компетенции – лицо, принимающее решение (ЛПР). Он средство контроля, но он же должен быть и объектом контроля. На основе личного опыта и принимаемой информации он обязан решать проблемы, вырабатывать команды управления, осуществлять контроль за элементами системы, отслеживать иерархические связи, программировать работу системы на всех уровнях и кодировать команды. Как правило, с человекомашинной системой взаимодействует группа операторов, что требует командного стиля поведения.

При выборе профессии оператора человеку следует руководствоваться диагностикой управленческих способностей.

Подвижность пальцев – структурообразующий элемент повседневной трудовой деятельности любого оператора.

Объективность оценки информации и способность от-

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

Деятельность человека-оператора сопряжена с необходимостью быстрой и безошибочной переработки информа-

220