Разделы презентаций


The Unified Modeling Language

Содержание

Канонические диаграммы языка UML 2.х

Слайды и текст этой презентации

Слайд 1The Unified Modeling Language

The Unified Modeling Language

Слайд 2Канонические диаграммы языка UML 2.х

Канонические диаграммы языка UML 2.х

Слайд 3Диаграмма классов
Диаграмма классов (class diagram) — диаграмма, предназначенная для

представления модели статической структуры программной системы в терминологии классов объектно-ориентированного

программирования
Диаграмма классов Диаграмма классов (class diagram) — диаграмма, предназначенная для представления модели статической структуры программной системы в

Слайд 4Основные обозначения на диаграмме классов

Основные обозначения на диаграмме классов

Слайд 5Варианты графического изображения класса на диаграмме классов

Варианты графического изображения класса на диаграмме классов

Слайд 6Атрибут (attribute) класса
– служит для представления отдельной структурной характеристики или

свойства, которое является общим для всех объектов данного класса
::= []

[‘/’] <имя> [‘:’ <тип атрибута>]  [‘[‘<кратность>‘]’]  [‘=’ <значение по умолчанию>] [‘{‘<модификатор атрибута> [‘,’ <модификатор атрибута>]* ’}’]
Где:
<видимость>::= ‘+’ | ‘–‘ | ‘#’ | ‘~’.
видимость (visibility) может принимать одно из 4-х возможных значений и отображаться либо посредством специального символа, либо соответствующего ключевого слова
Атрибут (attribute) класса– служит для представления отдельной структурной характеристики или свойства, которое является общим для всех объектов

Слайд 7Вид видимости
+ public (общедоступный). Общедоступный элемент является видимым всеми

элементами, который имеют доступ к содержимому пространства имен, который им

владеет.
- private (закрытый). Закрытый элемент является видимым только внутри пространства имен, который им владеет.
# protected (защищенный). Защищенный элемент является видимым для элементов, которые имеют отношение обобщения с пространством имен, который им владеет.
~ package (пакет). Элемент, помеченный как имеющий пакетную видимость, является видимым всеми элементами в ближайшем охватывающем пакете в предположении. За пределами ближайшего охватывающего пакета элемент, помеченный как имеющий пакетную видимость, не является видимым.
Вид видимости + public (общедоступный). Общедоступный элемент является видимым всеми элементами, который имеют доступ к содержимому пространства

Слайд 8Проблема интерпретации видимости в языка UML
«Ничто в языке UML не

определяется так просто, и не интерпретируется так сложно, как видимость»

(Мартин Фаулер)
В С++ видимость «friend» (дружественная) обладает полным доступом ко всем элементам класса
«…в С++ друзья прикасаются к закрытым частям друг друга»
В Java видимость «package» (пакетная) обладает полным доступом ко всем классам данного пакета
В Java разрешается помечать классы как:
общедоступные – элементы общедоступного класса могут использоваться любым классом, который импортирует пакет, содержащий исходный класс
пакетные – элементы пакетного класса могут использоваться только классами данного пакета
Проблема интерпретации видимости в языка UML«Ничто в языке UML не определяется так просто, и не интерпретируется так

Слайд 9Элементы записи атрибута
“/” означает, что атрибут является производным (derive). Значение

производного атрибута может быть вычислено на основе значений других атрибутов

этого или других классов. Поэтому данный атрибут называют иногда вычислимым. При использовании производных атрибутов разработчик должен явно указать процедуру или операцию для вычисления их значений.
<имя> (name) представляет собой строку текста, которая используется в качестве идентификатора соответствующего атрибута и поэтому должна быть уникальной в пределах данного класса. Имя атрибута является единственным обязательным элементом в обозначении атрибута, должно начинаться со срочной (малой) буквы и, как правило, не должно содержать пробелов.
Элементы записи атрибута“/” означает, что атрибут является производным (derive). Значение производного атрибута может быть вычислено на основе

Слайд 10Элементы записи атрибута
(attribute type) есть имя классификатора, который

является типом данного атрибута. Тип атрибута представляет собой имя некоторого

