Сведения о языке UML (1183998), страница 12
Текст из файла (страница 12)
Назовите новую диаграмму Register for Courses – Basic Flow.4. Дважды щелкните на ней, чтобы открыть ее.76Добавление на диаграмму действующего лица, объектов исообщений1. Перетащите действующее лицо Student из браузера на диаграмму.2. Перетащите классы RegisterForCoursesForm и RegistrationControllerиз браузера на диаграмму.3. На панели инструментов нажмите кнопку Object Message(Сообщение объекта).4. Проведите мышью от линии жизни действующего лица Student клинии жизни объекта RegisterForCoursesForm.5. Выделив сообщение, введите его имя: // register for courses.6.
Повторите действия 3 – 5, чтобы поместить на диаграммуостальные сообщения, как показано на рис. 3.7 (для рефлексивногосообщения 3 используется кнопка Message to Self).:RegisterForCoursesForm: RegistrationController:CourseCatalog : Student : ScheduleSystem: Student1: // update schedule( )Студент хочетобновить график2: // get current schedule(Student, forSemester)3: // get schedule(forSemester)4: // display schedule(Schedule)Отображаетсятекущий графикВыводится списоккурсов текущегосеместра5: // get course offerings( )6: // get courseff i(f S7: // display course offerings( )t )8: // update offering selections( )9: // update schedule with new selections( )10: // update with new selections( )Sequence Diagram: Register for Courses /Register for Courses - Basic Flow (SubmitSchedule)В этой точке выполняется подчиненный поток «Принять график»Рис. 3.9.
Диаграмма последовательности Register for Courses – BasicFlow (Update Schedule)77: RegisterForCoursesForm: RegistrationController:Student:Schedule:CourseOffering: Student1: // delete schedule( )Студент хочетудалить график2: // get current schedule(Student, forSemester)3: // get schedule(forSemester)4: // display schedule(Schedule)Системазапрашиваетподтверждение5: // request schedule delete confirmation( )6: // confirm schedule deletion( )7: // delete current schedule( )8: // delete schedule(forSemester)9: // delete( )10: // remove student(Schedule)Студент удаляется из списковкурсов, на которые он был записанРис. 3.10.
Диаграмма последовательности Register for Courses – BasicFlow (Delete Schedule)Соотнесение сообщений с операциями1. Щелкните правой кнопкой на сообщении 1, // register for courses.2. В открывшемся меню выберите пункт <new operation>. Появитсяокно спецификации операции.3. В поле имени оставьте имя сообщения – // register for courses.4. Нажмите на кнопку ОК, чтобы закрыть окно спецификацииоперации и вернуться на диаграмму.5.
Повторите действия 1 – 4, пока не соотнесете с операциями всеостальные сообщения.78Выполните аналогичные действия для создания диаграммпоследовательности, показанных на рис. 3.8 – 3.11. Обратите внимание,что на диаграмме рис. 3.11 появился объект нового классаPrimarySheduleOfferingInfo (класса ассоциаций, описывающего связьмежду классами Shedule и OfferingInfo), который нужно предварительносоздать.: Student:RegisterForCoursesForm:RegistrationController:Schedule :PrimaryScheduleOfferingInfo: CourseOffering:Student1: // submit schedule( )2: // submit schedule( )3: // save( )4: // submit( )5: // is selected?( )6: // has pre-requisites[ is selected ](CourseOffering)Повторяетсядля каждогокурса изграфика7: // still open?( )8: // any conflicts?( )[ has pre-requisites, course offeringopen, and no schedule conflicts ]9: // add student(Schedule)10: // mark as enrolled in( )Рис.
3.11. Диаграмма последовательности Register for Courses – BasicFlow (Submit Schedule)Создание примечанийЧтобы поместить на диаграмму примечание:1. Нажмите на панели инструментов кнопку Note.2. Щелкните мышью в том месте диаграммы, куда собираетесьпоместить примечание.3. Выделив новое примечание, введите туда текст.794. Чтобы прикрепить примечание к элементу диаграммы, на панелиинструментов нажмите кнопку Anchor Notes To Item (Прикрепитьпримечания к элементу).5. Нажав левую кнопку мыши, проведите указатель от примечаниядо элемента диаграммы, с которым оно будет связано.Между примечанием и элементом возникнет штриховая линия.6. Чтобы создать примечание-ссылку на другую диаграмму (как этосделано на диаграмме рис.
3.7 и других), создайте пустоепримечание (без текста) и перетащите на него из браузера нужнуюдиаграмму.Кроме примечаний, на диаграмму можно поместить также итекстовую область. С ее помощью можно, например, добавить к диаграммезаголовок.Чтобы поместить на диаграмму текстовую область:1.
На панели управления нажмите кнопку Text Box.2. Щелкните мышью внутри диаграммы, чтобы поместить тудатекстовую область.3. Выделив эту область, введите в неё текст.Создание кооперативной диаграммыДля создания кооперативной диаграммы достаточнодиаграмму последовательности и нажать клавишу F5.открытьОпределение обязанностей (responsibilities), атрибутов и ассоциацийклассовОбязанность (responsibility) – действие, которое объект обязанвыполнять по запросу других объектов.
Обязанность преобразуется в однуили более операций класса на шаге проектирования. Обязанностиопределяются, исходя из сообщений на диаграммах взаимодействия, идокументируются в классах в виде операций «анализа», которые80появляются там автоматически в процессе построения диаграммвзаимодействия (соотнесения сообщений с операциями).Так, диаграмма классов VOPC (classes only) (рис. 3.6)после построения диаграмм взаимодействия в упражнении 8 должнапринять вид, изображенный на рис. 3.12.<<control>>RegistrationController<<boundary>>RegisterForCoursesForm// submit schedule()// display course offerings()// update schedule()// delete schedule()// confirm schedule deletion()// request schedule delete confirmation()// display schedule()// register for courses()// display possible operations()// save schedule()// create schedule()// select 4 primary and 2 alternate offerings()// display blank schedule()// update offering selections()<<entity>>Student// get tuition()// add schedule()// get schedule()// delete schedule()// has pre-requisites()// get course offerings()// get current schedule()// delete current schedule()// submit schedule()// is registration open?()// save schedule()// create schedule with offerings()// update schedule with new selections()<<entity>>CourseOffering// add student()// remove student()// close registration()// get number of students()// cancel()// still open?()// add professor()// close()// save()<<entity>>Schedule// commit()// select alternate()// remove offering()// level()// cancel()// get cost()// delete()// submit()// save()// any conflicts?()// create with offerings()// update with new selections()<<boundary>>CourseCatalogSystem// get course offerings()<<entity>>PrimaryScheduleOfferingInfo// is selected?()// mark as enrolled in()Рис.
3.12. Диаграмма классов VOPC (classes only) с операциями «анализа»Атрибуты классов анализа определяются, исходяо предметной области, требований к системе и глоссария.иззнанийУпражнение 9. Добавление атрибутов к классамНастройка1. В меню модели выберите пункт Tools > Options.2. Перейдите на вкладку Diagram.3. Убедитесь, что переключатель Show All Attributes помечен.4.
Убедитесь, что переключатели Suppress Attributes и SuppressOperations не помечены.81Добавление атрибутов1. Щелкните правой кнопкой мыши на классе Student.2. В открывшемся меню выберите пункт New Attribute.3. Введите новый атрибут address4. Нажмите клавишу Enter.5. Повторите шаги 1 – 4, добавив атрибуты name и studentID.6. Добавьте атрибуты к классам CourseOffering, ShedulePrimaryScheduleOfferingInfo, как показано на рис. 3.13.<<entity>>StudentaddressnamestudentID// get tuition()// add schedule()// get schedule()// delete schedule()// has pre-requisites()<<entity>>PrimaryScheduleOfferingInfograde<<entity>>CourseOffering/ numStudents : Intdays : EnumendTime : Timenumber : String = "100"startTime : Time// add student()// remove student()// close registration()// get number of students()// cancel()// still open?()// add professor()// close()// save()и<<entity>>Schedulesemester// commit()// select alternate()// remove offering()// level()// cancel()// get cost()// delete()// submit()// save()// any conflicts?()// create with offerings()// update with new selections()// is selected?()// mark as enrolled in()Рис.