Материал: Лабораторные_Архитерктура ИС

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

1

3

Служащий

Служащий

с

почасовой

оплатой

Служащий

на

окладе

Временный

служащий

Рис

1

.3. 

Обобщение

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

лица

Нет

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

всегда

создавать

связи

этого

типа

В

общем

случае

они

нужны

если

поведение

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

лица

одного

типа

отличается

от

поведения

другого

постольку

поскольку

это

затрагивает

систему

Если

оба

подтипа

используют

одни

и

те

же

варианты

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

показывать

обобщение

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

лица

не

требуется

.

Варианты

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

являются

необходимым

средством

на

стадии

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

требований

к

ПО

Каждый

вариант

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

  –

это

потенциальное

требование

к

системе

и

пока

оно

не

выявлено

,

невозможно

запланировать

его

реализацию

.

1.4. 

Диаграммы

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

Диаграммы

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

 (interaction diagrams) 

описывают

поведение

взаимодействующих

групп

объектов

.

Как

правило

диаграмма

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

охватывает

поведение

объектов

в

рамках

только

одного

варианта

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

На

такой

диаграмме

отображается

ряд

объектов

и

те

сообщения

которыми

они

обмениваются

между

собой

.

Сообщение

 (message) 

это

средство

с

помощью

которого

объект

-

отправитель

запрашивает

у

объекта

получателя

выполнение

одной

из

его

операций

.

Информационное

 (informative) 

сообщение

 – 

это

сообщение

,

снабжающее

объект

-

получатель

некоторой

информацией

для

обновления

его

состояния

.

background image

1

4

Сообщение

-

запрос

 (interrogative) 

– 

это

сообщение

запрашивающее

выдачу

некоторой

информации

об

объекте

-

получателе

.

Императивное

 (imperative) 

сообщение

 – 

это

сообщение

,

запрашивающее

у

объекта

-

получателя

выполнение

некоторых

действий

.

Существует

два

вида

диаграмм

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

диаграммы

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

 (sequence diagrams) 

и

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

диаграммы

(collaboration diagrams).

1.4.1. 

Диаграммы

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

Диаграммы

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

отражают

поток

событий

,

происходящих

в

рамках

варианта

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

Например

вариант

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

  «

Снять

деньги

» 

предусматривает

несколько

возможных

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

такие

как

снятие

денег

попытка

снять

деньги

,

не

имея

их

достаточного

количества

на

счету

попытка

снять

деньги

по

неправильному

идентификационному

номеру

и

некоторые

другие

.

Нормальный

сценарий

снятия

денег

со

