Лабораторные по UML в среде Rational Rose+RoseDelphiLink. Руководство по выполнению лабораторных работ
![]()
|
Добавление на диаграмму дополнительных объектов1. Нажмите кнопку Object панели инструментов. 2. Щелкните мышью где-нибудь на диаграмме, чтобы поместить туда новый объект. 3. Введите имя объекта — Управляющий заказами. 4. На панели инструментов нажмите кнопку Object. 5. Поместите на диаграмму еще один объект. 6. Введите его имя — Управляющий транзакциями. Назначение ответственностей объектам 1. Выделите сообщение 5: Создать пустой заказ. Выделяйте слова, а не стрелку. 2. Нажав комбинацию клавиш CTRL+D, удалите это сообщение. 3. Повторите шаги 1 и 2 для удаления сообщений 6 и 7: - Ввести номер заказа, заказчика и число заказываемых предметов - Сохранить заказ 4. Выделите связь между объектами Форма деталей Заказа и Заказ №1234 5. Нажав комбинацию клавиш CTRL+D, удалите эту связь 6. На панели инструментов нажмите кнопку Object Link (Связь объекта). 7. Нарисуйте связь между Форма деталей Заказа и Управляющий Заказами. 8. На панели инструментов нажмите кнопку Object Link (Связь объекта). 9. Нарисуйте связь между Управляющий Заказами и Заказ №1234 10. На панели инструментов нажмите кнопку Object Link (Связь объекта). 11. Нарисуйте связь между Заказ №1234 и Управляющий Транзакцией. 12. На панели инструментов нажмите кнопку Object Link (Связь объекта). 13. Нарисуйте связь между Управляющий Заказами и Управляющий Транзакцией. 14. На панели инструментов нажмите кнопку Link Message (Сообщение связи). 15. Щелкните мышью на связи между объектами Форма деталей Заказа и Управляющий Заказами, чтобы ввести новое сообщение. 16. Назовите это сообщение Сохранить заказ. 17. Повторите шаги 14 — 16, добавив сообщения с шестого по девятое, и назвав их: - Создать новый заказ — между Управляющий Заказами и Заказ №1234 - Ввести номер заказа, заказчика и число заказываемых предметов — между Управляющий Заказами и Заказ №1234 - Сохранить заказ — между Управляющий Заказами и Управляющий Транзакцией - Информация о заказе — между Управляющий Транзакцией и Заказ №1234 18. На панели инструментов нажмите кнопку Link to Self (Связь с собой). 19. Щелкнув на объекте Управляющий Транзакцией, добавьте к нему рефлексивное сообщение. 20. На панели инструментов нажмите кнопку Link Message (Сообщение связи). 21. Щелкните мышью на рефлексивной связи Управляющий Транзакциями, чтобы ввести туда сообщение. 22. Назовите новое Сохранить информацию о заказе в базе данных. Соотнесение объектов с классами (если классы были созданы при разработке описанной выше диаграммы Последовательности) 1. Найдите в браузере класс Выбор Заказа. 2. Перетащите его на объект Выбор варианта заказа на диаграмме. 3. Повторите шаги 1 и 2 соотнеся остальные объекты и соответствующие им классы: - Класс заказ деталей соотнесите с объектом Форма деталей заказа - Класс Упр_заказами — с объектом Управляющий Заказами - Класс Заказ — с объектом Заказ №1234 - Класс Упр_транзакциями — с объектом Управляющий транзакциями Соотнесение объектов с классами (если вы не создавали описанную выше диаграмму Последовательности) 1. Щелкните правой кнопкой мыши на объекте Форма деталей Заказа. 2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию). 3. В раскрывающемся списке классов выберите пункт 4. В поле имени введите Выбор заказа. 5. Щелкните на кнопке ОК. Вы вернетесь в окно спецификации объекта. 6. В списке классов выберите класс Выбор заказа. 7. Щелкните на кнопке OK, чтобы вернуться к диаграмме. Теперь объект называется Выбор варианта заказа: Выбор Заказа 8. Для соотнесения остальных объектов с классами повторите шаги с 1 по 7: - Класс Детали заказа соотнесите с объектом Форма деталей заказа - Класс Упр_заказами — с объектом Управляющий заказами - Класс Заказ — с объектом Заказ N 1234 - Класс Упр_ транзакциями — с объектом Управляющий транзакциями Соотнесение сообщений с операциями (если операции были созданы при разработке описанной выше диаграммы Последовательности) 1. Щелкните правой кнопкой мыши на сообщении 1: Создать новый заказ. 2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию). 3. В раскрывающемся списке имен укажите имя операции — Создать(). 4. Нажмите на кнопку ОК. 5. Повторите шаги 1—4 для соотнесения с операциями остальных сообщений: - Сообщение 2: Открыть форму соотнесите с операцией Открыть() - Сообщение 3: Ввести номер заказа, заказчика и число заказываемых предметов — с операцией Ввести номер заказа, заказчика и число заказываемых предметов() - Сообщение 4: Сохранить заказ — с операцией Сохранить заказ() - Сообщение 5: Сохранить заказ — с операцией Сохранить заказ() Сообщение 6: Создать пустой заказ – с операцией Создать пустой заказ() Сообщение 7: Ввести номер заказа, заказчика и число заказоваемых предметов- с одноименной операцией. Сообщение 8 Сохранить заказ – с операцией Сохранить заказ() Сообщение 9 Информация о заказе – с одноименной операцией Сообщение 10 Сохранить информацию о заказе с одноименной операцией Соотнесение сообщений с операциями (если вы не создавали описанную выше диаграмму Последовательности) 1. Щелкните правой кнопкой мыши на сообщении 1: Создать новый заказ(). 2. В открывшемся меню выберите пункт 3. В поле имени введите имя операции —Создать(). 4. Нажмите на кнопку ОК, чтобы закрыть окно спецификации операции и вернуться к диаграмме. 5. Еще раз щелкните правой кнопкой мыши на сообщении 1. 6. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию). 7. В раскрывающемся списке Name (Имя) укажите имя новой операции. 8. Нажмите на кнопку ОК. 9. Повторите шаги 1—8, чтобы создать новые операции и соотнести с ними остальные сообщения: - Сообщение 2: Открыть форму соотнесите с операцией Открыть() - Сообщение 3: Ввести номер заказа, заказчика и число заказываемых предметов — с операцией Ввести номер заказа, заказчика и число заказываемых предметов() - Сообщение 4: Сохранить заказ — с операцией Сохранить заказ() - Сообщение 5: Сохранить заказ — с операцией Сохранить заказ() Сообщение 6: Создать пустой заказ – с операцией Создать пустой заказ() Сообщение 7: Ввести номер заказа, заказчика и число заказоваемых предметов- с одноименной операцией. Сообщение 8 Сохранить заказ – с операцией Сохранить заказ() Сообщение 9 Информация о заказе – с одноименной операцией Сообщение 10 Сохранить информацию о заказе с одноименной операцией Ваша диаграмма должна выглядеть, как показано на рис. 4 Лабораторная работа 4. Диаграмма Состояний для класса Заказ.Постройте диаграмму Состояний для класса Заказ, показанную на рис. 5. ![]() Рис 5. Диаграмма состояний для класса Заказ Этапы выполнения упражнения Создание диаграммы 1. Найдите в браузере класс Заказ. 2. Щелкните на классе правой кнопкой мыши и в открывшемся меню укажите пункт New > Statechart Diagram (Создать диаграмму состояний). Добавление начального и конечного состояний 1. Нажмите кнопку Start State (Начальное состояние) панели инструментов. 2. Поместите это состояние на диаграмму. 3. Нажмите кнопку End State (Конечное состояние) панели инструментов. 4. Поместите это состояние на диаграмму. Добавление суперсостояния 1. Нажмите кнопку State (Состояние) панели инструментов. 2. Поместите это состояние на диаграмму. Добавление оставшихся состояний 1. На панели инструментов нажмите кнопку State (Состояние). 2. Поместите состояние на диаграмму. 3. Назовите состояние Отменен. 4. На панели инструментов нажмите кнопку State(Состояние). 5. Поместите состояние на диаграмму. 6. Назовите состояние Выполнен. 7. На панели инструментов нажмите кнопку State(Состояние). 8. Поместите состояние на диаграмму внутрь суперсостояния. 9. Назовите состояние Инициализация. 10. На панели инструментов нажмите кнопку State (Состояние). 11. Поместите состояние на диаграмму внутрь суперсостояния. 12. Назовите состояние Выполнение заказа приостановлено. Описание состояний 1. Дважды щелкните мышью на состоянии Инициализация. 2. Перейдите на вкладку Detail (Подробно). 3. Щелкните правой кнопкой мыши в окне Actions(Действия). 4. В открывшемся меню выберите пункт Insert(Вставить). 5. Дважды щелкните мышью на новом действии. 6. Назовите его Сохранить дату заказа. 7. Убедитесь, что в окне When (Когда) указан пункт On Entry (На входе). 8. Повторив шаги 3—7, добавьте следующие действия: - Собрать клиентскую информацию, в окне When укажите DO (Выполнять между входом и выходом) - Добавить к заказу новые позиции, укажите DO 9. Нажмите два раза на ОК, чтобы закрыть спецификацию. 10. Дважды щелкните мышью на состоянии Отменен. 11. Повторив шаги 2—7, добавьте действия: Сохранить дату отмены, укажите On Exit (На выходе) 12. Нажмите два раза на ОК, чтобы закрыть спецификацию. 13. Дважды щелкните мышью на состоянии Выполнен. 14. Повторив шаги 2—7, добавьте действие: - Выписать счет, укажите On Exit 15. Нажмите два раза на ОК, чтобы закрыть спецификацию. Добавление переходов 1. Нажмите кнопку Transition (Переход) панели инструментов. 2. Щелкните мышью на начальном состоянии. 3. Проведите линию перехода к состоянию Инициализация. 4. Повторив шаги с первого по третий, создайте следующие переходы: - От состояния Инициализация к состоянию Выполнение заказа приостановлено - От состояния Выполнение заказа приостановлено к состоянию Выполнен - От суперсостояния к состоянию Отменен - От состояния Отменен к конечному состоянию - От состояния Выполнен к конечному состоянию 5. На панели инструментов нажмите кнопку Transition to Self (Переход к себе). 6. Щелкните мышью на состоянии Выполнение заказа приостановлено Описание переходов 1. Дважды щелкнув мышью на переходе от состояния Инициализация к состоянию Выполнение заказа приостановлено, откройте окно спецификации перехода. 2. В поле Event (Событие) введите фразу Выполнить заказ. 3. Щелкнув на кнопке ОК, закройте окно спецификации. 4. Повторив шаги с первого по третий, добавьте событие Отменить заказ к переходу между суперсостоянием и состоянием Отменен. 5. Дважды щелкнув мышью на переходе от состояния Выполнение заказа приостановлено к состоянию Выполнен, откройте окно его спецификации. 6. В поле Event (Событие) введите фразу Добавить к заказу новую позицию. 7. Перейдите на вкладку Detail (Подробно). 8. В поле Guard Condition (Сторожевое Условие) введите Не осталось незаполненных позиций. 9. Щелкнув на кнопке ОК, закройте окно спецификации. 10. Дважды щелкните мышью на рефлексивном переходе (Transition to Self) состояния Выполнение заказа приостановлено. 11. В поле Event (Событие) введите фразу Добавить к заказу новую позицию. 12. Перейдите на вкладку Detail (Подробно). 13. В поле Guard Condition (Сторожевое Условие) введите Остаются незаполненные позиции. 14. Щелкнув на кнопке ОК, закройте окно спецификации. Лабораторная работа 5. Построение диаграммы Активности для варианта использования «Выполнить поставку Заказа». Побеседовав с Павлом, Антон понял, что необходимо согласовать логику реализации еще одного варианта использования «Выполнить поставку заказа». Стало ясно, что здесь возможны несколько альтернативных потоков управления. Для таких ситуаций более удобно использовать не диаграммы взаимодействия, приспособленные для единственного потока, а диаграмму активности. Описание варианта использования. При оформлении заказа проверяют каждую содержащуюся в нем позицию, чтобы убедиться в наличии соответствующих товаров на складе. После этого выписываются товары для реализации заказа. Во время выполнения этих процедур одновременно проверяется прохождение платежа. Если платеж прошел, и товары имеются на складе, то осуществляется их поставка. Если платеж прошел, но товары на складе отсутствуют, то заказ ставится в ожидание. Если платеж не прошел, то заказ аннулируется. Этапы выполнения упражнения. 1. Найдите в браузере вариант использования «Выполнить поставку заказа» 2. Щелкните на классе правой кнопкой мыши и в открывшемся меню укажите пункт New > Activity Diagram (Создать диаграмму активности). 3. Назвите диаграмму «Выполнить поставку» и откройте ее двукратным щелчком мыши 4. На панели инструментов щелкните мышкой на элементе Swimline, затем на поле диаграммы. На диаграмме появится разделительная линия («водная дорожка»). 5. Установите курсор на заголовок NewSwinlane и нажмите правую клавишу мыши. В выпадающем списке нажмите Select in brousere. В браузере выделится этот объект. Нажав правую клавишу мыши в выпадающем списке выберете Open Specefication и откройте спецификацию. Измените поле Name на Клерк. Выберите в поле Class Клерк в магазине. 6. Выполните заново пункты 5-6 и присвойте полю Name Система, Class- Бухгалтерская система. 7. Найдите в браузере сплошной черный кружок (начальное состояние). Перенесите его на дорожку Клерк. 8. Выберете из панели инструментов объект Activity и помемтите его на диаграмму в “дорожку” Клерк. Измените имя объекта на ”Получить заказ”. 9. Повторите предыдущий этап, создайте на «дорожке» Клерк 4 новых Activity и присвойте им имена Проверить позицию заказа, закрепить позицию за заказом, Поставить заказ в ожидание, Скомплектовать заказ 10. Поместите на «дорожку» 2 новых объекта End State (конечное состояние). Одному из них измените поле Name на «Выполнить поставку» 11. На дорожку Система поместите новый объект Activity и присвойте полю Name “Проверить платеж”. На эту же дорожку поместите новый объект End State и измените в его спецификации поле Name на «Отменить заказ». 12. Поместить на «дорожку» Клерк 2 объекта Horisontal Sinhronization (горизонтальная синхронизация). Присвойте полю Name спецификации одного объекта «1», другого- «2». 13. Поместить на «дорожку» Клерк объект Dicision (выбор). Через спецификацию присвойте полю Name «Позиция имеется?». 14. Поместить на «дорожку» Система объект Dicision. Присвойте полю Name «Деньги поступили?». 15. Щелкните мышкой на панели инструментов объекте- стрелке State Transition (состояние перехода). Затем щелкните мышкой на диаграмме объекта начальное состояние. Удерживая кнопку мыши перенесите курсор на активность ”Получить заказ” и лишь затем отпустить курсор. В результате два объекта будут соединены стрелкой. 16. Выполните этап 14, соединив стрелкой объект Активность «Получить заказ» с объектом Horisontal Sinhronization 1. 17. Соедините этими же стрелками объекты 1 и «Проверить платеж», 1 и «Проверить позицию заказа», «Проверить заказ» и «Деньги подступили?», «Деньги поступили?» и «Отменить заказ», «Проверить позицию заказа» и «Позиция имеется», «Позиция имеется» и «Закрепить позицию за заказом», «Деньги получены?» и 2, «Закрепить позицию за заказом» и 2, «Позиция имеется?» и «Поставить заказ в ожидание», 2 и «Скомплектовать заказ», «Скомплектовать заказ» и «Выполнить поставку», «Поставить заказ в ожидание» и объект Конечное состояние (без имени). 18. Присвоим некоторым стрелкам наименование полю Event (условие перехода).Для этого, установим курсор на стрелке, соединяющей «Деньги получены?» и «Отменить заказ». Двукратным щелчком мыши откроем окно спецификации. В поле Event введем «Нет». 19. Выполним пункт 18 для стрелки, соединяющей «Деньги получены?» и 2 и присвойте Event «Да». Аналогично для стрелки соединяющей «Позиция имеется?» и «Закрепить позицию за заказом» присвоить Event «Да». Стрелке, соединяющей «Позиция имеется?» и «Поставить заказ в ожидание» - «Нет». 20. Добавим элементарные действия (Actions) к активности “Проверить позицию заказа». Установим курсор на «Проверить позицию заказа» и двукратным щелчком мыши откроем окно спецификации. Откроем закладку Actions. Установим курсор на свободное поле и нажмем правую клавиши мыши. В выпадающем меню нажмем Insert. В появившейся заставке в поле When выберем Entry(на входе в активность), В поле Name введем «Просмотреть спецификацию к заказу». Нажать Ok. Вновь нажмем курсор правой мыши и введем новое действие. Полю When прсвоим Do(промежуток между входом и выходом), а полю Name «Найти новую позицию». При вводе третьей активности полю When присвойте Exit (выход), а полю Name «Передать результаты поиска». 21. Путем перемещения объектов (установить курсор мыши- нажать- тащить- отпустить) привести диаграмму к виду, показанному на рис. 6. ![]() Рис. 6 Диаграмма активности для варианта использования «Выполнить поставку заказа» |