Анализ требований клиента. Зачем нужны анализ и проектирование. Анализ проблемы, страница 3

Вспомним, что исполнители находятся за пределами системы. Достаточно сказать, что после применения подобных рассуждений к остальным пунктам списка мы получаем значительно более короткий перечень возможных исполнителей для системы HomeDirect.

·  Клиент.

·  Администратор.

·  Продавец.

·  Система Mail.

·  Система LoansDirect.

·  Система BillsDirect.

Выявление прецедентов

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

Обратимся к описанию перевода денег в разделе "Требования к HomeDirect" в главе 16. Перевод описывается следующими шагами.

1.  Клиент запрашивает перевод денежных средств.

2.  Система просит пользователя указать счета, между которыми должен быть произведен перевод, и переводимую сумму.

3.  Клиент выбирает счет, с которого надо перевести средства, счет, на который их на до перевести, и сумму денег, которую надо перевести.

4.  Система проверяет счет, с которого будут переведены деньги, и подтверждает, что на нем есть достаточная сумма.

5.  Сумма вносится в дебет счета, с которого надо перевести деньги, и вносится в кредит счета, ранее выбранного клиентом.

Собственно говоря, это главная последовательность событий для прецедента, который мы назовем "Перевод денег". В дополнительной последовательности могут быть определены действия, выполняемые, когда на счету нет достаточной суммы.

Существует простой способ выявления прецедентов. Он состоит в том, что надо взять каждого идентифицированного исполнителя и попробовать определить поведение или информацию, которую данный исполнитель требует от системы. Главная задача при выявлении прецедентов — постараться избежать излишней детализации, которая ведет к быстрому росту числа прецедентов.

Применим этот способ к практическому исследованию HomeDirect и возьмем исполнителя-клиента, с которого начинается наш исходный список исполнителей. Мы получим следующие прецеденты: вход в систему, выход из системы, изменение пароля, просмотр остатка на счете, список транзакций, загрузка транзакций, перевод денег, добавление продавца, удаление продавца, оплата счетов, проверка счета ценных бумаг, просмотр ценных бумаг, продажа ценных бумаг и покупка ценных бумаг.

Вспомним, что каждый прецедент должен производить заметный результат и представлять исполнителю (т.е. клиенту) что-то ценное. Прецеденты входа в систему и выхода из системы, которые мы определили, дают заметные результаты (т.е. успешный вход или выход из системы), но для клиента в них нет ничего особенно ценного. Клиент не будет пользоваться системой HomeDirect только для того, чтобы войти в нее или выйти. Более вероятно, что клиент будет входить/выходить из системы в контексте некоторого действия, например выплаты по счету или проверки остатка на счете. Поэтому вход в систему и выход из системы — неудачные кандидаты в прецеденты.

Собственно говоря, вход в систему и выход из системы являются частью всех прецедентов, связанных с ролью клиента. Например, прецедент перевода денег, описанный выше, должен включать перед приведенным списком действий вход в систему, а после него — выход из системы.

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