типа данных, определенного или в пакете Типу атрибута должно предшествовать двоеточие
<кратность> (multiplicity) атрибута характеризует общее количество конкретных значений для атрибута, которые могут быть заданы для объектов данного класса
<значение по умолчанию> (default) – некоторое выражение, которое служит для задания начального значения или значений данного атрибута в момент создания отдельного экземпляра соответствующего класса. Конкретное значение по умолчанию должно соответствовать типу данного атрибута. Если этот терм не указан, то значение атрибута на момент создания нового экземпляра класса не определено.
Элементы записи атрибута (attribute type) есть имя классификатора, который является типом данного атрибута. Тип атрибута представляет собой

Слайд 11Модификатор атрибута
(attribute modifier) представляет собой текстовое выражение, которое

придает дополнительную семантику данному атрибуту. При этом набор возможных модификаторов

атрибутов в языке UML 2.х фиксирован и может быть представлен в следующем виде (БНФ):
<модификатор атрибута>::= ‘readOnly’ | ‘union’ | ‘subsets‘ <имя атрибута>  | ‘redefines’ <имя атрибута> | ‘ordered’ | ‘unique’ | <ограничение атрибута>.
Модификатор атрибута (attribute modifier) представляет собой текстовое выражение, которое придает дополнительную семантику данному атрибуту. При этом набор

Слайд 12Значения модификатора атрибута
readOnly – атрибут является только для чтения
union –

атрибут является производным объединением его подмножеств
subsets – атрибут

является собственным подмножеством атрибута с именем <имя атрибута>
redefines <имя атрибута> – атрибут переопределяет некоторый наследуемый атрибут с именем <имя атрибута>
Значения модификатора атрибутаreadOnly – атрибут является только для чтенияunion – атрибут является производным объединением его подмножествsubsets –

Слайд 13Значения модификатора атрибута
ordered – значения атрибута являются упорядоченными. Этот порядок

означает, что существует отображение из множества положительных целых чисел в

элементы этой коллекции значений. Если атрибут не является многозначным, то это значение не имеет семантического эффекта. При отсутствии этого модификатора атрибут специфицируется как неупорядоченный.
unique – значения многозначного атрибута не могут иметь дубликатов, т.е. повторяться. Предполагается, что кратность соответствующего атрибута должна быть больше 1. Если атрибут не является многозначным, то значение unique не имеет семантического эффекта.
<ограничение атрибута> Выражение, которое специфицирует некоторое ограничение, применяемое к данному атрибуту
Значения модификатора атрибутаordered – значения атрибута являются упорядоченными. Этот порядок означает, что существует отображение из множества положительных

Слайд 14Кратность
Кратность (multiplicity) является спецификацией допустимой мощности множества при инстанцировании

соответствующего элемента модели
Спецификация кратности в нотации БНФ имеет следующий формат:

::= <диапазон-кратности> [ ‘{‘ <указатель-упорядоченности> [‘,’ <указатель-уникальности>] ‘}’ ]
<диапазон-кратности> ::= [<нижняя-граница>‘..’ ] <верхняя-граница>
<нижняя-граница> ::= <целое число> | <спецификация значения>
<верхняя-граница> ::= ‘*’ | <спецификация значения>
<указатель-упорядоченности> ::= ‘ordered’ | ‘unordered’
<указатель-уникальности> ::= ‘unique’ | ‘nonunique’
Кратность Кратность (multiplicity) является спецификацией допустимой мощности множества при инстанцировании соответствующего элемента моделиСпецификация кратности в нотации БНФ

Слайд 15Примеры записи атрибутов
+ имяСотрудника : String {readOnly}

~ датаРождения : Data {readOnly}

#

/возрастСотрудника : Integer

+ номерТелефона : Integer [1..*] {unique}

заработнаяПлата : Currency = 500.00
Примеры записи атрибутов+ имяСотрудника : String {readOnly}~ датаРождения : Data {readOnly} # /возрастСотрудника : Integer + номерТелефона : Integer

Слайд 16Операции класса
Операция (operation) класса служит для представления отдельной характеристики

поведения, которая является общей для всех объектов данного класса
Общий формат

записи отдельной операции класса следующий (БНФ):
<операция>::=[<видимость>] <имя операции> ‘(‘ [<список параметров>] ‘)’ [‘:’ [<тип возвращаемого результата>] ‘{‘ <свойство операции> [‘,’ <свойство операции>]* ‘}’]
Где:
<видимость> ::= ‘+’ | ‘-‘ | ‘#’ | ‘~’
<имя операции> (operation name) представляет собой строку текста, которая используется в качестве идентификатора соответствующей операции и поэтому должна быть уникальной для каждой операции данного класса
Операции класса Операция (operation) класса служит для представления отдельной характеристики поведения, которая является общей для всех объектов

Слайд 17Формат записи операции класса
(parameter list) представляет собой перечень

разделенных запятыми формальных параметров операции и имеет следующий общий формат

записи (БНФ):
<список параметров>::= <параметр> [‘,’<параметр>]*.
<параметр>::= [<направление>] <имя параметра> ‘:’ <выражение типа> [‘[‘<кратность>’]’] [‘=’ <значение по умолчанию>] [‘{‘ <свойство параметра > [‘,’ <свойство параметра>]* ‘}’]
<тип возвращаемого результата> (return type) специфицирует тип значения, возвращаемого данной операцией
Формат записи операции класса (parameter list) представляет собой перечень разделенных запятыми формальных параметров операции и имеет следующий

Слайд 18Параметры операции
Параметр (parameter) является спецификацией аргумента, который используется при выполнении

операции или при вызове характеристики поведения
::= ‘in’ | ‘out’ | ‘inout’| ‘return‘. Если оно не указано,

то по умолчанию принимается значение “in”.
in – указывает на то, что значения этого параметра передаются в операцию вызывающим объектом.
inout – указывает на то, что значения этого параметра передаются в операцию вызывающим объектом и затем обратно вызывающему объекту после окончания выполнения операции.
out – указывает на то, что значения этого параметра передаются вызывающему объекту после окончания выполнения операции.
return – указывает на то, что значения этого параметра передаются в качестве возвращаемых значений вызывающему объекту после окончания выполнения операции.
Параметры операцииПараметр (parameter) является спецификацией аргумента, который используется при выполнении операции или при вызове характеристики поведения::= ‘in’ | ‘out’ | ‘inout’| ‘return‘. Если

Слайд 19Параметры операции
(parameter name) представляет собой идентификатор формального параметра,

при записи которого необходимо следовать правилам задания имен атрибутов

(type expression) является спецификацией типа данных для возможных значений соответствующего формального параметра. Этот терм аналогичен рассмотренному выше терму <тип атрибута>для атрибутов классов

Параметры операции (parameter name) представляет собой идентификатор формального параметра, при записи которого необходимо следовать правилам задания имен

Слайд 20Параметры операции
(multiplicity) характеризует общее количество конкретных параметров с данным

именем, которые могут принадлежать тому или иному объекту данного класса

по умолчанию> (default) представляет собой некоторое выражение, которое специфицирует конкретное значение по умолчанию для данного формального параметра.
<свойство параметра> (parameter property) указывает дополнительные свойства значений данного формального параметра. В качестве значений свойств параметра могут быть использованы модификаторы атрибутов
Параметры операции (multiplicity) характеризует общее количество конкретных параметров с данным именем, которые могут принадлежать тому или иному

Слайд 21Свойства операций
redefines – данная операция переопределяет некоторую

наследуемую операцию с именем
query – данная операция не

изменяет состояния моделируемой системы и, соответственно, не имеет побочного эффекта
ordered – значения возвращаемого параметра являются упорядоченными Предполагается, что кратность данного возвращаемого параметра должна быть больше 1
unique – значения возвращаемого параметра не могут повторяться. Предполагается, что кратность данного возвращаемого параметра должна быть больше 1.
<ограничение> – выражение, которое специфицирует некоторое ограничение, применяемое к данной операции
Свойства операций redefines – данная операция переопределяет некоторую наследуемую операцию с именем query – данная операция не

