Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Описание диаграммы Statechart





 

Объектно-ориентированные системы в каждый момент времени находятся в определенном состоянии, зависящем от состояния каждого входящего в нее объекта, поэтому при проектировании важно уметь описывать состояние системы через состояния входящих в нее объектов.

Согласно теории конечных автоматов любую сложную машину можно разложить на простые автоматы, имеющие определенные состояния, поэтому в объектно-ориентированных программных системах этот подход действительно оправдан. Кроме моделирования поведения самих объектов, диаграмма состояний может применяться для конкретизации прецедентов, что отражает взгляд на поведение объектов со стороны. Будем использовать эту диаграмму для описания состояний приложения в целом. Поскольку концепция создания приложения в.NET определяет, что любая создаваемая программа должна иметь главный объект, то выбранный подход не противоречит правилам и стилю разработки интернет приложений при помощи.NET Framework.

Хотя назначение диаграммы Statechart и принципы ее построения не изменились в Rational XDE по сравнению с Rational Rose, при этом диаграмма состояний в Rational XDE дополнилась новыми возможностями.

Для создания диаграммы необходимо из контекстного меню модели выбрать пункт Add=> Statechart. Toolbox для нее показан на рис. 2.5.

 

 

Рис. 2.5 – Toolbox для Statechart

 

Поскольку этот тип диаграммы отображает состояние объектов, то на ней должно явно отображаться место, где происходит инициализация или создание объекта и начало его работы. Значок Initial State позволяет обозначить событие, которое переводит объект в первое состояние на диаграмме. Это будет обозначением начала работы виртуального магазина. Для Web-приложения обычным началом работы является активизация по запросу пользователя начальной страницы. Таким образом, магазин доступен через интернет в любое время, а система начинает работать только по запросу пользователя, и после того, как последний пользователь покидает виртуальный магазин, работа заканчивается. После запроса браузером пользователя начальной страницы, система переходит в первое состояние: ожидание дальнейших команд пользователя. После начала работы система переходит в состояние ожидания выбора пользователя. Поэтому с помощью элемента State создается одноименное состояние и связывается стрелкой Transition с начальным состоянием. Значок State позволяет отразить на диаграмме состояние или ситуацию в течение времени жизни программного объекта, которая отвечает некоторому положению объекта или ожиданию им внешнего события.

На диаграмме создан элемент Final State (завершающее состояние) и соединим с элементом состояния. Завершение работы означает, что все внутренние процессы, входящие в состояние, должны быть завершены. Предположим, что переход в финальное состояние происходит по следующему условию: если пользователь в течение десяти минут не предпринимал никаких действий, работа приложения завершается. Чтобы отразить это на диаграмме, необходимо выполнить следующие действия:

1. Из контекстного меню элемента Ожидание выбора пользователя выбрать пункт Collections.

2. Перейти во вкладку Outgoing Transition.

3. Найти строку перехода, которая отмечена значком Final State.

4. Ввести в поле Guard Condition строку StateTime > 10 min.

5. Нажать кнопку Close для сохранения изменений.

Рассмотрим посылку сообщений на диаграмме Statechart. Для этого добавлено состояние Регистрация нового пользователя, которое соединено стрелкой перехода с состоянием Ожидание выбора пользователя. Затем из контекстного меню перехода активизирован пункт Collection, из него выполнен переход во вкладку Triggers иполе Name введено название сообщения OnUserRegister. Затем создано состояние Просмотр каталога и соединено с состоянием Ожидание выбора пользователя. Для состояния Просмотр каталога выбран элемент SelfTransition (переход на себя), затем в окне Collection для элемента SelfTransition задано имя сообщения OnChangeView. На рис. 2.6 приведен фрагмент диаграммы Statechart.

Перечислим назначение остальных инструментов диаграммы Statechart.

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

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

Submachine State (вложенное состояние) создает элемент, показывающий вложенные состояния.

Stub State (состояние-заглушка) создает элемент, отражающий наличие скрытых вложенных состояний, в которые направлен переход.

Concurrent State (параллельные состояния) создает элемент, отражающий параллельные состояния. По умолчанию в элементе создаются две области, в которых можно задавать состояния.

Junction Point (точка объединения) обозначает на диаграмме точку, в которой соединяются несколько переходов из различных состояний.

Choice Point (точка выбора) показывает на диаграмме точку, из которой могут возникнуть несколько переходов в различные состояния.

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

Synch State (состояние синхронизации) показывает на диаграмме точку синхронизации между двумя параллельными процессами.

 

Рис. 2.6 – Фрагмент диаграммы Statechart







ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.