1. Проектирование информационных
систем. Часть II
Лекции № 11, 12.
Углубленное изучение классов
Понятие сложного программного комплекса.
Углубленное изучение классов:
1. Классификаторы, видимость, область
действия.
2. Абстрактные, листовые, корневые и
полиморфные элементы.
3. Шаблоны классов.
4. Стандартные элементы.
2. Понятие сложного
программного комплекса
Современные сложные системы:
- единую цель всей системы;
- наличие подсистем, имеющих
свои локальные задачи и цели;
- иерархическую структуру связей
и взаимодействия компонентов;
- иерархическую совокупность
критериев качества.
3. Углубленное изучение классов
1. Классификатор (Classifier) - это
механизм, описывающий структурные и
поведенческие свойства
Класс
интерфейс - набор операций
спецификации услуги класса;
тип данных;
сигнал;
компонент;
узел;
прецедент, или вариант использования;
подсистема.
5. Углубленное изучение классов
Область действия
instance (экземпляр) - у каждого экземпляра
классификатора есть собственное значение данного
свойства;
classifier (классификатор) - все экземпляры
классификатора используют общее значение
данного свойства.
7. Углубленное изучение классов
Кратность - количество экземпляров класса
нет ни одного экземпляра - тогда класс
становится служебным (Utility);
ровно один экземпляр - синглетный класс
(Singleton);
заданное число экземпляров;
произвольное число экземпляров - по
умолчанию.
8. Углубленное изучение классов
Атрибуты
Полная форма синтаксиса
[visibility] name [multiplicity] [: type]
[ = initial - value] [ {property - string} ]
Примеры допустимых объявлений атрибутов:
origin
- только имя;
+ origin
- видимость и имя;
origin : Point
- имя и тип;
head : *Item
- имя и сложный тип;
name [ 0..1 ] : String
- имя, кратность и тип;
origin : Point = (0,0)
- имя, тип и начальное
значение;
id : Integer {frozen}
- имя и свойство
9. Углубленное изучение классов
Свойства
changeable (изменяемый) - ограничений на
изменение значений атрибута не
установлено;
addOnly (только добавляемый) разрешается добавлять новые значения для
атрибутов с кратностью больше единицы,
но созданное значение не может быть
изменено или удалено;
frozen (замороженный) - после
инициализации объекта нельзя изменять
значения его атрибутов.
10. Углубленное изучение классов
Операции
Операции
- услуги, которые можно запросить у
любого объекта класса для изменения поведения;
метод - это реализация операции.
Полный синтаксис операции в языке UML:
[visibility] name [(parameter-list)] [: return-type]
[ {property-string}]
Некоторые допустимые объявления операций:
display - только имя;
+ display - видимость и имя;
set (n: Name, s:String) - имя и параметры;
get ID() : Integer - имя и возвращаемое значение;
restart() {guarded} - имя и свойство.
12. Углубленное изучение классов
4. Стандартные элементы
В UML определены четыре стандартных
стереотипа, применимые к классам:
metaclass - определяет классификатор, все
объекты которого являются классами;
powertype - определяет классификатор, все
объекты которого являются потомками данного
родителя;
stereotype - определяет, что данный
классификатор является стереотипом, который
можно применить к другим элементам;
utility - определяет класс, атрибуты и операции
которого находятся в области действия всех
классов.