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