Скачиваний:
34
Добавлен:
10.04.2015
Размер:
624.13 Кб
Скачать

Учебный курс

Язык UML в анализе и проектировании программных систем и бизнес-процессов

Лекция 3

Диаграмма классов языка UML 2

Автор:

Леоненков Александр Васильевич

кандидат технических наук, старший научный сотрудник

Проблема: Как представить архитектуру программной системы?

Графический

интерфейс

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

Модели

бизнес

объектов

Базы данных

Архитектура программной системы в нотации UML

Customer

 

 

 

 

 

 

name : String

 

 

Order

 

 

Sales

Address : String

 

 

 

 

product : Product

 

 

date : Date

 

 

 

 

 

 

 

 

 

 

 

save()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ServiceAgent

 

Observer

 

 

 

purchase(customer, product, items)

 

update()

 

 

 

Уровень GUI

Customer

 

 

 

 

 

Order Line

 

Product

name : String

 

 

 

name : String

 

items : Product

 

Address : String

 

 

 

price : Currency

 

getName()

save()

 

 

 

 

 

getName()

 

updateName()

 

getName()

 

 

 

updateName()

 

 

updateName()

 

 

 

 

 

 

 

 

 

 

 

 

 

Customer

 

Order Line

 

Product

 

*

 

*

 

 

 

 

Промежуточный

уровень

Уровень базы данных

Диаграмма классов — основная логическая модель проектируемой системы

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

Диаграмма классов представляет собой граф, вершинами или узлами которого являются элементы типа “классификатор”, которые связаны различными типами структурных отношений

Классификатор (classifier) – специальное понятие, предназначенное для классификации экземпляров, которые имеют общие характеристики

Характеристики классификатора

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

Структурная характеристика (structural feature) является типизированной характеристикой классификатора, которая специфицирует структуру его экземпляров

Характеристика поведения (behavioral feature) является характеристикой классификатора, которая специфицирует некоторый аспект поведения его экземпляров

Класс (class) – элемент модели, который описывает множество объектов, имеющих одинаковые спецификации характеристик, ограничений и семантики

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

 

 

 

 

 

 

 

 

 

 

 

К л а

с с

 

 

 

 

 

 

К о м п а н и я

 

 

 

 

 

 

К р а т н о с т ь

И м я

 

1

 

 

 

К о м п о з и ц и я

 

 

 

 

 

а с с о ц и а ц и и

 

 

 

 

 

 

 

*

1 . . *

 

 

 

 

 

 

1

. . *

 

 

 

О т д е л

*

М е с т о п о л о ж е н и е

 

*

О ф и с

 

 

0 . . 1

н а з в а н и е : S t r in g

 

а д р е с : S t r in g

 

 

 

 

 

 

 

 

 

 

т е л е ф о н :

 

 

 

 

*

*

 

А

с с о ц

и а ц

и я

 

 

 

 

 

 

О г р а н и ч е н и е

 

 

 

 

 

 

 

 

 

{ s u b s

e t }

 

 

 

 

 

 

 

 

 

 

 

О б

о

б щ

е н и е

 

 

С

о

т р у д н и к

 

 

 

 

1 М е н е д ж е р

 

 

 

 

 

 

 

 

1 . . *

 

 

 

 

Ш т а б - к в а р т и р а

 

 

 

С о т р у д н и к

 

И м я к о н ц а

 

 

 

 

 

 

 

 

 

а с с о ц

и а ц

и и

 

 

 

 

 

и м я : S t r in g

 

 

А т р и б у т ы

 

 

 

 

 

ф а м и л и я : S t r in g

 

О п е

р

а ц и и

 

 

 

 

 

д о л ж н о с т ь : S t r in g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g e t P h o t o ( p : P h o t o )

 

 

 

К о н т а к т н а я

 

 

 

 

g e t C o n t a c t I n f o r m ( )

 

 

 

 

 

 

 

 

 

И

н ф

о р м а ц и я

 

 

 

 

g e t P e r s o n a lR e c o r d s ( )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а д р е с : S t r in g

И н т е р ф е й с

 

 

 

 

 

 

т е

л

е ф

о н

:

 

 

 

 

З а в и с и м о с т ь

 

 

П е р с о н а л ь н о е Д е л о

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и с т о р и я Р а б о т ы : S t r i n g

 

 

 

 

 

 

 

 

з а р п л а т а : C u r e n c y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IS e c u r e In f o r m a t io n

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

 

 

И м я к л а с с а

 

 

 

 

 

 

 

 

 

 

И м я

к л а с с а

 

 

 

 

 

 

 

 

 

 

 

 

И м я к л а с с а

а т р и б у т ы к л а с с а

 

И м я к л а с с а

 

 

 

 

 

 

 

 

 

 

о п е р а ц и и к л а с с а

 

 

 

 

 

 

 

 

 

о п е р а ц и и к л а с с а

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В и д и м о с т ь

 

 

S h a p e

 

 

 

 

 

 

+ o r ig in

:

P o

in t

 

 

 

+ m o v e ( p : P o in t )

 

+ r e s iz e ( s : S c a le )

 

+ d is

p ly

( )

 

 

 

# in v a lid

a

t e R

e g io n ( )

 

 

 

 

 

 

 

R

e s

p o

n s

ib ilit ie s

 

- - m a n a g e s h a p e s t a t e

 

- - h a n d le b a s ic s h a p e

 

t r a n s f o r m a t io n s

И м я к л а с с а

А

т р

и б у т ы

 

О

п

е р а ц и

и

С и г н а

т у

р

а

 

о п е р а

ц

и

и

 

 

Д о п о л н и т е л ь н а я

 

 

 

 

с е

к ц и я

И м я к л а с с а

Разновидности классов

Абстрактный (abstract) класс не имеет экземпляров или объектов, для обозначения его имени используется наклонный шрифт (курсив)

Активный класс (active class) – класс, каждый экземпляр которого имеет свою собственную нить управления

Пассивный класс (passive class) – класс, каждый экземпляр которого выполняется в контексте некоторого другого объекта

Квалифицированное имя (qualified name) используется для того, чтобы явно указать, к какому пакету относится тот или иной класс. Для этого применяется специальный символ в качестве разделителя имени – двойное двоеточие “::”

Имя класса без символа разделителя называется простым именем класса

Атрибут (attribute) класса

– служит для представления отдельной структурной характеристики или свойства, которое является общим для всех объектов данного класса

<атрибут>::= [<видимость>] [‘/’] <имя> [‘:’ <тип атрибута>] [‘[‘<кратность>‘]’] [‘=’ <значение по умолчанию>] [‘{‘<модификатор атрибута> [‘,’ <модификатор атрибута>]* ’}’]

Где:

<видимость>::= ‘+’ | ‘–‘ | ‘#’ | ‘~’.

видимость (visibility) может принимать одно из 4-х возможных значений и отображаться либо посредством специального символа, либо соответствующего ключевого слова

Вид видимости

+ public (общедоступный). Общедоступный элемент является видимым всеми элементами, который имеют доступ к содержимому пространства имен, который им владеет.

- private (закрытый). Закрытый элемент является видимым только внутри пространства имен, который им владеет.

# protected (защищенный). Защищенный элемент является видимым для элементов, которые имеют отношение обобщения с пространством имен, который им владеет.

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

Соседние файлы в папке predtZnanVInfSist