Репозитарий компонентов
ПИК и производные от них объекты размещаются в разных хранилищах (библиотеках, репозитариях ПС, в репозитариях Интернет) и используются многократно при построении ПС [30–31]. Например, каждый репозитарий (например, библиотека GreenStone) ориентирован на одну или несколько предметных областей.
В общем случае репозитарий представляет собой систему средств для хранения, пополнения наработанных ПИК, включает в себя инфраструктуру разработки ПС из компонентов, организацию доступа к содержащимся в нем ПИК для последующего их использования в новых проектах ПС.
С функциональной точки зрения репозитарий работает по принципу информационно-поисковой системы, объектами хранения которой являются разные типы документов, тексты и др. Им ставится в соответствие информация, содержащая формализованные спецификации экземпляров коллекции документов, которые отображают понятия ПрО, ключевые слова, правила доступа и др.
В отличие от них компоненты ПИК записываются в репозитарий с поисковым образом, создаваемый путем аннотирования ПИК на основе описания информационной части ПИК. В соответствии терминологии UML, лица, которые обеспечивают функционирование репозитария, называются актерами, а сами работы с ПИК – сценариями.
Репозитарий компонентов ПС упрощает и сокращает сроки разработки ПС за счет:
– отображения в них базовых функций и понятий ПС;
– скрытия представления данных, операций обновления и получения доступа к этим данным;
– обработки исключительных ситуаций, возникающих в процессе выполнения и др.
При представлении поискового образа ПИК используются также информационные модели, которые обеспечивают систему хранения, поиска и сопоставления ПИК, принадлежащих репозитарию, который виртуально разделен на разделы, соответствующие представленном в нем ПрО, перечень которых составляет классификатор первого уровня. Классификаторами следующих уровней могут служить отдельные понятия, определенные для ПрО.
Каждому понятию соответствует информационная модель, в состав которой входят паспортные данные (имя и адрес разработчика, способ приобретения, цена, и т.п.), сведения о среде реализации (ОС, ЯП, СУБД и т.п.), описание аппаратных ресурсах, имени ПрО, к которому относится ПИК в системе классификации и категорий ПИК, а также описание нефункциональных требований к создаваемой системе (безопасность, конфиденциальность, показатели качества системы и прочее).
Для отображения ПИК в репозитарии проводится их классификация и каталогизация, аннотирование и размещение.
Классификация компонентов обеспечивает унификацию представления информации о компонентах для последующего их поиска и отбора из среды репозитария. Она проводится с учетом следующих их групп:
– компонент типа модуль, класс и т.п.;
– компоненты, которые имеют интерфейс (входные и выходные параметры, пред-, пост- условия функционирования), функциональность и реализацию на ЯП, из которых создается ПИК со спецификацией шаблона развертывания;
– готовые к употреблению ПИК;
– сложные ПИК типа каркасы и паттерны, которые обеспечивают взаимодействие простых ПИК.
Каталогизация направлена на физическое размещение кодов ПИК в репозитарии для извлечения их при необходимости встраивания новый программный проект ПС. Для выбранных компонентов осуществляется их настройка на условия среды функционирования.
Инженерия ПИК и других компонентов (КОМ1, …, КОМk ) в разработку новых ПС осуществляется примерно по технологии, представленной на рис.6.1. Если компоненты написаны на разных ЯП, создаются интефейсные модули (Int1,…, Intk), в которых подготавливаются и преобразуются типы передаваемых данных.






Генерация интерфейсов пары КОМ на ЯП Int
1







8. Интеграция разных видов компонентов Int2







j


Рис 6.1 Технология инженерии компонентов в разработке ПС