 
        
        Автоматизация проектирования вычислительных систем. Конспект лекций. Ганцева Е.А
.pdf 
Можно использовать диаграммы Насси-Шнейдермана (это дальнейшее развитие FLOW-форм). В диаграммах Насси-Шнейдермана используются те же обозначения, что и в FLOW-формах, но условия рисуются с помощью треугольника.
| 
 | условие | 
| нет | 
 | 
| да | 
 | 
| блок по | блок | 
| по | 
 | 
| Например, | 
 | 
 | 
| for j = 1 to n-1 | 
 | 
 | 
| do | 
 | 
 | 
| ……… сравнить | и | поменять | 
| местами | 
 | 
 | 
| if a[j] > a[j+1] | ||
| да | 
 | 
 | 
| нет | 
 | 
 | 
| ……… | 
 | поменять | 
| местами | 
 | 
 | 
| 
 | temp = a[j] | |
Увеличение трудности проектирования при использовании различных методов:
 
текстовое описание
невозможно автоматическое кодирование из-за неоднозначностей
структурированный естественный язык
ТР
отсутствие процедурных возможностей
 ДР
 ДР
визуальный язык
трудность модификаций
язык
программирования
 
Сложность возникает из-за того, что в DFD потоки данных описаны абстрактно, а при исполнении языков программирования требуется конкретизация. Т.о. сложность будет состоять в согласовании СП с DFD, особенно при модификациях и корректировке.
Спецификации управления
Спецификации управления описывают отношения между входящими и выходящими управляющими потоками. Строятся на основе STD (диаграмм переходов состояний). Работа системы моделируется на основе предыдущего и текущего ее функционирования.
STD представляется с помощью 3-х объектов:
Начальное состояние – это узел STD, являющийся начальной точкой. Начальное состояние только одно. Это состояние системы после ее инсталляции.
Состояние – (текущее) рассматривается как устойчивое состояние. Имя состояния отражает реальное состояние, в котором находится система (НАГРЕВАНИЕ, ОХЛАЖДЕНИЕ).
Переход – из одного состояния в другое. Имя определяет событие, являющееся причиной перехода. Событие обычно состоит из управляющего потока, возникающего при выполнении некоторого условия (СЧЕТЧИК = 1000, КНОПКА НАЖАТА).
На диаграммах STD:
состояния изображаются узлами;
переходы – дугами;
условие
Около дуги (перехода) записываются
действие
Начальное состояние имеет 1 переход. Начальное состояние обычно изображается прямоугольником меньшего размера.
начальное состояние
 
СОСТОЯНИЕ 1
условие
действие
СОСТОЯНИЕ 2
Имена управляющих потоков и процессов заключаются в кавычки (для А, Т, E/D потоков).
Пример
активизируется каждый раз
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| «некорректный | «введенная кредитная | 
 | «корректный | 
 | ||||||||
| 
 | пароль» | 
 | карта» | 
 | 
 | пароль» | ||||||
| Т | : удалить | А: «получить пароль» | Т: обеспечить | |||||||||
| кредитную карту | 
 | 
 | 
 | 
 | 
 | требуемый сервис, | ||||||
| 
 | 
 | 
 | 
 | 
 | ||||||||
| 
 | 
 | 
 | 
 | ОБРАБОТКА | 
 | 
 | удалить кредитную | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | |||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | карту | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
Здесь только 2 состояния: ожидание о обработка. Переход из ожидания в обработку только при условии ввода кредитной карты. При выполнении этого условия выполняется действие: ПОЛУЧИТЬ ПАРОЛЬ (процесс 1.1.). Для запуска 1.1. используется А-поток. Переход из ОБРАБОТКИ в ОЖИДАНИЕ происходит 2-мя способами:
1. после 3-х кратного ввода неверного пароля кредитная карта удаляется;
2.при условии ―КОРРЕКТНЫЙ ПАРОЛЬ‖ последует включение процессов 1.2. и 1.3. и удаляется кредитная карта;
Рекомендации по построению STD:
STD строиться на возможно более высоком уровне детализации DFD; STD строиться как можно более простой;
STD по возможности детализируется;
правила выбора имен те же, что и для процессов и потоков.
Наброски STD:
а) либо определяются все возможные состояния и все возможные переходы между ними;
б) либо последовательно из начального состояния строятся все последующие.
Набросок тестируется по вопросам:
все ли состояния определены и имеют уникальные имена? все ли состояния достижимы?
все ли состояния имеют выход?
как состояние реагирует на всевозможные условия (ненормальные) в любом состоянии?
все ли управляющие потоки отражены на STD?
Если число состояний слишком велико вместо STD можно использовать таблицы и матрицы переходов состояний.
| Список | Условие | Действие | Следую | 
| всех | 
 | 
 | щее | 
| состояний | 
 | 
 | состоян | 
| 
 | 
 | 
 | ие | 
| 
 | 
 | 
 | 
 | 
| НАЧАЛЬ | Активизир | 
 | ОЖИДА | 
| НОЕ | уется | 
 | НИЕ | 
| СОСТОЯ | несколько | 
 | 
 | 
| НИЕ | раз | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
| ОЖИДАН | Введенная | Получить | ОБРАБ | 
| ИЕ | кредитная карта | пароль | ОТКА | 
| 
 | 
 | 
 | 
 | 
| ОБРАБОТ | Некоррект | Удалить | ОЖИДА | 
| 
 | 
 | 
 | 
 | 
| КА | ный | кредитную | НИЕ | 
| 
 | пароль | карту | 
 | 
| 
 | 
 | 
 | 
 | 
