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 |










