Метод проектирования Джексона

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

Метод Джексона включает шесть шагов [39]. Три первых шага относятся к этапу анализа. Это шаги: объект — действие, объект — структура, начальное моделирование. Их мы уже рассмотрели.

Доопределение функций

Следующий шаг — доопределение функций. Этот шаг развивает диаграмму системной спецификации этапа анализа. Уточняются процессы-модели. В них вводятся дополнительные функции. Джексон выделяет 3 типа сервисных функций:

1. Встроенные функции (задаются командами, вставляемыми в структурный текст процесса-модели).

2. Функции впечатления (наблюдают вектор состояния процесса-модели и вырабатывают выходные результаты).

3. Функции диалога.

Они решают следующие задачи:

q наблюдают вектор состояния процесса-модели;

q формируют и выводят поток данных, влияющий на действия в процессе-модели;

q выполняют операции для выработки некоторых результатов.

Встроенную функцию введем в модель ТРАНСПОРТ-1. Предположим, что в модели есть панель с лампочкой, сигнализирующей о прибытии. Лампочка включается командой LON(i), а выключается командой LOFF(i). По мере перемещения транспорта между остановками формируется поток LAMP-команд. Модифицированный структурный текст модели ТРАНСПОРТ-1 принимает вид

ТРАНСПОРТ-1

LON(l);

опрос SV;

ЖДАТЬ цикл ПОКА ПРИБЫЛ(1)

опрос SV;

конец ЖДАТЬ;

LOFF(l);

покинуть(1);

ТРАНЗИТ цикл ПОКА УБЫЛ(1)

опрос SV;

конец ТРАНЗИТ;

ТРАНСПОРТ цикл

ОСТАНОВКА;

прибыть(i);

LON(i);

ЖДАТЬ цикл ПОКА ПРИБЫЛ(i)

опрос SV;

конец ЖДАТЬ;

LOFF(i);

покинуть(i);

ТРАНЗИТ цикл ПОКА УБЫЛ(i)

опрос SV;

конец ТРАНЗИТ;

конец ОСТАНОВКА;

конец ТРАНСПОРТ;

прибыть(1);

конец ТРАНСПОРТ-1;

Теперь введем функцию впечатления. В нашем примере она может формировать команды для мотора транспорта: START, STOP.

Условия выработки этих команд.

q Команда STOP формируется, когда датчики регистрируют прибытие транспорта на остановку.

q Команда START формируется, когда нажата кнопка для запроса транспорта и транспорт ждет на одной из остановок.

Видим, что для выработки команды STOP необходима информация только от модели транспорта. В свою очередь, для выработки команды START нужна информация как от модели КНОПКА-1, так и от модели ТРАНСПОРТ-1. В силу этого для реализации функции впечатления введем функциональный процесс М-УПРАВЛЕНИЕ. Он будет обрабатывать внешние данные и формировать команды START и STOP.

Ясно, что процесс М-УПРАВЛЕНИЕ должен иметь внешние связи с моделями ТРАНСПОРТ-1 и КНОПКА. Соединение с моделью КНОПКА организуем через вектор состояния BV. Соединение с моделью ТРАНСПОРТ-1 организуем через поток данных S1D.

Для обеспечения М-УПРАВЛЕНИЯ необходимой информацией опять надо изменить структурный текст модели ТРАНСПОРТ-1. В нем предусмотрим занесение сообщения Прибыл в буфер S1D:

ТРАНСПОРТ-1

LON(l);

опрос SV;

ЖДАТЬ цикл ПОКА ПРИБЫЛ(1)

опрос SV;

конец ЖДАТЬ;

LOFF(l);

Покинуть(1);

ТРАНЗИТ цикл ПОКА УБЫЛ(1)

опрос SV;

конец ТРАНЗИТ;

ТРАНСПОРТ цикл

ОСТАНОВКА;

прибыть(i):

записать Прибыл в S1D;

LON(i);

ЖДАТЬ цикл ПОКА ПРИБЫЛ(i)

опрос SV;

конец ЖДАТЬ;

LOFF(i);

покинуть(i);

ТРАНЗИТ цикл ПОКА УБЫЛ(i)

опрос SV;

конец ТРАНЗИТ;

конец ОСТАНОВКА;

конец ТРАНСПОРТ;

