Файл: Иванова Г.С. Технология программирования.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 20.11.2019

Просмотров: 9497

Скачиваний: 184

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

слева

направо

). 

Сообщению

присваивают

имя

но

можно

указать

и

аргументы

и

управляющую

информацию

например

условие

формирования

или

маркер

итерации

 (*). 

Возврат

при

передаче

синхронных

сообщений

подразумевают

по

умолчанию

 
 
 
 
 
 
 
 
 
 
 

Если

объект

создается

сообщением

то

его

рисуют

справа

от

стрелки

сообщения

так

чтобы

стрелка

сообщения

входила

в

него

слева

Диаграммы

последовательностей

также

позволяют

изображать

параллельные

процессы

Асинхронные

сообщения

которые

не

блокируют

работу

вызывающего

объекта

показывают

половинкой

стрелки

 (

рис

. 7.7, 

а

). 

Такие

сообщения

могут

создавать

новую

ветвь

процесса

создавать

новый

объект

 (

рис

. 7.7,6); 

устанавливать

связь

с

уже

выполняющейся

ветвью

процесса

На

линии

жизни

в

этом

случае

дополнительно

показывают

активации

которые

обозначаются

прямоугольником

наложенным

поверх

линии

жизни

 (

рис

. 7.7, 

в

). 

Уничтожение

объекта

показывают

большим

знаком

 «X» (

рис

. 7.7, 

г

). 

При

необходимости

линию

жизни

можно

прервать

чтобы

не

уточнять

обработку

не

связанную

с

анализируемыми

объектами

 (

рис

. 7.7, 

д

). 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Пример

 7.3.

Разработать

диаграмму

последовательностей

для

сценария

Решение

задачи

(

фрагмент

варианта

использования

Выполнение

задания

от

момента

инициализации

пользователем

процесса

решения

до

его

завершения

). 

Анализ

описания

варианта

использования

показывает

что

необходимо

рассмотреть

три

варианта

последовательности

действий

а

нормальный

процесс

б

прерывание

процесса

пользователем

в

возникновение

исключения

при

выполнении

алгоритма

Нормальный

процесс

предполагает

что

при

выдаче

команды

Создать

создается

объект

Решение

управляющий

данным

сценарием

Следующее

сообщение

Начать

активизирует

этот


background image

объект

Объект

Решение

запрашивает

у

объекта

класса

Задание

тип

объекта

Алгоритм

создает

объект

требуемого

класса

и

активизирует

его

сохраняя

способность

получать

и

обрабатывать

сообщения

 (

параллельный

процесс

). 

Объект

класса

Алгоритм

реализующий

метод

запрашивает

у

объекта

класса

Задание

данные

и

начинает

обработку

используя

вспомогательные

объекты

Нормально

завершив

обработку

объект

класса

Алгоритм

реализующий

метод

передает

объекту

класса

Задание

результаты

и

возвращает

объекту

Решение

признак

нормального

завершения

Объект

Решение

уничтожает

объект

класса

Алгоритм

реализующий

метод

и

возвращает

вызвавшему

его

объекту

признак

нормального

завершения

решения

 (

рис

. 7.8, 

а

). 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

В

случае

прерывания

процесса

объект

Решение

прерывает

процесс

решения

уничтожает

объект

Алгоритм

и

возвращает

признак

прерванного

выполнения

 (

рис

. 7.8, 

б

). 

В

этом

случае

при

выполнении

обработки

возникает

аварийная

ситуация

результатом

которой

является

генерация

исключения

Обрабатывая

исключение

объект

класса

Решение

генерирует

соответствующее


background image

сообщение

пользователю

уничтожает

объект

класса

Алгоритм

реализующий

метод

и

возвращает

признак

завершения

выполнения

с

ошибкой

 (

рис

. 7.9). 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Диаграмма

кооперация

.

Диаграмма

кооперации

 - 

это

альтернативный

способ

представления

взаимодействия

объектов

в

процессе

реализации

сценария

который

позволяет

по

-

другому

взглянуть

на

ту

же

информацию

В

отличие

от

диаграмм

последовательностей

диаграммы

кооперации

показывают

потоки

данных

между

объектами

классов

что

позволяет

уточнить

связи

между

ними

Пример

 7.4.

Разработать

диаграмму

кооперации

для

сценария

Процесс

решения

Изобразим

на

Одной

диаграмме

три

возможных

случая

реализации

сценария

нумеруя

сообщения

в

порядке

их

возможной

генерации

 (

рис

. 7.10). 

 
 
 
 

 
 
 
 
 
 
 
 
 
 
 

Такое

представление

позволяет

описать

потоки

данных

передаваемых

между

объектами

классов

Решение

Задание

и

Алгоритм

реализующий

метод

для

сценария

Процесс

решения


background image

7.3. 

Уточнение

отношений

классов

Процесс

проектирования

классов

начинают

с

уточнения

отношений

между

ними

Па

этапе

проектирования

помимо

ассоциации

и

обобщения

различают

еще

два

типа

отношения

между

классами

агрегацию

и

композицию

К

сожалению

до

настоящего

времени

не

существует

единой

устоявшейся

терминологии

объектно

-

ориентированного

проектирования

В

табл

. 7.1 

приведены

