@
Иногда в СП задаются пред- и пост-условия выполнения данного процесса. В пред-условии записываются объекты, значения которых должны быть истинны перед началом выполнения процесса, что обеспечивает определенные гарантии безопасности для пользователя. Аналогично, в случае наличия пост-условия гарантируется, что значения всех входящих в него объектов будут истинны при завершении процесса.
СП должна удовлетворять следующим требованиям [20]:
- для каждого процесса нижнего уровня должна существовать одна и только одна спецификация;
- спецификация должна определять способ, но не метод преобразования входных потоков в выходные;
- спецификация должна стремиться к ограничению избыточности: не следует переопределять то, что уже было определено на диаграмме или в словаре данных;
Ниже рассматриваются некоторые наиболее часто используемые методы задания СП.
Структурированный естественный язык является разумной комбинацией строгости языка программирования и читабельности естественного языка. Он состоит из подмножества слов, организованных в определенные логические структуры, арифметических выражений и диаграмм. В состав структурированного языка входят следующие основные символы:
|
|
- глаголы, ориентированные на действия и применяемые к объектам данной предметной области;
- существительные, определенные на любой стадии анализа, моделирования и проектирования (например, при разработке информационной системы: задачи, процедуры, символы данных и т.п.);
- предлоги и союзы, используемые в логических отношениях;
- общеупотребительные математические, логические, физические и технические термины;
- арифметические выражения;
- таблицы, диаграммы, графики и т.п.;
- комментарии.
Управляющие конструкции структурированного языка имеют вид:
Последовательная конструкция: ВЫПОЛНИТЬ функция1 ВЫПОЛНИТЬ функция2 ВЫПОЛНИТЬ функцияЗ | Конструкция выбора: ЕСЛИ<условие>ТО ВЫПОЛНИТЬ функция1 ИНАЧЕ ВЫПОЛНИТЬ функция2 КОНЕЦЕСЛИ |
Итерация: ДЛЯ <условие> ВЫПОЛНИТЬ функция КОНЕЦДЛЯ | Или ПОКА <условие> ВЫПОЛНИТЬ функция КОНЕЦПОКА |
При использовании структурированного естественного языка приняты следующие соглашения [20]:
- логика процесса выражается в виде комбинации последовательных конструкций, конструкций выбора и итераций;
- ключевые слова ЕСЛИ, ВЫПОЛНИТЬ, ИНАЧЕ и т.д. должны быть написаны заглавными буквами;
- слова или фразы, определенные в словаре данных, должны быть написаны заглавными буквами;
- глаголы должны быть активными, недвусмысленными и ориентированными на целевое действие (заполнить, вычислить, извлечь, а не модернизировать, обработать);
|
|
- логика процесса должна быть выражена четко и недвусмысленно.
Таблицы и деревья решений применяются в тех случаях, когда структурированный естественный язык оказывается неприемлем. Например, если действие зависит от нескольких переменных, которые в совокупности могут продуцировать большое число комбинаций, то его описание будет слишком запутанным и с большим числом уровней вложенности. Для описания подобных действий традиционно используются таблицы и деревья решений.
Проектирование СП с помощью таблиц решений (ТР) заключается в задании матрицы, отображающей множество входных условий во множество выходных действий.
ТР состоит из двух частей. Верхняя часть таблицы используется для определения условий. Обычно условие является ЕСЛИ -частьюоператора ЕСЛИ-ТО и требует ответа «да-нет». Нижняя часть ТР используется для определения действий, т.е. ТО -части оператора ЕСЛИ-ТО.
Левая часть ТР содержит наименования условий и действий, а в правой части перечисляются все возможные комбинации условий и, соответственно, указывается, какие конкретно действия и в какой последовательности выполняются, когда определенная комбинация условий имеет место.
Построение ТР рекомендуется осуществлять путем выполнения следующих шагов [20]:
1. Идентифицировать все условия (или переменные), участвующие в описываемом процессе. Идентифицировать все значения, которые каждая переменная может иметь.
2. Вычислить число комбинаций условий.
3. Идентифицировать каждое из возможных действий, которые могут вызываться в описываемом процессе.
4. Построить пустую таблицу, включающую все возможные условия и действия, а также номера комбинаций условий.
5. Выписать и занести в таблицу все возможные комбинации условий.
6. Редуцировать комбинации условий (если это возможно).
7. Проверить каждую комбинацию условий и идентифицировать соответствующие выполняемые действия.
8. Выделить комбинации условий, для которых в данном процессе нет выполняемых действий.
9. Обсудить построенную таблицу.
Поясним вышесказанное на примере СП управления движением лифта (рис. 3.7, процесс №1) и СП управления остановкой лифта (рис. 3.7, процесс №2) (см. таблицы 3.2 и 3.3 соответственно).
При составлении таблиц использованы следующие обозначения входных потоков процессов управления движением и остановкой лифта, как условий: перегрузка – П, стоп по назначению – Сн, вверх по назначению – Вн, вниз по назначению – Нн, стоп по вызову вверх – Свв, стоп по вызову вниз – Снв, вверх по вызову – Вв, вниз по вызову – Нв; и выходных потоков этих процессов, как действий: стоп – С, вверх – В, вниз – Н.
Таблица 3.2. Таблица решений процесса управления движением лифта
Условия | |||||||||
Вн | |||||||||
Нн | |||||||||
Вв | |||||||||
Нв | |||||||||
Действия | |||||||||
В | |||||||||
Н |
Таблица 3.3. Таблица решений процесса управления остановкой лифта
Условия | ||||||||||||||
П | ||||||||||||||
Сн | * | |||||||||||||
Свв | * | * | ||||||||||||
Снв | * | * | ||||||||||||
В | * | * | ||||||||||||
Н | * | * | ||||||||||||
Действия | ||||||||||||||
С |
Обсудим построенные таблицы. Данные таблицы визуализируют обычную логику работы лифта в офисном здании. Согласно табл. 3.2, если из лифта было назначено движение вниз или вверх, то независимо от вызовов лифт будет выполнять эти назначения. При этом назначений вверх и вниз одновременно быть не может, что обеспечивается формированием очереди №№ этажей, назначенных в лифте (см. рис. 3.5). При отсутствии назначений будут выполняться вызова с этажей, которые по той же причине (см. рис. 3.6) не могут быть одновременно и вверх, и вниз. Согласно табл. 3.3 наличие перегрузки или требования остановится из лифта вызывают безусловную остановку. Требования остановится с этажа выполняются только при попутном движении лифта. Управляющий сигнал «С» при наличии требования на остановку с этажа (вызова с этажа) в случае, когда лифт стоит (В = 0; Н = 0), используется для открывания двери на вызвавшем этаже механической системой лифта.
|
|
Вариантом таблицы решений является дерево решений (ДР), позволяющее взглянуть на процесс условного выбора с позиции схемы. Обычно ДР используется при малом числе действий и когда не все комбинации условий возможны, а ТР – при большом числе действий и когда возможно большое число комбинаций условий. На основе ТР легко осуществляется автоматическая кодогенерация.
Визуальные языки проектирования являются относительно новой, оригинальной методикой разработки СП. Они базируются на основных идеях структурного программирования и позволяют определять потоки управления с помощью специальных иерархически организованных схем.
Одним из наиболее известных подходов к визуальному проектированию СП является подход с использованием FLOW-форм. Каждый символ FLOW-формы имеет вид прямоугольника и может быть вписан в любой прямоугольник любого другого символа. Символы помечаются с помощью предложений на естественном языке или с использованием математической нотации.
Символы FLOW-форм приведены на рисунке 3.8. Каждый символ является блоком обработки. Каждый прямоугольник внутри любого символа также представляет собой блок обработки.
|
|
На рисунке 3.9 приведен пример использования данного подхода при проектировании СП, обеспечивающего упорядочивание определенным образом элементов массива и являющегося фрагментом алгоритма сортировки методом «поплавка» [20].
Дальнейшее развитие FLOW-формы получили в диаграммах Насси-Шнейдермана. На этих диаграммах символы последовательной обработки и цикла изображаются так же, как и соответствующие символы FLOW-форм. В символах условного выбора и case-выбора собственно условие располагается в верхнем треугольнике, выбираемые варианты – на нижних сторонах треугольника, а блоки обработки – под выбираемыми вариантами. Диаграмма Насси-Шнейдермана для вышеприведенного примера изображена на рисунке 3.10 [20].