Диаграмма классов

Содержание

Слайд 2

Диаграмма классов Диаграмма классов – диаграмма, предназначенная для представления модели статической

Диаграмма классов

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

программной системы в терминологии классов объектно-ориентированного программирования.
Разработка диаграммы классов преследует следующие цели:
определить сущности предметной области и представить их в форме классов с соответствующими атрибутами и операциями;
определить взаимосвязи между сущностями предметной области и представить их в форме типовых отношений между классами;
разработать исходную логическую модель программной системы для ее последующей реализации в форме физических моделей;
подготовить документацию для последующей разработки программного кода.
Слайд 3

Диаграмма классов Классификатор – специальное понятие, предназначенное для классификации экземпляров, которые

Диаграмма классов

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

общие характеристики.
Характеристика – понятие, предназначенное для спецификации особенностей структуры и поведения экземпляров классификаторов.
Структурная характеристика является типизированной характеристикой классификатора, которая специфицирует структуру его экземпляров.
Характеристика поведения является характеристикой классификатора, которая специфицирует некоторый аспект поведения его экземпляров.
Слайд 4

Класс Класс – элемент модели, который описывает множество объектов, имеющих одинаковые

Класс

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

характеристик, ограничений и семантики.
Активный класс – класс, каждый экземпляр которого имеет свою собственную нить управления.
Пассивный класс – класс, каждый экземпляр которого выполняется в контексте некоторого другого объекта.

Имя класса

Имя класса

Слайд 5

Имя класса Имя класса – строка текста, предназначенная для идентификации класса

Имя класса

Имя класса – строка текста, предназначенная для идентификации класса на

диаграмме классов.
Пример простого имени класса:
SqlConnection
Квалифицированное имя класса:
<Имя пакета 1>::.. ::<Имя пакета N>::<Имя класса>
Пример квалифицированного имени класса:
System::Data::Sql::SqlConnection
Имя абстрактного класса записывается курсивом
Слайд 6

Атрибуты класса Атрибут класса служит для представления отдельной структурной характеристики или

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

Атрибут класса служит для представления отдельной структурной характеристики или свойства,

которое является общим для всех объектов данного класса.
Описание атрибута:
<атрибут> ::= [<видимость>] [‘/’] <имя> [ ‘:’ <тип>]
[ ‘[’ <кратность> ‘]’ ] [ ‘=’ <значение по умолчанию>]
[ ‘{’ <модификатор атрибута> [ ‘,’ < модификатор атрибута >]* ‘}’ ]
Виды видимости:
‘-’ – закрытый,
‘#’ – защищенный,
‘+’ – общедоступный,
‘~’ – пакетный.
Статические атрибуты выделяются подчеркиванием строки описания атрибута
Слайд 7

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

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

Слайд 8

Атрибуты класса Кратность является спецификацией допустимой мощности множества при инстанцировании соответствующего

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

Кратность является спецификацией допустимой мощности множества при инстанцировании соответствующего значения

модели.
<кратность> ::= <диапазон-кратности> [ ‘{’ <указатель-упорядоченности> [ ‘,’ <указатель-уникальности>] ‘}’ ]
<диапазон-кратности> ::= [<нижняя-граница> ‘..’ ] <верхняя-граница>
<нижняя-граница> ::= <целое-число> | <спецификация-значения>
<верхняя-граница> ::= ‘*’ | <спецификация-значения>
<указатель-упорядоченности> ::= ‘ordered’ | ‘unordered’
<указатель-уникальности> ::= ‘unique’ | ‘nonunique’
Примеры:
+ имяСотрудника: String {readOnly}
# / возрастСотрудника: Integer
+ номерТелефона: Integer [*] {unique}
- заработнаяПлата: Currency = $500
Слайд 9

Операции класса Операция класса служит для представления отдельной характеристики поведения, которая

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

Операция класса служит для представления отдельной характеристики поведения, которая является

общей для всех объектов данного класса.
<операция> ::=
[<видимость>] <имя-операции> ‘(’ [<список-параметров>] ‘)’
[ ‘:’ <тип-результата>] [ ‘{’ <свойство-операции>
[ ‘,’ <свойство-операции>] ‘}’ ]
<список-параметров> ::= <параметр> [ ‘,’ <параметр>]*
<параметр> ::= [<направление>] <имя> ‘:’ <тип> [ ‘[’ <кратность> ‘]’ ]
[ ‘=’ <значение-по-умолчанию>] [ ‘{’ <свойсвто-параметра>
[ ‘,’ <свойсвто-параметра> ]* ‘}’ ]
Направления параметров: in, inout, out, return
Предусловие для операции определяет условие, которое должно быть истинным, когда эта операция вызывается.
Постусловие для операции определяет условие, которое должно быть истинным, когда вызов операции успешно завершился, в предположении, что все предусловия удовлетворены.
Слайд 10

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

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

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

заработнаяПлата: Currency)
+ создать () : Boolean
Слайд 11

Отношения На диаграмме классов могут присутствовать следующие отношения между классами: ассоциация; зависимость; агрегация; композиция; обобщение; реализация.

Отношения

На диаграмме классов могут присутствовать следующие отношения между классами:
ассоциация;
зависимость;
агрегация;
композиция;
обобщение;
реализация.

Слайд 12

Ассоциация Ассоциация – произвольное отношение или взаимосвязь между классами. Имя конца

Ассоциация

Ассоциация – произвольное отношение или взаимосвязь между классами.
Имя конца ассоциации специфицирует

роль, которую играет класс расположенный на соответствующем конце ассоциации.
Видимость конца ассоциации специфицирует возможность доступа к соответствующему концу ассоциации с других ее концов.
Кратность конца ассоциации специфицирует возможное количество экземпляров соответствующего класса, которое может соотносится с одним экземпляром класса на другом конце ассоциации.
Слайд 13

Ассоциация Символ наличия навигации, указывает на то, что соответствующий класс является

Ассоциация

Символ наличия навигации, указывает на то, что соответствующий класс является доступным

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

Многоугольник

Линия

Содержит

1

3..*

+сторона

Слайд 14

Исключающая ассоциация

Исключающая ассоциация

Слайд 15

N-арная ассоциация

N-арная ассоциация

Слайд 16

Ассоциация-класс Ассоциация-класс – элемент модели, который имеет свойства как ассоциации, так

Ассоциация-класс

Ассоциация-класс – элемент модели, который имеет свойства как ассоциации, так и

класса, и предназначенный для спецификации дополнительный свойств ассоциации в форме атрибутов и, возможно, операций классов.
Слайд 17

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

Обобщение

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

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

Обобщение Множество обобщения – элемент модели, экземпляры которого определяют коллекции подмножеств

Обобщение

Множество обобщения – элемент модели, экземпляры которого определяют коллекции подмножеств отношения

обобщения.
Ограничения множества обобщений:
{complete, disjoint} – данное множество обобщения является покрывающим и его специальные классы не имеют общих классификаторов.
{incomplete, disjoint} – данное множество обобщения не является покрывающим и его специальные классы не имеют общих экземпляров.
{complete, overlapping} – данное множество обобщения является покрывающим и его специальные классы имеют общие экземпляры.
{incomplete, overlapping} – данное множество обобщения не является покрывающим и его специальные классы имеют общие экземпляры.
Слайд 19

Обобщение

Обобщение

Слайд 20

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

Агрегация

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

когда один из классов представляет собой некоторую сущность, которая включает в себя в качестве составных частей другие сущности.
Слайд 21

Агрегация

Агрегация

Слайд 22

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

Композиция

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

«часть-целое», при которой с уничтожением объекта класса-контейнера уничтожаются и все объекты, являющиеся его составными частями.
Слайд 23

Композиция

Композиция

Слайд 24

Зависимость Зависимость – отношение, предназначенное для описания ситуации, когда отдельному элементу

Зависимость

Зависимость – отношение, предназначенное для описания ситуации, когда отдельному элементу или

множеству элементов модели требуются другие элементы модели для своей спецификации или реализации.
Слайд 25

Реализация Реализация – специализированное отношение зависимости между двумя элементами модели, один

Реализация

Реализация – специализированное отношение зависимости между двумя элементами модели, один из

которых представляет некоторую спецификацию (поставщик), а другой представляет его реализацию (клиент).
Слайд 26

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

Интерфейс

Интерфейс – вид класса, который представляет собой объявление общедоступных характеристик и

обязанностей.
Слайд 27

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

Шаблон

Шаблон – классификатор, который в своем описании имеет несколько формальных параметров.
<параметр-шаблона>

::=
<имя-параметра-шаболна> [ ‘:’ <вид-параметра>] [ ‘=’ <по-умолчанию>]
<подстановка-параметар-шаблона> ::=
<имя-параметра-шаблона> ‘->’ <действительный-параметр-шаблона>
Слайд 28

Примеры

Примеры

Слайд 29