Методы и средства инженерии программного обеспечения


Компонентный подход к проектированию


По оценкам экспертов, 75 % работ по программированию в мире дублируются (например, программы складского учета, начисления зарплаты, расчета затрат на производство продукции и т.п.). Большинство из этих программ типовые, но каждый раз находятся особенности, которые влияют на их повторное разработку. Компонентное проектирование сложных программ из готовых компонентов является наиболее производительным [8–12].

Переход к  компонентам происходил эволюционно: от подпрограмм, модулей, функций. При этом  усовершенствовались элементы, методы их композиции и накопления для дальнейшего использования  (рис.5.2).

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

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

 

Информационная часть представляет собой информацию о компоненте: назначение, дата изготовления, условия применения (ОС, среда, платформа и т.п.); уровень повторного использования; контекст или  окружение; способ взаимодействия между собою компонентов.

Элемент композиции

Описание элемента

Схема взаимодействия

Представле–ние, хранение

Результат композиции

Процедура, подпрограмма, функция

Идентификатор

Непосредственное обращение, оператор вызова

Библиотеки подпрограмм и функций

Программа

Модуль

Паспорт модуля, связи

Вызов модулей, интеграция модулей

Банк, библиотеки модулей

Программа с модульной структурой

Объект

Описание класса

Создание экземпляров классов, вызов методов

Библиотеки классов

Объектно–ориентиро–ванная программа

Компонент

Описание логики (бизнес), интерфейсов (APL,IDL), схемы развертывания

Удаленный вызов в

компонентных моделях (COM, CORBA, OSF, …)

Репозитарий компонентов, серверы и контейне–ры компонентов

Распреде–ленное компонентно–ориенти–рованное приложение

Сервис

Описание бизнес–логики и  интерфей–сов сервиса (XML, WSDL, …)

Удаленный вызов (RPC, HTTP, SOAP, …)

Индексация и каталогизация сервисов (XML, UDDI, …)

Распреде–ленное сер–висо–ориен–тированное приложение

<


Начало  Назад  Вперед



Книжный магазин