112
Пакеты в UML Предусмотрен общий механизм организации некоторых элементов
(объектов, классов, подсистем и т.п.) в группы. Группирование возможно начиная от
системы к подсистемам разного уровня детализации, вплоть до классов. Результат
группирования называется пакетом.
Пакет определяет название пространства, занимаемого элементами, которые являются
его составляющими и средством ссылки на это пространство. Это важно для больших
систем, которые насчитывают сотни, а иногда и тысячи элементов, и потому требуют
иерархического структурирования.
Подсистема в UML рассматривается как случай пакета, который имеет
самостоятельную функцию. Пакет может быть вложенным, то есть состоять из пакетов,
классов, подсистем и т.п.
Объединение элементов в пакеты может происходить из разных соображений,
например, если они используются совместно или созданы одним автором, или касаются
определенного аспекта рассмотрения, как например, интерфейс с пользователем,
устройства ввода/вывода и т.п. На стадии реализации к одному пакету могут быть
отнесены все подсистемы, которые в диаграмме размещения связаны с одним узлом.
Пакет может быть элементом конфигурации, как элемент композиции при построении
системы, на которую можно ссылаться в разных диаграммах. Термином конфигурация
обозначается структура программной системы из отдельных модулей или из заведомо
определенного состава их вариантов. Так, например, ОС может включать
конфигурацию модулей, которые позволяют взаимодействие с разнообразными
устройствами, но лишь отдельные из них подключаться к данному компьютеру с
созданной версией ОС в виде конкретной конфигурации.
Среди фиксированных стереотипов для обозначения разновидностей пакета введены
такие: система, прикладная система, подсистема, элемент конфигурации, составная
системы, охватывающая система и др. Например, стереотип <<унаследовано>> может
прибавляться к пакету, который является элементом старой версии системы и без
переработки включен в новую версии системы.
5.1.4. Компонентный подход к проектированию
По оценкам экспертов, 75 % работ по программированию в мире дублируются
(например, программы складского учета, начисления зарплаты, расчета затрат на
производство продукции и т.п.). Большинство из этих программ типовые, но каждый
раз находятся особенности, которые влияют на их повторное разработку.
Компонентное проектирование сложных программ из готовых компонентов является
наиболее производительным [8–12].
Переход к компонентам происходил эволюционно: от подпрограмм, модулей,
функций. При этом усовершенствовались элементы, методы их композиции и
накопления для дальнейшего использования (рис.5.2).
Компонентный подход дополняет и расширяет существующие подходы в
программировании, особенно ООП. Объекты рассматриваются на логическом уровне
проектирования программной системы, а компоненты – это непосредственная
физическая реализация объектов.