| ОБРАБОТ | Корректн | Обеспечить | ОЖИДА | 
| КА | ый | сервис, | НИЕ | 
| 
 | пароль | удалить | 
 | 
| 
 | 
 | кредитную карту | 
 | 
| 
 | 
 | 
 | 
 | 
 
Матрица состояний:
| Список | Условие 1 | Условие 2 | 
 | 
 | 
| условий | 
 | 
 | 
 | 
 | 
| Список | 
 | 
 | 
 | 
 | 
| состояний | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
| Состояние 1 | Список | ……… | 
 | 
 | 
| 
 | действий, | ………. | 
 | 
 | 
| 
 | следующее | 
 | 
 | 
 | 
| 
 | состояние | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
| …………… | ………………. | ……… | 
 | 
 | 
| …. | 
 | ………. | 
 | 
 | 
| …………… | 
 | 
 | 
 | 
 | 
| …. | 
 | 
 | 
 | 
 | 
| Либо: | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
| Следующее | Следующее | 
 | 
 | 
 | 
| состояние | состояние1 | 
 | 
 | 
 | 
| Текущее | 
 | 
 | 
 | 
 | 
| состояние | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
| Состояние 1 | Список | 
 | 
 | 
 | 
| 
 | действий, | 
 | 
 | 
 | 
| 
 | следующее | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
| …………… | ………………. | 
 | 
 | 
 | 
| …. | 
 | 
 | 
 | 
 | 
| …………… | 
 | 
 | 
 | 
 | 
| …. | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
Словарь данных.
Словарь данных нужен для того, чтобы описать, каким образом преобразуется информация, какая именно преобразуется информация.
Словарь состоит из списка (организованного специальным образом) всех элементов данных с их точными определениями.
По любому потоку в словаре храним: имя
тип
атрибуты Хранение - в виде статей. Каждая статья начинается с ключа – заголовка,
перед заголовком ставится «@». Типы потока:
простой или групповой; внутренний (только внутри системы) или внешний (связывает
различные системы); поток данных или управляющий;
непрерывный или дискретный. Выделяют следующие атрибуты:
имена-синоним; БНФ-определения; единицы измерения;
диапазон значений, типичное значение, экстремальные значения (для непрерывного потока);
список значений дискретного потока и их смысл; список номеров диаграмм, в которых поток встречается; список потоков, куда входит данный поток;
комментарии (направление, цель введения данного потока).
БНФ используется для объединения/расщепления потоков. Для БНФопределений используются специальные правила записи:
@БНФ = <простой оператор> ! <БНФ-выражение> <простой оператор> - это текст, заключенный в «/», например., /текущий счет
клиента/.
БНФ-выражение строится с использованием операций: = - композиция из;
+ - и; [!] - или;
() - компонент в скобках не обязательный; {} - итерация компонента в скобках; ―‖ - литерал.
Для обозначения итераций указывают верхнюю и нижнюю границы (или одну из них).
3 {болт} 7 – от 3 до 7 итераций,
1 {болт} – 1 и более итераций, {шайба} 3 – не более 3-х итераций. Пример БНФ-выражения:
@БНФ = [винт!болт + 2{гайка}2 + (прокладка)!клей] Примеры описания потока данных:
@имя = восьмеричная цифра @тип = дискретный поток
@БНФ = [―0‖!‖1‖!‖2‖!‖3‖!‖4‖!‖5‖!‖6‖!‖7‖]
@имя = введенная кредитная карта @тип = управляющий поток
@БНФ = /указывает, что кредитная карта введена/
@имя = данные кредитной карты @тип = дискретный поток
@БНФ = пароль + детали клиента + лимит денег
@имя = данные по балансу @тип = дискретный поток
@БНФ = /текущий баланс счета клиента/ @единица измерения = доллар @диапазон = +/- 100000 @точность = .01
@имя = деньги @тип = дискретный поток
@БНФ = /деньги, выдаваемые клиенту/ @единица измерения = доллар
@норма = 5..1000 @комментарий = сумма выдаваемых денег должна быть кратна 5
Диаграммы «сущность-связь» (ERD).
В словаре данных никак (кроме БНФ) не описываются взаимоотношения данных системы. Следовательно, связи описываются в ERD.
 
Эти диаграммы определяют данные и отношения между ними. Диаграммы используются для:
1.детализации хранилищ;
2.определения внешних сущностей. Здесь важны следующие понятия:
Сущность – объекты, важные в данной предметной области. Атрибуты – свойства объектов.
Связь – отношение к другим объектам.
Графическое представление разработано Ченом (Chan) и Баркером (Barker).
Спомощью этих представлений моделируют данные: ERD, диаграммы атрибутов, диаграммы декомпозиции. Эти диаграммные техники используются для проектирования реляционных баз данных.
| Нотация ………: | 
 | 
 | 
| Сущности: | 
 | 
 | 
| 
 | имя | |
| Независимая сущность | 
 | |
| 
 | существительное | |
| 
 | 
 | |
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| Зависимая сущность | 
 | имя | 
| 
 | существительное | |
| 
 | 
 | |
| Ассоциированная сущность | 
 | 
 | 
| 
 | 
 | |
| 
 | 
 | |
| Отношения: | 
 | 
 | 
| 
 | 
 | |
| Неограниченное отношение | 
 | глагол | 
| (обязательное) | 
 | 
 | 
| Ограниченное отношение | 
 | глагол | 
| (необязательное) | 
 | 
 | 
| Существенно-ограниченное | 
 | глагол | 
| отношение | 
 | 
 | 
