Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1438

.pdf
Скачиваний:
2
Добавлен:
30.04.2022
Размер:
1.16 Mб
Скачать

Сообщение

Ключе- Пароль

вые данные

Запрос

 

 

Управление

Удаленная

 

 

кр. карта

Коррект-

 

обслуживани-

 

 

 

ный пароль

ем

 

 

 

 

 

1.5

 

 

 

 

 

 

 

 

Введенная

 

 

А

 

 

кр. карта

 

 

 

 

 

 

Полу-

 

 

 

 

 

 

чить

 

 

Дан-

 

 

пароль

 

 

ные

 

Кр.

1.1

 

 

кр.

 

 

 

 

карта

 

Пароль

карты

Обрабо-

 

 

 

 

 

 

 

тать кре-

 

 

 

 

 

 

дитную

 

Требуе-

 

Данные

 

 

карту

 

 

кредит-

 

мое об-

 

1.4

 

 

ной кар-

 

служива-

 

 

 

 

ты

 

 

ние

 

Данные

 

 

 

 

 

 

 

 

Де-

по счету

 

 

 

 

 

 

 

Ли-

 

тали

 

 

 

мит

 

кли-

 

 

 

денег

 

ента

 

Выписка

Сообщение

Получить

Требуемое

Обработать

 

 

запрос на

запрос на

 

 

обслужи-

обслужи-

обслужи-

Протокол

 

вание

вание

вание

обслужи-

 

1.2

 

1.3

вания

 

 

 

 

День-

 

 

 

 

ги

Рис. 10. Управляющие процесс и потоки данных на DFD первого уровня

73

5.3. Cпецификации процессов

Спецификации составляются в том случае, если не нужна дальнейшая детализация DFD. Спецификация процесса должна занимать меньше 1 страницы, однозначно определять необходимые действия, быть удобной и понятной для кодирования, включать определение входных и выходных потоков данных.

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

Содержание СП:

1)входные/выходные данные;

2)номер и/или имя процесса;

3)алгоритм (тело процесса).

Сначала описываются входные/выходные данные: @ВХОД = <ИМЯ ПОТОКА ДАННЫХ> @ВЫХОД = <ИМЯ ПОТОКА ДАННЫХ>

Таких описаний может быть несколько, по числу потоков. Имена потоков данных берутся из словаря.

Допустимо записывать:

@ВХОДВЫХОД = <ИМЯ ПОТОКА ДАННЫХ>, если входные и выходные данные совпадают.

Далее записывается имя и тело процесса: @СПЕЦПРОЦ <ИМЯ ПРОЦЕССА>…..…

………………………

…………………Алгоритм процесса

………………………

@КОНЕЦ СПЕЦПРОЦ Все имена и ключевые слова принято писать прописны-

ми буквами.

74

Обычно, чтобы описать алгоритм, пользуются структурированным естественным языком: слова естественного языка организуются в логические структуры, к ним добавляются арифметические выражения и диаграммы. Рекомендуется использовать следующие конструкции языка:

глаголы, которые выражают действия над объектами;

термины, такие как задачи, функции, процедуры и т.п.;

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

таблицы, диаграммы, графы и т.п.; комментарии.

Так как естественный язык структурирован, то в описании структура алгоритма должна иметь 1 вход и 1 выход.

Предлагается использовать следующие конструкции. 1. Последовательные конструкции:

ВЫПОЛНИТЬ функция 1 ВЫПОЛНИТЬ функция 2

Или

 

ВЫПОЛНИТЬ

функция 1

 

функция 2

2.Конструкции выбора: ЕСЛИ <условие> ТО

ВЫПОЛНИТЬ функция 1 ИНАЧЕ

ВЫПОЛНИТЬ функция 2 КОНЕЦ ЕСЛИ

3.Итерации:

ДЛЯ <условие> ВЫПОЛНИТЬ функция

75

КОНЕЦ ДЛЯ

Или

ПОКА <условие> ВЫПОЛНИТЬ функция

