stringtranslate.com

Компонентная разработка программного обеспечения

Пример двух компонентов, выраженных в UML 2.0. Компонент оформления заказа, отвечающий за выполнение заказа клиента, требует, чтобы компонент обработки карты списал средства с кредитной/дебетовой карты клиента (функциональность, которую обеспечивает последний ).

Компонентная разработка программного обеспечения ( CBSE ), также называемая компонентной разработкой ( CBD ), представляет собой стиль разработки программного обеспечения, целью которого является создание программного обеспечения из слабосвязанных модульных компонентов. Он подчеркивает разделение задач между различными частями программной системы .

Определение и характеристики компонентов

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

Компоненты взаимодействуют друг с другом через интерфейсы . Каждый компонент предоставляет интерфейс (называемый предоставленным интерфейсом ), через который его могут использовать другие компоненты. Когда компонент использует интерфейс другого компонента, этот интерфейс называется используемым интерфейсом.

На иллюстрациях UML в этой статье предоставленные интерфейсы представлены символами леденцов, а используемые интерфейсы представлены символами открытых сокетов.

Простой пример нескольких программных компонентов, изображенный в гипотетической системе бронирования отпусков, представленной в UML 2.0.

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

Компоненты должны быть многоразовыми .

Компонентное тестирование юзабилити следует рассматривать, когда компоненты программного обеспечения напрямую взаимодействуют с пользователями.

Компоненты должны быть:

История

Идея о том, что программное обеспечение должно быть компонентным, то есть создаваться из готовых компонентов , впервые стала заметной в выступлении Дугласа Макилроя на конференции НАТО по разработке программного обеспечения в Гармише , Германия , в 1968 году под названием « Компоненты массового производства программного обеспечения» . [1] Целью конференции было противодействовать так называемому программному кризису . Последующее включение Макилроем каналов и фильтров в операционную систему Unix стало первой реализацией инфраструктуры для этой идеи.

Брэд Кокс из Stepstone во многом определил современную концепцию программного компонента. [2] Он назвал их программными ИС и намеревался создать инфраструктуру и рынок для этих компонентов, изобретя язык программирования Objective-C . (Он резюмирует эту точку зрения в своей книге « Объектно-ориентированное программирование – эволюционный подход», 1986 г.)

Компоненты программного обеспечения используются в двух разных контекстах и ​​двух видах: i) использование компонентов как частей для создания одного исполняемого файла или ii) каждый исполняемый файл рассматривается как компонент в распределенной среде, где компоненты взаимодействуют друг с другом через Интернет или интранет. протоколы связи для IPC (межпроцессные коммуникации). Вышеупомянутое принадлежит к первому виду, а нижнее — к более позднему.

В начале 1990-х годов IBM пошла по этому пути, разработав свою системную объектную модель (SOM). В ответ Microsoft проложила путь к фактическому развертыванию компонентного программного обеспечения с помощью связывания и внедрения объектов (OLE) и объектной модели компонентов (COM). [3] По состоянию на 2010 год существует множество успешных моделей программных компонентов.

Архитектура

Компьютер, на котором работает несколько программных компонентов, часто называют сервером приложений . Такое сочетание серверов приложений и программных компонентов обычно называют распределенными вычислениями . Типичное реальное применение этого — например, в финансовых приложениях или бизнес-программах.

Модели компонентов

Модель компонента — это спецификация свойств компонента. [4]

Классификация существующих компонентных моделей приведена в [4] и. [5] Примерами компонентных моделей являются: модель Enterprise JavaBeans (EJB), модель компонентных объектов (COM), модель .NET , модель компонентов X-MAN, [6] и модель компонентов общей архитектуры брокера объектных запросов (CORBA).

Технологии

Смотрите также