прибыть(1);

записать Прибыл в S1D;

конец ТРАНСПОРТ-1;

Очевидно, что при такой связи процессов необходимо гарантировать, что процесс ТРАНСПОРТ-1 выполняет операции опрос SV, а процесс М-УПРАВЛЕНИЕ читает сообщения Прибытия в S1D с частотой, достаточной для своевременной остановки транспорта. Временные ограничения, планирование и реализация должны рассматриваться в последующих шагах проектирования.

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

Диаграмма дополнительного процесса КНОПКА-2, в котором учтено это уточнение, показана на рис. 5.7.

Метод проектирования Джексона - student2.ru

Рис. 5.7.Диаграмма дополнительного процесса КНОПКА-2

Внешние связи модели КНОПКА-2 должны включать:

q одно соединеннее моделью КНОПКА-1 — организуется через поток данных BID (для приема сообщения о нажатии кнопки);

q два соединения с процессом М-УПРАВЛЕНИЕ — одно организуется через поток данных MBD (для приема сообщения о прибытии транспорта), другое организуется через вектор состояния BV (для передачи состояния переключателя Запрос).

Таким образом, КНОПКА-2 читает два буфера данных, заполняемых процессами КНОПКА-1 и М-УПРАВЛЕНИЕ, и формирует состояние внутреннего электронного переключателя Запрос. Она реализует функцию диалога.

Структурный текст модели КНОПКА-2 может иметь следующий вид:

КНОПКА-2

Запрос := НЕТ;

читать B1D;

ГрНАЖ цикл

ЖдатьНАЖ цикл ПОКА Не НАЖАТА

читать B1D;

конец ЖдатьНАЖ;

Запрос := ДА;

читать MBD;

ЖдатьОБСЛУЖ цикл ПОКА Не ПРИБЫЛ

читать MBD;

конец ЖдатьОБСЛУЖ;

Запрос := НЕТ; читать B1D;

конец ГрНАЖ;

конец КНОПКА-2;

Диаграмма системной спецификации, отражающая все изменения, представлена на рис. 5.8.

Метод проектирования Джексона - student2.ru

Рис. 5.8.Полная диаграмма системной спецификации

Встроенная в ТРАНСПОРТ-1 функция вырабатывает LAMP-команды, функция впечатления модели М-УПРАВЛЕНИЕ генерирует команды управления мотором, а модель КНОПКА-2 реализует функцию диалога (совместно с процессом М-УПРАВЛЕНИЕ).

Учет системного времени

На шаге учета системного времени проектировщик определяет временные ограничения, накладываемые на систему, фиксирует дисциплину планирования. Дело в том, что на предыдущих шагах проектирования была получена система, составленная из последовательных процессов. Эти процессы связывали только потоки данных, передаваемые через буфер, и взаимные наблюдения векторов состояния. Теперь необходимо произвести дополнительную синхронизацию процессов во времени, учесть влияние внешней программно-аппаратной среды и совместно используемых системных ресурсов.

Временные ограничения для системы обслуживания перевозок, в частности, включают:

q временной интервал на выработку команды STOP; он должен выбираться путем анализа скорости транспорта и ограничения мощности;

q время реакции на включение и выключение ламп панели.

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

Контрольные вопросы

1. В чем состоит суть метода структурного проектирования?

2. Какие различают типы информационных потоков?

3. Что такое входящий поток?

4. Что такое выходящий поток?

5. Что такое центр преобразования?

6. Как производится отображение входящего потока?

7. Как производится отображение выходящего потока?

8. Как производится отображение центра преобразования?

9. Какие задачи решают главный контроллер, контроллер входящего потока, контроллер выходящего потока и контроллер центра преобразования?

10. Поясните шаги метода структурного проектирования.

11. Что такое входящая ветвь?

12. Что такое диспетчерская ветвь?

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

14. Какие задачи уточнения иерархической структуры программной системы вы знаете?

15. Какие шаги предусматривает метод Джексона на этапе проектирования?

16. В чем состоит суть развития диаграммы системной спецификации Джексона?

17. Поясните понятие встроенной функции.

18. Поясните понятие функции впечатления.

19. Поясните понятие функции диалога.

20. В чем состоит учет системного времени (в методе Джексона)?

Наши рекомендации