ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 20.11.2019
Просмотров: 9499
Скачиваний: 184

управляющую
информацию
,
получаемую
системой
извне
.
Например
,
управляющими
воздей
-
ствиями
считают
команды
пользователя
и
сигналы
датчиков
,
подключенных
к
компьютерной
системе
.
Получив
такое
управляющее
воздействие
,
разрабатываемая
система
должна
выполнить
определенные
действия
и
или
остаться
в
том
же
состоянии
,
или
перейти
в
другое
состояние
взаимодействия
с
внешней
средой
.
Для
построения
диаграммы
переходов
состояний
необходимо
в
соответствии
с
теорией
конечных
автоматов
определить
:
основные
состояния
,
управляющие
воздействия
(
или
условия
перехода
),
выполняемые
действия
и
возможные
варианты
переходов
из
одного
состояния
в
другое
.
Условные
обозначения
,
используемые
при
построении
диаграмм
переходов
состояний
,
показаны
на
рис
. 4.3.
Если
программная
система
в
процессе
функционирования
активно
не
взаимодействует
с
окружающей
средой
(
пользователем
или
датчиками
),
например
,
использует
примитивный
интерфейс
и
выполняет
некоторые
вычисления
по
заданным
исходным
данным
,
то
диаграмма
переходов
состояний
обычно
интереса
не
представляет
.
В
этом
случае
она
демонстрирует
только
последовательно
выполняемые
переходы
:
из
исходного
состояния
в
состояние
ввода
данных
,
затем
после
выполнения
вычислений
-
в
состояние
вывода
и
,
наконец
,
в
состояние
завершения
работы
(
рис
. 4.4).
Для
интерактивного
программного
обеспечения
с
развитым
пользовательским
интерфейсом
основные
управляющие
воздействия
-
команды
пользователя
,
для
программного
обеспечения
реального
времени
—
сигналы
от
датчиков
и
/
или
оператора
производственного
процесса
.
Общим
для
этих
типов
программного
обеспечения
является
наличие
состояния
ожидания
,
когда
программное
обеспечение
приостанавливает
работу
до
получения
очередного
управляющего
воздействия
.
Для
интерактивного
программного
обеспечения
наиболее
характерно
получение
команд
различных
типов
(
рис
. 4.5),
а
если
это
еще
и
программное
обеспечение
реального
времени
-
однотипных
сигналов
(
либо
от
многих
датчиков
,
либо
требующих
продолжительной
обработки
).
В
отличие
от
интерактивных
систем
для
систем
реального
времени
обычно
установлено
более
жесткое
ограничение
на
время
обработки
полученного
сигнала
программного
обеспечения
.
Такое
ограничение
часто
требует
выполнения
дополнительных
исследований
поведения
системы
во
времени
,
например
,
с
использованием
сетей
Петри
или
марковских
процессов
.

