Программный компонент — это модульная единица программного обеспечения , которая инкапсулирует определенную функциональность. [1] Желательными характеристиками компонента являются возможность повторного использования и удобство обслуживания . [1]
Компоненты позволяют разработчикам программного обеспечения собирать программное обеспечение из надежных частей, а не писать код для каждого аспекта, что позволяет больше походить на заводскую сборку, чем на индивидуальную разработку.
Желательные атрибуты компонента включают, помимо прочего:
Некоторые компоненты создаются внутри той же организации или команды, которая разрабатывает программную систему . Некоторые являются сторонними , разработанными в другом месте и собранными в программную систему. [2]
Для крупномасштабных систем разработка на основе компонентов способствует дисциплинированному процессу управления сложностью . [3]
Некоторые компоненты соответствуют технологии фреймворка, которая позволяет использовать их известным способом. Примеры включают: CORBA , COM , Enterprise JavaBeans и .NET Framework . [4] [5]
Компонентный дизайн часто моделируется визуально. В Unified Modeling Language (UML) 2.0 компонент отображается в виде прямоугольника, а интерфейс отображается в виде леденца на палочке для указания предоставленного интерфейса и в виде сокета для указания потребления интерфейса.
Идея повторно используемых программных компонентов была выдвинута Дугласом Макилроем в его презентации на конференции НАТО по программной инженерии в 1968 году. [6] (Одной из целей этой конференции было разрешение так называемого кризиса программного обеспечения того времени.) В 1970-х годах Макилрой воплотил эту идею в жизнь, добавив функцию конвейера в операционную систему Unix .
Брэд Кокс усовершенствовал концепцию программного компонента в 1980-х годах. [7] Он попытался создать инфраструктуру и рынок для повторно используемых сторонних компонентов, изобретя язык программирования Objective-C . [8]
IBM представила системную объектную модель (SOM) в начале 1990-х годов. [9]
Microsoft представила Component Object Model (COM) в начале 1990-х годов. Microsoft построила множество доменно-специфичных компонентных технологий на COM, включая Distributed Component Object Model (DCOM), Object Linking and Embedding (OLE) и ActiveX.
Современная концепция программного компонента в значительной степени определена Брэдом Коксом из Stepstone, => язык программирования Objective-C
г. IBM изобретает свою модель системных объектов. 1990 г. в качестве реакции Microsoft выпустила OLE 1.0 OLE custom controls (OCX)[ постоянная мертвая ссылка ]