КОНЕЦ ПОКА

Или

ВЫПОЛНИТЬ функция 1

…………

функция n

ДО ТЕХ ПОР ПОКА <условие> КОНЕЦ ВЫПОЛНИТЬ

Следует придерживаться следующих правил.

1.Используются перечисленные конструкции.

2.Ключевые слова ЕСЛИ, ДЛЯ и т.д. пишутся заглавными буквами.

3.Слова и фразы из словаря данных пишутся также заглавными буквами.

4.Глаголы должны быть активными, предельно понятными: «вычислить», «заполнить», а не «модернизировать», «обработать».

5.Логика описания процесса должна быть однозначной и

четкой.

Примеры спецификаций процессов 1.1 и 1.2 задачи, рассмотренной выше.

@ВХОД = ВВЕДЕННЫЙ ПАРОЛЬ @ВХОД = ПАРОЛЬ @ВЫХОД = СООБЩЕНИЕ

@ВЫХОД = КОРРЕКТНЫЙ ПАРОЛЬ @СПЕЦПРОЦ 1.1 ПОЛУЧИТЬ ПАРОЛЬ

ВЫПОЛНИТЬ

76

выдать СООБЩЕНИЕ клиенту, запрашивающее ввод пароля принять ВВЕДЕННЫЙ ПАРОЛЬ

ДО ТЕХ ПОР ПОКА (ВВЕДЕННЫЙ ПАРОЛЬ = ПАРОЛЬ) или

(сделано 3 попытки ввода)

КОНЕЦ ВЫПОЛНИТЬ ЕСЛИ ВВЕДЕННЫЙ ПАРОЛЬ = ПАРОЛЬ ТО

ВЫПОЛНИТЬ установить флаг КОРРЕКТНЫЙ ПАРОЛЬ

КОНЕЦ ЕСЛИ @КОНЕЦ СПЕЦПРОЦ 1.1

@ВХОД = ЛИМИТ ДЕНЕГ @ВХОД = ЗАПРОС НА ОБСЛУЖИВАНИЕ @ВЫХОД = ДЕНЕЖНАЯ СУММА @ВЫХОД = СООБЩЕНИЕ

@ВЫХОД = ТРЕБУЕМОЕ ОБСЛУЖИВАНИЕ @СПЕЦПРОЦ 1.2 ВЫПОЛНИТЬ

ВЫПОЛНИТЬ выдать СООБЩЕНИЕ клиенту по вводу запроса на об-

служивание принять ЗАПРОС НА ОБСЛУЖИВАНИЕ

обновить данные ТРЕБУЕМОЕ ОБСЛУЖИВАНИЕ (а именно ЗАПРОС, ДОКУМЕНТАЦИИ, ЗАПРОС

ДЕНЕГ, ЗАПРОС БАЛАНСА, ЗАПРОС НА ОПЕРАЦИЮ) ЕСЛИ был сделан ЗАПРОС ДЕНЕГ ТО

ВЫПОЛНИТЬ запросить ДЕНЕЖНУЮ СУММУ

выдать ТРЕБУЕМУЮ СУММУ с учетом непревышения ЛИМИТА ДЕНЕГ

КОНЕЦ ЕСЛИ

77

ДО ТЕХ ПОР ПОКА запрашивается продолжение обслуживания или не все обслуживание выполнено КОНЕЦ ВЫПОЛНИТЬ @КОНЕЦ СПЕЦПРОЦ 1.2.

5.3.1. Таблицы решений

Для представления спецификаций процессов можно ис-

пользовать таблицы и деревья решений (ТР и ДР) [6].

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

 

 

 

Таблица 5

Условия

Комбинация 1

Комбинация 2

...

 

 

 

 

 

 

С1

Д

 

 

 

Описание

Д

 

 

 

условий

Д

 

 

 

С2

Д

 

 

 

С3

 

 

 

 

 

 

 

 

 

 

 

 

 