К
программному
обеспечению
,
требующему
уточнения
особенностей
поведения
посредством
построения
диаграммы
переходов
состояний
,
относится
и
программное
обеспечение
,
ориентированное
на
работу
в
сети
(
см
. § 1.1).
При
этом
отдельно
строят
модели
поведения
сервера
и
клиента
,
представляя
сообщения
,
передаваемые
между
ними
,
в
виде
управляющих
воздействий
.
Пример
4.1.
Рассмотрим
диаграмму
переходов
состояний
для
программы
построения
графиков
функций
одной
переменной
,
техническое
задание
на
которую
представлено
в
§ 3.4.
Программа
относится
к
классу
интерактивных
,
соответственно
на
этапе
анализа
и
определения
спецификаций
целесообразно
уточнить
поведение
программы
на
уровне
интерфейса
с
пользователем
,
тем
более
,
что
наличие
простого
интерфейса
оговорено
в
техническом
задании
.
Один
из
возможных
вариантов
диаграммы
переходов
состояний
программы
представлен
на
рис
. 4.6.
Полученную
диаграмму
переходов
состояний
следует
согласовать
с
заказчиком
программного
обеспечения
.
4.3.
Функциональные
диаграммы
Функциональными
называют
диаграммы
,
в
первую
очередь
отражающие
взаимосвязи
функций
разрабатываемого
программного
обеспечения
.
В
качестве
примера
функциональной
модели
рассмотрим
активностную
модель
,
предложенную
Д
.
Россом
в
составе
методологии
функционального
моделирования
SADT (Structured Analysis and Design Technique -
технология
структурного
анализа
и
проектирования
)
в
1973
г
. [58].
Примечание
.
Методология
SADT
предполагает
,
что
модель
может
основываться
либо
на
функциях
системы
,
либо
на
ее
предметах
(
данных
,
оборудовании
,
информации
и
т
.
п
.).
В
обоих
случаях
используют
схожие
графические
нотации
,
но
в
первом
случае
блок
соответствует
функции
,
а
во
втором
—
элементу
данных
.
Соответствующие
модели
принято
называть
актив
-
ностными
моделями
и
моделями
данных
.
Полная
модель
включает
построение
обеих
моделей
,
обеспечивающих
более
полное
описание
программного
обеспечения
,
однако
широкое
распространение
получили
только
активностные
(
функциональные
)
модели
.
На
основе
мето
-
дологии
SADT
в
дальнейшем
была
построена
известная
методология
описания
сложных
систем
IDEFO (Icam DEFinition -
нотация
ICAM),
которая
является
основной
частью
программы
ICAM
(Integrated Computer-Aided Manufacturing -
интегрированная
компьютеризация
производства
),
проводимой
по
инициативе
ВВС
США
.
Отображение
взаимосвязи
функций
активностной
модели
осуществляется
посредством
построения
иерархии
функциональных
диаграмм
,
схематически
представляющих
взаимосвязи
нескольких
функций
.
Каждый
блок
такой
диаграммы
соответствует
некоторой
функции
,
для
которой
должны
быть
определены
:
исходные
данные
,
результаты
,
управляющая
информация
и
ме
-
ханизмы
ее
осуществления
—
человек
или
технические
средства
.
Все
перечисленные
выше
связи
функции
представляются
дугами
,
причем
тип
связи
и
ее
направление
строго
регламентированы
.
Дуги
,
изображающие
каждый
тип
связей
,
должны
подходить
к
блоку
с
определенной
стороны
(
рис
. 4.7),
а
направление
связи
должно
указываться
стрелкой
в
конце
дуги
.
Физически
дуги
исходных
данных
,
результатов
и
управления
представляют
собой
наборы
данных
,
передаваемые
между
функциями
.
Дуги
,
определяющие
механизм
выполнения
функции
,
в
основном
используются
при
описании
спецификаций
сложных
информационных
систем
,
которые
включают
как
автоматизированные
,
так
и
ручные
операции
.
Блоки
и
дуги
маркируются
текстами
на
естественном
языке
.
Блоки
на
диаграмме
размещают
по
«
ступенчатой
»
схеме
в
соответствии
с
последовательностью
их
работы
или
доминированием
,
которое
понимается
как
влияние
,

