SlideShare a Scribd company logo
1 of 67
Учебный курс
 Язык UML в анализе и проектировании
программных систем и бизнес-процессов

                 Лекция 9
     Дополнительные диаграммы
           языка UML 2



                 Автор:
   Леоненков Александр Васильевич
         кандидат технических наук,
        старший научный сотрудник
Диаграмма пакетов
- предназначена для представления размещения элементов
модели в пакетах и спецификации зависимостей между
пакетами и их элементами
Пакет (package) – элемент модели, используемый для
группировки других элементов модели
Используется для представления моделей подсистем в виде
пакетов
Варианты изображения пакета
                  Простейшие Типы

                Простейшие                                             Простейшие
                      Типы                                                   Типы

                   Integer             Boolean

Простейшие          String                       Boolean                   Integer   String
      Типы

                    UnlimitedNatural
                                                    UnlimitedNatural
Диаграмма пакетов с классом Автомобиль

   package        Автомобили

                               Автомобиль

         задняя часть :                 ось   p           e:
             Колесо [2]                           Двигатель
Зависимость пакетов
Модель трех-уровневой архитектуры доступа к удаленной
базе данных


<<model>>                <<model>>           <<model>>
 Уровень            Уровень Бизнес            Уровень
  Клиента                   Логики             Данных
Импорт пакета (package import)
– направленное отношение между пакетами, при котором
члены одного пакета могут быть добавлены в пространство
имен другого пакета
Импорт пакета позволяет ссылаться только на
общедоступные члены импортируемого пакета в другом
пространстве имен, используя при этом
неквалифицированные имена
Концептуально импорт пакета эквивалентен импорту
элемента для каждого индивидуального элемента
импортируемого пространства имен, за исключением случая,
когда уже существует отдельно определенный импорт
элемента
Примеры импорта и доступа пакетов
Примеры импорта пакетов
Импорт элемента (element import)
– направленное отношение между импортирующим
пространством имен и отдельным элементом пакета, которое
позволяет ссылаться на этот элемент с использованием
неквалифицированного имени
Импорт элемента позволяет идентифицировать отдельный
элемент одного пакета в другом пакете посредством
добавления имени этого элемента или его псевдонима к
пространству имен импортирующего пакета
Импорт элемента можно представить в форме ссылки на
импортируемый элемент
Это значит, что в импортирующем пакете невозможно
изменить характеристики импортируемого элемента,
поскольку модифицировать импортируемый элемент можно
только в том пакете, которому он принадлежит или, другими
словами, членом которого он является
Примеры общедоступного и закрытого
       импорта элементов
Импорт элемента изображается с использованием пунктирной
линии с открытой стрелкой, направленной из импортирующего
пространства имен к импортируемому элементу
Если видимость является общедоступной, то рядом с
пунктирной линией изображается стереотип «import»
Для указания закрытой видимости рядом с пунктирной
линией изображается стереотип «access»
Примеры общедоступного и закрытого
     импорта пакетов и элементов
Вспомогательные
      Элементы                    «access»

                                                           «import»                       Интернет
                             «import»            Корзина
                                                                                           Магазин
         Простейшие
               Типы
                                                            Типы

                                                                       «datatype»
                                                                            String


                                             «access»                        «datatype»
                                                                                Integer

                                               «import»               «datatype»
                      Программа
                                                                           Time
Пример импорта элемента с псевдонимом
 Текстовый синтаксис имеет следующий вид:
 ‘{import’ <квалифицированное-имя> ‘}’ | ‘{access’
 <квалифицированное-имя> ‘}’
 Дополнительно может быть показано имя псевдоним:
 ‘{import’ <квалифицированное-имя> ‘ as ’ <псевдоним> ‘}’ |
 ‘{access’ <квалифицированное-имя> ‘as’ <псевдоним> ‘}’

    Формы                              Типы
                          «import»
      Окружность                              «datatype»
                          Double
      радиус:Double                                  Real
Слияние пакетов (package merge)
– направленное отношение между двумя пакетами, один из
которых расширяет свое содержание посредством
добавления содержимого другого пакета


                     «merge»
        Цель                       Источник
Концептуальное представление семантики
           слияния пакетов
              Сливаемый                                      Принимаю-
                   пакет                                      щий пакет
          A
                           A                                                   B




«merge»                                           Слияние
                                                   пакетов
                                                                   «becomes»



                               Результиру-
                               ющий пакет
          B
                                             B'
Иллюстрация правил слияния пакетов
           P
                                 Q

                   A                     A   C



                   B
                           «merge»
                                             «merge»
                             S

 «merge»                             D

               R

                       A             A       B
Результаты слияния пакетов


R                                              S

                                       C                 D
                         A
                                  [Q::C]            [S::D]
    [P::A@(Q::A@R::A)]


                                                                  C
                         B                                   [Q::C]
                    [P::B]                              A
                                             [Q::A@S::A]           B
                                                              [S::B]
Самостоятельное задание №10
Выполнить текущее тестирование: вопрос 20
Разработать диаграмму пакетов для ATM
   Изобразить следующие пакеты: Банкомат, Банк.
   Изобразить отношения между ними
Диаграмма объектов
  (object diagram)
Диаграмма объектов (object diagram)
– диаграмма, которая служит для представления объектов и
отношений между ними в конкретный момент времени. Она
может рассматриваться как специальный случай диаграммы
классов или диаграммы коммуникации
Объект (object) является отдельным экземпляром класса,
который создается на этапе реализации модели или
выполнения программы
Имя объекта представляет собой строку текста, записанную в
следующем виде (БНФ):
<имя-объекта>::=[<собственное-имя-объекта>] | [:<имя-
класса> [‘,’<Имя-класса>]*].
Примеры графических изображений
           объектов
о: C — для объекта
специфицировано            к в а д р а т : П р я м о у го л ь ни к
собственное имя объекта
и имя класса.
о — для объекта                            кв адрат
специфицировано только
собственное имя объекта.
: C — для объекта
специфицировано только             : П р я м о у го л ь ни к
имя класса.
Примеры графических изображений
           объектов
