- •Лекция 5. Статические модели объектно- ориентированных программных систем
- •Вершины в диаграммах классов
- •Свойства
- •Таблица 1.2 – Характеристики свойств
- •Операции
- •Таблица 1.6 – Значения характеристик операций
- •Организация свойств и операции
- •Отношения в диаграммах классов
- ••ассоциация
- •Варианты мощности:
- •Свойства ассоциации
- ••ассоциация
- ••ассоциация
- ••ассоциация
- •• ассоциация
- •Деревья наследования
- •Пример диаграммы классов
Лекция 5. Статические модели объектно- ориентированных программных систем
Учебные вопросы:
1.Диаграммы классов.
2.Отношения в диаграммах классов.
3.Деревья наследования.
Литература: [4], [6], [10].
1
Вершины в диаграммах классов
Рисунок 1.1 – Обозначение класса
Рисунок 1.2 – Область действия
2
Свойства
Видимость Имя [Множественность]: Тип = НачЗначение {Характеристики}
Таблица 1.1 – Уровни видимости
public Любой клиент класса может использовать свойство (операцию), обозначается символом +
protected |
Любой наследник класса может использовать свойство |
|
|
(операцию), обозначается символом # |
|
private |
Свойство (операция) может использоваться только самим |
|
|
классом, обозначается символом |
- |
3
Таблица 1.2 – Характеристики свойств
changeable Нет ограничений на модификацию значения свойства
addOnly Для свойств с множественностью, большей единицы; дополнительные значения могут быть добавлены, но после создания значение не может удаляться или изменяться
frozen После инициализации объекта значение свойства не изменяется
Таблица 1.3 – Примеры объявления свойств
начало |
Только имя |
+ начало |
Видимость и имя |
начало : Координаты |
Имя и тип |
имяфамилия [0..1] : String |
Имя, множественность, тип |
левыйУгол : Координаты=(0, 10) |
Имя, тип, начальное значение |
сумма : Integer {frozen} |
Имя и характеристика |
|
4 |
Операции
Видимость Имя (Список Параметров): ВозвращаемыйТип {Характеристики}
Таблица 1.4 – Примеры объявления операций |
|
|
записать |
|
Только имя |
+ записать |
|
Видимость и имя |
зарегистрировать( и: Имя, ф: Фамилия) |
Имя и параметры |
|
балансСчета () : Integer |
Имя и возвращаемый тип |
|
нагревать () {guarded} |
Имя и характеристика |
|
|
Направление Имя : Тип = ЗначениеПоУмолчанию |
|
Таблица 1.5 – Значения элемента Направление |
|
|
in |
Входной параметр, не может модифицироваться |
|
out |
Выходной параметр, может модифицироваться для передачи |
|
|
информации в вызывающий объект |
|
inout |
Входной параметр, может модифицироваться |
Таблица 1.6 – Значения характеристик операций
leaf
isQuery sequential
guarded
Конечная операция, операция не может быть полиморфной и не может переопределяться (в цепочке наследования).
Выполнение операции не изменяет состояния объекта.
В каждый момент времени в объект поступает только один вызов операций. Как следствие, в каждый момент времени выполняется только одна операция объекта. Другими словами, допустим только один поток вызовов (поток управления).
Допускается одновременное поступление в объект нескольких вызовов, но в каждый момент времени обрабатывается только один вызов охраняемой операции. Т.е. параллельные потоки управления исполняются последовательно (за счет постановки вызовов в очередь).
concurrent В объект поступает несколько потоков вызовов операций (из параллельных потоков управления). Разрешается параллельное
(и множественное) выполнение операции. Подразумевается, что такие операции являются атомарными.
6
Организация свойств и операции
Рисунок 1.4 – Множественность
Рисунок 1.3 – Стереотипы для характеристик классов
7
Отношения в диаграммах классов
8
•ассоциация
•обобщение
•зависимость
•реализация
•агрегация
•композиция
Рисунок 2.2 – Роли
Ассоциации отображают структурные отношения между экземплярами классов, то есть соединения между объектами.
Каждая ассоциация может иметь метку – имя, которое описывает природу отношения.
Имени можно придать направление – достаточно добавить треугольник направления, который указывает направление, заданное для чтения имени.
Студент Учиться ► Институт
Рисунок 2.1 – Имена ассоциаций
9
Рисунок 2.3 – Мощность
Варианты мощности:
5 — точно пять; * — неограниченное количество;
0..* — ноль или более; 1..* — один или более;
3..7 — определенный диапазон; 1..3, 7 — определенный диапазон или число.
Рисунок 2.4 – Квалификация |
Рисунок 2.5 – Видимость |
10 |
|
|