Смекни!
smekni.com

1 понятие и классификация пакетов прикладных (стр. 8 из 15)

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

2.2.2 Связи

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

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

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

Например, если в модели имеются целое данное n и массивы x и y, размеры которых зависят от n, то можно считать, что x и y подчинены n. Действительно, если значение n не определено, то x и y также имеют неопределенные значения. Если изменяется n, например увеличивается, то значения x и y становятся неопределенными. В то же время изменение любого из массивов x или y, или их отдельных элементов не влияет на размеры массивов и, следовательно, на значение n. В некоторых случаях ограничения на область определения данного удобнее рассматривать не как свойство типа данного, а как связь по определению. Например, если некоторая матрица:

(2.1)

должна состоять из элементов:

, (2.2)

а каждая строка матрицы должна удовлетворять условию:

или
(i = 1...n), (2.3)

то ограничение (2.2) можно отнести к свойству базового типа, из которого построена матрица А, а условия (2.3) можно рассматривать как связь по определению между элементами матрицы.

Связи типа подчинения, задаваемые уравнениями или неравенствами, можно представить в модели в форме предикатов, т.е. функций, аргументами которых являются имена (значения) данных, а возвращаемыми значениями – «истина» или «ложь» [5].

Если какая-то переменная зависит от других, которые не определены к настоящему моменту, то предикат имеет значение «ложь».

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

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

Отдельный обрабатывающий модуль можно рассматривать как функцию

. Здесь
– набор входных данных модуля;
– набор выходных данных, т.е.
и
есть некоторые подмножества множества
.

В зависимости от состава набора данных

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

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

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

Таким образом, функциональная связь в модели предметной области представляется:

· набором входных данных;

· набором выходных данных;

· обрабатывающим модулем (именем модуля), реализующим эту связь.

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

Условие реализуемости функциональной связи можно формально определить как предикат

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

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

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

МПО = {X, R, F},

где X – множество данных; R – множество связей по определению; F – множество функциональных связей.

Если в процессе выполнения пакета множества X, R и F остаются неизменными (меняются только значения данных), то такую модель предметной области можно назвать статической, a соответствующий ей ППП – пакетом со статической моделью предметной области. Если пользователь имеет возможность в сеансе работы с пакетом изменять хотя бы одно из множеств X, R или F, включая или удаляя из них некоторые элементы, модель предметной области будем называть динамической. Например, если в ППП предусмотрены возможность определения новых данных, включение в расчеты новых формул с построением новых обрабатывающих модулей, то такой пакет соответствует динамической модели предметной области.

2.2.3 Вектор состояния модели предметной области

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

, где
– число данных (элементов множества
), а компоненты определяются по следующему правилу:

(2.4)

Если пользователь вводит значение данного

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

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

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