Методы описания спецификации процессов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Методы описания спецификации процессов



 

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

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

Независимо от используемой нотации спецификация процесса должна начинаться с ключевого слова (например, @СПЕЦПРОЦ). Требуемые входные и выходные данные должны быть специфицированы следующим образом:

@ВХОД = <имя символа данных >;

@ВЫХОД = <имя символа данных >;

@ВХОДВЫХОД = <имя символа данных>.


Здесь <имя символа данных> - соответствующее имя из словаря данных. Эти ключевые слова должны использоваться перед определением СП, например:

@ВХОД = СЛОВА ПАМЯТИ

@ВЫХОД = ХРАНИМЫЕ ЗНАЧЕНИЯ

@СПЕЦПРОЦ

Для всех СЛОВ ПАМЯТИ выполнить:

Распечатать ХРАНИМЫЕ ЗНАЧЕНИЯ

@

Ситуация, когда символ данных является одновременно входным и выходным, может быть описана двумя способами: символ либо описывается два раза с помощью @ВХОД и @ВЫХОД, либо один раз с помощью @ВХОДВЫХОД. Иногда в СП задаются предусловия и постусловия выполнения данного процесса. В предусловии записываются объекты, значения которых должны быть истинны перед началом выполнения процесса, что обеспечивает определенные гарантии безопасности для пользователя. Аналогично, в случае наличия постусловия гарантируется, что значения всех входящих в него объектов будут истинны при завершении процесса. Спецификации должны удовлетворять следующим требованиям:

- для каждого процесса нижнего уровня должна существовать одна и только одна спецификация;

- спецификация должна определять способ преобразования входных потоков в выходные;

- нет необходимости (на данном этапе) определять метод реализации этого преобразования;

- спецификация должна стремиться к ограничению избыточности;

- не следует переопределять уже определенное на диаграмме или в словаре данных;

- набор конструкций для построения спецификации должен быть простым и стандартным.

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

В состав языка входят следующие основные символы:

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

- термины, определенные на любой стадии проекта ПО (например, задачи, процедуры, символы данных и т.п.);

- предлоги и союзы, используемые в логических отношениях;

- общеупотребительные математические, физические и технические термины;

- арифметические уравнения;

- таблицы, диаграммы, графы и т.п.;

- комментарии.

Управляющие структуры языка имеют один вход и один выход. К ним относятся:

1) последовательная конструкция: ВЫПОЛНИТЬ функция 1 ВЫПОЛНИТЬ функция 2 ВЫПОЛНИТЬ функция 3

2) конструкция выбора: ЕСЛИ <условие> ТО ВЫПОЛНИТЬ функция 1 ИНАЧЕ

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

3) итерация: ДЛЯ <условие> ВЫПОЛНИТЬ функция КОНЕЦДЛЯ

или

ПОКА <условие>

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

КОНЕЦПОКА

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

Верхняя часть таблицы используется для определения условий. Обычно условие является ЕСЛИ-частью оператора ЕСЛИ-ТО и требует ответа "да-нет". Однако иногда в условии может присутствовать и ограниченное множество значений, например, является ли длина строки большей, меньшей или равной граничному значению! Нижняя часть ТР используется для определения действий, т.е. ТО-части оператора ЕСЛИ-ТО. Так, в конструкции ЕСЛИ ИДЕТ ДОЖДЬ, ТО РАСКРЫТЬ ЗОНТ выражение ИДЕТ ДОЖДЬ является условием, а РАСКРЫТЬ ЗОНТ — действием. Левая часть ТР содержит собственно описание условий и действий, а в правой части перечисляются все возможные комбинации условий и, соответственно, указывается, какие конкретно действия ив какой последовательности выполняются, когда определенная комбинация условий имеет место.

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

1) если очередной символ является управляющим, то подать звуковой сигнал и вернуть код ошибки;

2) если буфер формируемой строки заполнен, то подать звуковой сигнал и вернуть код ошибки;

3) если очередной символ не находится в заданном диапазоне, то подать звуковой сигнал и вернуть код ошибки;

4) иначе поместить символ в буфер, увеличить значение счетчика выбранных символов и вернуть новое значение счетчика.

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

Сгенерированный код на языке С:

IF (isctrl(c)) { beep(); return(ERROR) } ELSE{

IF (i>max_length) {beep(); return(ERROR) } ELSE{ IF (out_of__range(c)) {

beep(); retum(ERROR) } ELSE {putchar(c); return(++i)};

Спецификации управления

 

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

Диаграмма переходов состояний (STD) позволяет моделировать последующее функционирование системы на основе ее предыдущего и текущего функционирования. Моделируемая система в любой заданный момент времени находится точно в одном из конечного множества состояний. С течением времени она может изменить свое состояние, при этом переходы между состояниями должны быть точно определены. STD состоит из следующих объектов. Состояние - объект STD, который может рассматриваться как условие устойчивости для системы. Находясь в определенном состоянии, мы имеем достаточно информации о прошлой истории системы, чтобы определить очередное состояние в зависимости от текущих входных событий. Имя состояния должно отражать реальную ситуацию, в которой находится система, например, НАГРЕВАНИЕ, ОХЛАЖДЕНИЕ и т.п.

Начальное состояние - узел STD, являющийся стартовой точкой для начального системного перехода. STD имеет ровно одно начальное состояние, соответствующее состоянию системы после ее инсталляции, но перед началом реальной обработки, а также любое (конечное) число завершающих состояний. Переход - объект STD, определяющий перемещение моделируемой системы из одного состояния в другое. При этом имя перехода идентифицирует событие, являющееся причиной перехода и управляющее им. Это событие обычно состоит из управляющего потока (сигнала), возникающего как во внешнем мире, так и внутри моделируемой системы при выполнении некоторого условия (например, СЧЕТЧИК=999 или КНОПКА НАЖАТА). Следует отметить, что, вообще говоря, не все события обязательно вызывают переходы из отдельных состояний. С другой стороны, одно и то же событие не всегда вызывает переход в то же самое состояние.

Условие - объект STD, представляющий собой событие (или события), вызывающее переход и идентифицируемое именем перехода. Если в условии участвует входной управляющий поток управляющего процесса-предка, то имя потока должно быть заключено в кавычки, например, "ПАРОЛЬ"=666, где ПАРОЛЬ - входной поток. Кроме условия с переходом может связываться действие или ряд действий, выполняющихся, когда переход имеет место. Действие - объект STD, описывающий операцию, которая может иметь место при выполнении перехода. Если действие необходимо для выбора выходного управляющего потока, то имя этого потока должно заключаться в кавычки, например:

"ВВЕДЕННАЯ КАРТА" = TRUE,

где ВВЕДЕННАЯ КАРТА - выходной поток.

Фактически условие есть некоторое внешнее или внутреннее событие, которое система способна обнаружить и на которое она должна отреагировать определенным образом, изменяя свое состояние. При изменении состояния система обычно выполняет одно или более действий (производит вывод, выдает сообщение на терминал, выполняет вычисления). Таким образом, действие представляет собой отклик, посылаемый во внешнее окружение или вычисление, результаты которого запоминаются в системе (обычно в хранилищах данных на DFD) для того, чтобы обеспечить реакцию на некоторые из планируемых в будущем событий. На STD состояния представляются узлами, а переходы – дугами. Условия (по-другому называемые стимулирующими событиями) идентифицируются именем перехода и возбуждают выполнение перехода. Действия или отклики на события "привязываются" к переходам и записываются под соответствующим условием. Начальное состояние на диаграмме должно иметь входной переход, изображаемый потоком из подразумеваемого стартового узла (иногда этот стартовый узел изображается небольшим квадратом и "привязывается" к входному состоянию).

При построении STD рекомендуется следовать следующим правилам:

- строить STD на как можно более высоком уровне детализации DFD;

- строить как можно более простые STD;

- по возможности детализировать STD;

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

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

 

 



Поделиться:


Последнее изменение этой страницы: 2017-02-08; просмотров: 1117; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.160.216 (0.011 с.)