
- •Основные сведения
- •1. Назначение диаграмм взаимодействия объектов системы
- •2. Создание диаграммы взаимодействия объектов системы
- •3. Инструменты, предназначенные для построения диаграмм последовательности сообщений объектов (Sequence Diagram)
- •4. Размещение объектов на диаграмме
- •5. Создание сообщений
- •6. Определение свойств сообщений
- •7. Создание диаграммы кооперации объектовна основе диаграммы последовательности сообщений объектов
- •8. Инструменты, предназначенные для построения диаграмм кооперации объектов (Collaboration Diagram)
- •9. Определение свойств связи объектов на диаграмме сотрудничества
- •Задание
- •2. На основе диаграммы последовательности обмена сообщениями координатора с другими объектами системы, построенной при выполнении предыдущего пункта задания, создать диаграмму кооперации объектов.
- •3. Разработать диаграмму последовательности обмена сообщениями в системе, разрабатываемой в соответствии с индивидуальным заданием.
- •5. Дополнить полученную диаграмму связями и произвести определение свойств этих связей.
- •6. Составить отчет.
3. Инструменты, предназначенные для построения диаграмм последовательности сообщений объектов (Sequence Diagram)
После появления на экране окна новой диаграммы последовательностисообщений объектов изменяется состав доступных инструментов: на панели инструментов размещаются знаки “SelectionTool”, “TextBox”, “Note”, “AnchorToItem”, “Object”, “ObjectMessage”, “MessagetoSelf”, “ReturnMessage”, “DestructionMarker”. Первые четыре были рассмотрены выше при описании порядка построения других диаграмм, поэтому здесь эти знаки не рассматриваются.
Инструмент “объект” (Object) обеспечивает включение нового объекта в диаграмму. Каждый объект является реализацией некоторого класса, поэтому в его заголовке можно указать имя класса, на основе которого этот объект создаётся.
Инструмент “сообщение объекта” (ObjectMessage) позволяет создать сообщение, передаваемое от одного объекта к другому. Так как все взаимодействие в объектно-ориентированных системах осуществляются при помощи сообщений от одного объекта к другому объекту, то классы должны обеспечивать отправку или прием сообщений.
Знак “сообщение саму себе” (MessagetoSelf) означает, что отправитель сообщения является одновременно и его получателем. При обмене сообщениями объекты одних классов являются клиентами и принимают сообщения, а другие объекты других классов представляют собой серверы и отправляют сообщения. В том случае, когда объект некоторого класса отправляет сообщение самому себе, он одновременно является и сервером и клиентом, что и отражает данный знак.
Знак “ответ” (ReturnMessage) представляет собой не новое сообщение, а реакцию на ранее переданное сообщение. На уровне реализации это означает завершение ранее вызванной процедуры. На диаграмме этот знак изображается в виде пунктирной стрелки. Данный знак может быть опущен, так как он подразумевается в конце каждого действия.
Наконец, знак “метка уничтожения” (DestructionMarker) используется для обозначения самоуничтожения объекта.
4. Размещение объектов на диаграмме
Построение диаграммы последовательности сообщений начинается с размещения объектов, которое реализуется при помощи инструмента “объект”. Для помещения на диаграмму очередного объекта надо выбрать указанный инструмент, подвести указатель мыши к верхней границы окна диаграммы и выполнить щелчок левой клавишей. При этом на экране появляется прямоугольник с отрезком пунктирной прямой, который примыкает к нижней части прямоугольника. Этот отрезок пунктирной прямой является началом линии жизни объекта. Если по прямоугольнику щёлкнуть правой клавишей «мыши» и выполнить команду контекстного меню “OpenSpecification…” или дважды щёлкнуть по прямоугольнику значка левой клавишей мыши, то на экране появляется окно определения свойств объекта (ObjectSpecification…). Это окно включает в себя поляName,ClassиDocumentation, переключательPersistenceи флагMultipleinstances.
В поле Nameвводится имя объекта при помощи клавиатуры. Имя класса задаётся в полеClassс использованием пополняемого справочника. Состояние переключателяPersistenceопределяет время жизни объекта, т. е. время от его создания до уничтожения.
Обычно объекты существуют в пределах их области видимости и автоматически уничтожаются системой, когда выходят за эти пределы. Это происходит в тех случаях, когда, например, в подпрограмме определяется объект класса, который автоматически уничтожается при завершении подпрограммы. Кроме того, в языке C++ можно создать и удалить объект, не дожидаясь, когда это сделает система, при помощи команд newиdelete. Для того чтобы не забыть освободить выделенную память, обычно память выделяется при выполнении конструктора класса, а освобождается при выполнении деструктора. ВRationalRoseуправление временем жизни объекта моделируется установкой переключателяPersistenceв одно из следующих состояний:
• Persistent – при этом область видимости объекта превышает время жизни.
• Static – этот режим определяет, что объект существует на всем протяжении работы системы.
• Transient – означает, что время жизни объекта и область его видимости совпадают. Этот вариант устанавливается по умолчанию и используется чаще всего.
Для того чтобы показать, что переключатель Persistenceопределяет время жизни всех объектов данного класса, можно установить флагMultipleinstances.