Главная страница
Навигация по странице:

  • Диаграммы Взаимодействия

  • ) отображают один из процессов обработки информации варианте использования. В варианте использования "Снять деньги" из примера

  • Sequence

  • но организована она по-другому см. рис.

  • называют нечто, заключающее (инкапсулирующее) в себе некоторые данные и поведение. Это термин, описывающий реальные, конкретные предметы.

  • blueprint

  • Использование диаграмм Взаимодействия

  • Диаграммы Последовательности

  • Создание диаграммы Последовательности

  • Создание Кооперативной диаграммы

  • New

  • Панель инструментов Кооперативной диаграммы

  • Работа с действующими лицами на диаграмме Взаимодействия

  • Определение устойчивости объекта

  • Добавление сообщений на диаграммы Взаимодействия

  • Установка синхронизации сообщений

  • Инкапсуляцией


    Скачать 0.92 Mb.
    НазваниеИнкапсуляцией
    Дата28.11.2018
    Размер0.92 Mb.
    Формат файлаdoc
    Имя файлаUML.doc
    ТипДокументы
    #58103
    страница4 из 4
    1   2   3   4

    Взаимодействие объектов

    Существуют два типа диаграмм Взаимодействия: диаграммы Последовательности и Кооперативные диаграммы. Оба отображают события, участвующие в процессе обработки информации варианта использования, и сообщения, которыми обмениваются объекты. События на диаграмме Последовательности упорядочены по времени, а Кооперативная диаграмма организована вокруг самих объектов.

    Диаграммы Взаимодействия

    На диаграмме Взаимодействия (Interaction) отображают один из процессов обработки информации варианте использования. В варианте использования "Снять деньги" из примера ATM имеется несколько альтернативных потоков. Это значит, что для данного варианта использования нужно создать неско­лько диаграмм Взаимодействия. В результате на одной диаграмме будет показано, что происходит, когда все в порядке. На других будет отображен ход событий в альтернативных потоках: что произой­дет, если клиент введет неправильный идентификационный номер, если денег на его счету меньше чем он хочет снять, и т.д.

    Рассмотрим два типа диаграмм Взаимодействия — диаграммы Последовательности (Sequence) Кооперативные диаграммы (Collaboration). Диаграммы первого типа организованы по времени. Пример такой диаграммы приведен на рис.



    На Кооперативной диаграмме отображается та же информация, но организована она по-другому см. рис.



    На диаграммах обоих типов представлена одна и та же информация, однако между ними существу: ют два различия. Диаграммы Последовательности заостряют внимание на управлении, Кооперативные диаграммы отображают поток данных.

    Диаграммы Взаимодействия визуализируют практически те же детали, что уже были описаны в - потоке событий, однако представляют их в форме, более удобной для разработчика. Главное здесь - объекты, которые должны быть созданы для реализации функциональных возможностей, заложенных в вариант использования. На диаграммах Последовательности и Кооперативных диаграммах могут быть показаны объекты, классы или то и другое вместе.

    Объектом называют нечто, заключающее (инкапсулирующее) в себе некоторые данные и поведение. Это термин, описывающий реальные, конкретные предметы.

    Класс — это некая сущность, представляющая собой как бы схему (blueprint) объекта. Иными словами, класс определяет данные и поведение, которыми должен обладать объект.

    Использование диаграмм Взаимодействия

    С помощью диаграмм Взаимодействия проектировщики и разработчики системы могут определить классы, которые нужно создать, связи между ними, а также операции и ответственности (responsibili­ties) каждого класса. Диаграммы Взаимодействия — краеугольный камень, на котором возводится оставшаяся часть проекта.

    Диаграммы Последовательности упорядочены по времени. Они полезны для того, кто хочет понять логическую последовательность событий в сценарии. Хотя информация о последовательности входит и в Кооперативные диаграммы, она лучше воспринимается на диаграмме Последовательно­сти.

    Кооперативные диаграммы полезны в тех случаях, когда нужно оценить последствия сделанных изменений. Кооперативная диаграмма показывает, какие объекты взаимодействуют друг с другом. При внесении изменений в объект вы сразу поймете, на какие другие объекты это повлияет. Диаграммы Взаимодействия содержат:

    • Объекты. Можно использовать имена как объектов, так и классов, или того и другого.

    • Сообщения. С помощью сообщения один объект или класс запрашивает у другого выполнения какой-то конкретной функции. Например, форма может запросить у объекта Отчет напечатать ее.

    Создавая диаграммы Взаимодействия, следует помнить, что вы таким образом назначаете объек­там определенные ответственности. Помещая на диаграмму сообщение, вы назначаете ответствен­ность получающему его объекту. Следите за тем, чтобы объекты и их ответственности соответствовали друг другу. Например, в большинстве приложений экраны и формы не должны реа­лизовывать никаких бизнес-процессов. С их помощью следует только вводить и просматривать ин­формацию. Отделяя интерфейс от бизнес-логики, вы создаете архитектуру, уменьшающую "эффект ряби" от изменений. Тогда внесение изменений в бизнес-логику не затронет интерфейс. С другой сто­роны, если вы меняете формат одного или двух экранов, то хотя бы бизнес-логика останется неизмен­ной. Еще пример: если вам нужно распечатать отчет обо всех балансах на всех счетах, этим не должен заниматься объект Счет Джо, так как его ответственности должны быть связаны только со счетом Джо и его деньгами. За просмотр всех счетов и генерацию соответствующего отчета должен отвечать другой объект.

    Диаграммы Последовательности

    Диаграмма Последовательности — это упорядоченная по времени диаграмма Взаимодействия, читать ее следует сверху вниз. Как упоминалось раньше, у каждого варианта использования имеется большое количество альтернативных потоков. Каждая диаграмма Последовательности описывает один из по­токов варианта использования. Например, на рис. 4.3 приведена диаграмма Последовательности, по­казывающая, как клиент банка Джо снимает со счета $20 с помощью автоматического банкомата (ATM).

    Участвующие в потоке объекты нарисованы в прямоугольниках в верхней части диаграммы. В нашем примере имеются пять объектов: Джо, устройство для чтения карточки, экран ATM, счет Джо и ; кассовый аппарат. Объект действующего лица, Джо, инициирующий вариант использования, показан в верхнем левом углу диаграммы.

    Процесс начинается, когда Джо вставляет карточку в устройство для ее чтения. Это устройство считывает номер карточки и выдает экрану ATM команду инициализации. ATM запрашивает у Джо его идентификационный номер. Джо вводит свой номер (1234), и ATM открывает его счет. Идентификационный номер Джо подтверждается, и ATM предлагает Джо выбрать транзакцию. Джо указывает "Снятие денег". ATM запрашивает требуемую сумму. Джо вводит $20. ATM удостоверяется, что на счету Джо имеется достаточно денег, и вычитает $20 из его счета. Затем выдается требуемая сумма, и ; Джо получает обратно свою карточку.



    У каждого объекта имеется линия жизни (lifeline), изображаемая в виде вертикальной штриховой линии под объектом. Сообщения, соответствующие коммуникациям между объектами, рисуют между линиями жизни объектов. Сообщение показывает, что один объект вызывает функцию другого. Да­лее, когда мы определим операции классов, каждое сообщение станет операцией. Сообщения могут быть рефлексивными, что соответствует обращению объекта к своей собственной операции. В на­шем примере сообщение 2 демонстрирует, что устройство чтения карточки обращается к самому себе, чтобы прочитать номер карточки.

    Создание диаграммы Последовательности

    Диаграммы Последовательности можно создавать в представлении Вариантов Использования или в Логическом представлении браузера. Как показано на рис. 4.4, диаграммы Последовательности должны находиться непосредственно внутри варианта использования или непосредственно внутри пакета.

    Для создания новой диаграммы Последовательности:

    • Щелкните правой кнопкой мыши на соответствующем пакете или варианте использования в браузере.

    • В открывшемся меню выберите пункт New >- Sequence Diagram (Создать >- Диаграмма После­довательности).

    • Дайте новой диаграмме Последовательности имя.

    • Дважды щелкнув на диаграмме в браузере, откройте ее.

    • Открыть существующую диаграмму Последовательности можно следующим образом:

    • Найдите ее в представлении Вариантов Использования браузера.

    • Откройте диаграмму, дважды щелкнув на ней мышью.

    Панель инструментов диаграммы Последовательности

    Когда открывается диаграмма Последовательности, панель инструментов диаграммы изменяется так, чтобы вы могли помещать на диаграмму объекты, сообщения и другие элементы (см. ниже). В табли­це приводится список кнопок панели диаграммы Последовательности и объясняется их назначе­ние.



    Кооперативные диаграммы

    Подобно диаграммам Последовательности, Кооперативные диаграммы (Collaboration) отображают по ток событий в конкретном сценарии варианта использования. Диаграммы Последовательности ут£ рядочены по времени, а Кооперативные диаграммы больше внимания заостряют на связях междг объектами. На рис. 4.6 приведена Кооперативная диаграмма, описывающая, как Джо снимает со счета 20$



    Создание Кооперативной диаграммы

    Как и диаграммы Последовательности, Кооперативные диаграммы обычно создаются в браузере и размещаются под вариантом использования или пакетом. Можно сначала создать диаграмму Последовательности, а затем нажать клавишу F5. В этом случае Rose сама создаст Кооперативную диаграмму из указанной диаграм­мы Последовательности.

    Для создания новой Кооперативной диаграммы:

    • Щелкните правой кнопкой мыши на нужном варианте использования в браузере.

    • В открывшемся меню выберите пункт New > Collaboration Diagram (Создать >- Кооперативная диаграмма).

    • Дайте этой диаграмме имя.

    • Дважды щелкнув мышью на диаграмме в браузере, откройте ее.

    Панель инструментов Кооперативной диаграммы

    Панель инструментов Кооперативной диаграммы чрезвычайно напоминает панель инструментов диа­граммы Последовательности. Однако здесь имеется несколько параметров, которые не доступны на диаграмме Последовательности, например связь с объектом и поток данных. В последующих разделах будет показано, как с помощью кнопок этой панели добавлять на диаграмму новые элементы. В табли­це 4.2 приведен список кнопок панели инструментов Кооперативной диаграммы.





    Работа с действующими лицами на диаграмме Взаимодействия

    На любой диаграмме Последовательности или Кооперативной диаграмме должен быть объект-действующее лицо. Он является внешним стимулом, дающим системе команду на выполнение какой-то функции. Объекты-действующие лица на диаграмме Взаимодействия содержат действующих лиц взаимодействующих с вариантом использования на диаграмме Вариантов Использования.

    Поместить на диаграмму Взаимодействия объект-действующее лицо можно следующим образом:

    • Откройте диаграмму Взаимодействия.

    • Выберите действующее лицо в браузере.

    • Перетащите его из браузера на открытую диаграмму.

    Для удаления объекта-действующего лица с диаграммы Взаимодействия:

    • Выделите действующее лицо на диаграмме Взаимодействия.

    • В меню модели выберите пункт Edit Delete from Model (Правка ^ Удалить из модели) или на­жмите сочетание клавиш CTRL+D.

    Определение устойчивости объекта

    В среде Rose для каждого объекта на диаграмме можно задать его устойчивость (persistence). Поддер­живаются следующие варианты:

    • Persistent (Устойчивый) Устойчивый объект сохраняется в базе данных или другим способом, обеспечивающим постоянное хранение. Такой объект будет существовать даже после прекраще­ния работы программы.

    • Static (Статичный) Статичный объект сохраняется в памяти компьютера в течение всего време­ни работы программы. Он, в частности, продолжает существование после выполнения отражен­ных на диаграмме Последовательности действий, но не сохраняется после прекращения работы

    • Transient (Временный) Временный объект сохраняется в памяти в течение очень короткого времени (например, пока не закончится выполнение процессов, определенных в диаграмме Последовательности ).

    Для определения устойчивости объекта:

    • Щелкните правой кнопкой мыши на объекте на диаграмме Последовательности или Коопера­тивной диаграмме.

    • В появившемся меню выберите пункт Open Specification (Открыть спецификацию).

    • Установите переключатель Persistence в значение Persistent, Static или Transient.

    Работа с несколькими экземплярами объекта Rose дает возможность с помощью одной пиктограм­мы представлять несколько экземпляров одного и того же класса. Допустим, что вы хотите отобра­зить список сотрудников на диаграмме Последовательности или Кооперативной диаграмме. Вместо того чтобы каждого сотрудника пред­ставлять как один объект, вы можете показать их все сразу с помощью значка множественного экзем­пляра. Нотация UML для множественного экземпляра выглядит следующим образом:



    Для работы с множественными экземплярами объекта:

    • Щелкните правой кнопкой мыши на объекте на диаграмме Последовательности или Кооперативнои диаграмме.

    • В появившемся меню выберите пункт Open Specification (Открыть спецификацию).

    • Установите или сбросьте флажок Multiple Instances (Множественные экземпляры). На Коопера­тивной диаграмме для этого объекта будет показана соответствующая пиктограмма (значок множественного или одиночного объекта). На диаграмме Последовательности всегда выводит­ся пиктограмма одиночного объекта.

    Работа с сообщениями

    Сообщение (message) — это связь между объектами, в которой один из них (клиент) требует от другого (сервера) выполнения каких-то действий.

    При генерации кода сообщения транслируются в вызовы функций.

    В приведенном ниже примере одна форма просит другую, чтобы та вывела ее на экран:



    Добавление сообщений на диаграммы Взаимодействия

    Расположив объекты на диаграмме Последовательности или Кооперативной диаграмме, нужно пока­зать сообщения между объектами. На диаграмме Последовательности рисуется стрелка между линия­ми жизни двух объектов. На Кооперативной диаграмме указывается связь между объектами, а затем гуда помещаются сообщения.

    Добавление сообщений на диаграмму Последовательности

    На диаграмме Последовательности сообщение изображают в виде стрелки, которая проводится меж­ду линиями жизни двух объектов или от линии жизни объекта к самой себе. Сообщения располагают в хронологическом порядке сверху вниз.

    Поместить сообщение на диаграмму Последовательности можно следующим образом:

    • Нажмите кнопку Object Message (Сообщение объекта) панели инструментов.

    • Нажав левую кнопку мыши, проведите ею от линии жизни объекта или действующего лица, посылающего сообщение, к объекту или действующему лицу, получающему сообщение.

    • Впечатайте текст сообщения.

    Удаление сообщений с диаграммы Последовательности

    В процессе работы с диаграммами Последовательности может потребоваться удалить ранее нарисо­ванные сообщения. При этом оставшиеся сообщения будут автоматически перенумерованы.

    Для удаления сообщения с диаграммы Последовательности:

    • Выделите удаляемое сообщение.

    • В меню модели выберите пункт Edit > Delete from Model (Правка > Удалить из модели) или на­жмите комбинацию клавиш CTRL+D.

    Нумерация сообщений на диаграмме Последовательности

    Хотя диаграмму всегда читают сверху вниз, вы можете еще и пронумеровать сообщения, чтобы по­казать порядок их. Номера сообщений на диаграммах Взаимодействия по­казывать необязательно. По умолчанию нумерация сообщений на диаграммах Последовательности отключена.

    Если нужно включить или выключить нумерацию сообщений:

    • В меню выберите пункт Tools Options (Инструменты Параметры).

    • Перейдите на вкладку Diagram (Диаграмма).

    • Установите или сбросьте флажок Sequence numbering (Нумерация сообщений)


    Установка синхронизации сообщений

    На вкладке Detail (Подробно) окна спецификации сообщений можно определить синхронизацию посылаемых сообщений



    Соответствующая сообщению стрелка изменится, если этот параметр будет определен как "с отка­зом становиться в очередь", "с лимитированным временем ожидания" или "асинхронное". Доступны пять значений параметра синхронизации:

    Simple (Простое) Используется по умолчанию. Означает, что все сообщения выполняются в од­ном потоке управления. На диаграммах Последовательности и Кооперативных диаграммах сообщения такого типа показывают следующим образом:



    Synchronous (Синхронное) Применяется, когда клиент посылает сообщение и ждет ответа пользователя. На диаграммах Последовательности и Кооперативных диаграммах синхронные сообщения показывают следующим образом:



    Balking (С отказом становиться в очередь) Клиент посылает сообщение серверу. Если сервер не может немедленно принять сообщение, оно отменяется. На диаграммах Последовательности и Кооперативных диаграммах такие сообщения показывают следующим образом:



    Timeout (С лимитированным временем ожидания) Клиент посылает сообщение серверу, а затем ждет указанное время. Если в течение этого времени сервер не принимает сообщение, оно отменяется. На диаграммах Последовательности и Кооперативных диаграммах сообщения с ли­митированным временем ожидания показывают следующим образом:



    Asynchronous (Асинхронное) Клиент посылает сообщение серверу и продолжает свою работу, не ожидая подтверждения о получении. На диаграммах Последовательности и Кооперативных диаграммах такие сообщения показывают следующим образом:



    Задать синхронизацию сообщения можно следующим образом:

    • Дважды щелкните на сообщении на диаграмме Последовательности или Кооперативной диа­грамме.

    • В окне спецификации сообщения перейдите на вкладку Detail (Подробно).

    • Установите переключатель Synchronization в нужное значение.
    1   2   3   4


    написать администратору сайта