Открыть сервисСервис

Компонент — элемент системы

Компонент (от лат. 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.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru