Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Проектирование автоматизированных информационных систем на основе объектно-ориентированного подхода

..pdf
Скачиваний:
0
Добавлен:
12.11.2023
Размер:
10.56 Mб
Скачать

Рассмотрим пример построения диаграммы состояний для класса «Предложение дисциплины» [4].

Жизнь предложения дисциплины начинается с создания его в системе сотрудником деканата. В момент создания предложение дисциплины ассоциировано только с самой дисциплиной. Назовем это состояние предложения дисциплины «Новое».

После того как один из преподавателей выберет это предложе­ ние, состояние предложения изменится. Будем называть состояние предложения после ассоциирования с ним преподавателя «Готовое». Причиной перехода предложения дисциплины из состояния «Новое» в «Готовое» является событие - назначение преподавателя.

Предложение дисциплины будет находиться в состоянии «Гото­ вое» до тех пор, пока сотрудник деканата не объявит о начале реги­ страции. После открытия регистрации предложение дисциплины пе­ рейдет в состояние «Действующее».

Мы знаем, что на каждую элективную дисциплину может запи­ саться не более 20 студентов. Поэтому предложение дисциплины бу­ дет находиться в состоянии «Действующее», пока число поданных заявок не достигнет 20.

В случае если поданы все 20 заявок, предложение переходит в состояние «Закрытое» и дальнейшая регистрация прекращается.

Если совет кафедры по каким-то причинам решит исключить элективную дисциплину из учебного плана, то предложение данной дисциплины перейдет в состояние «Отмененное».

Создадим диаграмму состояний. Для этого в окне браузера рас­ положим курсор над классом «DisciplineOffer» (предложение дисци­ плины) и вызовем контекстное меню. В появившемся меню выберем пункт «New», а затем «Statechart Diagram». В результате этого будет создана диаграмма состояний. Назовем диаграмму «Диаграмма со­ стояний предложения дисциплины» (рис. 9.12).

Дважды щелкнув на вновь созданном элементе, открываем рабо­ чее окно диаграммы. Далее создаем вышеописанные состояния. Для того чтобы создать состояние, необходимо щелкнуть на пиктограмму «State» панели инструментов, а затем щелкнуть на область диаграммы. Получив пять состояний: «Новое», «Готовое», «Действующее», «За­ крытое» и «Отмененное» - создаем еще два стандартных: начальное

Каждому состоянию можно задать действие на входе-выходе и дея­ тельность с помощью закладки «Actions» окна «State Specification», ко­ торое вызывается с помощью двойного щелчка на изображении состоя­ ния или с контекстного меню этого состояния.

Теперь осталось связать все состояния переходами. Для того что­ бы создать переход, необходимо воспользоваться пиктограммой «State Transition» и указать сначала исходное состояние, а затем ко­ нечное. Если переход вызывается событием, то это событие можно определить, открыв окно «State Transition Specification» двойным щелчком на линии перехода. Это же окно служит для определения сторожевых условий и действий перехода.

Полученный результат представлен на рис. 9.13.

9.3. Подведение итогов

Диаграмма состояний представляет собой сильный инструмент, позволяющий описать изменение системы в течение времени. Слож­ ные системы содержат множество диаграмм, которые составляют ди­ намическую модель системы. Как правило, каждая диаграмма описы­ вает поведение определенного класса. Ключевыми элементами диа­ граммы являются состояние и событие. Состояние системы опреде­ ляется значениями атрибутов класса, а событие является сигналом для перехода из одного состояния в другое.

9.4.Контрольные вопросы

1.Какие характеристики проектируемой системы отображает диаграмма состояний?

2.Назовите основные элементы диаграммы состояний.

3.Поясните роль события в диаграмме состояний.

4.Что понимается под состоянием объекта? Как можно задать состояние?

5.Дайте определение условию, действию и деятельности.

6.Какие условия называются сторожевыми?

7.Чем отличается событие от действия?

8.Что служит причиной прекращения деятельности?

9.В чем отличие действия от деятельности?

9.5.Контрольные задачи

1.Доработайте рассмотренную ранее диаграмму работы лифта. Диаграмма должна учитывать возможность того, что двери лифта мо­ гут не закрыться (по истечении отсчитанных семи секунд), если пас­ сажир нажмет кнопку открытия дверей, расположенную в лифте, либо просто поместит любой предмет между закрывающимися дверьми.

2.Постройте диаграмму состояний для описания работы автомати­ ческой двери автомобильного гаража. Открытие-закрытие двери про­ исходит с помощью двигателя. Нажимая на кнопку пульта управления, человек вызывает либо открытие, либо закрытие двери (происходит реверс двигателя, и дверь начинает двигаться в другую сторону). Для безопасной работы двери введено дополнительное условие: дверь не начнет закрываться до тех пор, пока она полностью не откроется.

10.ДИАГРАММА ДЕЯТЕЛЬНОСТЕЙ

10.1.Теоретическая часть

Диаграмма деятельностей (activities diagrams) используется для моделирования динамических аспектов поведения системы и иллю­ стрирует логику и последовательность переходов от одной деятель­ ности к другой. Диаграмма деятельности - это своеобразная блоксхема, которая описывает последовательность выполнения операций во времени.

Элементами диаграммы деятельностей являются состояние действия/деятельности, переход (transition), точка принятия решений (decision point) и полоса синхронизации (synchronization bar).

Деятельность (activity) - это продолжающийся во времени не­ атомарный шаг вычислений. Деятельности, в конечном счете, приво­ дят к выполнению некоего действия (action), составленного из вы­ полняемых атомарных вычислений, каждое из которых либо изменя­ ет состояние системы, либо возвращает какое-то значение [1].

Состояние действия (action state) является специальным случаем состояния с некоторым входным действием и, по крайней мере, од­ ним выходящим из состояния переходом. Этот переход неявно пред­ полагает, что входное действие уже завершилось. Состояние дейст­ вия не может иметь внутренних переходов, так же, как не может быть подвергнуто декомпозиции, поскольку является атомарным [1]. Обычное использование состояния действия заключается в модели­ ровании одного шага выполнения алгоритма (процедуры) или потока управления. Выполняемая в состоянии действия работа не может быть прервана. Длительность одного состояния действия занимает неощутимо малое время.

Состояния действия изображаются в виде прямоугольников с за­ кругленными углами (рис. 10.1).

/-------------------

\

Имя

<____________ >

Рис. 10.1. Изображение состояния действия

Внутри прямоугольника указывается имя состояния. Рекоменду­ ется в качестве имени состояния действия использовать глагол с по­ яснительными словами.

Состояния деятельности (state), наоборот, могут быть подверг­ нуты дальнейшей декомпозиции, вследствие чего выполняемую дея­ тельность можно представить с помощью других диаграмм деятель­ ности. Состояния деятельности не являются атомарными, т.е. могут быть прерваны. Предполагается, что для их завершения требуется заметное время.

Состояние деятельности отображается на диаграмме так же, как и состояние действия.

Переход (transition) показывает путь из одного состояния дейст­ вия или деятельности в другое. Когда действие или деятельность в некотором состоянии завершается, поток управления сразу перехо­ дит в следующее состояние действия или деятельности. Переходы такого рода носят названия нетриггерных переходов.

Переход изображается в виде непрерывной линии со стрелкой (рис. 10.2).

------------------------------->

Рис. 10.2. Изображение перехода

Поток управления должен где-то начинаться и заканчиваться. На диаграмме можно задать как начальное (закрашенный кружок), так и конечное (закрашенный кружок внутри окружности) состоя­ ние (рис. 10.3).

Рис. 10.3. Пример состояний действий и переходов

Точка принятия решения (decision point), или ветвление, при­ меняется в диаграмме для описания различных путей выполнения в зависимости от значения некоторого булевого выражения. Точки

принятия решений совместно с соответствующими контролирую­ щими условиями позволяют наглядно продемонстрировать воз­ можные альтернативные пути протекания процесса функциониро­ вания системы. На диаграмме точка ветвления изображается ром­ бом (рис. 10.4).

О

Рис. 10.4. Изображение точки принятия решения

Вточку принятия решения может входить только один переход,

авыходить - два или более. Булево выражение вычисляется только один раз при входе в точку ветвления. Ни для каких двух исходящих переходов эти сторожевые условия не должны одновременно прини­ мать значение «истина», иначе поток управления окажется неодно­ значным.

На рис. 10.5. приведен пример диаграммы с ветвлениями.

Рис. 10.5. Пример ветвлений

Полоса синхронизации (synchronization bar) используется для обо­ значения разделения и слияния параллельных потоков (рис. 10.6). Процесс функционирования системы зачастую содержит стадии, ко­ торые могут выполняться параллельно. Полосы синхронизации

Соседние файлы в папке книги