Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 22
Описание файла
PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 22 страницы из PDF
Моделирование прецедентов4.5.6.1. Ветвление потокаСпецификация UML не определяет способа представления ветвленияпотока.Мы пользуемся идиомой, которая позволяет представить ветвлениепростым способом без записи отдельного альтернативного потока. Дляэтого используется ключевое слово Если (If).Ветвление потока можно сократить, уменьшая число прецедентов, нопользоваться этим надо умеренно!Стоит отметить, что некоторые разработчики моделей прецедентов выступают против ветвления в прецедентах. Они утверждают, что еслиесть ответвление, значит, должен быть описан новый альтернативныйпоток.
Строго говоря, этот аргумент заслуживает внимания. Однакомы занимаем более пракматичную позицию и считаем, что небольшоепростое ветвление потока допустимо, потому что оно сокращает общеечисло альтернативных потоков и обеспечивает более компактное представление требований.4.5.6.2. Ключевое слово Если (If)Для представления ответвления потока используйте ключевое словоЕсли (If). Пример, приведенный на рис. 4.9, показывает хорошо структурированный поток событий с двумя ветвями. Каждая ветвь начинаетсяПрецедент: ManageBasketID: 2Краткое описание:Покупатель меняет количество товаров в корзине.Главные актеры:ПокупательВторостепенные актеры:Нет.Предусловия:1. Содержимое корзины для покупок является видимым.Основной поток:1.
Прецедент начинается, когда Покупатель выбирает товарную позициюв корзине.2. Если Покупатель выбирает «удалить позицию».2.1. Система удаляет позицию из корзины.3. Если Покупатель вводит новое количество.3.1. Система обновляет количество товаров в корзине.Постусловия:Нет.Альтернативные потоки:Нет.Рис. 4.9. Прецедент с двумя ветвлениями4.5. Спецификация прецедентов107с ключевого слова Если и простого логического выражения, такого какЕсли пользователь вводит новое количество, которое может быть истинным(true) или ложным (false).
Структурированный текст под выражением Если – это то, что произойдет, если логическое выражение истинно. С помощью отступов и нумерации можно четко обозначить тело выражения Если без использования слов конец если (endif) или другого завершающего выражение синтаксиса.Поскольку события ветвления могут произойти, а могут и не произойти в зависимости от обстоятельств, они не могут генерировать постусловия, которые должны выполняться обязательно. Поэтому ветвлениеможет сократить число постусловий прецедента.4.5.6.3. Повторение в потокеИногда некоторое действие в потоке событий необходимо повторитьнесколько раз. В моделировании прецедентов это встречается не часто,но на всякий случай полезно иметь некоторую стратегию для обработки таких вариантов.Спецификация UML не определяет способа представления повторенийв потоке, поэтому мы предлагаем простые выражения с ключевымисловами Для (For) и Пока (While).4.5.6.4.
Ключевое слово Для (For)Смоделировать повторение можно с помощью ключевого слова Для.Формат следующий:n. Для (выражение, описывающее итерации)n.1. Сделать чтотоn.2. Сделать чтото другоеn.3. …n+1.Выражение, описывающее итерации, – это некоторое выражение, результат которого – количество итераций. Каждая структурированнаястрока после выражения Для повторяется столько раз, сколько определено в выражении. Пример приведен на рис. 4.10.4.5.6.5.
Ключевое слово Пока (While)Ключевое слово Пока (While) используется для моделирования последовательности действий в потоке событий, которые осуществляются дотех пор, пока некоторое логическое условие истинно. Формат в данномслучае следующий:n. Пока (логическое условие)n.1.
Сделать чтотоn.2. Сделать чтото другоеn.3. …n+1.108Глава 4. Моделирование прецедентовПрецедент: FindProductID: 3Краткое описание:Система ищет некоторые продукты на основании критерия поиска, заданного Покупателем,и выводит их на экран для Покупателя.Главные актеры:ПокупательВторостепенные актеры:Нет.Предусловия:Нет.Основной поток:1. Прецедент начинается, когда Покупатель выбирает опцию «найти продукт».2. Система запрашивает у Покупателя критерий поиска.3. Покупатель вводит запрашиваемый критерий.4.
Система ищет продукты, соответствующие критерию Покупателя.5. Если система находит соответствующие продукты, тогда5.1. Для каждого найденного продукта5.1.1. Система выводит на экран миниатюрное представление продукта.5.1.2. Система выводит на экран краткое описание продукта.5.1.3. Система выводит на экран цену продукта.6. Иначе (Else)6.1. Система сообщает Покупателю о том, что соответствующие продукты не найдены.Постусловия:Нет.Альтернативные потоки:Нет.Рис. 4.10. Моделирование повторений с помощью ключевого слова «Для»Как и ключевое слово Для, Пока используется не часто. Пример приведен на рис. 4.11. Последовательность структурированных строк послевыражения Пока повторяется до тех пор, пока логическое условие, определенное в блоке Пока, не станет ложным.4.5.7. Моделирование альтернативных потоковУ каждого прецедента есть один основной поток и может быть множество альтернативных потоков.У каждого прецедента есть основной поток и может быть множествоальтернативных потоков.
Они являются альтернативными путямив прецеденте, которые перехватывают ошибки, ответвления и прерывания основного потока. Как мы видели, спецификация прецедентавключает основной поток и список имен альтернативных потоков.Альтернативные потоки часто не возвращаются в основной поток прецедента.4.5.
Спецификация прецедентов109Прецедент: ShowCompanyDetailsID: 4Краткое описание:Система выводит данные о компании для Покупателя.Главные актеры:ПокупательВторостепенные актеры:Нет.Предусловия:Нет.Основной поток:1. Прецедент начинается, когда Покупатель выбирает опцию «показать данные о компании».2. Система выводит на экран веб!страницу с данными о компании.3. Пока Покупатель просматривает данные о компании.3.1. Система воспроизводит некоторую фоновую мелодию.3.2.
Система отображает специальные предложения в баннере.Постусловия:1. Система показала данные о компании.2. Система воспроизвела фоновую мелодию.3. Система показала специальные предложения.Альтернативные потоки:Нет.Рис. 4.11. Моделирование последовательности действий в потокесобытий с помощью ключевого слова «Пока»Ключевым моментом является то, что альтернативные потоки часто невозвращаются в основной поток. Это происходит потому, что ониобычно обрабатывают ошибки и исключения основного потока и имеют другие постусловия. Альтернативные потоки наглядно представлены на рис.
4.12.Прецедентальтернативные потокиосновной потокРис. 4.12. Основной и альтернативные потоки110Глава 4. Моделирование прецедентовПрецедент: CreateNewCustomerAccountID: 5Краткое описание:Система создает новую учетную запись для Покупателя.Главные актеры:ПокупательВторостепенные актеры:Нет.Предусловия:Нет.Основной поток:1.
Прецедент начинается, когда Покупатель выбирает опцию «создать новуюучетную запись Покупателя».2. Пока данные Покупателя недействительны.2.1. Система просит Покупателя ввести его данные, включая адрес электроннойпочты, пароль и еще раз пароль для подтверждения.2.2. Система проверяет действительность данных Покупателя.3. Система создает новую учетную запись для Покупателя.Постусловия:1. Новая учетная запись создана для Покупателя.Альтернативные потоки:InvalidEmailAddressInvalidPasswordCancelРис.
4.13. Спецификация прецедента с альтернативными потокамиАльтернативные потоки могут быть задокументированы отдельно илидобавляться в конце прецедента. Мы предпочитаем документироватьих отдельно.В качестве примера модели прецедента с альтернативными потокамирассмотрим рис. 4.13.Как видим, у этого прецедента три альтернативных потока: InvalidEmailAddress (недействительный адрес электронной почты), InvalidPassword(недействительный пароль) и Cancel (отмена). На рис.
4.14 задокументирован альтернативный поток InvalidEmailAddress.Обратите внимание, что для ввода альтернативных потоков в шаблонпрецедента было внесено несколько изменений:• Имя – для альтернативных потоков используется следующая схемаприсваивания имен:Альтернативный поток: CreateNewCustomerAccount: InvalidEmailAddressТакое имя говорит о том, что это альтернативный поток InvalidEmailAddress для прецедента CreateNewCustomerAccount.• ID – обратите внимание на применение иерархической системы нумерации для обеспечения связи альтернативного потока с основным прецедентом.4.5. Спецификация прецедентов111Альтернативный поток: CreateNewCustomerAccount:InvalidEmailAddressID: 5.1Краткое описание:Система сообщает Покупателю, что он ввел недействительный адресэлектронной почты.Главные актеры:ПокупательВторостепенные актеры:Нет.Предусловия:1.