Примеры графических изображений
           объектов
Связь (link)
 - является экземпляром произвольной ассоциации, которая
 обеспечивает канал для направленной передачи сообщений
 между объектами

                   отец            сы н
И ван : Ч еловек                          Е го р : Ч е л о в е к
Пример диаграммы объектов
Спецификация экземпляра (instance
          specification)
- является элементом модели, который представляет
описание произвольной сущности типа классификатора
Имя спецификации экземпляра представляет собой строку
текста, записанную в следующем виде (БНФ):
<имя-спецификации-экземпляра>::=[<собственное-имя-
спецификации-экземпляра>] | [:<имя-класса> [‘,’<Имя-
класса>]*]
Вся запись имени спецификации экземпляра подчеркивается
Если указано <собственное-имя-спецификации-экземпляра>,
то оно должно начинаться со строчной буквы
При указании нескольких имен классификаторов их имена
отделяются запятыми
В записи имени спецификации экземпляра <собственное-имя-
спецификации-экземпляра> и <имя-класса> могут
отсутствовать одновременно – но эту возможность лучше не
использовать на практике
Слот (slot)
предназначен для представления того, что сущность,
моделируемая посредством спецификации экземпляра, имеет
конкретное значение или значения для некоторой своей
структурной характеристики
Представляется текстом в следующем формате (БНФ):
<слот>::=<имя-характеристики> [: <тип-характеристики>]
‘=’ <спецификация-значения>
Отсутствие слота для некоторой характеристики в
спецификации экземпляра не означает, что представляемая
сущность не имеет этой характеристики, но означает только
лишь то, что эта характеристика не представляет интереса в
модели.
Примеры cлотов со значениями

           м ойА дрес: А дрес
                                                               : Квадрат
и м я У л и ц ы : S t r in g = " С а д о в а я "   в е р ш и н а = (1 , 1 0 )
н о м е р Д о м а : In te g e r = 2 5              с т о р о н ы = (2 5 , 1 0 )
н о м е р К в а р т и р ы : In te g e r = 1 5      цветГраницы = черны й
                                                   ц ветЗ ал и вки = бел ы й
Значение экземпляра (instance value)
- является спецификацией значения, которое идентифицирует
некоторый экземпляр



             и м я У л и ц ы : S t r in g
                   "С а д о в а я "
Самостоятельное задание №11
Выполнить текущее тестирование: вопросы
Разработать диаграмму объектов для ATM
   Изобразить объекты, соответствующие ранее
   разработанным классам
   Изобразить отношения между ними
Диаграмма обзора
 взаимодействия
(interaction overview
     diagram)
Диаграмма обзора взаимодействия
–диаграмма, которая предназначена для представления
взаимодействия только в контексте потока управления в
некоторой агрегированной форме
Диаграммы обзора взаимодействия, вместо узлов действий и
объектов диаграмм деятельности, имеют фреймы, каждый из
которых может соответствовать взаимодействию или
использованию взаимодействия.
Альтернативные комбинированные фрагменты представляются
узлом решения и соответствующим узлом слияния.
Параллельные комбинированные фрагменты представляются
узлом разделения и соответствующим узлом соединения.
Комбинированные фрагменты типа Цикл представляются
простыми циклами.
Ветвление и слияния ветвлений на диаграммах обзора
взаимодействия должны быть должным образом вложенными.
Диаграммы обзора взаимодействия заключаются во фрейм,
аналогично другим видам диаграмм взаимодействия с тегом sd.
sd Диаграмма обзора взаимодействия банкомата
                 lifelines     :Клиент, :Банкомат




    Пример                                     ref                 ПредоставитьДоступ
                                                           ("Карточка действительная")




  диаграммы                                 sd

                                                               :Клиент                                   :Банкомат


    обзора                                                                 вводПИН-кода()