Слайд 22Предусловие (precondition) операции
– определяет условие, которое должно быть истинным, когда

эта операция вызывается

Предусловие (precondition) операции– определяет условие, которое должно быть истинным, когда эта операция вызывается

Слайд 23Постусловие (postcondition) операции
– определяет условие, которое должно быть истинным, когда

вызов операции успешно завершился, в предположении, что все предусловия были

удовлетворены
Постусловие (postcondition) операции– определяет условие, которое должно быть истинным, когда вызов операции успешно завершился, в предположении, что

Слайд 24 Примеры записи операций:
+добавить(in номерТелефона : Integer [*] {unique})

–изменить(in заработнаяПлата : Currency)

+создать() : Boolean

toString(return : String)

toString( ) : String

Примеры записи операций:+добавить(in номерТелефона : Integer [*] {unique})–изменить(in заработнаяПлата : Currency)+создать() : BooleantoString(return : String)toString( ) : String

Слайд 25Отношения на диаграмме классов

Отношения на диаграмме классов

Слайд 26Ассоциация
Ассоциация (association) – произвольное отношение или взаимосвязь между классами
Имя

конца ассоциации специфицирует роль (role), которую играет класс, расположенный на

соответствующем конце рассматриваемой ассоциации
Видимость конца ассоциации специфицирует возможность доступа к соответствующему концу ассоциации с других ее концов
Кратность конца ассоциации специфицирует возможное количество экземпляров соответствующего класса, которое может соотноситься с одним экземпляром класса на другом конце этой ассоциации
Символ наличия навигации (navigable) изображается с помощью простой стрелки в форме буквы «V» на конце ассоциации
Символ отсутствия навигации (non navigable) изображается с помощью буквы «X» на линии у конца ассоциации
Ассоциация Ассоциация (association) – произвольное отношение или взаимосвязь между классамиИмя конца ассоциации специфицирует роль (role), которую играет

Слайд 27Строка свойство (property string)
{subset } – конец ассоциации представляет

собой некоторое подмножество , в качестве которого может выступать

имя конца ассоциации или атрибута класса
Строка свойство (property string){subset } – конец ассоциации представляет собой некоторое подмножество , в качестве которого может

Слайд 28Строка свойство (property string)
{redefined } – конец ассоциации

переопределяет другой конец ассоциации с именем
{union} –

конец ассоциации является производным и определяется посредством объединения своих подмножеств
{ordered} – конец ассоциации представляет собой некоторое упорядоченное множество
{bag} – конец ассоциации представляет собой мультимножество или совокупность, в которой допускается представлять один и тот же элемент более одного раза
{sequence} или {seq} – конец ассоциации представляет собой некоторую последовательность или упорядоченное мультимножество
Строка свойство (property string){redefined } – конец ассоциации переопределяет другой конец ассоциации с именем {union} – конец

Слайд 29Ассоциация с навигацией и эквивалентное ему представление класса с атрибутом

Ассоциация с навигацией и эквивалентное ему представление класса с атрибутом

Слайд 30Варианты изображения навигации и кратности у концов ассоциации

Варианты изображения навигации и кратности у концов ассоциации

Слайд 31Исключающая ассоциация между тремя классами

Исключающая ассоциация между тремя классами

Слайд 32Пример тернарной ассоциации

Пример тернарной ассоциации

Слайд 33Пример 4-арной ассоциации

Пример 4-арной ассоциации

Слайд 34Ассоциация класс (association class)
– элемент модели, который имеет свойства как

ассоциации, так и класса, и предназначенный для спецификации дополнительных свойств

ассоциации в форме атрибутов и, возможно, операций класса.
Ассоциация класс (association class)– элемент модели, который имеет свойства как ассоциации, так и класса, и предназначенный для

Слайд 35Примеры ассоциации класса и рефлексивной ассоциации

Примеры ассоциации класса и рефлексивной ассоциации

Слайд 36Обобщение (generalization)
– таксономическое отношение между более общим классификатором (родителем или

предком) и более специальным классификатором (дочерним или потомком)

