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

свою
очередь
,
будут
наследоваться
Алгоритмы
,
реализующие
конкретные
методы
.
Алгоритм
также
связан
с
Данными
и
Результатами
.
Данные
и
Задания
должны
храниться
в
Базе
данных
,
что
показывают
ассоциациями
соответствующих
классов
.
Способ
задания
данных
для
понимания
основной
концепции
проектируемой
системы
пока
не
очень
существенен
.
Вид
задачи
в
нашем
случае
,
скорее
,
атрибут
класса
Задание
,
чем
самостоятельный
класс
,
так
как
в
реальном
мире
-
это
имя
,
которое
позволяет
уточнить
группу
возможных
алгоритмов
решения
,
а
также
структуры
исходных
данных
и
получаемых
результатов
.
Для
алгоритма
очень
существенной
характеристикой
является
его
точность
,
соответственно
добавим
атрибут
Точность
.
Другие
атрибуты
пока
не
проявились
.
6.4.
Описание
поведения
.
Системные
события
и
операции
Концептуальная
модель
характеризует
статические
свойства
разрабатываемого
программного
обеспечения
.
Для
описания
особенностей
его
поведения
,
т
.
е
.
возможных
действий
системы
,

целесообразно
использовать
:
диаграммы
последовательностей
системы
,
системные
события
,
системные
операции
,
диаграммы
деятельностей
,
а
при
необходимости
и
диаграммы
состояний
объектов
(
см
. § 7.4).
Диаграмма
последовательностей
системы
.
Системные
события
и
операции
.
Диаграмма
последовательностей
системы
—
графическая
модель
,
которая
для
определенного
сценария
варианта
использования
показывает
генерируемые
действующими
лицами
события
и
их
порядок
.
При
этом
система
рассматривается
как
единое
целое
.
Для
построения
диаграммы
последовательностей
системы
необходимо
:
•
представить
систему
как
«
черный
ящик
»
и
изобразить
для
нее
линию
жизни
-
вертикальную
пунктирную
линию
,
подходящую
к
блоку
снизу
;
•
идентифицировать
каждое
действующее
лицо
и
изобразить
для
него
линию
жизни
(
много
действующих
лиц
бывает
в
вариантах
совместного
использования
программного
обеспечения
);
•
из
описания
варианта
использования
определить
множество
системных
событий
и
их
последовательность
;
•
изобразить
системные
события
в
виде
линий
со
стрелкой
на
конце
между
линиями
жизни
действующих
лиц
и
системы
,
а
также
указать
имена
событий
и
списки
передаваемых
значений
.
В
отличие
от
внутренних
событий
,
события
,
которые
генерируются
для
системы
действующими
лицами
,
называют
системными
.
Системные
события
инициируют
выполнение
соответствующего
множества
операций
,
также
называемых
системными
.
Каждую
системную
операцию
называют
по
имени
соответствующего
сообщения
.
Множество
всех
системных
операций
определяют
,
идентифицируя
системные
события
всех
вариантов
использования
.
Для
наглядности
системные
операции
изображают
в
виде
операций
абстрактного
класса
(
типа
) System.
Если
необходимо
разделить
множество
операций
на
подмножества
,
инициируемые
разными
пользователями
,
то
используют
несколько
абстрактных
классов
: Systeml, System2
и
т
.
д
.
Каждую
системную
операцию
необходимо
описать
.
Обычно
описание
системной
операции
содержит
:
•
имя
операции
и
ее
параметры
;
•
описание
обязанности
;
•
указание
типа
;
•
названия
вариантов
использования
,
в
которых
она
используется
;
•
примечания
для
разработчиков
алгоритмов
и
т
.
д
.;
•
описание
обработки
возможных
исключений
;
•
описание
вывода
неинтерфейсных
сообщений
;
•
предположение
о
состоянии
системы
до
выполнения
операции
(
предусловие
);
•
описание
изменения
состояния
системы
после
выполнения
операции
(
постусловие
).
Пример
6.4.
Разработать
диаграмму
последовательностей
системы
для
варианта
использования
Выполнение
задания
решения
комбинаторно
-
оптимизационных
задач
.
Анализируем
описание
варианта
использования
и
определяем
,
что
действующее
лицо
должно
инициировать
девять
системных
событий
,
включая
загрузку
задания
из
базы
,
которая
логически
следует
из
операции
сохранения
.
Покажем
эти
события
на
диаграмме
последовательностей
(
рис
.
6.10).
В
скобках
укажем
параметры
,
которые
должны
формировать
эти
события
.
Следовательно
,
система
должна
обеспечивать
выполнение
соответствующих
операций
.
Полученное
множество
операций
приписывается
классу
System (
рис
. 6.11).