оказываемое
одним
блоком
на
другие
.
В
функциональных
диаграммах
SADT
различают
пять
типов
влияний
блоков
друг
на
друга
:
•
вход
-
выход
блока
подается
на
вход
блока
с
меньшим
доминированием
,
т
.
е
.
Следующего
(
рис
. 4.8,
а
);
•
управление
-
выход
блока
используется
как
управление
для
блока
с
меньшим
доминированием
(
следующего
) (
рис
. 4.8,
б
);
•
обратная
связь
по
входу
-
выход
блока
подается
на
вход
блока
с
большим
доминированием
(
предыдущего
) (
рис
. 4.8,
в
);
•
обратная
связь
по
управлению
—
выход
блока
используется
как
управляющая
информация
для
блока
с
большим
доминированием
(
предыдущего
) (
рис
:4.8,
г
);
•
выход
-
исполнитель
-
выход
блока
используется
как
механизм
для
другого
блока
(
рис
. 4.8,
д
).
Дуги
могут
разветвляться
и
соединяться
вместе
различными
способами
.
Разветвление
означает
,
что
часть
или
вся
информация
может
использоваться
в
каждом
ответвлении
дуги
.
Дуга
всегда
помечается
до
ветвления
,
чтобы
идентифицировать
передаваемый
набор
данных
.
Если
ветвь
дуги
после
ветвления
непомечена
,
то
непомеченная
ветвь
содержит
весь
набор
данных
.
Каждая
метка
ветви
уточняет
,
что
именно
содержит
данная
ветвь
(
рис
. 4.9).
Построение
иерархии
функциональных
диаграмм
ведется
поэтапно
с
увеличением
уровня
детализации
:
диаграммы
каждого
следующего
уровня
уточняют
структуру
родительского
блока
.
Построение
модели
начинают
с
единственного
блока
,
для
которого
определяют
исходные
данные
,
результаты
,
управление
и
механизмы
реализации
.
Затем
он
последовательно
детализируется
с
использованием
метода
пошаговой
детализации
(
см
. § 1.3).
При
этом
рекомендуется
каждую
функцию
представлять
не
более
чем
3—7-
ю
блоками
.
Во
всех
случаях
каждая
подфункция
может
использовать
или
продуцировать
только
те
элементы
данных
,
которые
использованы
или
продуцируются
родительской
функцией
,
причем
никакие
элементы
не
могут
быть
опущены
,
что
обеспечивает
непротиворечивость
построенной
Стрелки
,
приходящие
с
родительской
диаграммы
или
уходящие
на
нее
,
нумеруют
,
используя
символы
и
числа
.
Символ
обозначает
тип
связи
: I -
входная
,
С
-
управляющая
,
М
-
механизм
, R -
результат
.
Число
-
номер
связи
по
соответствующей
стороне
родительского
блока
,
считая
сверху
вниз
и
слева
направо
.
Все
диаграммы
связывают
друг
с
другом
иерархической
нумерацией
блоков
:
первый
уровень
-
АО
,
второй
-
А
1,
А
2
и
т
.
п
.,
третий
- All, A12,
А
13
и
т
.
п
.,
где
первые
цифры
—
номер
родительского
блока
,
а
последняя
—
номер
конкретного
субблока
родительского
блока
.
Детализацию
завершают
после
получения
функций
,
назначение
которых
хорошо
понятно
как
заказчику
,
так
и
разработчику
.
Эти
функции
описывают
,
используя
естественный
язык
или
псевдокоды
.
В
процессе
построения
иерархии
диаграмм
фиксируют
всю
уточняющую
информацию
и
строят
словарь
данных
,
в
котором
определяют
структуры
и
элементы
данных
,
показанных
на
диаграммах
.
Таким
образом
,
в
результате
получают
спецификацию
,
которая
состоит
из
иерархии
функциональных
диаграмм
,
спецификаций
функций
нижнего
уровня
и
словаря
,
имеющих
ссылки
друг
на
друга
.
Пример
4.2.
Разработку
функциональных
диаграмм
продемонстрируем
на
примере
уточнения
спецификаций
программы
построения
таблиц
/
графиков
функций
одной
переменной
.
Диаграмма
,
показанная
на
рис
. 4.10,
а
,
является
диаграммой
верхнего
уровня
.
На
ней
хорошо
видно
,
что
является
исходными
данными
для
программы
,
и
каких
результатов
работы
от
нее
ожидают
.
Диаграмма
,
представленная
на
рис
. 4.10,
б
,
уточняет
функции
программы
.
На
ней
показаны
четыре
блока
:
Ввод
/
выбор
функций
и
ее
разбор
,
Добавление
функции
в
список
,
Построение
таблицы
значений
и
Построение
графика
функции
.
Для
каждого
блока
определены
исходные
данные
,
управляющие
воздействия
и
результаты
.
Согласно
правилам
наименования
входов
/
вы
-
ходов
,
имеющих
продолжение
на
родительской
диаграмме
,
на
диаграмме
использованы
следующие
обозначения
:
I1 -
функция
,
I2 -
отрезок
,
I3 –
шаг
,