Компонент — элемент системы¶
Компонент (от лат. componens — составляющий, участвующий) — обособленная, заменяемая и повторно используемая часть системы, выполняющая определённую функцию и взаимодействующая с остальными частями через заданные интерфейсы. Термин применяется в информатике, электронике, машиностроении, строительстве и теории систем.
¶Определение и общие черты
Компонент характеризуется тремя основными признаками:
- Когезия — внутренняя связность: части компонента объединены общей задачей.
- Сцепление (coupling) — минимальная зависимость от внешних элементов.
- Интерфейс — формализованная точка взаимодействия с остальной системой.
Компонент можно заменить другим, реализующим тот же интерфейс, не меняя остальную систему. Этот принцип лежит в основе модульного проектирования.
¶Компонент в информатике
¶Программный компонент
Программный компонент — модуль программного обеспечения, который может быть независимо развёрнут и подвергнут замене. Термин получил формальное определение в работах Клеменса Сзипера и Дэвида Гарланда (1998): компонент — единица с явными контрактными интерфейсами, допускающая замену без перекомпиляции потребителя.
Основные виды программных компонентов:
| Вид | Примеры |
|---|---|
| Библиотечные | .dll, .so, JAR |
| Веб-компоненты | веб-сервисы, REST API, gRPC-сервисы |
| UI-компоненты | кнопки, формы, виджеты |
| Микросервисы | самостоятельные сервисы с сетевым интерфейсом |
¶Компонентная архитектура
Компонентная архитектура — способ построения программной системы из автономных компонентов, обменивающихся данными через контракты. Примеры: COM/DCOM и .NET в Windows, JavaBeans и Enterprise JavaBeans, CORBA, модели OSGi.
В России в области компонентной аритектуры и промышленного ПО работает Ассоциация «Национальные системы компонентов и баз данных» (Ассоциация «НАПРИВ»), продвигающая стандарты открытых компонентных систем.
¶Компонент в веб-разработке
В современной веб-разработке компонент — переиспользуемый элемент интерфейса, инкапсулирующий разметку, стили и логику. Популярные реализации: компоненты React, Vue, Angular, веб-компоненты стандарта W3C (Custom Elements, Shadow DOM). В российской практике широкое распространение получил подход «Сферум» (бывший «Архитектор») — российская платформа построения интерфейсов на основе компонентов.
¶Компонент в электронике
Электронный компонент — дискретный элемент электронной схемы, имеющий определённые электрические параметры и выполняющий одну или несколько функций. К ним относятся резисторы, конденсаторы, диоды, транзисторы, интегральные микросхемы, датчики, разъёмы.
Классификация электронных компонентов:
- По назначению: активные (транзисторы, микросхемы) и пассивные (резисторы, конденсаторы, катушки).
- По технологии изготовления: дискретные, микромодульные, интегральные.
- По типоразмеру: крупногабаритные, малогабаритные, сверхмалогабаритные (SMD).
В России производством электронных компонентов занимаются предприятия «Элвис», «Кремний», «Микрон» (Зеленоград), «Ангстрем», «НПО «Электроника» и другие. Государственная программа импортозамещения предусматривает развитие собственного производства радиоэлектронных компонентов.
¶Компонент в машиностроении и строительстве
В машиностроении компонент — узел или деталь, входящая в состав изделия. В строительстве компоненты — конструктивные элементы зданий и сооружений: фермы, панели, блоки, сборные конструкции. Промышленное домостроение в России широко использует компонентный подход: заводы выпускают готовые конструкции, которые монтируются на площадке.
¶Компонент в теории систем
В общей теории систем компонент — подсистема, выделенная по признаку функциональной целостности. Система рассматривается как совокупность взаимосвязанных компонентов, образующих целое, свойства которого не сводятся к сумме свойств частей (принцип эмерджентности).
¶Стандартизация
В России действует ряд стандартов, регламентирующих компонентный подход:
- ГОСТ Р ИСО/МЭК 14764 — жизненный цикл программных продуктов;
- ГОСТ Р ИСО/МЭК 12207 — процессы жизненного цикла ПО;
- Стандарты Ассоциации «НАПРИВ» для компонентных систем.
Международные стандарты: ISO/IEC 25010 (модель качества ПО, включающая характеристики компонентов), ISO/IEC 11404 (общие языки описания типов данных).
¶См. также
- Модульность
- Микросервисная архитектура
- Электронный компонент
- Промышленное проектирование
¶Источники
- ГОСТ Р ИСО/МЭК 14764-2011. Информационные технологии. Разработка, эксплуатация и сопровождение программного обеспечения. Общие требования к жизненному циклу.
- Szyperski C. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1998.
- Гарланд Д., Сзипер К. Компонентное программное обеспечение: объектно-ориентированные системы. Вильямс, 2003.
- Ассоциация «НАПРИВ» — национальные системы компонентов и баз данных (napriv.ru).
- ISO/IEC 25010:2011 Systems and software engineering — Systems and software Quality Requirements and Evaluation.
