Новые книги

Данное пособие является введением в основы программирования на двух языках. Сначала рассматриваются простые примеры на Pascal с описанием алгоритмов на русском языке и использованием графических блок-схем, затем эти же примеры приводятся в программах на C.
Вы отличный специалист, но клиенты почему-то не выстраиваются к вам в длинную очередь? Скорее всего, они просто не знают о том, каких высот достиг уровень вашего мастерства. Сегодня, чтобы преуспеть, уже мало быть экспертом в какой-либо сфере – нужно быть известным экспертом, человеком-брендом. В этой книге исследуются причины успеха самых востребованных и высокооплачиваемых профессионалов, каждый из которых стал лидером в своей области благодаря раскрутке личного бренда. Вы получите массу конкретных рекомендаций и узнаете, как сделать так, чтобы ваше имя было у всех на слуху.

Динамическая модель банковской сети

2.5.6. Динамическая модель банковской сети

В качестве примера применения рассмотренных принципов построения динамической модели построим динамическую модель банковской сети. Начнем с составления и изучения сценариев.

	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. Диаграмма состояний объектов класса банк

Назад | Содержание | Вперед