Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Понятие процедурной спецификации и порядок ее синтеза.




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

Свойства спецификации:

Полнота спецификации означает, что ничто существенное из задачи в ней не упущено и не забыто.

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

Понятность спецификации – ясность и читабельность.

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

Спецификация строится по правилам структурного программирования, т.е. для каждого процесса-владельца шаблона описываются процессы его определяющие (нижний уровень иерархии), а затем – процессы следующего уровня иерархии вплоть до процесса-владельца шаблона. В качестве примеров рассмотрим автоматическое преобразование КМ ВП в спецификации алгоритмов в конструкциях языка программирования высокого уровня "Паскаль":

1. Для каждого процесса, связанного с подчиненными отношением "&" (рис.2) генерируется процедура, состоящая из вызовов процессов более низкого уровня.

Здесь: type_X - имя типа процесса X ;

type_Y - имя типа процесса Y;

type_Z - имя типа процесса Z .

Для случая отношения "V" генерируется условный оператор или оператор выбора (при количестве альтернатив больше двух) (рис.3). Здесь type_X – имя типа процесса X, определяющее условие выбора дальнейшего хода вычислений – инициирование процесса Y (при выполнении данного условия) или выполнение процедуры Z (в противном случае).

Для случая итерационного отношения " " генерируется оператор цикла (рис.4):

где type_X – имя типа процесса X (tp(X)), определяющее условие выполнения цикла.

2. Если процесс имеет входные и выходные данные (рис. 5), то при синтезе

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

- вызова процедуры – генерируется список фактических параметров.

Здесь: type_A – имя типа инфообъекта A;

type_B – имя типа инфообъекта B;

type_C – имя типа инфообъекта C;

type_D – имя типа инфообъекта D.

3. Для информационных объектов в текст спецификации включаются описания типов и переменных. Для каждого неэлементарного данного связанного со своими компонентами отношением "&" синтезируется запись (рис. 6):

В случае отношения иерархии между объектами типа "V" синтезируется запись с вариантами (рис. 7.):

В случае итерационного отношения (*) – синтезируется массив (рис. 8):

4. При синтезе тела процедуры (рис.9) последовательность вызова составляющих это тело процедур определяется возможной последовательностью выполнения процессов:

процесс не может быть выполнен раньше, чем будут сформированы его входные данные;

процесс не может быть выполнен раньше, чем будут выполнены предшествующие ему процессы.

Процесс Z должен выполняться после Y, так как он использует выходной инфообъект процесса Y – инфообъект D, поэтому процедура <type_Z> вызывается после <type_Y> в теле процедуры <type_X>.


Поделиться:

Дата добавления: 2015-04-21; просмотров: 147; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты