23. Компонент, типы компонентов, типы отношений при организации компонентов.
Компонент (Component) – это физическая заменяемая часть системы, совместимая с одним набором интерфейсов и обеспечивающая реализацию какого– либо другого. Компонент изображается в виде прямоугольника с вкладками. Обычно компонент представляет собой физическую пакет логических элементов, таких как классы, интерфейсы и кооперативные диаграммы.
У каждого компонента должно быть имя, отличающее его от других компонентов. Имя компонента может состоять из любого числа букв, цифр и некоторых знаков препинания (за исключением таких, как двоеточия, которые применяются для отделения имени компонента от имени объемлющего пакета). Имя может занимать несколько строк.
Виды компонентов
- Во–первых, это компоненты размещения (Deployment components), которые необходимы и достаточны для построения исполняемой системы. К их числу относятся динамически подключаемые библиотеки (DLL) и исполняемые программы (ЕХЕ). Определение компонентов в UML достаточно широко, чтобы охватить как классические объектные модели, вроде СОМ+, CORBA и Enterprise JavaBeans, так и альтернативные, возможно содержащие динамические Web– страницы, таблицы базы данных и исполняемые модули, где используются закрытые механизмы коммуникации.
- Во–вторых, есть компоненты – рабочие продукты (Work product components). По сути дела, это побочный результат процесса разработки. Сюда можно отнести файлы с исходными текстами программ и данными, из которых создаются компоненты размещения. Такие компоненты не принимают непосредственного участия в работе исполняемой системы, но являются рабочими продуктами, из которых исполняемая система создается.
- В–третьих, существуют компоненты исполнения (Execution components); Они создаются как результат работы системы. Примером может служить объект СОМ+, экземпляр которого создается из DLL.
Вы можете организовывать компоненты, группируя их в пакеты, так же, как это делается для классов.
При организации компонентов между ними можно специфицировать отношения зависимости, обобщения, ассоциации (включая агрегирование) и реализации.