Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.



generalizable element (обобщаемый элемент)

Элемент модели, который может участвовать в отношении обобщения.
СМ. generalization, inheritance.

Семантика

У обобщаемого элемента могут быть прямые предки и потомки. Переменная, тип которой определен как некоторый элемент, может содержать экземпляр потомка этого элемента.
К обобщаемым элементам относятся классы, варианты использования и другие классификаторы, ассоциации, состояния, события и кооперации. Обобщаемый элемент наследует черты своих предков. В зависимости от элемента определяется, какие части будут наследоваться его потомками. Классы, к примеру, наследуют атрибуты, операции, методы, участие в ассоциациях и ограничения. Ассоциации передают по наследству задействованные в них классы (которые, в свою очередь, также могут быть конкретизированы) и свойства полюсов ассоциации. Варианты использования наследуют атрибуты и операции, ассоциации с актантами, отношения расширения и включения, существующие между ними и другими вариантами использования, последовательности поведения. Состояния наследуют переходы.
См. generalization; association generalization; use case generalization.

Структура

У обобщаемого элемента есть свойства, которые определяют, в каком месте иерархии обобщения он может присутствовать.
Абстракция
Указывает, описывает ли обобщаемый элемент непосредственные экземпляры или же представляет собой абстрактный элемент, который нужно конкретизировать, чтобы можно было создавать его экземпляры. Значение true показывает, что элемент абстрактен (не может иметь непосредственных экземпляров); значение false - что элемент конкретный (может иметь непосредственные экземпляры). Для того чтобы использовать абстрактный элемент, необходимо, чтобы у него появились конкретные потомки. Класс, у операции которого нет метода, автоматически считается абстрактным.
Лист
Указывает, можно ли конкретизировать данный обобщаемый элемент. Значение true показывает, что у элемента не может быть потомков (то есть он представляет собой лист); значение false - что у него могут быть потомки (вне зависимости от того, есть ли они у него на текущий момент). Абстрактный листовой класс практически бесполезен. Его можно использовать только для группировки глобальных атрибутов и операций.
Корень
Указывает, должен ли обобщаемый элемент представлять собой корень, у которого нет никаких предков. Значение true показывает, что элемент должен быть корнем; значение false - что у него могут быть предки (вне зависимости от того, есть ли они у него на текущий момент).
Обратите внимание, что объявление класса листом или корнем не затрагивает его семантику, а лишь указывает на намерения разработчика. Это может сделать более эффективной компиляцию отдельных пакетов (так как исчезает необходимость в глобальном анализе и чрезмерно консервативных допущениях относительно полиморфных операций).

Стандартные элементы

leaf (лист).

Алфавитный указатель