М. В. Красильникова проектирование информационных систем раздел: Теоретические основы проектирования информационных систем Учебное пособие
Вид материала | Учебное пособие |
Структурированный естественный язык Таблицы решений |
- Лекция: Основные понятия технологии проектирования информационных систем (ИС): Предмет, 189.07kb.
- Методические рекомендации по выполнению курсовой работы по курсу «Проектирование информационных, 76.85kb.
- Лекция 6 (2 часа). Раздел Архитектура информационных систем предприятий, 197.71kb.
- Программа дисциплины "Проектирование информационных систем" Индекс дисциплины, 261.62kb.
- Учебно-методический комплекс дисциплины проектирование информационных систем Для студентов, 466.59kb.
- А. Г. Тюрганов уфимский государственный авиационный технический университет семантическое, 25.57kb.
- Название научной школы, направлений, 378.51kb.
- Рабочая программа дисциплины проектирование экономических информационных систем цели, 110.33kb.
- Учебная программа дисциплины сд. Ф. 01 Проектирование информационных систем, 130.91kb.
- Case-технологии. Современные методы и средства проектирования информационных систем, 1890.27kb.
Структурированный естественный язык
Структурированный естественный язык применяется для читабельного, строгого описания спецификаций процессов. Он является разумной комбинацией строгости языка программирования и читабельности естественного языка и состоит из подмножества слов, организованных в определенные логические структуры, арифметических выражений и диаграмм.
В состав языка входят следующие основные символы:
- глаголы, ориентированные на действие и применяемые к объектам;
- термины, определенные на любой стадии проекта ПО (например, задачи, процедуры, символы данных и т.п.);
- предлоги и союзы, используемые в логических отношениях;
- общеупотребительные математические, физические и технические термины;
- арифметические уравнения;
- таблицы, диаграммы, графы и т.п.;
- комментарии.
Управляющие структуры языка имеют один вход и один выход. К ним относятся:
- последовательная конструкция:
ВЫПОЛНИТЬ функция1
ВЫПОЛНИТЬ функция2
ВЫПОЛНИТЬ функция3
- конструкция выбора:
ЕСЛИ <условие> ТО
ВЫПОЛНИТЬ функция1
ИНАЧЕ
ВЫПОЛНИТЬ функция2
КОНЕЦЕСЛИ
3) итерация:
ДЛЯ <условие>
ВЫПОЛНИТЬ функция
КОНЕЦДЛЯ
или
ПОКА <условиё>
ВЫПОЛНИТЬ функция
КОНЕЦПОКА
При использовании структурированного естественного языка приняты следующие соглашения:
- логика процесса выражается в виде комбинации последовательных конструкций, конструкций выбора и итераций;
- ключевые слова ЕСЛИ, ВЫПОЛНИТЬ, ИНАЧЕ и т.д. должны быть написаны заглавными буквами;
- слова или фразы, определенные в словаре данных, должны
быть написаны заглавными буквами;
- глаголы должны быть активными, недвусмысленными и
ориентированными на целевое действие (заполнить, вычислить,
извлечь, а не модернизировать, обработать);
- логика процесса должна быть выражена четко, недвусмысленно.
Таблицы решений
Структурированный естественный язык неприемлем для некоторых типов преобразований. Например, если действие зависит от нескольких переменных, которые в совокупности могут продуцировать большое число комбинаций, то его описание будет слишком запутанным и с большим числом уровней вложенности. Для описания подобных действий традиционно используются таблицы и деревья решений.
Проектирование спецификаций процессов с помощью таблиц решений (ТР) заключается в задании матрицы, отображающей множество входных условий во множество действий.
Таблица решений состоит из двух частей. Верхняя часть таблицы используется для определения условий. Обычно условие является ЕСЛИ-частью оператора ЕСЛИ-ТО и требует ответа "да-нет". Однако иногда в условии может присутствовать и ограниченное множество значений, например, ЯВЛЯЕТСЯ ЛИ ДЛИНА СТРОКИ БОЛЬШЕЙ, МЕНЬШЕЙ ИЛИ РАВНОЙ ГРАНИЧНОМУ ЗНАЧЕНИЮ?
Нижняя часть таблицы решений используется для определения действий, т.е. ТО-части оператора ЕСЛИ-ТО. Так, в конструкции ЕСЛИ ИДЕТ ДОЖДЬ, ТО РАСКРЫТЬ ЗОНТ. ИДЕТ ДОЖДЬ является условием, а РАСКРЫТЬ ЗОНТ – действием.
Левая часть таблицы решений содержит собственно описание условий и действий, а в правой части перечисляются все возможные комбинации условий и, соответственно, указывается, какие конкретно действия и в какой последовательности выполняются, когда определенная комбинация условий имеет место.
Поясним вышесказанное на примере спецификации процесса выбора верхней одежды из корзины с вещами. При выборе верхней одежды необходимо руководствоваться следующими правилами:
- если очередная вещь является верхней одеждой, то взять и положить в свою сумку;
- если своя сумка полная, то закончить поиск верхней одежды;
- если корзина с вещами пуста, то закончить поиск;
- иначе поместить вещь в контейнер для просмотренных вещей.
Таблица решений для данного примера выглядит следующим образом:
Таблица 1
| УСЛОВИЯ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
С1 | id_wear(c) | Д | Н | Д | Н | Д | Н | Д | Н |
С2 | Full_bag() | Н | Д | Д | Д | Н | Н | Д | Н |
С3 | Clear_kor() | Н | Д | Н | Н | Д | Д | Д | Н |
| ДЕЙСТВИЯ | | | | | | | | |
D1 | Put_bag(c) | 1 | | | | 1 | | | |
D2 | End_search() | | 1 | 1 | 1 | 2 | 1 | 1 | |
D3 | Put_kont(c) | | | | | | | | 1 |
Заметим, что если выполняется условие C2, то нет необходимости в проверке условий C1 и С3. Поэтому комбинации 2,3,4 и 7 могут быть заменены обобщающей комбинацией (-,Д,-), где "-" означает любую из возможных альтернатив (в нашем случае, Д или Н). Тогда мы получим редуцированную1 таблицу решений:
Таблица 2
| УСЛОВИЯ | 1 | 2 | 3 | 4 | 5 |
С1 | id_wear(c) | Д | - | Д | Н | Н |
С2 | Full_bag() | Н | Д | Н | Н | Н |
С3 | Clear_kor() | Н | - | Д | Д | Н |
| ДЕЙСТВИЯ | | | | | |
D1 | Put_bag(c) | 1 | | 1 | | |
D2 | End_search() | | 1 | 2 | 1 | |
D3 | Put_kont(c) | | | | | 1 |
Построение таблицы решений рекомендуется осуществлять по следующим шагам:
- идентифицировать все условия (или переменные) в спецификации. Идентифицировать все значения, которые каждая переменная может иметь;
- вычислить число комбинаций условий. Если все условия являются бинарными, то существует 2**N комбинаций N переменных;
- идентифицировать каждое из возможных действий, которые могут вызываться в спецификации;
- построить пустую таблицу, включающую все возможные условия и действия, а также номера комбинаций условий;
- выписать и занести в таблицу все возможные комбинации
условий;
- редуцировать комбинации условий;
- проверить каждую комбинацию условий и идентифицировать соответствующие выполняемые действия;
- выделить комбинации условий, для которых спецификация не указывает список выполняемых действий;
- обсудить построенную таблицу.