Рекомендации

  1. ^ Макилрой, Малкольм Дуглас (январь 1969 г.). «Компоненты программного обеспечения массового производства» (PDF) . Программная инженерия: отчет конференции, спонсируемой Научным комитетом НАТО, Гармиш, Германия, 7-11 октября 1968 г. Отдел по научным вопросам НАТО. п. 79.
  2. ^ Райнер Никамп. «Архитектура программных компонентов» (PDF) . Gestión de Congresos — CIMNE/Институт научных вычислений Брауншвейгского технического университета. п. 4 . Проверено 29 июля 2011 г. Современная концепция программного компонента, во многом определенная Брэдом Коксом из Stepstone, => язык программирования Objective-C.
  3. Рафаэль Гфеллер (9 декабря 2008 г.). «Обновление компонентного приложения». HSR – Hochschule für Technik Rapperswill. п. 4 . Проверено 29 июля 2011 г. 1990 год: IBM изобретает свою системную объектную модель. В 1990 году в качестве реакции Microsoft выпустила пользовательские элементы управления OLE 1.0 (OCX).[ постоянная мертвая ссылка ]
  4. ^ аб Црнкович, И.; Сентиллес, С.; Вулгаракис, А.; Чаудрон, MRV (2011). «Структура классификации моделей программных компонентов». Транзакции IEEE по разработке программного обеспечения . 37 (5): 593–615. дои :10.1109/TSE.2010.83. S2CID  15449138.
  5. ^ Лау, Кунг-Киу; Ван, Чжэн (2007). «Модели программных компонентов». Транзакции IEEE по разработке программного обеспечения . 33 (10): 709–724. дои :10.1109/TSE.2007.70726. ISSN  0098-5589.
  6. ^ Лау, Кунг-Киу; Веласко Элизондо, Перла; Ван, Чжэн (2005). «Экзогенные соединители для программных компонентов». В Хейнемане, Джордж Т.; Црнкович, Ивица; Шмидт, Хайнц В.; Стаффорд, Джудит А.; Шиперски, Клеменс; Валлнау, Курт (ред.). Компонентно-ориентированная программная инженерия . Конспекты лекций по информатике. Том. 3489. Шпрингер Берлин Гейдельберг. стр. 90–106. дои : 10.1007/11424529_7. ISBN 9783540320494. S2CID  17971442.
  7. ^ MASH определяет активы как людей, имущество и информацию, а управление - как мониторинг, контроль и настройку. Представленный на конференции IEEE IoT 2013 года в Маунтин-Вью, MASH включает в себя полную интегрированную среду разработки, клиент Android и среду выполнения. "МАШ YouTube-канал"
  8. ^ Компонентно-ориентированный подход — идеальный способ справиться с разнообразием программного обеспечения в бытовой электронике. Модель Koala, используемая для встроенного программного обеспечения в телевизорах, позволяет позднее связывать повторно используемые компоненты без дополнительных затрат. [1]
  9. ^ Модель компонентов для встроенных устройств, таких как телевизоры, разработанная Philips на основе статьи ван Оммеринга Р.: Koala, модель компонентов для программного обеспечения для бытовой электроники [2]. Архивировано 9 августа 2014 г. на Wayback Machine.
  10. ^ Ларсен, Джон (2021). Хуки React в действии с приостановкой и параллельным режимом . Мэннинг. ISBN 978-1720043997.
  11. ^ Арад, Космин (апрель 2013 г.). Модель программирования и протоколы для реконфигурируемых распределенных систем (PDF) . Стокгольм, Швеция: Королевский технологический институт KTH. ISBN 978-91-7501-694-8. {{cite book}}: |work=игнорируется ( помощь )
  12. ^ Ареллан, Дамиан; Лау, Кунг-Киу (2017). «Экзогенные соединители для иерархической композиции услуг» (PDF) . 2017 10-я конференция IEEE по сервис-ориентированным вычислениям и приложениям (SOCA) . Канадзава: IEEE. стр. 125–132. дои : 10.1109/SOCA.2017.25. ISBN 9781538613269. S2CID  31211787.

дальнейшее чтение

Внешние ссылки