Реклама:

Естественно, описания допустимых и недопустимых входных объектов отличаются одно от другого для разных типов машин. Допустимый входной объект для устройства ввода с перфокарт оказался бы недопустимым для кофемолки и наоборот. Так же обстоит дело и с программами.

4.3. Ошибочные данные

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

Снова рассмотрим пример с устройством ввода с перфокарт. Все отперфорированные карты, которые удовлетворяют допускам для перфокарты, являются допустимыми входными объектами для устройства ввода с перфокарт. Но в рамках этого множества допустимых данных существует много ошибочных данных. Карты с невоспроизводимыми символами будут прочитаны устройством ввода, и можно предсказать, что они будут отвергнуты в качестве входных данных, если устройство ввода достаточно «развито». Дело в том, что устройство ввода сконструировано так, чтобы оно отвергало ошибочные перфокарты.

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

Полное разнообразие данных применительно к любой программе проиллюстрировано на рис. 4.2.

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

Кинг Д. Создание эффективного программного обеспечения

Рис. 4.2. Полное разнообразие данных.

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

4.4. Конструирование программ для обработки ошибок


⇐ Предыдущая страница| |Следующая страница ⇒