взаимодействия                       [ПИН-код неверный]

                                                                                               [ПИН-код верный]


  банкомата                                          ref                  ПредоставитьМеню
                                                                         ("Опции банкомата")

                                      [выбор справки]

                                                                                               [выбор снятия наличных]
                                                                                sd

                                                                                               :Клиент                        :Банкомат

                                                                                                         вводСуммы()




                                                                                            ref        ПолучитьНаличные
                                                                                                    ("Сумма не превышает
                                                                                                                   кредит")



                                         ref               ПолучитьСправку
Самостоятельное задание №12
Выполнить текущее тестирование: вопросы
Разработать диаграмму обзора взаимодействия для ATM
   Изобразить необходимые фреймы:
   Изобразить отношения между ними
Временная диаграмма
  (timing diagram)
Временная диаграмма
– диаграмма взаимодействия, которая служит для представления
изменения состояния отдельных линий жизни или особенностей
синхронизации сообщений во времени
Линейная ось времени обычно изображается таким образом, что
текущее время увеличивается в направлении слева направо.
Линии жизни изображаются в отдельных секциях, которые
упорядочены по вертикали.
Линия жизни может перемещаться по диаграмме вверх и вниз, что
отражает изменение ее состояния
Линия жизни может быть изображена горизонтально с целью
изображения на ней отдельных состоя-ний или значений.
Метрическая ось времени может быть показана с засечками,
обозначающими интервалы времени, а в некоторых случаях —
дискретные моменты изменений
Время для всех линий жизни синхронизовано и течет одинаково.
На диаграмме могут быть показаны значения атрибутов и других
свойств линий жизни.
Линии жизни и значения на временной
                  диаграмме
      Линии жизни на временной диаграмме изображаются в
      отдельных секциях, слева от которых указываются их имена
      На диаграмме также могут быть показаны значения
      некоторого атрибута отдельной линии жизни как некоторая
      функция времени
      Значение представляется в форме специального символа и
      указывается явно в форме текста

имя линии
  жизни 1
                                    значение 1      значение 2
имя линии
  жизни 2
Сообщения, метки и состояния
Сообщения изображаются между линиями жизни, которые
располагаются вертикально
Метки являются графическим сокращением и используются в
том случае, когда соединяемые сообщением линии жизни
располагаются далеко друг от друга
Состояния классификатора или изменяемые значения
атрибута в форме вертикального списка

                               Имя состояния 1
                имя
              метки            Имя состояния 2
                         имя
                               Имя состояния 3
                       метки
                               Имя состояния 4
Первая форма временной диаграммы
Первая форма используется для представления изменения
состояний во времени для отдельной линии жизни
При этом изображаются события, которые являются причиной
изменения состояний
         sd Доступ сотрудника



                       Проход                                {d..3*d}
          :Сотрудник




                       Ожидание Доступа
                                                                                    OK {t..t+3}
                       Ожидание Карты
                                                                 ВозвратКарты
                       Ожидание
                                                  ВводКода
                                              d


                                          0       1      2                      t
Вторая форма временной диаграммы
Вторая форма временной диаграммы также используется для
представления изменения состояний для отдельной линии жизни
горизонтально во времени
При этом события, которые являются причиной изменения
состояний, не изображаются
Это наиболее компактная форма временной диаграммы, которая
часто используется для иллюстрации процесса функционирования
электронных устройств
 sd Доступ сотрудника
                                    {d..3*d}



    :Сотрудник          Ожидание   Ожидание    Ожидание   Проход
                                      Карты     Доступа
Третья форма временной диаграммы
Третья форма
                      sd Доступ сотрудника
временных диаграмм
используется для
изображения более                   Проход                                    {d..3*d}

чем одной линии




                       :Сотрудник
                                    Ожидание Доступа
жизни и сообщений                   Ожидание Карты                                                                          {t..t+3}
между ними                                                               ввестиКод                         предоставитьДоступ
                                    Ожидание
Эта форма
                                                 вставитьКарту
временной
диаграммы по своим                                                                  вернутьКарту
                                      НетКарты
возможностям в        :Система
                      Контроля
большой степени                      ЕстьКарта
                                                                                                            отперетьДверь

соответствует                                                             d                        t=now
диаграмме
последовательности,                                              0   1          2                              t
чем первые две
формы
Самостоятельное задание №13
Выполнить текущее тестирование: вопросы
Разработать временную диаграмму для ATM
   Изобразить линии жизни
   Изобразить отношения между ними
Выполнить итоговое тестирование
Диаграмма композитной
 структуры (composite
  structure diagram)
Диаграмма композитной структуры
– диаграмма, которая изображает внутреннюю структуру
классификаторов таких, как класс, компонент или кооперация,
включая точки взаимодействия классификатора с другими
частями системы.
Внутренняя структура (internal structure) – структура
взаимодействующих элементов модели, которые создаются в
экземпляре содержащего их классификатора
Свойство (property) – множество экземпляров, которые
являются собственностью содержащего их экземпляра
классификатора
Часть (part)
  свойство, которое является элементом внутренней структуры
  композитного классификатора, в частном случае – класса
  Синтаксис части в БНФ:
<имя-части>::= [<собственное-имя-части>] [: <имя-класса>]
  [[<кратность>]] | [<имя-класса>],
  где <собственное-имя-части> является именем экземпляра
  класса и обычно записывается со строчной буквы,
  <имя-класса> является именем соответствующего класса, от
  которого инстанцируется данная часть или свойство
  Кратность части может быть также показана в правом
  верхнем углу прямоугольника части
Примеры изображения композитного класса

                         А в то м о б и л ь                 А в то м о б и л ь


                                             1          e : Д в и г а т е л ь [1 ..2 ]
                              k: К узов




                   А в то м о б и л ь




задняяЧ асть                                     е                               А в то м о б и л ь
               2                   1
   Колесо                               Д в и гател ь
                       О сь                               задняяЧ асть : а: О сь
                                                                                                      e : Д в и гате л ь
                   *           *                            К о л е с о [2 ] 2 1
Соединитель (connector)
  – отношение, которое обеспечивает взаимосвязь или
  коммуникацию между двумя или более экземплярами
  классификаторов, в частном случае – экземплярами классов
  Соединитель изображается с использованием нотации для
  ассоциации. Необязательная строка имени соединителя
  должна удовлетворять следующему синтаксису:
<имя-соединителя>::= ( [ имя ] ‘:’ <имя-класса> ) | <имя>
  где <имя> является собственным именем соединителя, а
  <имя-ассоциации> является именем ассоциации или ее типом
  Дополнительно выше или перед именем соединителя может
  быть помещен стереотип в виде ключевого слова в угловых
  кавычках
  После или ниже имени соединителя может быть помещено
  строка-свойство
Фрагменты композитной структуры для
        класса Автомобиль
                                                   А в то м о б и л ь

                                               передняяО сь
 левоеП ереднее : Колесо                                                   правоеП ереднее : Колесо


                                                   задняяО сь
  левоеЗаднее : Колесо                                                       правоеЗаднее : Колесо




                                                    А в то м о б и л ь

                                                       ось
  л е в а я С т о р о н а : К о л е с о [2 ]                             п р а в а я С т о р о н а : К о л е с о [2 ]
                                               1                    1
Порт (port)
   – свойство классификатора, которое специфицирует
   отдельную точку взаимодействия между этим
   классификатором и его окружением или между
   классификатором и его внутренними частями


           Д в и гател ь       Д в и гател ь              Д в и гател ь
p 1 [1 ]                                       p 3 [1 ]
                              p 2 [4 ]                           S1
Нотация предоставляемого и требуемого
    интерфейсов для порта класса
    Предоставляемый интерфейс (provided interface) порта
    характеризует запросы, которые могут быть переданы через
    этот порт классу от его окружения
    Требуемый интерфейс (required interface) порта
    характеризует запросы, которые могут быть переданы от
    класса к его окружению через этот порт


IТ р а н с м и с с и я      Д в и гател ь   IТ о п л и в о          Д в и гател ь
                 p 1 [1 ]                                p 2 [1 ]
Пример композитной структуры класса
                Автомобиль

                                                       А в то м о б и л ь

                                                                             k
                                                                     ось
                     з а д н я я С т о р о н а : К о л е с о [2 ]                     e : Д в и га те л ь
                                                                                                                IТ о п л и в о
IЭ л П и т а н и е                                                                n        c       f
                p              q                                                                            t
                                                                         m
                                             а : А ккум ул я тор
                                                                                  привод
                                         r

                                                                     s
                                                                                 g : Генератор
Кооперация (collaboration)
– классификатор, предназначенный для описания некоторой
структуры элементов или ролей, которые выполняют
специализированные функции и совместно производят
желаемую функциональность
Роль кооперации (collaboration role) специфицирует требуемое
множество характеристик, которые должен иметь
соответствующий участник кооперации
Внутренняя структура кооперации
        Наблюдатель
                         Н аб л ю д ател ь

    субъ ект :                                    наблю датель :
О чередьВ ы зовов                              И н д и ка то р З а гр узки




  О черед ьВ ы зо вов             И н д и като р З агр у зки

             суб ъ ект                     наблю датель



              Н аб л ю д ател ь
Применение кооперации (collaboration use)
 - представляет собой описание реализации кооперации в
 форме множества взаимодействующих элементов
 посредством связывания этих элементов с ролями данной
 кооперации.
           О кно
                                 « re p re s e n ts »      :Р е а л и з а ц и я П о в е д е н и я
    о т о б р а з и т ь ()
                                                              Н аЭ кр ан еМ он и тор а



                             П родажа                                               У ч астн и кС д ел ки


      продавец :                          п окуп ател ь :
   У час тн икС д ел ки                У час тн и кС д ел ки
                                                                                                    Ф изическое
                                                                            Ком пания
                                                                                                        Лицо
Два применения кооперации Продажа

          оптовая продаж а :                                                         розничная продаж а :
              П родажа                                                                    П родажа



          продавец                       п окуп ател ь                                    продавец           п окуп ател ь

производитель :                дистрибью тор :                          дистрибью тор :                потребител ь :
   Ком пания                     Ком пания                                Ком пания                  Ф изи ческоеЛ иц о


                                          П ро д аж аЧ ер езП осред ни ков


                                              оптовая продаж а :
                                                  П родажа
                       п окуп ател ь                                           продавец

                  дистрибь ю тор :                                        производитель :
                    Ком пания                                                Ком пания
              продавец

                                                        п окуп ател ь
                               розничная продаж а :                   потребитель :
                                    П родажа                        Ф изи ческоеЛ и ц о
Шаблон кооперации
Шаблон кооперации является параметризованной
кооперацией, которой соответствует целое семейство
коопераций
Параметрами шаблона кооперации являются типы ее частей
или ролей
Отдельная кооперация этого семейства может быть получена
связыванием параметров шаблона кооперации с конкретными
классами
Шаблоны коопераций находят практическое применение при
рассмотрении стандартных паттернов проектирования.
Шаблон кооперации паттерна Наблюдатель
           и его связывание
                                                           Т и п С убъ екта, Т ип Н абл ю д ател я

                                       П аттер н Н аб л ю д ател ь


             субъ ект : Т и п С убъ екта               наблю датель : Т ипН аблю дателя




                                            Н аб л ю д ате л ь

П а т т е р н Н а б л ю д а т е л ь < Т и п С уб ъ е кт а -> О ч е р е д ь З в о н ко в , Т и п Н а б л ю д а т е л я
                                          -> И н д и ка т о р З а гр уз ки >
Альтернативное связывание кооперации
 Наблюдатель с шаблоном кооперации
                                                  Т и п С убъ екта, Т и п Н абл ю д ател я

                           П аттер н Н аб л ю д а те л ь


   субъ ект : Т и п С убъ екта               набл ю д ател ь : Т ипН абл ю дателя




                                           < < b in d > >
                                           < Т и п С уб ъ е кт а -> О ч е р е д ь З в о н ко в ,
                                           Т и п Н а б л ю д а т е л я -> И н д и ка т о р З а гр уз ки >

                                 Н аб л ю д ател ь
Самостоятельное задание №3
Выполнить текущее тестирование: вопросы
Разработать диаграмму композитной структуры для ATM
   Изобразить следующий композитный класс: Клиент
   банкомата, Банк.
   Изобразить следующие варианты использования:
   Изобразить отношения между ними
Диаграмма
     коммуникации
(communication diagram)
Диаграмма коммуникации

– диаграмма, которая предназначена для представления
взаимодействия в контексте внутренней архитектуры
системы и передаваемых сообщений
Диаграмма коммуникации имеет вид графа, вершинами
которого являются части композитного класса или роли
взаимодействия, изображенные в виде прямоугольников
Эти вершины соответствуют линиям жизни и изображаются
в своем структурном контексте
Ребрами графа являются связи, по которым проходят
маршруты коммуникации
Линии жизни могут обмениваться сообщениями, которые
изображаются в виде небольших стрелок с некоторым
именем, расположенных возле линий связей
Изображение линий жизни на диаграмме
                       коммуникации
                 Информация, идентифицирующая линию жизни на диаграмме
                 коммуникации, изображается внутри прямоугольника в
                 следующем формате (БНФ):
                      <идентификатор-линии-жизни>::= ([<имя-
                 роли> [‘[‘<селектор>‘]’] ] [:<имя-класса>]


имя роли :Имя                                           счетКлиента[no] :
                                    : Заказ
        класса                                                      Счет
Связь (link) и Сообщение (message)
- является экземпляром произвольной ассоциации, которая
обеспечивает канал для направленной передачи сообщений
между линиями жизни
Сообщение изображается в форме символа стрелки рядом с
линией связи, которое передается в указанном стрелкой
направлении по данной связи
Говорят, что стрелка сообщения специфицирует направление
коммуникации
Рядом со стрелкой указывается идентификатор сообщения,
записанный в специальном формате
                 1 : оплатить()
                                     счетКлиента[no] :
    : Заказ
                                                 Счет
Формат записи сообщений
  Каждое сообщение может быть помечено строкой текста,
  которая имеет следующий синтаксис (БНФ):
<идентификатор-сообщения>::= [<предшествующие-
  сообщения>’/’] <выражение-последовательности> ‘:’
  [<атрибут>‘=’] <имя-операции-или-сигнала> [‘(‘[<аргумент>
  [‘,’<аргумент>]* ‘)’] [‘:’ <возвращаемое-значение>],
  где <аргумент> ::= ([<имя-параметра>‘=’] <значение-
  аргумента>) | (<атрибут> ‘=’ <имя-out-параметра> [‘:’
  <значение-аргумента>]|‘ -’
  <предшествующие-сообщения> — разделенные запятыми
  номера сообщений, после которых следует наклонная черта
  (“слеш”), например, 3, 4/
Формат записи сообщений
<выражение-последовательности> — разделенный точками
список отдельных термов последовательностей, после
которого следует двоеточие. Каждый из термов
последовательности имеет следующий синтаксис: [<целое-
число>|<имя>] [<рекуррентность>].
<целое-число> указывает на порядковый номер сообщения в
процедурной последовательности верхнего уровня
<имя> в форме буквы некоторого алфавита используется для
спецификации параллельных потоков или нитей управления
<рекуррентность>::=‘*’‘[‘<предложение-итерация>‘]’ для
записи итеративного выполнения соответствующего
выражения
<рекуррентность>::=‘[‘<предложение-условие>‘]’ для записи
ветвления
Примеры записи сообщений на
  диаграмме коммуникации
Самостоятельное задание №4
Выполнить текущее тестирование: вопрос 19
Разработать диаграмму коммуникации для варианта
использования ATM «Снятие наличных по кредитной
карточке»
    Изобразить линии жизни ранее определенных классов.
    Изобразить связи между ними.
    Изобразить последовательность сообщений между
    линиями жизни.

More Related Content

Featured

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

Featured (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

С учебы

  • 1. Учебный курс Язык UML в анализе и проектировании программных систем и бизнес-процессов Лекция 9 Дополнительные диаграммы языка UML 2 Автор: Леоненков Александр Васильевич кандидат технических наук, старший научный сотрудник
  • 2. Диаграмма пакетов - предназначена для представления размещения элементов модели в пакетах и спецификации зависимостей между пакетами и их элементами Пакет (package) – элемент модели, используемый для группировки других элементов модели Используется для представления моделей подсистем в виде пакетов
  • 3. Варианты изображения пакета Простейшие Типы Простейшие Простейшие Типы Типы Integer Boolean Простейшие String Boolean Integer String Типы UnlimitedNatural UnlimitedNatural
  • 4. Диаграмма пакетов с классом Автомобиль package Автомобили Автомобиль задняя часть : ось p e: Колесо [2] Двигатель
  • 5. Зависимость пакетов Модель трех-уровневой архитектуры доступа к удаленной базе данных <<model>> <<model>> <<model>> Уровень Уровень Бизнес Уровень Клиента Логики Данных
  • 6. Импорт пакета (package import) – направленное отношение между пакетами, при котором члены одного пакета могут быть добавлены в пространство имен другого пакета Импорт пакета позволяет ссылаться только на общедоступные члены импортируемого пакета в другом пространстве имен, используя при этом неквалифицированные имена Концептуально импорт пакета эквивалентен импорту элемента для каждого индивидуального элемента импортируемого пространства имен, за исключением случая, когда уже существует отдельно определенный импорт элемента
  • 7. Примеры импорта и доступа пакетов
  • 8.
  • 10. Импорт элемента (element import) – направленное отношение между импортирующим пространством имен и отдельным элементом пакета, которое позволяет ссылаться на этот элемент с использованием неквалифицированного имени Импорт элемента позволяет идентифицировать отдельный элемент одного пакета в другом пакете посредством добавления имени этого элемента или его псевдонима к пространству имен импортирующего пакета Импорт элемента можно представить в форме ссылки на импортируемый элемент Это значит, что в импортирующем пакете невозможно изменить характеристики импортируемого элемента, поскольку модифицировать импортируемый элемент можно только в том пакете, которому он принадлежит или, другими словами, членом которого он является
  • 11. Примеры общедоступного и закрытого импорта элементов Импорт элемента изображается с использованием пунктирной линии с открытой стрелкой, направленной из импортирующего пространства имен к импортируемому элементу Если видимость является общедоступной, то рядом с пунктирной линией изображается стереотип «import» Для указания закрытой видимости рядом с пунктирной линией изображается стереотип «access»
  • 12. Примеры общедоступного и закрытого импорта пакетов и элементов Вспомогательные Элементы «access» «import» Интернет «import» Корзина Магазин Простейшие Типы Типы «datatype» String «access» «datatype» Integer «import» «datatype» Программа Time
  • 13. Пример импорта элемента с псевдонимом Текстовый синтаксис имеет следующий вид: ‘{import’ <квалифицированное-имя> ‘}’ | ‘{access’ <квалифицированное-имя> ‘}’ Дополнительно может быть показано имя псевдоним: ‘{import’ <квалифицированное-имя> ‘ as ’ <псевдоним> ‘}’ | ‘{access’ <квалифицированное-имя> ‘as’ <псевдоним> ‘}’ Формы Типы «import» Окружность «datatype» Double радиус:Double Real
  • 14. Слияние пакетов (package merge) – направленное отношение между двумя пакетами, один из которых расширяет свое содержание посредством добавления содержимого другого пакета «merge» Цель Источник
  • 15. Концептуальное представление семантики слияния пакетов Сливаемый Принимаю- пакет щий пакет A A B «merge» Слияние пакетов «becomes» Результиру- ющий пакет B B'
  • 16. Иллюстрация правил слияния пакетов P Q A A C B «merge» «merge» S «merge» D R A A B
  • 17. Результаты слияния пакетов R S C D A [Q::C] [S::D] [P::A@(Q::A@R::A)] C B [Q::C] [P::B] A [Q::A@S::A] B [S::B]
  • 18. Самостоятельное задание №10 Выполнить текущее тестирование: вопрос 20 Разработать диаграмму пакетов для ATM Изобразить следующие пакеты: Банкомат, Банк. Изобразить отношения между ними
  • 20. Диаграмма объектов (object diagram) – диаграмма, которая служит для представления объектов и отношений между ними в конкретный момент времени. Она может рассматриваться как специальный случай диаграммы классов или диаграммы коммуникации Объект (object) является отдельным экземпляром класса, который создается на этапе реализации модели или выполнения программы Имя объекта представляет собой строку текста, записанную в следующем виде (БНФ): <имя-объекта>::=[<собственное-имя-объекта>] | [:<имя- класса> [‘,’<Имя-класса>]*].
  • 21. Примеры графических изображений объектов о: C — для объекта специфицировано к в а д р а т : П р я м о у го л ь ни к собственное имя объекта и имя класса. о — для объекта кв адрат специфицировано только собственное имя объекта. : C — для объекта специфицировано только : П р я м о у го л ь ни к имя класса.
  • 24. Связь (link) - является экземпляром произвольной ассоциации, которая обеспечивает канал для направленной передачи сообщений между объектами отец сы н И ван : Ч еловек Е го р : Ч е л о в е к
  • 26. Спецификация экземпляра (instance specification) - является элементом модели, который представляет описание произвольной сущности типа классификатора Имя спецификации экземпляра представляет собой строку текста, записанную в следующем виде (БНФ): <имя-спецификации-экземпляра>::=[<собственное-имя- спецификации-экземпляра>] | [:<имя-класса> [‘,’<Имя- класса>]*] Вся запись имени спецификации экземпляра подчеркивается Если указано <собственное-имя-спецификации-экземпляра>, то оно должно начинаться со строчной буквы При указании нескольких имен классификаторов их имена отделяются запятыми В записи имени спецификации экземпляра <собственное-имя- спецификации-экземпляра> и <имя-класса> могут отсутствовать одновременно – но эту возможность лучше не использовать на практике
  • 27. Слот (slot) предназначен для представления того, что сущность, моделируемая посредством спецификации экземпляра, имеет конкретное значение или значения для некоторой своей структурной характеристики Представляется текстом в следующем формате (БНФ): <слот>::=<имя-характеристики> [: <тип-характеристики>] ‘=’ <спецификация-значения> Отсутствие слота для некоторой характеристики в спецификации экземпляра не означает, что представляемая сущность не имеет этой характеристики, но означает только лишь то, что эта характеристика не представляет интереса в модели.
  • 28. Примеры cлотов со значениями м ойА дрес: А дрес : Квадрат и м я У л и ц ы : S t r in g = " С а д о в а я " в е р ш и н а = (1 , 1 0 ) н о м е р Д о м а : In te g e r = 2 5 с т о р о н ы = (2 5 , 1 0 ) н о м е р К в а р т и р ы : In te g e r = 1 5 цветГраницы = черны й ц ветЗ ал и вки = бел ы й
  • 29. Значение экземпляра (instance value) - является спецификацией значения, которое идентифицирует некоторый экземпляр и м я У л и ц ы : S t r in g "С а д о в а я "
  • 30. Самостоятельное задание №11 Выполнить текущее тестирование: вопросы Разработать диаграмму объектов для ATM Изобразить объекты, соответствующие ранее разработанным классам Изобразить отношения между ними
  • 32. Диаграмма обзора взаимодействия –диаграмма, которая предназначена для представления взаимодействия только в контексте потока управления в некоторой агрегированной форме Диаграммы обзора взаимодействия, вместо узлов действий и объектов диаграмм деятельности, имеют фреймы, каждый из которых может соответствовать взаимодействию или использованию взаимодействия. Альтернативные комбинированные фрагменты представляются узлом решения и соответствующим узлом слияния. Параллельные комбинированные фрагменты представляются узлом разделения и соответствующим узлом соединения. Комбинированные фрагменты типа Цикл представляются простыми циклами. Ветвление и слияния ветвлений на диаграммах обзора взаимодействия должны быть должным образом вложенными. Диаграммы обзора взаимодействия заключаются во фрейм, аналогично другим видам диаграмм взаимодействия с тегом sd.
  • 33. sd Диаграмма обзора взаимодействия банкомата lifelines :Клиент, :Банкомат Пример ref ПредоставитьДоступ ("Карточка действительная") диаграммы sd :Клиент :Банкомат обзора вводПИН-кода() взаимодействия [ПИН-код неверный] [ПИН-код верный] банкомата ref ПредоставитьМеню ("Опции банкомата") [выбор справки] [выбор снятия наличных] sd :Клиент :Банкомат вводСуммы() ref ПолучитьНаличные ("Сумма не превышает кредит") ref ПолучитьСправку
  • 34. Самостоятельное задание №12 Выполнить текущее тестирование: вопросы Разработать диаграмму обзора взаимодействия для ATM Изобразить необходимые фреймы: Изобразить отношения между ними
  • 36. Временная диаграмма – диаграмма взаимодействия, которая служит для представления изменения состояния отдельных линий жизни или особенностей синхронизации сообщений во времени Линейная ось времени обычно изображается таким образом, что текущее время увеличивается в направлении слева направо. Линии жизни изображаются в отдельных секциях, которые упорядочены по вертикали. Линия жизни может перемещаться по диаграмме вверх и вниз, что отражает изменение ее состояния Линия жизни может быть изображена горизонтально с целью изображения на ней отдельных состоя-ний или значений. Метрическая ось времени может быть показана с засечками, обозначающими интервалы времени, а в некоторых случаях — дискретные моменты изменений Время для всех линий жизни синхронизовано и течет одинаково. На диаграмме могут быть показаны значения атрибутов и других свойств линий жизни.
  • 37. Линии жизни и значения на временной диаграмме Линии жизни на временной диаграмме изображаются в отдельных секциях, слева от которых указываются их имена На диаграмме также могут быть показаны значения некоторого атрибута отдельной линии жизни как некоторая функция времени Значение представляется в форме специального символа и указывается явно в форме текста имя линии жизни 1 значение 1 значение 2 имя линии жизни 2
  • 38. Сообщения, метки и состояния Сообщения изображаются между линиями жизни, которые располагаются вертикально Метки являются графическим сокращением и используются в том случае, когда соединяемые сообщением линии жизни располагаются далеко друг от друга Состояния классификатора или изменяемые значения атрибута в форме вертикального списка Имя состояния 1 имя метки Имя состояния 2 имя Имя состояния 3 метки Имя состояния 4
  • 39. Первая форма временной диаграммы Первая форма используется для представления изменения состояний во времени для отдельной линии жизни При этом изображаются события, которые являются причиной изменения состояний sd Доступ сотрудника Проход {d..3*d} :Сотрудник Ожидание Доступа OK {t..t+3} Ожидание Карты ВозвратКарты Ожидание ВводКода d 0 1 2 t
  • 40. Вторая форма временной диаграммы Вторая форма временной диаграммы также используется для представления изменения состояний для отдельной линии жизни горизонтально во времени При этом события, которые являются причиной изменения состояний, не изображаются Это наиболее компактная форма временной диаграммы, которая часто используется для иллюстрации процесса функционирования электронных устройств sd Доступ сотрудника {d..3*d} :Сотрудник Ожидание Ожидание Ожидание Проход Карты Доступа
  • 41. Третья форма временной диаграммы Третья форма sd Доступ сотрудника временных диаграмм используется для изображения более Проход {d..3*d} чем одной линии :Сотрудник Ожидание Доступа жизни и сообщений Ожидание Карты {t..t+3} между ними ввестиКод предоставитьДоступ Ожидание Эта форма вставитьКарту временной диаграммы по своим вернутьКарту НетКарты возможностям в :Система Контроля большой степени ЕстьКарта отперетьДверь соответствует d t=now диаграмме последовательности, 0 1 2 t чем первые две формы
  • 42. Самостоятельное задание №13 Выполнить текущее тестирование: вопросы Разработать временную диаграмму для ATM Изобразить линии жизни Изобразить отношения между ними Выполнить итоговое тестирование
  • 44. Диаграмма композитной структуры – диаграмма, которая изображает внутреннюю структуру классификаторов таких, как класс, компонент или кооперация, включая точки взаимодействия классификатора с другими частями системы. Внутренняя структура (internal structure) – структура взаимодействующих элементов модели, которые создаются в экземпляре содержащего их классификатора Свойство (property) – множество экземпляров, которые являются собственностью содержащего их экземпляра классификатора
  • 45. Часть (part) свойство, которое является элементом внутренней структуры композитного классификатора, в частном случае – класса Синтаксис части в БНФ: <имя-части>::= [<собственное-имя-части>] [: <имя-класса>] [[<кратность>]] | [<имя-класса>], где <собственное-имя-части> является именем экземпляра класса и обычно записывается со строчной буквы, <имя-класса> является именем соответствующего класса, от которого инстанцируется данная часть или свойство Кратность части может быть также показана в правом верхнем углу прямоугольника части
  • 46. Примеры изображения композитного класса А в то м о б и л ь А в то м о б и л ь 1 e : Д в и г а т е л ь [1 ..2 ] k: К узов А в то м о б и л ь задняяЧ асть е А в то м о б и л ь 2 1 Колесо Д в и гател ь О сь задняяЧ асть : а: О сь e : Д в и гате л ь * * К о л е с о [2 ] 2 1
  • 47. Соединитель (connector) – отношение, которое обеспечивает взаимосвязь или коммуникацию между двумя или более экземплярами классификаторов, в частном случае – экземплярами классов Соединитель изображается с использованием нотации для ассоциации. Необязательная строка имени соединителя должна удовлетворять следующему синтаксису: <имя-соединителя>::= ( [ имя ] ‘:’ <имя-класса> ) | <имя> где <имя> является собственным именем соединителя, а <имя-ассоциации> является именем ассоциации или ее типом Дополнительно выше или перед именем соединителя может быть помещен стереотип в виде ключевого слова в угловых кавычках После или ниже имени соединителя может быть помещено строка-свойство
  • 48. Фрагменты композитной структуры для класса Автомобиль А в то м о б и л ь передняяО сь левоеП ереднее : Колесо правоеП ереднее : Колесо задняяО сь левоеЗаднее : Колесо правоеЗаднее : Колесо А в то м о б и л ь ось л е в а я С т о р о н а : К о л е с о [2 ] п р а в а я С т о р о н а : К о л е с о [2 ] 1 1
  • 49. Порт (port) – свойство классификатора, которое специфицирует отдельную точку взаимодействия между этим классификатором и его окружением или между классификатором и его внутренними частями Д в и гател ь Д в и гател ь Д в и гател ь p 1 [1 ] p 3 [1 ] p 2 [4 ] S1
  • 50. Нотация предоставляемого и требуемого интерфейсов для порта класса Предоставляемый интерфейс (provided interface) порта характеризует запросы, которые могут быть переданы через этот порт классу от его окружения Требуемый интерфейс (required interface) порта характеризует запросы, которые могут быть переданы от класса к его окружению через этот порт IТ р а н с м и с с и я Д в и гател ь IТ о п л и в о Д в и гател ь p 1 [1 ] p 2 [1 ]
  • 51. Пример композитной структуры класса Автомобиль А в то м о б и л ь k ось з а д н я я С т о р о н а : К о л е с о [2 ] e : Д в и га те л ь IТ о п л и в о IЭ л П и т а н и е n c f p q t m а : А ккум ул я тор привод r s g : Генератор
  • 52. Кооперация (collaboration) – классификатор, предназначенный для описания некоторой структуры элементов или ролей, которые выполняют специализированные функции и совместно производят желаемую функциональность Роль кооперации (collaboration role) специфицирует требуемое множество характеристик, которые должен иметь соответствующий участник кооперации
  • 53. Внутренняя структура кооперации Наблюдатель Н аб л ю д ател ь субъ ект : наблю датель : О чередьВ ы зовов И н д и ка то р З а гр узки О черед ьВ ы зо вов И н д и като р З агр у зки суб ъ ект наблю датель Н аб л ю д ател ь
  • 54. Применение кооперации (collaboration use) - представляет собой описание реализации кооперации в форме множества взаимодействующих элементов посредством связывания этих элементов с ролями данной кооперации. О кно « re p re s e n ts » :Р е а л и з а ц и я П о в е д е н и я о т о б р а з и т ь () Н аЭ кр ан еМ он и тор а П родажа У ч астн и кС д ел ки продавец : п окуп ател ь : У час тн икС д ел ки У час тн и кС д ел ки Ф изическое Ком пания Лицо
  • 55. Два применения кооперации Продажа оптовая продаж а : розничная продаж а : П родажа П родажа продавец п окуп ател ь продавец п окуп ател ь производитель : дистрибью тор : дистрибью тор : потребител ь : Ком пания Ком пания Ком пания Ф изи ческоеЛ иц о П ро д аж аЧ ер езП осред ни ков оптовая продаж а : П родажа п окуп ател ь продавец дистрибь ю тор : производитель : Ком пания Ком пания продавец п окуп ател ь розничная продаж а : потребитель : П родажа Ф изи ческоеЛ и ц о
  • 56. Шаблон кооперации Шаблон кооперации является параметризованной кооперацией, которой соответствует целое семейство коопераций Параметрами шаблона кооперации являются типы ее частей или ролей Отдельная кооперация этого семейства может быть получена связыванием параметров шаблона кооперации с конкретными классами Шаблоны коопераций находят практическое применение при рассмотрении стандартных паттернов проектирования.
  • 57. Шаблон кооперации паттерна Наблюдатель и его связывание Т и п С убъ екта, Т ип Н абл ю д ател я П аттер н Н аб л ю д ател ь субъ ект : Т и п С убъ екта наблю датель : Т ипН аблю дателя Н аб л ю д ате л ь П а т т е р н Н а б л ю д а т е л ь < Т и п С уб ъ е кт а -> О ч е р е д ь З в о н ко в , Т и п Н а б л ю д а т е л я -> И н д и ка т о р З а гр уз ки >
  • 58. Альтернативное связывание кооперации Наблюдатель с шаблоном кооперации Т и п С убъ екта, Т и п Н абл ю д ател я П аттер н Н аб л ю д а те л ь субъ ект : Т и п С убъ екта набл ю д ател ь : Т ипН абл ю дателя < < b in d > > < Т и п С уб ъ е кт а -> О ч е р е д ь З в о н ко в , Т и п Н а б л ю д а т е л я -> И н д и ка т о р З а гр уз ки > Н аб л ю д ател ь
  • 59. Самостоятельное задание №3 Выполнить текущее тестирование: вопросы Разработать диаграмму композитной структуры для ATM Изобразить следующий композитный класс: Клиент банкомата, Банк. Изобразить следующие варианты использования: Изобразить отношения между ними
  • 60. Диаграмма коммуникации (communication diagram)
  • 61. Диаграмма коммуникации – диаграмма, которая предназначена для представления взаимодействия в контексте внутренней архитектуры системы и передаваемых сообщений Диаграмма коммуникации имеет вид графа, вершинами которого являются части композитного класса или роли взаимодействия, изображенные в виде прямоугольников Эти вершины соответствуют линиям жизни и изображаются в своем структурном контексте Ребрами графа являются связи, по которым проходят маршруты коммуникации Линии жизни могут обмениваться сообщениями, которые изображаются в виде небольших стрелок с некоторым именем, расположенных возле линий связей
  • 62. Изображение линий жизни на диаграмме коммуникации Информация, идентифицирующая линию жизни на диаграмме коммуникации, изображается внутри прямоугольника в следующем формате (БНФ): <идентификатор-линии-жизни>::= ([<имя- роли> [‘[‘<селектор>‘]’] ] [:<имя-класса>] имя роли :Имя счетКлиента[no] : : Заказ класса Счет
  • 63. Связь (link) и Сообщение (message) - является экземпляром произвольной ассоциации, которая обеспечивает канал для направленной передачи сообщений между линиями жизни Сообщение изображается в форме символа стрелки рядом с линией связи, которое передается в указанном стрелкой направлении по данной связи Говорят, что стрелка сообщения специфицирует направление коммуникации Рядом со стрелкой указывается идентификатор сообщения, записанный в специальном формате 1 : оплатить() счетКлиента[no] : : Заказ Счет
  • 64. Формат записи сообщений Каждое сообщение может быть помечено строкой текста, которая имеет следующий синтаксис (БНФ): <идентификатор-сообщения>::= [<предшествующие- сообщения>’/’] <выражение-последовательности> ‘:’ [<атрибут>‘=’] <имя-операции-или-сигнала> [‘(‘[<аргумент> [‘,’<аргумент>]* ‘)’] [‘:’ <возвращаемое-значение>], где <аргумент> ::= ([<имя-параметра>‘=’] <значение- аргумента>) | (<атрибут> ‘=’ <имя-out-параметра> [‘:’ <значение-аргумента>]|‘ -’ <предшествующие-сообщения> — разделенные запятыми номера сообщений, после которых следует наклонная черта (“слеш”), например, 3, 4/
  • 65. Формат записи сообщений <выражение-последовательности> — разделенный точками список отдельных термов последовательностей, после которого следует двоеточие. Каждый из термов последовательности имеет следующий синтаксис: [<целое- число>|<имя>] [<рекуррентность>]. <целое-число> указывает на порядковый номер сообщения в процедурной последовательности верхнего уровня <имя> в форме буквы некоторого алфавита используется для спецификации параллельных потоков или нитей управления <рекуррентность>::=‘*’‘[‘<предложение-итерация>‘]’ для записи итеративного выполнения соответствующего выражения <рекуррентность>::=‘[‘<предложение-условие>‘]’ для записи ветвления
  • 66. Примеры записи сообщений на диаграмме коммуникации
  • 67. Самостоятельное задание №4 Выполнить текущее тестирование: вопрос 19 Разработать диаграмму коммуникации для варианта использования ATM «Снятие наличных по кредитной карточке» Изобразить линии жизни ранее определенных классов. Изобразить связи между ними. Изобразить последовательность сообщений между линиями жизни.