EUC4. Полностью абстрагируются от интерфейса пользователя.

Один из фундаментальных принципов «основан на прецедентах» состоит в том, что при проектировании системы разработчики отталкиваются от ее восприятия пользователями. Но при этом ни­как нельзя игнорировать те действия, которые пользователи выпол­няют с помощью экрана и клавиатуры. При описании ошибки 9 уже отмечалось, что не нужно упоминать в тексте прецедента о полях на экране и не стоит вдаваться в описание косметических деталей ин­терфейса. Все это при необходимости можно отразить в прототипах. Но вы обязаны обсудить те особенности интерфейса, которые по­зволяют пользователю указать системе, что она должна делать.

EUC5.  Не присваивают явные имена граничным объектам.

Граничными называются объекты, с которыми взаимодействуют актеры. К их числу относятся экранные формы, диалоговые окна и меню. Стремясь включать побольше деталей и явно описывать способы навигации, мы считаем, что граничные объекты следует явно именовать в текстах прецедентов. Другая причина, по кото­рой это важно сделать, состоит в том, что поведение таких объек­тов будет подвергнуто исследованию на этапе анализа пригоднос­ти (лабораторная работа 5) и присвоение им имен на ранних стадиях позволит избежать неоднозначности в дальнейшем.

EUC6.  Описывают прецеденты не с точки зрения пользователя.

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

НЕ нашли? Не то? Что вы ищете?

EUC7.  Описывают только действия пользователя, игнорируя реакцию системы.

Текст прецедента должен отражать как событие, так и отклик на него, например: «Система делает то-то, когда пользователь делает то-то». Прецедент должен описывать многое из того, что происходит «под капотом» в ответ на действия пользователя: создание новых объектов, контроль вводимых данных или вывод сообщений об ошибках. Не забывайте, что в тексте прецедента рассматриваются обе стороны диалога пользователя с системой, а поведение программы - то, что вы и пытаетесь выявить, - находится на системной стороне этого диалога. Игнорируя реакцию системы, вы игнорируете поведение программы.

EUC8.  Опускают описание альтернативных последовательностей действий.

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

EUC9. Концентрируют внимание на чем-то не относящемся к самому прецеденту, например на том, когда он начинается или что происходит позже.

Некоторые известные авторы выступают в поддержку длинных и сложных шаблонов прецедентов. Обычно в них есть разделы для пред - и постусловий. Мы полагаем, что вполне достаточно двух разделов: «Главная последовательность» и «Альтернативные последовательности». Не следует настаивать на громоздких шаблонах только потому, что о них упоминается в книге или статье. Не тратьте зря свое время.

EUC10. Затрачивают много времени, решая, что использовать: включение или расширение.

За все время преподавания нам ни разу не пришлось для выделения общих фрагментов использовать более одного механизма. Можете применять механизм включения (include) из UML или меха­низмы вызова (invoke) и предшествования (precede) из OML либо еще что-нибудь - большой роли это не играет. Важно лишь оста­новиться на чем-то одном и далее придерживаться этого выбора. Две аналогичных конструкции хуже, чем одна. Пытаясь пользо­ваться обеими, легко запутаться и увязнуть.

Таким образом, на данном этапе мы проделали работу, место которой в общем процессе представлено на рисунке.

Рисунок – Место моделирование прецедентов в Анализе требований

Моделирование прецедентов на практике.

Упражнения.

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

Упражнение 1.

A. [из прецедента Открыть Счет]

Главная последовательность. Клиент вводит требуемую информацию. Система проверяет ее корректность и создает новый объект Счет.

Альтернативная последовательность. Если введенные данные некоррект­ны, система выводит соответствующее сообщение об ошибке

B. [из прецедента Поиск по Автору]

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

C. [из прецедента Регистрация]

Клиент вводит свой код и пароль, после чего нажимает кнопку Зарегистри­роваться. Система выводит Начальную Страницу.

Упражнение 2.

A. [из прецедента Регистрация]

Название. Регистрация.

Назначение. Зарегистрировать вход Клиента в систему.

Предусловие. Клиент еще не зарегистрировался.

Главная последовательность. Клиент вводит свой код и пароль, после чего нажимает кнопку Зарегистрироваться.

Постусловие. Вход Клиента в систему зарегистрирован.

B. [из прецедента Изменить Содержимое Корзины]

На Странице Корзины Клиент изменяет количество Товара в Корзине и нажимает кнопку Обновить. Затем Клиент нажимает кнопку Продолжаю Покупать.

C. [из прецедента Отменить Заказ]

Главная последовательность. Система выводит информацию о Заказе на Странице Отмены Заказа, в том числе состав заказа и адрес доставки. Клиент нажимает кнопку Подтвердить отмену...

Упражнение 3.

A. [из прецедента Поиск по Автору]

Клиент вводит имя Автора и отправляет запрос на поиск... Система нахо­дит существенную информацию о каждой Книге и выводит список Книг.

B. [из прецедента Изменить Содержимое Корзины]

Главная последовательность. Если Клиент изменяет количество Товара в Корзине и нажимает кнопку Обновить, то система сохраняет новое количество, а затем вычисляет и показывает новую стоимость данного товара...

Альтернативная последовательность. Система удаляет Товар из Корзи­ны, если его количество становится равным нулю.

C. [из прецедента Обработать Готовый к Доставке Заказ]

Приемщик проверяет, что каждой Строке Заказа, присутствующей в За­казе на Покупку, соответствует физический товар. Приемщик считывает штрих-коды с упаковочного листа. Система выполняет метод изменить состо­яние заказа, чтобы перевести Заказ в состояние «выполнен», а затем вызы­вает метод сменитьДоступноеКоличество для каждой книги. Приемщик передает Книги Учетчику.

Упражнение 4.

A. [из прецедента Оформить Заказ] 

Клиент выбирает метод оплаты и нажимает кнопку Использовать этот ме­тод оплаты.- Затем Клиент нажимает кнопку Подтвердить Заказ. Прецедент завершается.

B. [из прецедента Доставить Заказ]

Служащий считывает штрих-коды с упаковочного листа. Система изменяет состояние Заказа на «готовится к доставке», затем выясняет, какой Метод До­ставки был указан в Заказе, и выводит его на Консоль Участка Достав­ки...

C. [из прецедента Просмотреть Недавние Заказы]

Клиент щелкает по гиперссылке. Система находит и показывает в режиме чтения Состав Заказа на Странице Деталей Заказа. В частности, наверху выводятся значения из объекта Заказ, а ниже - детали о каждом Товаре, вклю­чая основные сведения о заказанных Книгах, но без пиктограмм. Для возврата на Страницу Просмотра Заказов Клиент нажимает кнопку ОК.

Упражнение 5

A. [из прецедента Доставить Заказ]

Служащий заканчивает упаковку Заказа, записывает его номер и отправляет через соответствующего Поставщика.

B. [из прецедента Просмотреть Недавние Заказы]

Система выводит список Заказов, которые Клиент разместил за послед­ние 30 дней... Клиент запрашивает детальную информацию о Заказе. Система находит и выводит состав Заказа в режиме чтения. Закончив просмотр данного Заказа, Клиент возвращается к списку Заказов.

C. [из прецедента Просмотреть Список Книг]

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

Задания

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4