КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Билет 35. 1. Компоненты и интерфейсы1. Компоненты и интерфейсы. Диаграммы физического уровня. Компонента реализуют некоторый набор действий, и служит для общего обозначения элементов физического представления модели. Изображение в UML позволяет визуализировать компоненту без привязки к операционной системе или алгоритмическому языку с помощью специального символа (рис. 1.29 а). Поскольку конкретная реализация логического представления зависит от используемых инструментальных средств, то и имена компонентов будут определяться особенностями синтаксиса соответствующего языка. В отдельных случаях к простому имени компонента может быть добавлено имя объемлющего пакета и версии реализации данного компонента (рис. 1.29 б). Компоненты зачастую воспринимаются как двоичные исполняемые EXE-файлы, но могут быть частью системы, которая не является непосредственно исполняемым модулем (например, файлом исходного текста программы, файлом данных, динамически компонуемой библиотекой DLL или хранимой процедурой базы данных). Механизмы расширения, принятые в UML, расширяют как свойства компонент, так и определяют новые стереотипы. Базовый набор включает несколько элементов (табл. 1.1), общепринятая нотация их представлена на рис. 1.30. Все виды компонент именуют артефактами, подчеркивая их законченное информационное содержание. Табл. 1.1. Разновидности компонент.
Рис. 1.30. Условное изображение базовых стереотипов компонента в UML. Наличие интерфейсов у компоненты означает, что компонента реализует соответствующий набор интерфейсов. Если компонента реализует некоторый интерфейс, то такой интерфейс называют экспортируемым, поскольку компонента предоставляет его в качестве сервиса другим компонентам. Если компонента использует некоторый интерфейс, который реализуется другим компонентом, то такой интерфейс для первой компоненты называется импортируемым. Приведем основные характеристики компонент: 6. компонента представляет независимо развертываемый программный блок (компонента никогда не развертывается частично); 7. компонента может служить строительным блоком для стороннего разработчика (компонента в достаточной мере документирована и самодостаточна, чтобы сторонний разработчик мог встроить ее в другие компоненты); 8. компонента – заменяемая часть системы, т.е. ее можно заменить другой компонентой, которая согласуется с тем же интерфейсом; 9. компонента выполняет четко определенную функцию и с логической и с физической точки зрения образует единое целое; 10. компонента может быть вложена в другие компоненты. Сравним компоненту с пакетами и классами. Пакет – логическая часть системы. На логическом уровне каждый класс принадлежит одному пакету. На физическом уровне каждый класс реализуется, по крайней мере, одной компонентой, а компонента, возможно, реализует только один класс. Пакеты группируют классы по горизонтали за счет статической близости классов, принадлежащих одной проблемной области. Компоненты – вертикальные группы классов с близким поведением. Они могут принадлежать разным проблемным областям. Свойство ортогональности пакетов и компонент затрудняет установление зависимостей между ними. Зачастую один логический пакет зависит от нескольких физических компонент. Подобно классам компоненты реализуют интерфейсы. Однако существует разница. Во-первых, компонента – физическая абстракция, развертываемая на некотором компьютерном узле. Класс представляет логическую сущность, которая для того чтобы действовать в качестве физической абстракции, должна быть реализована с помощью компоненты. Во-вторых, компонента делает доступным только некоторые интерфейсы содержащихся в ней классов. Другие инкапсулированные интерфейсы используются только внутри компонента другими классами.
|