- •Введение
- •1 Цели и задачи курсового проектирования
- •2 Организация курсового проектирования
- •3 Задание на курсовое проектирование
- •4 Структура пояснительной записки
- •4.1 Типовая структура
- •4.2 Титульный лист
- •4.3 Лист задания
- •4.4 Раздел «Введение»
- •4.5 Раздел «Постановка задачи»
- •4.6 Раздел «Выбор метода решения»
- •5 Метод
- •5.1 Объектно-ориентированный анализ
- •5.2 Объектно-ориентированное проектирование
- •5.2.1 Диаграммы классов
- •5.2.2 Диаграммы объектов
- •5.2.3 Диаграммы состояний и переходов
- •5.2.4 Диаграммы взаимодействия
- •5.3 Объектно-ориентированное программирование
- •5.3.1 Диаграммы модулей
- •5.3.2 Диаграммы процессов
- •5.3.3 Протоколы классов
- •Часть 1. Работа с оо словарем ПрО.
- •Часть 2. Работа с crc-карточками.
- •Часть 3. Работа с диаграммой классов.
- •Часть 4. Определение модификаторов доступа, типов данных и начальных значений.
- •Часть 5. Реализация методов.
- •Часть 6. Распределение классов по модулям.
- •Часть 7. Реализация многопоточности.
- •5.3.4 Реализация модуля главной программы
- •6 Указания по оформлению материалов курсового проекта
- •6.1 Требования к оформлению пояснительной записки
- •6.2 Требования к оформлению программного продукта
- •Перечень ссылок
- •Приложение а Тематика курсовых проектов
- •Приложение б Пример оформления титульного листа
- •Приложение в Пример оформления листа задания на курсовое проектирование
- •Приложение г Пример оформления листа «Реферат»
- •Приложение д Пример оформления листа «Содержание»
- •Приложение е Пример оформления листа «Перечень обозначений, символов, единиц, сокращений и терминов»
- •Приложение ж Пример оформления Технического задания
- •Приложение з Пример оформления листинга программы Приложение г Листинги программных модулей
- •Приложение и Пример оформления экранных форм
5.2.2 Диаграммы объектов
Диаграмма объектов показывает существующие объекты и их связи в логическом проекте системы [2]. Диаграмма представляет собой мгновенный снимок потока событий в некоторой конфигурации объектов. При анализе диаграммы объектов используются для показа семантики основных и второстепенных сценариев, которые отслеживают поведение системы. При проектировании диаграммы объектов используются для иллюстрации семантики механизмов в логическом проектировании системы.
Существенные элементы диаграммы объектов – объекты и их отношения. На рис. 5.9 показан значок, который изображает объект на диаграмме объектов.
Рисунок
5.9 – Значок объекта
Имя объекта следует синтаксису для атрибутов, и может быть записано в одной из трех следующих форм:
A - только имя объекта;
:C - только класс объектов;
A:C - имя объекта и класса.
Если несколько значков объектов на одной диаграмме используют одно и то же неквалифицированное имя (то есть имя без указания класса), то они означают один и тот же объект. В противном случае каждый значок означает отдельный объект. (На одной диаграмме могут присутствовать значки объектов с одинаковыми неквалифицированными именами, но относящиеся к разным классам, в том случае, если эти классы имеют общего предшественника. Это позволяет представить распространение операций от подкласса к суперклассу и наоборот). Если на разных диаграммах есть объекты с одинаковыми неквалифицированными именами, то это разные объекты, если только их имена не квалифицированы явно.
Объекты взаимодействуют с другими объектами через связи, обозначение которых показано на рис. 5.10. Подобно тому, как объект является экземпляром класса, связь является экземпляром ассоциации.
Рисунок
5.10 – Значок связи между объектами
Связь между двумя объектами (включая утилиты классов) может существовать тогда и только тогда, когда существует ассоциация между соответствующими классами. Следовательно, существование ассоциаций между двумя классами означает существование коммуникации (то есть канала связи) между их экземплярами, по которой объекты могут посылать друг другу сообщения. Все классы неявно имеют ассоциации сами с собой и, следовательно, объект может послать сообщение сам себе.
Пусть имеются объекты A и B и связь L между ними. Тогда A может вызвать любую операцию, имеющуюся в классе B и доступную A. То же верно для операций над A, вызываемых B. Объект, вызывающий операцию, называется объект-клиент, а объект, который предоставляет операцию, - объект-сервер. Обычно отправитель сообщения знает получателя, но обратное необязательно.
В установившемся состоянии структуры классов и объектов системы должны быть согласованы. Если мы показываем на диаграмме операцию M на классе B, вызванную по связи L, то М должна быть объявлена в спецификации B, или в спецификациях его суперклассов.
Как показано на рис. 5.10, рядом с соответствующей связью на диаграмме можно записать набор сообщений. Каждое сообщение состоит из следующих трех элементов:
символ синхронизации, обозначающий направление вызова;
вызов операции или извещение о событии;
необязательный порядковый номер.
Направление сообщения обозначается стрелкой, указывающей на объект-сервер. Этот символ означает простейшую форму передачи сообщений, семантика которой гарантирована только в присутствии единственного потока контроля.
Вызов операции - наиболее общая форма сообщения. Она подчиняется ранее описанному синтаксису операций, но, в отличие от него, здесь могут быть приведены фактические параметры, подходящие к сигнатуре операции:
N() - только имя операции;
RN(arguments) - возвращаемое значение, имя и фактические параметры операции.
Сопоставление фактических параметров с формальными осуществляется в порядке следования. Если возвращаемый операцией объект или фактические параметры используют неквалифицированные имена, совпадающие с другими неквалифицированными именами на диаграмме, то подразумевается, что они именуют одинаковые объекты, а следовательно, их классы должны подходить к сигнатуре операции. Таким образом, можно представлять взаимодействия, в ходе которых объекты передаются в качестве параметров или возвращаются, как результат операции.
Сообщение может извещать о событии. Оно может представлять символьное имя, объект или имя некоторой операции. Во всяком случае, имя события должно быть определено на соответствующей классу объекта-сервера диаграмме переходов и состояний. Если извещение о событии является операцией, то оно может включать фактические параметры.
Если порядковый номер явно не указан, то сообщение может быть послано независимо от других сообщений, указанных на данной диаграмме объектов. Чтобы указать явный порядок событий, нужно их пронумеровать. Нумерация начинается с единицы и добавляется как необязательный префикс к вызову операции или извещению о событии. Порядковый номер показывает относительный порядок посылки сообщений. Сообщения с одинаковыми номерами не упорядочены друг относительно друга; сообщение с меньшим порядковым номером посылается до сообщения с большим номером. Повторение порядковых номеров или их отсутствие говорит о частичной упорядоченности сообщений.
Пример. Диаграмма объектов.
На рис. 5.11 приведена диаграмма объектов, на которой изображено по одному экземпляру каждого класса (объекту). Используя данную диаграмму можно проследить сценарий взаимодействия объектов.
Человек использует метод Random::Normal для генерации продолжительности времени до следующего воздействия на печь.
Человек использует метод Random::Uniform для определения того, на что он будет воздействовать: на кнопку или дверь.
Человек проверяет состояние двери.
В зависимости от состояния открывает ее.
Либо закрывает.
Нажимает кнопку.
Печь проверяет состояние двери.
И состояние кнопки.
Устанавливает время работы таймера.
И включает его.
Соответственно включает силовой элемент.
И лампу.
Если время, которое отсчитывает таймер, истекло.
Выключается силовой элемент.
И лампа.
Печь при помощи спикера издает звуковой сигнал.
Который слышит человек.
На диаграмме используются дополнительные обозначения. На шаге 13 при проверке печью, истекло ли время таймера, возвращается его текущее значение timer.time. На некоторых объектах указана их область видимости. Для указания видимости могут быть использованы следующие обозначения:
G - сервер глобален для клиента;
P - сервер является параметром некоторой операции клиента;
F - сервер является частью клиента;
L - сервер локально определен в области видимости клиента.
Рисунок
5.11 – Диаграмма объектов