соответствия

между

основными

терминами

используемыми

наиболее

известными

авторами

в

этой

области

Агрегацией

называют

ассоциацию

между

целым

и

его

частью

или

частями

Агрегацию

вместо

ассоциации

указывают

если

отношение

  «

целое

-

часть

» 

в

конкретном

случае

существенно

Например

если

колесо

нас

интересует

только

как

часть

автомобиля

то

между

соответствующими

классами

целесообразно

указать

отношение

агрегации

а

если

колесо

 - 

товар

также

как

и

автомобиль

то

связь

целое

-

часть

не

существенна

Композиция

 - 

более

сильная

разновидность

агрегации

которая

подразумевает

что

объект

-

часть

может

принадлежать

только

единственному

целому

Объект

-

часть

при

этом

создается

и

уничтожается

только

вместе

со

своим

целым

.  

Уточненные

отношения

между

классами

фиксируют

на

диаграмме

классов

Для

этого

используют

специальные

уловные

обозначения

 (

рис

. 7.11). 

 
 
 
 
 
 
 
 
 

Поскольку

отношение

ассоциации

и

его

подвиды

  (

агрегация

и

композиция

означают

наличие

обмена

сообщениями

между

объектами

классов

целесообразно

уточнить

направление

передачи

сообщений

Навигацию

(

направление

ассоциации

показывают

стрелкой

на

конце

линии

ассоциации

Если

стрелки

указаны

с

обеих

сторон

то

это

означает

двунаправленную

ассоциацию

Таблица

 7.1 

Нотация

Термины

UML 

Класс

Ассоциация

Обобщение

Агрегация

Буч

Класс

Использование

Наследование

Включение

Коад

Класс

объект

Связь

экземпляров

Обобщение

-

специализация

Часть

-

целое

Якобсон

Объект

родства

Ассоциация

Наследование

Состоит

из

Оделл

Тип

объекта

Связь

Подтип

Композиция

Рамбо

Класс

Ассоциация

Обобщение

Агрегация

Шлеер

Меллор

Объект

Связь

Подтип

Не

определена


background image

Специальное

обозначение

на

диаграмме

классов

этапа

проектирования

используют

для

указания

абстрактных

классов

и

методов

на

диаграмме

классов

их

имена

выделяют

курсивом

либо

перед

именем

класса

указывают

стереотип

 «abstract». 

UML 

также

включает

специальную

нотацию

для

обозначения

параметризованных

классов

или

шаблонов

  (

рис

. 7.12, 

а

). 

Получение

из

такого

класса

класса

с

конкретными

типами

элементов

называют

связыванием

Связывание

можно

обозначить

двумя

способами

явно

указав

тип

параметра

(

рис

. 7.12, 

б

и

используя

условное

обозначение

уточнения

 (

рис

7.12, 

в

). 

 
 
 
 
 
 
 
 

Диаграммы

классов

позволяют

также

отобразить

ограничения

которые

невозможно

показать

используя

только

понятия

рассмотренные

выше

  (

ассоциации

обобщения

атрибуты

операции

). 

Например

показать

что

средний

балл

студентов

должен

определяться

по

соответствующей

формуле

Подобную

информацию

на

диаграмме

классов

можно

представить

в

виде

записи

на

естественном

языке

или

в

виде

математической

формулы

поместив

их

в

фигурные

скобки

.  

Особое

место

в

процессе

проектирования

классов

занимает

проектирование

интерфейсов

.  

Интерфейсы

.

Интерфейсам

в

 UML 

называют

класс

содержащий

только

объявление

операций

Отдельное

описание

интерфейсов

улучшает

технологические

качества

проектируемого

программного

обеспечения

Интерфейсы

широко

применяют

при

разработке

сетевого

программного

обеспечения

которое

должно

идентично

функционировать

в

гетерогенных

средах

а

также

для

организации

взаимодействия

с

системами

управления

базами

данных

и

т

п

., 

так

как

механизм

полиморфного

наследования

позволяет

создавать

различные

реализации

одного

и

того

же

интерфейса

С

точки

зрения

теории

объектно

-

ориентированного

программирования

интерфейс

представляет

собой

особый

вид

абстрактного

класса

отличающийся

тем

что

он

не

содержит

методов

реализующих

указанные

операции

и

объявлений

полей

Другими

словами

абстрактные

классы

позволяют

определить

реализацию

некоторых

методов

а

интерфейсы

требуют

отложить

определение

всех

методов

На

диаграмме

классов

интерфейс

можно

показать

двумя

способами

с

помощью

специального

условного

обозначения

 (

рис

. 7.13, 

а

или

объявив

для

класса

стереотип

 «Interface» (

рис

. 7.13, 

б

). 

Реализацию

интерфейса

также

можно

показать

двумя

способами

сокращенно

  (

рис

. 7.14, 

а

или

используя

отношение

реализации

 (

рис

. 7.14, 

б

). 

Для

остальных

классов

ассоциированных

с

интерфейсом

следует

уточнить

ассоциацию

показав

отношение

зависимости

Это

отношение

в

данном

случае

означает

что

класс

использует

указанный

интерфейс

 (

рис

. 7.15), 

т

е

обращается

к

описанным

в

интерфейсе

функциям