Обобщение (generalization)– таксономическое отношение между более общим классификатором (родителем или предком) и более специальным классификатором (дочерним или

Слайд 37Примеры отношения обобщения

Примеры отношения обобщения

Слайд 38Множественное наследование – в языке UML разрешено

Множественное наследование – в языке UML разрешено

Слайд 39Множество обобщения (generalization set)
– элемент модели, экземпляры которого определяют коллекции

подмножеств отношения обобщения
{complete, disjoint} — означает, что данное множество обобщения

является покрывающим и его специальные классы не имеют общих экземпляров
{incomplete, disjoint} — означает, что данное множество обобщения не является покрывающим и его специальные классы не имеют общих экземпляров (предполагается по умолчанию)
{complete, overlapping} — означает, что данное множество обобщения является покрывающим и его специальные классы имеют общие экземпляры
{incomplete, overlapping} — означает, что данное множество обобщения не является покрывающим и его специальные классы имеют общие экземпляры
По умолчанию - {incomplete, disjoint}
Множество обобщения (generalization set)– элемент модели, экземпляры которого определяют коллекции подмножеств отношения обобщения{complete, disjoint} — означает, что

Слайд 40Примеры ограничений на множество обобщения

Примеры ограничений на множество обобщения

Слайд 41Агрегация (aggregation)
– направленное отношение между двумя классами, предназначенное для представления

ситуации, когда один из классов представляет собой некоторую сущность, которая

включает в себя в качестве составных частей другие сущности
Агрегация (aggregation)– направленное отношение между двумя классами, предназначенное для представления ситуации, когда один из классов представляет собой

Слайд 42Пример отношения агрегации

Пример отношения агрегации

Слайд 43Композиция (composition)
или композитная агрегация предназначена для спецификации более сильной формы

отношения "часть-целое", при которой с уничтожением объекта класса-контейнера уничтожаются и

все объекты, являющимися его составными частями.
Композиция (composition)или композитная агрегация предназначена для спецификации более сильной формы отношения

Слайд 44Пример отношения композиции

Пример отношения композиции

Слайд 45Варианты обозначения композиции

Варианты обозначения композиции

Слайд 46Интерфейс (interface)
– вид класса, который представляет собой объявление множества общедоступных

характеристик и обязанностей.

Интерфейс (interface)– вид класса, который представляет собой объявление множества общедоступных характеристик и обязанностей.

Слайд 47Управляющий класс отвечает за координацию действий других классов. Этому классу

посылают мало сообщений, а он рассылает много сообщений

Граничный класс располагается

на границе системы с внешней средой.

Класс-сущность содержит информацию, которая хранится постоянно и не уничтожается с выключением системы

UML Profile for Software Development Processes

Управляющий класс отвечает за координацию действий других классов. Этому классу посылают мало сообщений, а он рассылает много

Слайд 48Квалификатор (qualifier)
Квалификатор (qualifier) объявляет разбиение множества ассоциированных экземпляров относительно экземпляра

на квалифицированном конце ассоциации

Квалификатор (qualifier)Квалификатор (qualifier) объявляет разбиение множества ассоциированных экземпляров относительно экземпляра на квалифицированном конце ассоциации

Слайд 49Шаблон (template)
– классификатор, который в своем описании имеет несколько формальных

параметров

Шаблон (template)– классификатор, который в своем описании имеет несколько формальных параметров

Слайд 50Самостоятельное задание
Выполнить текущее тестирование: вопросы 12-18
Разработать диаграмму классов для

ATM
Изобразить следующие классы: CardReader, Screen, Keyboard, Printer, CashDispenser, ATMController, BankController,

Transaction, IATMBank.
Специфицировать для этих классов атрибуты и операции
Изобразить отношения между классами
Самостоятельное задание Выполнить текущее тестирование: вопросы 12-18Разработать диаграмму классов для ATMИзобразить следующие классы: CardReader, Screen, Keyboard, Printer,

Слайд 51Пример

Пример

Слайд 52Пример

Пример

Слайд 53Пример

Пример

Слайд 54Пример

Пример

Слайд 55Пример

Пример

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика