Лекции.ИНФО


Состояния предметной области



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

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

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

Для описания таких динамических явлений, характеризующихся переходами из одного состояния в другое, могут использоваться такие понятия, как ПОЛУЧЕНИЕ КНИГИ, ВОЗВРАТ КНИГИ, ПОКУПКА КНИГИ, СПИСАНИЕ КНИГИ и т. д. Причем как покупка книги библиотекой, так и возврат книги читателем могут привести к одному и тому же состоянию библиотечного фонда. На выполнение некоторой операции могут накладываться различные ограничения: максимальное число взятых читателем книг не может превышать определенного количества, одна книга не может быть записана на абонементах двух читателей и т. д.

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

Событие

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

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

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

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

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

С каждым событием, происходящим в ПО, связывается некоторое имя. Аналогично понятиям одновременные события могут быть объединены в классы событий, между которыми могут быть установлены отношения обобщения и агрегации. Например, некоторое событие может быть связано с другим событием отношением ВКЛЮЧАЕТ (агрегация) или ОБОБЩАЕТ (обобщение). Это значит, что к событиям могут быть применены такие же методы анализа и представления, как и к понятиям.

Основной сферой использования событий являются ситуации, приводящие к изменению состояний понятий ПО. Так как изменение состояний понятий означает изменение значений их признаков, то под интенсионалом элементарного события следует понимать правила (алгоритм), задающие соответствующее преобразование признаков. В частности, в качестве такого правила может выступать формула, определяющая функциональное отображение значений признаков. Если соответствующую функцию обозначим через (pi, а декартово произведение доменов значений признаков domAl x domA2 x ... х domAn – через D, то функция производит отображение области D в домен изменяемого признака

ji: D ® domAi.

Тогда аналитическое выражение, задающее функцию ji будет выступать в качестве интенсионала события, а множество пар (di, ai), где di Î D, a ai Î domAi – его экстенсионала. В качестве схемы события в этом случае следует определить перечень имен признаков из области определения и области значений функции.

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

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

intL ev = (Pre (ev) ® Post (ev)),

где Рrе (ev) и Post (ev) – соответственно предусловие и постусловие события ev.

Эта формула означает, что если на некотором состоянии истинен предикат Рrе (ev), то после изменения этого состояния вследствие наступления события ev будет истинен предикат Post (ev). Данное определение интенсионала может быть использовано для логического вывода на цепочке событий. В качестве экстенсионала в этом случае выступает отношение, определенное на декартовом произведении признаков, а в качестве схемы – множество имен доменов данного отношения. Рассмотрение события ev в виде четверки:

ev = < int (ev), ext (ev), shm (ev), t (ev)>,

где t (ev) - время наступления события ev, позволяет определить семантику динамических процессов ПО.

Последовательные процессы

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

Пусть событие ev принадлежит множеству Ev, а момент времени t – множеству Т, тогда между событиями и моментами времени можно установить соответствие t: Ev ® Т, состоящее в приписывании событию ev Î Ev момента времени t Î Т. Так как для элементов множества Т определено отношение полного порядка, то с помощью соответствия оно может быть задано и для элементов множества Ev. При таком способе определения порядка для событий ev Î Ev мы имеем дело с так называемой абсолютной временной шкалой. Но кроме абсолютных шкал могут использоваться относительные шкалы, когда за начальную точку отсчета принимается момент времени наступления некоторого события, используемого в описании данного фрагмента действительности. В этом случае можно определить взаимный порядок событий без привлечения конкретных значений моментов времени t. Так, в предложении «После того как студент Петров пришел домой с занятий в институте, он отправился в кино» можно выделить события:

ev1 – событие, заключающееся в том, что студент Петров приходит домой с занятий в институте,

ev2 – событие, заключающееся в том, что студент Петров идет в кино, и явное указание на относительный порядок этих событий с помощью операции ПОСЛЕ, которую можно определить выражением

ПОСЛЕ (U, V) ВРЕМЯ (U) & ВРЕМЯ (V) & БОЛЬШЕ (U, V),

где переменные U, V - события.

Аналогично могут быть определены на событиях отношения

ОДНОВРЕМЕННО (U, V) ВРЕМЯ (U) & ВРЕМЯ (V) & РАВНО (U, V),

ДО (U, V) ВРЕМЯ (U) & ВРЕМЯ (V) & МЕНЬШЕ (U, V).

Таким образом, для событий кроме отношений агрегации и обобщения могут быть введены дополнительные отношения ОДНОВРЕМЕННО, ДО и ПОСЛЕ и т. д., связанные с привязкой событий к временной шкале.

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

Можно выделить три класса процессов:последовательные, рекурсивные и ветвящиеся.

Если ev – событие, а p – процесс, то, следуя системе обозначений, предложенной Ч. Хоаром в работе, можно записать выражение (ev ® p), которое описывает тот факт, что сначала наступает событие ev, а затем выполняется процесс p, т.е. операция ® отражает отношение следования между некоторым событием и процессом. Событие ev называется префиксом.

Пусть процесс определен выражением (ev1 ® ev2 ®p) = (ev ® p).

Событие ev, заключающееся в том, что сначала наступает событие ev1, а затем событие ev2, назовем следованием и будем обозначать выражением ev = seq (ev1, ev2). Тогда семантика следования определяется тем, что вначале осуществляется отображение, определяемое интенсионалом события ev1

intsev1 : D ® D1.

а затем отображение, определяемое интенсионалом события ev2,

intsev2: D1 ® D2,

т. е. при последовательном наступлении событий интенсионал результирующего события ev определяется композицией интенсионалов событий ev1 и ev2

intsseq (ev1, ev2) = intsev1 ¡ intsev2.

Если интенсионалы событий ev1 и ev2 определить логическими формулами

intLev1 = Рrе (ev1) ® Post (ev1),

intLev2 = Рrе (ev2) ® Post (ev2)
и учесть, что для последовательных событий справедливо соотношение

Рrе (ev2) = Post (ev1),
то для интенсионала события ev = seq (ev1, ev2) будем иметь

intLseq (ev1, ev2) = Рrе (ev1) – Post (ev2).

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

Рекурсивные процессы

В том случае, когда возникает необходимость в описании повторяющихся действий (а значит, и вызываемых ими повторяющихся событий), может использоваться рекурсивное определение процесса. Так, выражение (ev®p) = p определяет процесс p, который начинается с наступлением события ev, а затем ведет себя снова как процесс p. Выражение W (p) = (ev®p), определяющее процесс, начинающийся с префикса ev, называется предваренным.

Если W (X) – предваренное выражение, содержащее процесс X, используется в качестве определения того же процесса X, то мы имеем дело с рекурсивным описанием процесса Х = W (X).

Рекурсия может рассматриваться как многократное следование одного и того же события ev или конечной последовательности событий. Следовательно, семантика рекурсии состоит в многократной композиции отображений int ev ¡ int ev... ¡ int ev.

В языках программирования либо рекурсия может быть определена явно, либо для ее моделирования используются управляющие структуры вида while do или repeat until.

 

Ветвящиеся процессы

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

Если ev1 и ev2 – различные события, то выражение (ev1 ® p1 | ev2 ® p2) описывает такой процесс, для которого в качестве префиксов могут выступать события ev1 и ev2, а затем выполняется процесс p1, если наступило событие ev1, либо процесс p2, если наступило событие ev2. Совокупность альтернативных событий ev1, ev2 обычно определяют как меню и записывают в виде (ev1 || ev2) или case (ev1, ev2). Если использовать более привычные для программистов обозначения, то можно записать равенство

(ev1 ® p1 | ev2 ® p2) = if ev1 then p1 else

if ev2 then p2.

Данное определение выбора может быть легко обобщено на случай, когда число альтернатив больше двух. Так, выражение (ev1 ® p1 | ev2 ® p2 | … | evn ® pn) можно трактовать как процесс, для которого начальное меню состоит из множества событий {ev1}.

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









Читайте также:

Последнее изменение этой страницы: 2016-03-17; Просмотров: 85;


lektsia.info 2017 год. Все права принадлежат их авторам! Главная