Структурированный естественный язык

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

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

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

@ВХОД = <имя символа данных>
@ВЫХОД = <имя символа данных>
@ВХОДВЫХОД = <имя символа данных>,
где <имя символа данных> - соответствующее имя из словаря данных.

Эти ключевые слова должны использоваться перед определением СП, например,

@ВХОД = СЛОВА ПАМЯТИ
@ВЫХОД = ХРАНИМЫЕ ЗНАЧЕНИЯ
@СПЕЦПРОЦ
Для всех СЛОВ ПАМЯТИ выполнить:
Распечатать ХРАНИМЫЕ ЗНАЧЕНИЯ
@

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Логика процесса выражается в виде комбинации последовательных конструкций, конструкций выбора и итераций.
  2. Ключевые слова ЕСЛИ, ВЫПОЛНИТЬ, ИНАЧЕ и т.д. должны быть написаны заглавными буквами.
  3. Слова или фразы, определенные в словаре данных, должны быть написаны заглавными буквами.
  4. Глаголы должны быть активными, недвусмысленными и ориентированными на целевое действие (заполнить, вычислить, извлечь, а не модернизировать, обработать).
  5. Логика процесса должна быть выражена четко и недвусмысленно.

Ниже приведен пример спецификации процесса 1 (ПОЛУЧИТЬ ПАРОЛЬ) для диаграммы, изображенной на рис. 2.8.

@ВХОД = ВВЕДЕННЫЙ ПАРОЛЬ
@ВХОД
= ПАРОЛЬ
@ВЫХОД
= СООБЩЕНИЕ
@ВЫХОД
= КОРРЕКТНЫЙ ПАРОЛЬ
@СПЕЦПРОЦ
1.1 ПОЛУЧИТЬ ПАРОЛЬ
ВЫПОЛНИТЬ выдать СООБЩЕНИЕ клиенту,
запрашивающее ввод пароля
принять ВВЕДЕННЫЙ ПАРОЛЬ
ДОТЕХПОРПОКАВВЕДЕННЫЙ ПАРОЛЬ = ПАРОЛЬ
или были сделаны три попытки ввода
КОНЕЦВЫПОЛНИТЬ
ВЫПОЛНИТЬ установить флаг КОРРЕКТНЫЙ
ПАРОЛЬ в случае равенства
@ КОНЕЦ СПЕЦИФИКАЦИИ ПРОЦЕССА 1.1