Реклама:

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

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

7.2. Разрешение граничного столкновения

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

Рассмотрим проблему программы составления отчета с рис. 7.4 и 7.5. Повторение СИМВОЛ является общим фактором в структурах как входных, так и выходных данных. Несмотря на то что каждая запись отличается по размеру от блоков, считываемых в программу, она может быть построена как правильное множество из 150 символов.

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

Из рис. 7.8 видно, что теперь имеется простое соответствие между структурой данных ВХОД и структурой данных ПФ (Промежуточный файл), а также между структурами данных ПФ и ОТЧЕТ. Можно считать, что Промежуточный файл обладает двумя различными структурами, одной с точки зрения файла ВХОД, а другой с точки зрения файла ОТЧЕТ. Как мы уже отмечали, любая структура данных может рассматриваться различными способами в зависимости от того, кто является наблюдателем.

Программы для построения файла ПФ из файла ВХОД и составления отчета из файла ПФ будут тривиальными. Системная последовательность взаимного соответствия этих программ и файлов показана на рис. 7.9.

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

Рис. 7.8. Структуры данных для программы генерации отчета с включением промежуточного файла.


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