Основы программирования

Рекомендуем. ООО Алькор - все гостиницы санкт-петербурга. Звоните.
Методы анализа - Доопределение функций
Индекс материала
Методы анализа
Описание потоков данных и процессов
Описание потоков данных и процессов
Методы анализа, ориентированные на структуры данных
Методика Джексона
Шаг объект-структура
Шаг начального моделирования
Контрольные вопросы
Основы проектирования программных систем
Особенности этапа проектирования
Структурирование системы
Моделирование управления
Декомпозиция подсистем на модули
Связность модуля
Функциональная связность
Коммуникативная связность
Временная связность
Связность по совпадению
Сцепление модулей
Контрольные вопросы
Классические методы проектирования
Проектирование для потока данных типа «преобразование»
Проектирование для потока данных типа «запрос»
Доопределение функций
Учет системного времени
Структурное тестирование программного обеспечения
Тестирование «черного ящика»
Потоковый граф
Цикломатическая сложность
Шаги способа тестирования базового пути
Тестирование ветвей и операторов отношений
Тестирование циклов
Неструктурированные циклы
Функциональное тестирование программного обеспечения
Способ разбиения по эквивалентности
Способ анализа граничных значений
Способ диаграмм причин-следствий
Организация процесса тестирования программного обеспечения
Тестирование интеграции
Восходящее тестирование интеграции
Системное тестирование
Стрессовое тестирование
Все страницы
Доопределение функций

 

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

 

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

 

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

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

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

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

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

КНОПКА-2

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

читать B1D;

ГрНАЖ цикл

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

читать B1D;

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

Запрос := ДА;

читать MBD;

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

читать MBD;

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

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

конец ГрНАЖ;

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

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

 

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

 

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