Далее
каждую
операцию
необходимо
описать
.
Для
примера
опишем
операцию
Инициировать
решение
():

Раздел
Описание
Имя
Обязанности
Тип
Ссылки
Примечания
Исключения
Вывод
Предусловия
Постусловие
Инициировать
решение
()
Выполнить
задание
и
вывести
результаты
пользователю
Системная
Вариант
использования
Выполнить
задание
Предусмотреть
возможность
прерывания
процесса
решения
пользователем
1.
Если
в
задании
указаны
не
все
исходные
данные
,
то
вывести
сообщение
об
ошибке
2.
Если
при
указанных
исходных
данных
решение
задачи
указанным
методом
невозможно
,
то
вывести
сообщение
об
ошибке
-
Предполагает
наличие
всех
исходных
данных
задания
Получен
результат
Диаграммы
деятельностей
.
В
зависимости
от
степени
детализации
диаграммы
деятельностей
так
же
,
как
диаграммы
классов
,
используют
на
разных
этапах
разработки
.
На
этапе
анализа
требований
и
уточнения
спецификаций
диаграммы
деятельностей
позволяют
конкретизировать
основные
функции
разрабатываемого
программного
обеспечения
.
Под
деятельностью
в
данном
случае
понимают
задачу
(
операцию
),
которую
необходимо
выполнить
вручную
или
с
помощью
средств
автоматизации
.
Каждому
варианту
использования
соответствует
своя
последовательность
задач
.
В
теоретическом
плане
диаграммы
деятельности
являются
обобщенным
представлением
алгоритма
,
реализующего
анализируемый
вариант
использования
.
На
диаграмме
деятельность
обозначается
прямоугольником
с
закругленными
углами
(
рис
. 6.12,
а
).
Диаграммы
деятельностей
позволяют
описывать
альтернативные
и
параллельные
процессы
.
Для
обозначения
альтернативных
процессов
используют
ромб
(
рис
. 6.12,
б
),
условие
указывают
над
ним
слева
или
справа
,
а
альтернативы
«
да
», «
нет
» -
рядом
с
соответствующими
выходами
.
С
помощью
этого
же
блока
можно
построить
циклический
процесс
.
Множественность
активации
деятельности
обозначают
символом
«*»,
помещенным
рядом
со
стрелкой
активации
деятельности
,
и
при
необходимости
уточняют
надписью
вида
«
для
каждой
строки
».
Для
обозначения
параллельных
процессов
используют
линейки
синхронизации
(
рис
. 6.12,
в
),
причем
условие
синхронизации
можно
уточнить
,
указав
его
на
диаграмме
.

На
рис
. 6.13
показано
,
что
«
Деятельность
1»
и
«
Деятельность
2»
могут
выполняться
параллельно
.
На
этапе
определения
спецификаций
имеет
смысл
уточнять
только
варианты
использования
,
краткое
описание
которых
недостаточно
для
понимания
сущности
решаемых
проблем
.
Диаграммы
деятельностей
,
таким
образом
,
можно
использовать
вместо
описания
вариантов
использования
или
как
дополнение
к
ним
.
Пример
6.5.
Построить
диаграмму
деятельностей
,
уточняющую
вариант
использования
Выполнение
задания
системы
решения
комбинаторно
-
оптимизационных
задач
.
Учитывая
описание
предметной
области
в
виде
контекстной
диаграммы
классов
,
анализируем
описание
варианта
использования
.
Разбиваем
процесс
на
отдельные
операции
.
Полученные
операции
показываем
на
диаграмме
деятельностей
(
рис
. 6.14).