Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технологии разработки ПО Уебное пособие Глухова Лилия Александровна, БГУИР 2010 (Книга).pdf
Скачиваний:
1125
Добавлен:
15.06.2014
Размер:
2 Мб
Скачать
☆

4.3.4. Анализ сообщений

Анализ сообщений является второй из рассматриваемых классических стратегий, реализующих метод нисходящего проектирования. Анализ сообщений используется в первую очередь для структуризации ПС обработки информации и основывается на анализе потоков данных, обрабатываемых программным средством [22].

Пример 4.5

Рассмотрим тот же пример проектирования программы обработки файла дат, который был рассмотрен в пп. 4.3.2, 4.3.3. Необходимо отделить правильные даты от неправильных, отсортировать правильные даты, перенести летние и зимние даты в выходной файл, вывести неправильные даты.

Рис. 4.21, 4.22 иллюстрируют возможные варианты укрупненного и детализированного представления потоков информации и обрабатывающих их процессов для данной программы, представленные с помощью диаграмм потоков данных (Data Flow Diagram, DFD) в нотации Йодана–ДеМарко (см. подразд. 5.3).

Файл

Правильные

Результаты

Сообщения

даты

 

Запоми- об ошибках

дат

Проверка

 

Обработка

нание пра-

 

входных

 

дат

вильных ре-

 

дат

 

 

зультатов

 

 

 

Рис. 4.21. Укрупненная диаграмма потоков данных для программы обработки файла дат

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

Данные, подлежащие обработке с помощью процесса «Обработка дат» (см. рис. 4.21), могут не включать все входные даты, но это еще часть входных данных. Процесс «Обработка дат» в общем случае может включать различные виды преобразования данных (например, кодирование, декодирование, вычисления и др.). Результаты данного процесса представляют собой выходные данные, хотя они могут быть еще неотформатированными, неотредактированными, возможно, неверными.

103

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

 

 

Правильная

Обработанная

Прочитанная

дата

Обработка

дата

Проверка

Проверка

 

дата

дат

правиль-

 

результата

Файл

 

 

ных дат

 

 

дат

 

 

 

 

 

 

 

 

 

 

Чтение дат

Неправильная

 

 

 

Правиль-

 

Неправильный

 

 

дата

 

ный

 

 

 

результат

 

 

 

 

результат

 

 

Сохране-

 

 

 

 

 

 

 

 

 

 

 

 

 

Запомина-

 

 

ние непра-

 

 

 

 

 

вильных

 

 

 

ние дат

дат

Сообщения об ошибках

Рис. 4.22. Детализированная диаграмма потоков данных для программы обработки файла дат

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

На рис. 4.23 представлен общий вид DFD-диаграммы разбиения любой программы на исток – преобразователь – сток. Линии на диаграмме показывают потоки передачи данных между процессами.

А В С

Исток Преобразователь Сток

Рис. 4.23. DFD-диаграмма разбиения программы на исток-преобразователь-сток

104

Рис. 4.24 содержит соответствующую схему иерархии компонентов программы. В схеме иерархии линии указывают связи по управлению между компонентами, а также изображают отношения типа вызывающий – вызываемый.

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

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

Управление

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А

 

 

В

 

 

С

 

 

 

 

 

 

 

 

 

 

Рис. 4.24. Схема иерархии компонентов программы

Если структуры данных имеют большие размеры, управление ими осуществляется на уровне детализации данных для компонентов истока и стока.

На рис. 4.25 представлена иерархическая структура компонентов для первого уровня декомпозиции программы обработки файла дат, на рис. 4.26 – для второго уровня декомпозиции.

На данных рисунках приняты следующие обозначения: 1– проверка входных дат (исток); 2– обработка дат (преобразователь);

3– запоминание правильных результатов (сток);

4– чтение дат (исток истока 1);

5– проверка дат (преобразователь истока 1);

6– сохранение неправильных дат (сток истока 1);

7– обработка правильных дат (преобразователь преобразователя 2);

8– проверка результата (преобразователь стока 3);

9– запоминание дат (сток стока 3).

105

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

Обработка дат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

3

 

 

 

 

 

 

 

 

 

 

Рис. 4.25. Схема иерархии программы обработки дат (декомпозиция первого уровня)

Обработка дат

 

 

 

 

 

 

 

 

 

 

1

 

2

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

5

6

7

8

9

Рис. 4.26. Схема иерархии программы обработки дат (декомпозиция второго уровня)

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

В табл. 4.1 представлены информационные связи между компонентами программы обработки дат. В таблице отражены те данные, которые передаются каждому компоненту в момент его вызова. Входные данные управляющего компонента изображаются как выходные для вызываемых им компонентов.

106