В качестве примера применения рассмотренных принципов построения динамической модели построим динамическую модель банковской сети. Начнем с составления и изучения сценариев.
ATM просит клиента вставить карточку клиент вставляет карточку ATM принимает карточку и читает ее номер ATM просит ввести пароль клиент вводит "1234." ATM передает номер и пароль в консорциум, консорциум проверяет номер и пароль, определяет код банка - "39" и сообщает ATM, что запрос принят ATM просит клиента (с помощью меню на экране) выбрать вид проводки (снятие, вклад, перевод, запрос) клиент выбирает снятие ATM спрашивает клиента какова требуемая сумма клиент вводит $100 ATM убеждается, что введенная сумма в пределах лимита и просит консорциум выполнить проводку, консорциум передает запрос в банк, банк выполняет проводку и возвращает новое значение баланса счета ATM выдает сумму и просит клиента взять ее клиент берет деньги ATM спрашивает не нужно ли клиенту чего еще клиент вводит нет ATM печатает счет, выдает карточку и просит клиента взять их клиент берет счет и карточку ATM просит (другого) клиента ввести карточку
Рис. 2.53. Нормальный сценарий для банковской сети
На рисунке 2.53 представлен нормальный сценарий обслуживания клиента в банковской сети; один из возможных сценариев, содержащих исключительные ситуации, показан на рисунке 2.54.
ATM просит клиента вставить карточку клиент вставляет карточку ATM принимает карточку и читает ее номер ATM просит ввести пароль клиент вводит "9999." ATM передает номер и пароль в консорциум; консорциум, проконсультировавшись с соответствующим банком, отвергает запрос ATM сообщает, что пароль введен неверно клиент вводит "1234." ATM передает номер и пароль в консорциум, консорциум проверяет номер и пароль, определяет код банка - "39" и сообщает ATM, что запрос принят ATM просит выбрать вид проводки клиент выбирает снятие ATM спрашивает какова требуемая сумма клиент (раздумав брать деньги) набирает отмену ATM выдает карточку и просит клиента взять ее клиент берет карточку ATM просит (другого) клиента вставить карточку
Рис. 2.54. Сценарий для банковской сети, содержащий исключительные ситуации
Для каждого сценария можно составить соответствующую трассу событий (рисунок 2.55). Для этого выделяем в сценарии имена событий (событиями являются все сигналы, вводы данных, решения, прерывания, переходы и действия, выполняемые клиентом или внешними устройствами), указывая для каждого события объект, порождающий это событие (активный объект).
Имея трассы событий, можно построить диаграммы состояний объектов проектируемой системы. Банковская сеть есть агрегация определенного числа параллельно и независимо работающих объектов четырех классов: консорциум, банк, ATM (банкомат) и клиент; поэтому состояние банковской сети определяется как кортеж состояний составляющих ее объектов: 1 объекта класса консорциум, b объектов класса банк, a объектов класса ATM (банкомат) и c объектов класса клиент (a, b, c - количество ATM, банков и клиентов сети соответственно). Классификация объектов, используемая при объектно-ориентированном подходе, позволяет вместо a+b+1 диаграмм состояний построить всего три (диаграммы состояний клиентов строить не нужно, так как их текущее состояние ясно и так).
Рис. 2.55. Трасса событий в банковской сети
Рис. 2.56. Привязка событий к объектам банковской сети
Построение диаграмм состояний начинается с привязки событий к объектам банковской сети (см. рисунок 2.56), являющимся источниками этих событий. Сначала рассматриваются нормальные события, потом исключительные события. Построение диаграммы состояний объекта (класса) может считаться законченным, когда диаграмма охватывает все рассматриваемые сценарии. Диаграммы состояний объектов классов ATM (банкомат), консорциум и банк представлены на рисунках 2.57, 2.58 и 2.59 соответственно.
Рис. 2.57. Диаграмма состояний объектов класса ATM (банкомат)
Рис. 2.58. Диаграмма состояний объектов класса консорциум
Рис. 2.59. Диаграмма состояний объектов класса банк
Назад | Содержание | Вперед