Опубликован: 24.09.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 10:

Инженерия приложений и предметной области

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >

9.3. Репозитарий компонентов

ПИК и другие компоненты многоразового применения размещаются в разных хранилищах.

Ими могут быть библиотеки, репозитарии компонентов и ресурсов в Интернет (например, GreedStone, Matlab, библиотека повторно используемых классов С++ и др.).

Ими можно пользоваться многократно всем желающим для реализации своих целей, в том числе при построении программных систем различного назначения. Репозитарий типа библиотеки GreenStone и Matlab представляют огромное множество готовых программ научного и математического типов, т.е они ориентированы на математиков, биологов, физиков и других специалистов предметных областей.

В общем случае репозитарий - это система средств для хранения, пополнения наработанных ПИК, включает инфраструктуру разработки ПС из компонентов, организацию доступа к содержащимся в нем ПИК для последующего их применения в новых проектах.

С функциональной точки зрения репозитарий работает по принципу информационно-поисковой системы, объектами хранения которой - разные типы документов, текстов и др. Система ставит в соответствие ключевым понятиям, словам, правилам доступа и др. запрос пользователя к требуемому ресурсу, который содержится в ее коллекции документов.

В отличие от таких систем, в репозитарии компонентов, кроме ПИК размещается семантическая информация в виде поискового образа, созданного на основе описания информационной модели каждого компонента. Эта модель - средство построения поискового образа для каталога ПИК, ориентированного на осмысление человеком функций ПИК и возможности сопоставления их с собственными потребностями.

Поисковый образ ПИК в репозитарии может включать:

  • список ключевых слов, наиболее часто упоминаемых в тексте ПИК;
  • ссылку на предварительно построенную онтологию домена проблемной области, к которой этот ПИК относится.

Задание поискового образа ПИК на основе информационной его модели обеспечивает систему хранения, поиска и сопоставления ПИК. Репозитарий виртуально разделен на разделы, соответствующие отдельным ПрО, перечень которых представляет классификатор первого уровня. Классификаторами следующих уровней могут быть отдельные понятия ПрО.

Поисковый образ может включать паспортные данные компонента (имя и адрес разработчика, способ приобретения, цену и т.п.), сведения о среде реализации (ОС, ЯП, СУБД и т.п.), описание аппаратных ресурсов, имени ПрО в системе классификации, а также описание нефункциональных требований к создаваемой системе (безопасность, конфиденциальность, показатели качества системы и др.).

Для отображения ПИК в репозитарии проводится их классификация и каталогизация, аннотирование и размещение.

Классификация компонентов ориентирована на унификацию представления информации о компонентах для последующего их поиска и отбора из среды репозитария. Она проводится с учетом следующих факторов:

  • компонент типа модуль, класс и т.п.;
  • компоненты, которые имеют интерфейс (входные и выходные параметры, условия выполнения), функциональность и реализацию на ЯП со спецификацией шаблона развертывания;
  • готовые к употреблению ПИК;
  • сложные ПИК типа каркасы и паттерны, которые обеспечивают взаимодействие простых ПИК.

Каталогизация направлена на физическое размещение кодов ПИК в репозитарии для извлечения их при необходимости встраивания нового программного проекта ПС. Для выбранных компонентов осуществляется их настройка на условия среды функционирования.

Поисковый образ упрощает поиск и сокращает сроки разработки ПС за счет:

  • отображения базовых функций и понятий компонента;
  • скрытия представления данных, операций обновления и получения доступа к этим данным;
  • обработки исключительных ситуаций, возникающих в процессе выполнения и др.

Разработка новых ПС может осуществляться по технологии с использованием компонентов (КОМ1, ..., КОМk) и ПИК (рис. 9.2).

Если компоненты написаны на разных ЯП, в процессе создания ПС формируются интерфейсные модули (Int1, ..., Intk), в которых преобразуются типы передаваемых данных между компонентами.

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

увеличить изображение
Рис. 9.2. Технология инженерии компонентов в разработке ПС

В соответствии с терминологией UML лица, которые обеспечивают выбор необходимых ПИК из репозитария и построение из них новых ПС по типу сценария - это акторы.

9.4. Язык описания интерфейса компонентов в распределенной среде

Для объединения компонентов программную структуру необходимым условием является наличие для них формально определенных интерфейсов в языках IDL и APL, а также механизмов динамического контроля связей между компонентами.

Спецификация интерфейса в API и IDL включает описание функциональных свойств компонентов, их типов и порядка задания операций передачи аргументов и результатов для взаимодействия компонентов. Описание интерфейса представляет собой интерфейсный посредник между двумя объектами.

ПС, построенная из компонентов и предназначенная для функционирования в распределенной среде, имеет некоторые особенности в структуре, а именно: она состоит из двух частей, каждая из которых может выполняться на разных процессах и взаимодействовать друг с другом через вызов интерфейсных функций. Первая часть - серверная программа, а вторая - клиентская (далее просто сервер и клиент).

В функции интерфейсного модуля клиента входят:

  • подготовка внешних данных клиента (параметров),
  • набор вызовов этих процедур или обращение к сервису сервера,
  • обработка разных ошибок, возврат данных от сервера к клиенту.

Общие функции интерфейсного модуля сервера содержат: - ожидание сообщений клиента и их обработку; запуск удаленной процедуры и передачу ей параметров клиента;

возврат результатов процедуры клиенту, уничтожения уда ленной процедуры и др.

Структура интерфейсного модуля не зависит от ЯП взаимодействующих объектов и в целом одинакова для всех. Это связано со стандартизированной его структурой и общим языком спецификации интерфейса, синтаксис которого представлен ниже в форме БэкусаНаура:

<интерфейс объекта>::= 
    оbject <имя_Объекта> :{<множество исходных интерфейсов>};
                          {<множество входных интерфейсов>} 
    end;
<множество входных интерфейсов>::= <множество интерфейсов>;
<множество выходных интерфейсов>::= <множество интерфейсов>;
<множество интерфейсов>::= ∅ | <интерфейс>; <множество интерфейсов>;
<интерфейс>::= 
    interface <имя_интерфейса> :{<множество функций>} 
    end;
<множество функций>::= ∅ | <функция>; <множество функций>;
<функция>::= 
    function <имя_функции>: <множество параметров> 
    еnd;
<множество параметров>::= <параметр> | <параметр>, < множество параметров>;
<параметр>::= <тип> (<вид параметра>);
<вид параметра>::= in | out | inout.

Тип данных описывается средствами языков программирования (C++, Pascal и т.п.) и обеспечивает взаимодействие между процессами, а параметры <вида параметра> могут быть: in -входной параметр, out - выходной параметр, in-out - совместный параметр.

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >
Александр Медов
Александр Медов

Здравствуйте,при покупке печатной формы сертификата,будут ли выданы обе печатные сторны?

Александр Медов
Александр Медов

Здравствуйте, прошел курс МБА Управление ИТ-проектами и направил документы на получение диплома почтой. Подскажите, сроки получения оного в бумажной форме?

: