Реклама:

Каждая запись о транзакции с клиентом, следующая

1) F.P.Brooks, Jr., The Mythical Man-Month, Addison-Wesley, Reading, Massachusets. (Имеется перевод: Брукс Ф. Как проектируются и создаются программные комплексы: Мифический человеко-месяц. -М.: Наука, 1979.)

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

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

От нашей программы требуется выдать выходные данные в виде отчета, формат которого показан на рис. 3.2. Он состоит из заголовка - ОТЧЕТ О ТРАНЗАКЦИЯХ КЛИЕНТОВ и следующих за этим заголовком строк о клиентах. Каждая строка о клиенте включает номер (ИД) клиента, число транзакций для данного клиента, полученных из входных данных, и общую сумму долларов по всем сделкам для этого клиента. Каждому клиенту соответствует одна строка, и эти строки печатаются в том порядке, в каком группы записей о клиентах появляются на входе. За всеми строками о клиентах следует завершитель отчета - КОНЕЦ ОТЧЕТА.

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

Рис. 3.2. Генерация отчета - формат отчета.

Применительно к рассматриваемой программе предположим, что можем получить весь отчет на одном листе бумаги. Мы вообще не будем обременять себя такими проблемами, как смена страниц. (Если вы не знаете о смене страниц, то у вас еще меньше оснований для беспокойства; все тайное станет явным в надлежащее время, когда мы приступим в гл. 7 к обсуждению граничных столкновений структур.)

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

При изучении рис. 3.1 и описания данных выявляются два важных соответствия. Одно из них, естественно, имеет место между двумя верхними «блоками» обеих структур, т.е. между блоками ФАЙЛ ТРАНЗАКЦИЙ С КЛИЕНТАМИ и ОТЧЕТ О ТРАНЗАКЦИЯХ С КЛИЕНТАМИ, поскольку каждый из них присутствует только в единственном числе. Второе важное соответствие существует между компонентами ГРУППА КЛИЕНТА в структуре входных данных и СТРОКА О КЛИЕНТЕ в структуре отчета. Дополнительные соответствия наблюдаются между входным компонентом ЗАГОЛОВОК и компонентом ЗАГОЛОВОК ОТЧЕТА, а также между компонентами ЗАГОЛОВОК КЛИЕНТА и ИД КЛИЕНТА и между компонентами ТЕЛО ФАЙЛА и ТЕЛО ОТЧЕТА. Эти соответствия показаны на рис. 3.3.

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

Рис. 3.3. Генерация отчета, соответствия.

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

1. Слить соответствующие компоненты.

2. Добавить не имеющие соответствия входные компоненты.

3. Добавить не имеющие соответствия выходные компоненты.

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

Каждый компонент, полученный в базовой структуре, которая представлена на рис. 3.4, означает включение некоторого процесса.


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