Адыстемелер. Әдістемелік нұсқау 3. Лабораторная работа 3 проектирование по в caseсредстве rational rose часть 1
Скачать 0.74 Mb.
|
Лабораторная работа № 3 ПРОЕКТИРОВАНИЕ ПО В CASE-СРЕДСТВЕ RATIONAL ROSE Часть 1 Постановка задачи. Разработать новую клиент-серверную систему регистрации студентов взамен старой системы. Новая система должна позволять студентам регистрироваться на курсы и просматривать свои табели успеваемости с персональных компьютеров, подключённых к локальной сети университета. Преподаватели должны иметь доступ к онлайновой системе, чтобы указать курсы, которые они будут читать, и проставить оценки за курсы. В начале каждого семестра студенты могут запросить каталог курсов, содержащий список курсов, предлагаемых в данном семестре. Информация о каждом курсе должна включать имя профессора, наименование кафедры и требования к предварительному уровню подготовки (прослушанным курсам). Новая система должна позволять студентам выбирать 4 курса в предстоящем семестре. В дополнение каждый студент может указать 2 альтернативных курса на тот случай, если какой-либо из выбранных им курсов окажется уже заполненным или отмененным. На каждый курс может записаться не более 10 и не менее 3 студентов (если менее 3, то курс будет отменен). В каждом семестре существует период, когда студенты могут изменить свои планы. В это время студенты должны иметь доступ к системе, чтобы добавить или удалить выбранные курсы. После того как процесс регистрации некоторого студента завершён, система регистрации направляет информацию в расчетную систему, чтобы студент мог внести плату за семестр. Если курс окажется; заполненным в процессе регистрации, студент должен быть извещен об этом до окончательного формирования его личного учебного плана. В конце семестра студенты должны иметь доступ к системе для просмотра своих электронных табелей успеваемости. Поскольку эта информация конфиденциальная, система должна обеспечивать ее защиту от несанкционированного доступа. Профессора должны иметь доступ к онлайновой системе, чтобы указать курсы, которые они будут читать, и просмотреть список студентов, записавшихся на их курсы. Кроме того, профессора должны иметь возможность проставить оценки за курсы. Глоссарий проекта Глоссарий предназначен для описания терминологии предметной области. Он может быть использован как неформальный словарь данных системы. Ниже приведены термины и их значения. Создание действующих лиц в среде Rational Rose Действующие лица: Student (Студент) – записывается на курсы. Professor (Профессор) – выбирает курсы для преподавания. Registrar (Регистратор) – формирует учебный план и каталог курсов, ведет все данные о курсах, профессорах и студентах. Billing System (Расчетная система) – получает от данной системы информацию по оплате курсов. Course Catalog (Каталог курсов) – передает в систему информацию из каталога курсов, предлагаемых университетом. Варианты использования Исходя из потребностей действующих лиц выделяются следующие варианты использования: Login (Войти в систему). Register for Courses (Зарегистрироваться на курсы). View Report Card (Просмотреть табель успеваемости). Select Courses to Teach (Выбрать курсы для преподавания). Submit Grades (Проставить оценки). Maintain Professor Information (Вести информацию о профессорах). Maintain Student Information (Вести информацию о студентах). Close Registration (Закрыть регистрацию). Результат показан на рис. 6.1. Рисунок 6.1 – Представление вариантов использования в браузере Диаграмма вариантов использования Создайте диаграмму вариантов использования для системы регистрации. Требуемые для этого действия подробно перечислены далее. Готовая диаграмма вариантов использования изображена на рис. 6.2. В среде Rose диаграммы вариантов использования создаются в представлении вариантов использования. Главная диаграмма (Main) предлагается по умолчанию. Для моделирования системы можно затем разработать необходимое количество дополнительных диаграмм. Рисунок 6.2 – Диаграмма вариантов использования для системы регистрации Модификация диаграммы вариантов использования Наличие общего варианта использования Login для трех действующих лиц позволяет обобщить их поведение и ввести новое действующее лицо Any User. Модифицированная диаграмма вариантов использования показана на рис. 6.3. Рисунок 6.3 – Модифицированная диаграмма вариантов использования Добавление описаний к вариантам использования 1. Выделите в браузере вариант использования Register for Courses. 2. В окне документации введите следующее описание к этому варианту использования: "This use case allows а student to register for courses in the current semester" ("Этот вариант использования дает студенту возможность зарегистрироваться на курсы в текущем семестре"). 3. Создайте с помощью MS Word три текстовых файла с описаниями вариантов использования Login (Войти в систему), Register for Courses (Зарегистрироваться на курсы) и Close Registration (Закрыть регистрацию). Вариант использования Login Краткое описание. Данный вариант использования описывает вход пользователя в систему регистрации курсов. Основной поток событий Данный вариант использования начинает выполняться, когда пользователь хочет войти в систему регистрации курсов. 1. Система запрашивает имя пользователя и пароль. 2. Пользователь вводит имя и пароль. 3. Система проверяет имя и пароль, после чего открывается доступ в систему. Альтернативные потоки Неправильное имя/пароль. Если во время выполнения Основного потока обнаружится, что пользователь ввел неправильное имя и/или пароль, система выводит сообщение об ошибке. Пользователь может вернуться к началу Основного потока или отказаться от входа в систему, при этом выполнение варианта использования завершается. Предусловия Отсутствуют. Постусловия Если вариант использования выполнен успешно, пользователь входит в систему. В противном случае состояние системы не изменяется. Вариант использования Register for Courses Краткое описание. Данный вариант использования позволяет студенту зарегистрироваться на конкретные курсы в текущем семестре. Студент может изменить свой выбор (обновить или удалить курсы), если изменение выполняется в установленное время в начале семестра. Система каталога курсов предоставляет список всех конкретных курсов текущего семестра. Основной поток событий Данный вариант использования начинает выполняться, когда студент хочет зарегистрироваться на конкретные курсы или изменить свой график курсов. 1. Система запрашивает требуемое действие (создать, обновить, удалить график). 2. Когда студент указывает действие, выполняется один из подчиненных потоков (создать, обновить, удалить или принять график). Создать график 1. Система выполняет поиск в каталоге курсов доступных конкретных курсов и выводит их список. 2. Студент выбирает из списка 4 основных и 2 альтернативных курса. 3. После выбора система создает график студента. 4. Выполняется подчиненный поток "Принять график". Обновить график 1. Система выводит текущий график студента. 2. Система выполняет поиск в каталоге курсов доступных конкретных курсов и выводит их список. 3. Студент может обновить свой выбор курсов, удаляя или добавляя конкретные курсы. 4. После выбора система обновляет график. 5. Выполняется подчиненный поток «Принять график». Удалить график 1. Система выводит текущий график студента. 2. Система запрашивает у студента подтверждения удаления графика. 3. Студент подтверждает удаление. 4. Система удаляет график. Если график включает конкретные курсы, на которые записался студент, он должен быть удален из списков этих курсов. Принять график Для каждого выбранного, но еще не "зафиксированного" конкретного курса в графике система проверяет выполнение студентом предварительных требований (прохождение определенных курсов), факт открытия конкретного курса и отсутствие конфликтов графика. Затем система вносит данные о студенте в список выбранного конкретного курса. Курс фиксируется в графике, и график сохраняется в системе. Альтернативные потоки Сохранить график В любой момент студент может вместо принятия графика сохранить его. В этом случае шаг "Принять график" заменяется на следующий: 1. "Незафиксированные" конкретные курсы помечаются в графике как "выбранные". 2. График сохраняется в системе. Не выполнены предварительные требования, курс заполнен или имеют место конфликты графика. Если во время выполнения подчиненного потока "Принять график" система обнаружит, что студент не выполнил необходимые предварительные требования, или выбранный им конкретный курс заполнен, или имеют место конфликты графика, то выдается сообщение об ошибке. Студент может либо выбрать другой конкретный курс и продолжить выполнение варианта использования, либо сохранить график, либо отменить операцию, после чего основной поток начнется с начала. График не найден. Если во время выполнения подчиненных потоков "Обновить график" или "Удалить график" система не может найти графин студента, то выдается сообщение об ошибке. После того как студент подтвердит это сообщение, основной поток начнется с начала. Система каталога курсов недоступна. Если окажется, что невозможно установить связь с системой каталога курсов, то будет выдано сообщение об ошибке. После того как студент подтвердит это сообщение, вариант использования завершится. Регистрация на курсы закончена. Если в самом начале выполнения варианта использования окажется, что регистрация на текущий семестр закончена, будет выдано сообщение, и вариант использования завершится. Удаление отменено. Если во время выполнения подчиненного потока "Удалить график" студент решит не удалять его, удаление отменяется, и основной поток начнется сначала. Предусловия Перед началом выполнения данного варианта использования студент должен войти в систему. Постусловия Если вариант использования завершится успешно, график студента будет создан, обновлен или удален. В противном случае состояние системы не изменится. Вариант использования Close Registration Краткое описание. Данный вариант использования позволяет регистратору закрывать процесс регистрации. Конкретные курсы, на которые не записалось достаточного количества студентов, отменяются. В расчетную систему передается информация о каждом студенте по каждому конкретному курсу, чтобы студенты могли оплатить курсы. Основной поток событий Данный вариант использования начинает выполняться, когда регистратор запрашивает прекращение регистрации. 1. Система проверяет состояние процесса регистрации. Если регистрация еще выполняется, выдается сообщение, и вариант использования завершается. 2. Для каждого конкретного курса система проверяет, ведет ли его какой-либо профессор и записалось ли на него не менее трех студентов. Если эти условия выполняются, система фиксирует конкретный курс в каждом графике, который включает данный курс. 3. Для каждого студенческого графика проверяется наличие в нем максимального количества основных курсов; если их недостаточно, система пытается дополнить альтернативными курсами из списка данного графика. Выбирается первый доступный альтернативный курс. Если таких курсов нет, то никакое дополнение не происходит. 4. Система закрывает все конкретные курсы. Если в каком-либо конкретном курсе оказывается менее трех студентов (с учетом добавлений, сделанных в п.3), система отменяет его и исключает из каждого содержащего его графика. 5. Система рассчитывает плату за обучение для каждого студента в текущем семестре и направляет информацию в расчетную систему. Расчетная система посылает студентам счета для оплаты с копией их окончательных графиков. Альтернативные потоки Конкретный курс никто не ведет. Если во время выполнения основного потока обнаруживается, что некоторый конкретный курс не ведется никаким профессором, то этот курс отменяется. Система исключает данный курс из каждого содержащего его графика. Расчетная система недоступна. Если невозможно установить связь с расчетной системой, спустя некоторое установленное время система вновь попытается связаться с ней. Попытки будут повторяться до тех пор, пока связь не установится. Предусловия Перед началом выполнения данного варианта использования регистратор должен войти в систему. Постусловия Если вариант использования завершится успешно, регистрация закрывается. В противном случае состояние системы не изменится. Прикрепление файла к варианту использования Щелкните правой кнопкой мыши по варианту использования. В открывшемся меню выберите пункт Open Specification. Перейдите на вкладку файлов. Щелкните правой кнопкой мыши по белому полю и из открывшегося меню выберите пункт Insert File. Укажите созданный ранее файл и нажмите на кнопку Open, чтобы прикрепить файл к варианту использования. Реализация варианта использования (Use-Case Realization) Описывает реализацию конкретного варианта использования и представляется с помощью набора диаграмм (диаграмм классов, реализующих вариант использования, и диаграмм взаимодействия, диаграмм последовательности и кооперативных диаграмм), отражающих взаимодействие объектов в процессе реализации варианта использования. Кооперация представляет собой вариант использования со стереотипом "use-case realization", который задается в спецификации варианта использования (рис. 6.4). Рисунок 6.4 – Реализация варианта использования Идентификация ключевых абстракций. Заключается в предварительном определении классов системы (классов анализа). Источники – знание предметной области, требования к системе, глоссарий. Классы анализа для системы регистрации показаны на рис. 6.5. Рисунок 6.5 – Классы анализа для системы регистрации (Key Abstractions) Создание структуры модели и классов анализа в соответствии с требованиями архитектурного анализа Создание пакетов и диаграммы Traceabilities: 1. Щелкните правой кнопкой мыши по логическому представлению браузера. 2. Выберите пункт New > Package в открывшемся меню. 3. Назовите новый пакет Design Model. 4. Щелкните правой кнопкой мыши по пакету Design Model и создайте аналогичным образом пакеты Use-Case Realizations, Use-Case Realization-Close Registration, Use-Case Realization-Login и Use-Case Realization-Register for Courses. 5. В каждом из пакетов типа Use-Case Realization создайте соответствующие кооперации Close Registration Realization, Login Realization и Register for Courses Realization (каждая кооперация представляет собой вариант использования со стереотипом "use-case realization", который задается в спецификации варианта использования). Структура логического представления браузера должна иметь следующий вид (рис. 6.6). Рисунок 6.6 – Структура логического представления браузера 6. Создайте в пакете Use-Case Realization новую диаграмму вариантов использования с названием Traceabilities и постройте ее в соответствии с рис. 6.7. Рисунок 6.7 – Диаграмма Traceabilities Создание классов анализа и соответствующей диаграммы Key Abstractions: 1. Щелкните правой кнопкой мыши по пакету Design Model. 2. Выберите пункт New > Class в открывшемся меню. Новый класс под названием NewClass появится в браузере. 3. Выделите его и введите имя Student. 4. Создайте аналогичным образом классы Professor, Schedule, Course и CourseOffering. 5. Щелкните правой кнопкой мыши по пакету Design Model. 6. Выберите пункт New > Class Diagram в открывшемся меню. 7. Назовите новую диаграмму классов Key Abstractions. 8. Чтобы расположить вновь созданные классы на диаграмме классов, откройте ее и перетащите классы на открытую диаграмму мышью. Диаграмма классов должна выглядеть, как на рис. 6.5. Анализ вариантов использования Идентификация классов, участвующих в реализации потоков событий варианта использования. В потоках событий варианта использования выявляются классы трех типов: граничные классы (Boundary) – служат посредниками при взаимодействии внешних объектов с системой. Как правило, для каждой пары "действующее лицо – вариант использования" определяется один граничный класс. Типы граничных классов: пользовательский интерфейс (обмен информацией с пользователем, без деталей интерфейса – кнопок, списков, окон), системный интерфейс и аппаратный интерфейс (используемые протоколы, без деталей их реализации); классы-сущности (Entity) – представляют собой ключевые абстракции (понятия) разрабатываемой системы. Источники выявления классов-сущностей: ключевые абстракции, созданные в процессе архитектурного анализа, глоссарий, описание потоков событии вариантов использования; управляющие классы (Control) –обеспечивают координацию поведения объектов в системе. Могут отсутствовать в некоторых вариантах использования, ограничивающихся простыми манипуляциями с хранимыми данными. Как правило, для каждого варианта использования определяется один управляющий класс. Примеры управляющих классов: менеджер транзакций, координатор ресурсов, обработчик ошибок. Создание классов, участвующих в реализации варианта использования Register for Courses, и диаграммы классов "View Of Participating Classes" (VOPC) 1. Щелкните правой кнопкой мыши по пакету Design Model. 2. Выберите пункт New > Class в открывшемся меню. Новый класс под названием NewClass появится в браузере. 3. Выделите его и введите имя RegisterForCoursesForm. 4. Щелкните правой кнопкой мыши по классу RegisterForCoursesForm. 5. Выберите пункт Open Specification в открывшемся меню. 6. В поле стереотипа выберите Boundary и нажмите на кнопку ОК. 7. Создайте аналогичным образом классы CourseCatalogSystem со стереотипом Boundary и RegistrationController со стереотипом Control. 8. Назначьте классам Schedule, CourseOffering и Student стереотип Entity. 9. Щелкните правой кнопкой мыши по кооперации Register for Courses Realization в пакете Use-Case Realization-Register for Courses. 10. Выберите пункт New > Class Diagram в открывшемся меню. 11. Назовите новую диаграмму классов VOPC (classes only). 12. Откройте ее и перетащите классы на открытую диаграмму в соответствии с рис. 6.8. Рисунок 6.8 – Диаграмма классов VOPC (classes only) Распределение поведения, реализуемого вариантами использования, между классами. Реализуется с помощью диаграмм взаимодействия (диаграмм последовательности и кооперативных диаграмм). В первую очередь строится диаграмма (одна или более), описывающая основной поток событий и его подчиненные потоки. Для каждого альтернативного потока событий строится отдельная диаграмма. Примеры: 1. обработка ошибок: 2. контроль времени выполнения; 3. обработка неправильно вводимых данных. Нецелесообразно описывать тривиальные потоки событий (например, в потоке участвует только один объект). Создание диаграмм взаимодействия Создадим диаграммы последовательности и кооперативные диаграммы для основного потока событий варианта использования Register. Готовые диаграммы последовательности должны иметь вид, как на рис. 6.9 – 6.13. Настройка В меню модели выберите пункт Tools > Options. Перейдите на вкладку диаграмм. Контрольные переключатели Sequence Numbering, Collaboration Numbering должны быть помечены, а Focus of Control - нет. Нажмите ОК, чтобы выйти из окна параметров. Создание диаграммы последовательности Щёлкните правой кнопкой мыши по кооперации Register for Courses Realization в пакете Use-Case Realization-Register for Courses. Выберите пункт New > Sequence Diagram в открывшемся меню. Назовите новую диаграмму Register for Courses-Basic Flow. Дважды щелкните по ней, чтобы открыть ее. Добавление на диаграмму действующего лица, объектов и сообщений Перетащите действующее лицо Student из браузера на диаграмму. Перетащите классы RegisterForCoursesForm и Registration Controller из браузера на диаграмму. На панели инструментов нажмите кнопку Object Message (Сообщение объекта). Проведите мышью от линии жизни действующего лица Student к линии жизни объекта RegisterForCoursesForm . Выделив сообщение, введите его имя: // register for courses. Повторите действия, чтобы поместить на диаграмму остальные сообщения, как показано на рис. 6.9, (для рефлексивного сообщения 3 используется кнопка Message to Self). Соотнесение сообщений с операциями Щелкните правой кнопкой по сообщению 1: // register for courses. Выберите пункт В поле имени оставьте имя сообщения – // register for courses. Нажмите на кнопку ОК, чтобы закрыть окно спецификации операции и вернуться на диаграмму. Повторите действия, пока не соотнесете с операциями все остальные сообщения. Выполните аналогичные действия для создания диаграмм последовательности, показанных на рис. 6.10 – 6.13. Обратите внимание, что на диаграмме рис. 6.13 появился объект нового класса PrimarySheduleOfferinglnfo (класса ассоциаций, описывающего связь между классами Schedule и Offeringlnfo), который нужно предварительно создать. Создание примечаний Для того чтобы поместить на диаграмму примечание: Нажмите на панели инструментов кнопку Note. Щелкните мышью по тому месту диаграммы, куда собираетесь поместить примечание. Выделив новое примечание, введите туда текст. Чтобы прикрепить примечание к элементу диаграммы, на панели инструментов нажмите кнопку Anchor Notes To Item (Прикрепить примечания к элементу). Нажав левую кнопку мыши, проведите указатель от примечания до элемента диаграммы, с которым оно будет связано. Между примечанием и элементом возникнет штриховая линия. Чтобы создать примечание-ссылку на другую диаграмму (как это сделано на диаграмме рис. 6.9 и др.), создайте пустое примечание (без текста) и перетащите на него из браузера нужную диаграмму. Кроме примечаний на диаграмму можно поместить также и текстовую область. С ее помощью можно, например, добавить к диаграмме заголовок. Для того чтобы поместить на диаграмму текстовую область: На панели управления нажмите кнопку TextBox. Щелкните мышью внутри диаграммы, чтобы поместить туда текстовую область. Выделив эти область, введите в нее текст. Рисунок 6.9 – Диаграмма последовательности Register for Courses-Basic Flow For Courses. Рисунок 6.10 – Диаграмма последовательности Register for Courses-Basic Flow (Create Schedule) Рисунок 6.11 – Диаграмма последовательности Register for Courses-Basic Flow (Update Schedule) Рисунок 6.12 – Диаграмма последовательности Register for Courses-Basic Flow (Delete Schedule) Рисунок 6.13 – Диаграмма последовательности Register for Courses-Basic Flow (Submit Schedule) Создание кооперативной диаграммы Для создания кооперативной диаграммы достаточно открыть диаграмму последовательности и нажать клавишу F5. Контрольные вопросы 1. Как добавить описание к варианту использования в окне программы Rational Rose? 2. Как прикрепить текстовый файл с описанием к варианту использования? 3. Что представляет собой реализация конкретного варианта использования? 4. Как создать элемент Кооперация в окне браузера проекта? 5. Что представляет собой элемент Кооперация? 6. В чем заключается идентификация ключевых абстракций? 7. Что такое граничные классы? 8. Как создать граничный класс в программе Rational Rose? 9. Что представляют собой классы-сущности? 10. Как создать класс-сущность в программе Rational Rose? 11. Какое назначение управляющих классов? 12. Как создать управляющий класс в программе Rational Rose? 13. Как происходит распределение поведения, реализуемого вариантами использования, между классами? 14. Как добавить на диаграмму последовательности действующее лицо, объект и сообщение? 15. Как производится соотнесение сообщений с операциями на диаграммах последовательности? 16. Как создать примечание? 17. Как прикрепить примечание к элементу диаграммы? 18. Как отформатировать шрифт в тексте примечания? 19. Как поместить на диаграмму текстовую область? 20. Как создать кооперативную диаграмму? |