счета

  (

при

отсутствии

таких

проблем

как

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

идентификационный

номер

или

недостаток

денег

на

счете

показан

на

рис

1

.4.

Эта

диаграмма

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

показывает

поток

событий

в

рамках

варианта

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

 «

Снять

деньги

». 

Все

действующие

лица

показаны

в

верхней

части

диаграммы

в

приведенном

выше

примере

изображено

действующее

лицо

Клиент

Объекты

требуемые

системе

для

выполнения

варианта

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

  «

Снять

деньги

», 

также

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

в

верхней

части

диаграммы

Стрелки

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

сообщениям

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

между

действующим

лицом

и

объектом

или

между

объектами

для

выполнения

требуемых

функций

.

На

диаграмме

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

объект

изображается

в

виде

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

от

которого

вниз

проведена

пунктирная

вертикальная

линия

Эта

линия

называется

линией

жизни

 (lifeline) 

объекта

Она

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

собой

фрагмент

жизненного

цикла

объекта

в

процессе

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

.

background image

1

5

Рис

1

.4. 

Диаграмма

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

для

снятия

клиентом

денег

со

счета

Иван

 :

Клиент

Приемник

карт

Экран

ATM

Счет

Ивана

Кассовый

аппарат

Управление

АТМ

1

Принять

карту

2: 

Считать

карты

1

0: 

Выбор

действия

(

Снять

со

счета

)

1

2: 

Ввод

суммы

 (20 

рублей

)

1

6: 

Уменьшить

вклад

 (20 

руб

)

3: 

Инициализировать

экран

1

5: 

Проверить

вклад

 (20 

руб

.)

7: 

Открыть

счет

8: 

Проверить

  PIN-

код

4: 

Запросить

 PIN-

код

6: 

Открыть

счет

9: 

Запросить

действие

11

Запросить

сумму

1

3: 

Снять

 (20 

руб

.)

1

4: 

Снять

 (20 

руб

.)

1

8: 

Вернуть

карту

1

7: 

Выдать

 (20 

руб

.)

5: 

Ввод

 PIN-

кода

 (

1

234)

background image

1

6

Каждое

сообщение

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

в

виде

стрелки

между

линиями

жизни

двух

объектов

Сообщения

появляются

в

том

порядке

как

они

показаны

на

странице

сверху

вниз

Каждое

сообщение

помечается

как

минимум

именем

сообщения

при

желании

можно

добавить

также

аргументы

и

некоторую

управляющую

информацию

и

кроме

того

можно

показать

само

-

делегирование

 (self-delegation) – 

сообщение

которое

объект

посылает

самому

себе

при

этом

стрелка

сообщения

указывает

на

ту

же

самую

линию

жизни

.

Хороший

способ

первоначального

обнаружения

некоторых

объектов

 –

это

изучение

имен

существительных

в

потоке

событий

Можно

также

прочитать

документы

описывающие

конкретный

сценарий

.

Под

сценарием

понимается

конкретный

экземпляр

потока

событий

Поток

событий

для

варианта

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

 «

Снять

деньги

» 

говорит

о

человеке

,

снимающем

некоторую

сумму

денег

со

счета

с

помощью

АТМ

.

Не

все

объекты

появляются

в

потоке

событий

Там

например

может

не

быть

форм

для

заполнения

но

их

необходимо

показать

на

диаграмме

,

чтобы

позволить

действующему

лицу

ввести

новую

информацию

в

систему

или

просмотреть

её

В

потоке

событий

скорее

всего

также

не

будет

и

управляющих

объектов

 (control objects). 

Эти

объекты

управляют

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

потока

в

варианте

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

.

1.4.2. 

Кооперативные

диаграммы

Вторым

видом

диаграммы

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

является

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

диаграмма

.

Подобно

диаграммам

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

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

диаграммы

(collaborations) 

отображают

поток

событий

через

конкретный

сценарий

варианта

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

Диаграммы

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

упорядочены

по

времени

а

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

диаграммы

больше

внимания

заостряют

на

связях

между

объектами

На

рис

1

.5 

приведена

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

диаграмма

описывающая

как

клиент

снимает

деньги

со

счета

.

Как

видно

из

рисунка

здесь

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

вся

та

информация

которая

была

и

на

диаграмме

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

но

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

диаграмма

по

-

другому

описывает

поток

событий

Из

нее

легче

понять

связи

между

объектами

однако

труднее

уяснить

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

событий

.

background image

1

7

Приемник

карт

Иван

 : 

Клиент

Экран

 ATM

Счет

Ивана

Кассовый

аппарат

Управление

 ATM

2:

Считать

карты

4: 

Запросить

  PIN-

код

9: 

Запросить

действие

11

Запросить

сумму

1

5: 

Проверить

вклад

 (20 

руб

.)

1

6: 

Уменьшить

вклад

 (20 

руб

.)

1

Принять

карту

3: 

Инициализировать

экран

1

0: 

Выбор

действия

 (

Снять

со

счета

)

1

2: 

Ввод

суммы

 (20 

руб

.)

5: 

Ввод

 PIN-

кода

 (

1

234)

6: 

Открыть

счет

1

3: 

Снять

 (20 

руб

.)

7: 

Открыть

счет

8: 

Проверить

 PIN-

код

1

4: 

Снять

 (20 

руб

.)

1

8: 

Вернуть

карту

1

7: 

Выдать

 (20 

руб

.)

Рис

1

.5. 

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

диаграмма

описывающая

процесс

снятия

клиентом

денег

со

своего

счета

По

этой

причине

часто

для

какого

-

либо

сценария

создают

диаграммы

обоих

типов

Хотя

они

служат

одной

и

той

же

цели

и

содержат

одну

и

ту

же

информацию

но

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

ее

с

различных

точек

зрения

.

На

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

диаграмме

так

же

как

и

на

диаграмме

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

стрелки

обозначают

сообщения

обмен

которыми

осуществляется

в

рамках

данного

варианта

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

Их

временн

á

я

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

однако

указывается

путем

нумерации

сообщений

.

1.5. 

Диаграммы

классов

1.5.1. 

Общие

сведения

Диаграмма

классов

определяет

типы

классов

системы

и

различного

рода

статические

связи

которые

существуют

между

ними

На

диаграммах

классов

изображаются

также

атрибуты

классов

операции

классов

и

ограничения

которые

накладываются

на

связи

между

классами

.

Источник: https://files.student-it.ru/previewfile/15390