Действия

 

 

 

 

 

 

 

 

 

Д1

1

 

 

 

Описание

2

 

 

 

действий

 

 

 

 

Д2

 

 

 

 

Д3

 

 

 

 

 

 

 

 

Левая часть ТР содержит описание условий (верх) и действий (низ). Правая часть ТР – все комбинации условий (верх) и соответствующих им действий (низ). Комбинации условий смотрятся по столбцам. Выполнение условия обознача-

78

ется буквой «Д», невыполнение – «Н»; последовательность выполнения действий в ТР задается номерами. Если для данной комбинации условий конкретное действия не выполняется, то это действие не нумеруется.

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

 

 

 

 

Таблица 6

Условия

1 комби-

2 комби-

3 комби-

4 комби-

 

нация

нация

нация

нация

С1

Д

Д

Д

Д

С2

Д

Д

Н

Н

С3

Д

Н

Д

Н

Действия

 

 

 

 

Д1

1

1

1

1

Д2

2

2

2

2

Сокращенная таблица примет вид:

 

С1

Д

 

 

 

С2

-

 

 

 

С3

-

 

 

 

Д1

1

 

 

 

Д2

2

 

 

 

Таким образом, 4 комбинации условий сокращены до одной, т. к. все 4 комбинации ведут к одинаковой последовательности действий, а буквы «Д», «Н» заменены на «-».

Таким образом, в случае наличия большого числа условий в алгоритме процесса удобно использовать ТР, основе которой очень легко написать код.

При составлении ТР следует пользоваться правилами.

Определить все условия (или переменные).

Определить все возможные действия или значения, которые может принимать переменная.

79

Вычислить число возможных комбинаций условий.

Предположим, что число условий равно N, тогда возможных комбинаций будет 2N, т.е. ТР будет достаточно объемна.

Определить каждое действие.

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

Занести в ТР все комбинации условий.

Определить соответствующие последовательности действий для комбинации условий.

Редуцировать ТР.

Выделить комбинации условий, которые не ведут к выполняемым действиям.

Обсудить построенную ТР.

5.3.2. Деревья решений

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

C1

да

 

 

D1

 

 

 

C2

 

 

 

нет

да

 

D2, D3

 

 

 

 

 

 

нет

C3

да

D3

 

 

 

 

 

 

 

нет

D2, D4

5.3.3. FLOW – формы

Для записи спецификаций процессов разработаны специальные визуальные языки проектирования спецификаций, с помощью которых строятся специальные иерархические схемы

80

управления потоками. Один из наиболее популярных подходов

– использование FLOW – форм [6].

Каждый символ FLOW-формы изображается в виде прямоугольника, в который может быть вписан в другой прямоугольник. Основные конструкции таковы.

 

А

 

if A

 

case of

 

 

 

 

 

 

 

 

 

1

 

A1

 

 

 

 

 

 

 

 

 

В

 

then

 

B

 

2

 

A2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С

 

else

 

C

 

n

 

An

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательное

 

Условный

Многозначный

 

выполнение

 

выбор

выбор

 

 

 

 

 

 

 

 

 

 

 

do

A

 

For C

While A

 

 

 

 

 

 

 

do

do

 

 

Until B

 

C

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итерации

Каждый прямоугольник, в том числе и вложенный, обозначает отдельный блок обработки данных. Например, фрагмент сортировки элементов массива методом «поплавка» с помощью Flow-формы можно представить табл. 7.

Дальнейшее развитие FLOW-формы получили в диаграммах Насси-Шнейдермана. В диаграммах НассиШнейдермана используются те же обозначения, что и в FLOWформах, но условия обозначаются более четко (табл. 8).

81

Таблица 7

for j = 1 to n-1 do

сравнить и поменять местами

if a[j] > a[j+1]

then

поменять местами

temp = a[j]

a[j] = a[j+1]

a[j+1] = temp

Таблица 8

Условие

 

Нет

Да

Блок по «Нет»

Блок по «Да»

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

82