Перейти к содержимому

Что такое компонент в программировании

  • автор:

Компонент (программирование)

Tapestry Components.jpg

Компонент — в программировании, множество классов и языковых конструкций, объединенных по общему признаку. В большинстве языков программирования нет языковых конструкций прямо отражающих понятие компонента. Компоненты реализуются с помощью стандартных конструкций, таких как классы [1] .

Компонентный подход программирования широко поддерживается фреймворками (программными каркасами).

В MVC («Модель-представление-контроллер») архитектуре [2] , компоненты чаще всего взаимодействуют с контроллерами, слушателями (англ. listener ) событий, классами сущностей (англ. entity ).

См. также

В Викисловаре есть статья «компонент»

  • Сервис-ориентированная архитектура (англ.SOA )
  • Сервисно-ориентированная архитектура баз данных (англ.SODA )
  • Компонентно-ориентированное программирование

Примечания

  1. English Wikipedia — Software component (англ.)
  2. Model-View-Controller (рус.)
  • Компонентно-ориентированное программирование

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое «Компонент (программирование)» в других словарях:

  • Компонент — Компонента составная часть чего либо целого. В разных отраслях науки и техники может иметь дополнительное, более специфическое значение. В математике Компонента связности Компонента связности графа Компонента вектора или тензора, см.… … Википедия
  • Компонентно-ориентированное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная … Википедия
  • Объектно-ориентированное программирование — Эта статья во многом или полностью опирается на неавторитетные источники. Информация из таких источников не соответствует требованию проверяемости представленной информации, и такие ссылки не показывают значимость темы статьи. Статью можно… … Википедия
  • Экстремальное программирование — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен … Википедия
  • Отражение (программирование) — У этого термина существуют и другие значения, см. Отражение. Для улучшения этой статьи желательно?: Перевести текст с иностранного языка на русский. Н … Википедия
  • Декларативное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная … Википедия
  • Внутрисхемное программирование — (англ. In System Programming, сокр. ISP) технология программирования электронных компонентов (ПЛИС, микроконтроллеры и т. п.), позволяющая программировать компонент, уже установленный в устройство. До появления этой… … Википедия
  • Метод (программирование) — У этого термина существуют и другие значения, см. Метод. Метод в объектно ориентированном программировании это функция или процедура, принадлежащая какому то классу или объекту. Как и процедура в процедурном программировании, метод состоит… … Википедия
  • КОМПОНЕНТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (КОП) — Парадигма программирования, ключевой фигурой которой является компонент (англ. component oriented programming, COP) Словарь бизнес терминов. Академик.ру. 2001 … Словарь бизнес-терминов
  • Листинг (программирование) — Исходный код, написанный на JavaScript Исходный код (также исходный текст) текст компьютерной программы на каком либо языке программирования. В обобщённом смысле любые входные данные для транслятора. Исходный код либо транслируется в… … Википедия
  • Обратная связь: Техподдержка, Реклама на сайте
  • �� Путешествия

Экспорт словарей на сайты, сделанные на PHP,
WordPress, MODx.

  • Пометить текст и поделитьсяИскать в этом же словареИскать синонимы
  • Искать во всех словарях
  • Искать в переводах
  • Искать в ИнтернетеИскать в этой же категории

Модуль vs Компонент

Чем модуль отличается от компонента. Чем схема модулей отличается от схемы компонентов.

Три компонента описания системы

Рис. 1. Три проекции описания системы по стандарту ISO 81346-1

Очень часто сталкиваюсь с тем, что даже опытные инженеры, да и не только они путают эти понятия. Хотя есть четкие стандарты (например ISO 81346) которые определяют их. Если вы будете гуглить, то зачастую схема компонентов может называться схема модулей, а схема модулей — схемой компонентов. Так в чем же разница, и как их отличить?

Компонент — это функциональная единица.
Схема компонентов — ее цель ответить на вопрос «Как это работает?».
Модуль — это конструктивная единица.
Схема модулей — ее цель, ответить на вопрос — «Из чего это состоит?».

Схема компонентов отражает функциональное назначение системы, схема модулей отражает физическую структуру системы (конструктивную).

Проще всего наглядно увидеть разницу между схемой компонентов и модулей, если посмотреть на блок питания компьютера.

Схема компонентов

Схема компонентов блока питания

Принципиальная схема компонентов блока питания выглядит так:

Рис. 2. Схема компонентов блоки питания

Данная схема состоит из компонентов, каждый из которых несет свою функциональную нагрузку. Допустим электрическое сопротивление (резистор) — R4 и указан номинал этого сопротивления, допустим 5 Ом. С точки зрения схемы компонентов, не важно что это за резистор, из какого материала сделан, его номер на заводе, его форм-фактор и внешний вид. Эта информация относиться больше к схеме модулей. С точки зрения схемы компонентов важно что делает этот компонент, и какие его характеристики с точки зрения той работы, которую он выполняет. В нашем случае, если это сопротивление, то с какой силой это сопротивление.

Схема модулей

Схема модулей блока питания

А вот схема модулей блока питания

Рис. 3. Схема модулей блоки питания

Схема модулей отражает физическое воплощение системы, ее структуру. Т.е. из каких конкретных элементов состоит эта система, которая выполняет работу, описанную на схеме компонентов. Один модуль может содержать в себе несколько компонентов, и наоборот, один компонент может быть распределен по нескольким модулям.

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

Задача инженера, спроектировать такую схему компонентов, которые работая в совокупности, будут максимально эффективно выполнять ту задачу, которая стоит перед инженером. А затем максимально эффективно распределить эти компоненты по модулям, чтобы в конечном итоге это было как можно более надежно, компактно, эффективно.

С точки зрения программной инженерии

Если это переносить в область программной инженерии, то модули в программной инженерии — это библиотеки, исполняемые файлы, пакеты (nuget, js и т.д). Так же к модулям можно отнести проекты (cproj), подпроекты, файлы исходного кода (cs, cpp), но это уже модули описания системы, а не ее воплощения. В системной инженерии принято разделять саму систему, и описание системы. К описанию системы относятся исходные коды, документация и т.д. А сама система — это уже скомпилированные файлы и данные, работающие в продуктовом окружении, и делающие полезную работу, ради которой собственно и создавалась эта система.

Так вот, компонентами в программной инженерии является те сущности, и логика предметной области, которые мы описываем в наших файлах исходных кодов. Это те абстракции, выявленные в ходе предметно-ориентированного проектирования (и объектно-ориентированного в том числе, как фундамента для предметно-ориентированного проектирования), это те классы их методы которые описывают ту работу, которая выполняет запрограммированная нами система.

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

Схема компонентов говнокодинга

Схемы компонентов не обязательно бывают такие сложными, как принципиальная электронная схема блока питания. Вот так же простой пример схемы компонентов говнокодинга:

Рис. 2. Схема компонентов «говнокодинга»)

Резюме

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

Данное определение дано на на базе курса по системному мышлению от Анатолия Левенчука.

Учебники. Программирование для начинающих.

Programm.ws — это сайт, на котором вы можете почитать литературу по языкам программирования , а так-же посмотреть примеры работающих программ на С++, ассемблере, паскале и много другого..

Программирование — в обычном понимании, это процесс создания компьютерных программ.
В узком смысле (так называемое кодирование) под программированием понимается написание инструкций — программ — на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами (на профессиональном жаргоне — кодерами), а те, кто разрабатывает алгоритмы — алгоритмистами, специалистами предметной области, математиками.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Более точен современный термин — «программная инженерия» (также иначе «инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.

Delphi для начинающих

Введение

Компоненты

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

Наиболее часто используемые компоненты находятся на вкладке Standard (рис. В16).

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

Рис. В16. Вкладка Standard содержит наиболее часто используемые компоненты

Размер компонента можно задать в процессе его добавления к форме. Для этого надо после выбора компонента из палитры поместить курсор мыши в ту точку формы, где должен находиться левый верхний угол компонента, нажать левую кнопку мыши и, удерживая ее нажатой, переместить курсор в точку, где должен находиться правый нижний угол компонента, затем отпустить кнопку мыши. В форме появится компонент нужного размера.

Каждому компоненту Delphi присваивает имя, которое состоит из названия компонента и его порядкового номера. Например, если к форме добавить два компонента Edit, то их имена будут Edit1 и Edit2. Программист путем изменения значения свойства Name может изменить имя компонента. В простых программах имена компонентов, как правило, не изменяют.

На рис. В17 приведен вид формы после добавления двух компонентов Edit полей редактирования, предназначенных для ввода исходных данных. Один из компонентов выделен. Свойства выделенного компонента отображаются в окне Object Inspector. Чтобы увидеть свойства другого компонента, надо щелкнуть левой кнопкой мыши на изображении нужного компонента. Можно также выбрать имя компонента в окне Object TreeView или из находящегося в верхней части окна Object Inspector раскрывающегося списка объектов.

Рис. В17. Форма после добавления компонентов Edit

В табл. В3 перечислены основные свойства компонента Edit — поля ввода-редактирования.

Таблица ВЗ. Свойства компонента Edit (поле ввода-редактирования)

Компоненты

Использование при программировании готовых библиотек классов повышает скорость разработки программ и существенно экономит усилия разработчиков. Однако любая такая библиотека перед использованием требует изучения своей структуры и возможностей и, кроме того, должна быть написана на том же языке программирования, что и разрабатываемая программа (конечно, существуют способы сопряжения различных языков программирования, но не всегда ими можно воспользоваться).

Эти недостатки послужили причиной появления концепции компонентов. Фирмой Microsoft с целью стандартизации программных компонентов была разработана технология ActiveX, в основе которой лежит COM (Component Object Model — модель компо- | к-1иного объекта). Эта системная технология объединяет совокупность средств, с помощью которых объекты, разработанные различными разработчиками на разных языках программирования и работающие в разных средах, могут взаимодействовать друг с другом без какой-либо модификации их исполняемых модулей (двоичных кодов).

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

Так, например, компоненты стандарта ActiveX могут быть одинаково успешно включены в программу, реализованную в среде Visual Basic, и в приложение, разработанное средствами Delphi. У компонента имеются два типа интерфейсов — интерфейс стадии проектирования и интерфейс стадии выполнения. Интерфейс проектирования позволяет включать компоненты в современные среды разработки приложений, а интерфейс выполнения управляет работой компонента во время выполнения программы. Состояние компонента может быть изменено только с помощью изменения его свойств и вызова методов. Разработка любого приложения состоит из двух взаимосвязанных этапов: • проектирования и создания функционального интерфейса приложения (т. е. набора визуальных компонентов, которые будут обеспечивать взаимодействие пользователя и вычислительной среды); • программирования процедур обработки событий, возникающих при работе пользователя с приложением. Проектирование интерфейса. На этом (первом) этапе формирования общего вида главного окна при выполнении приложения и способов управления работой приложения, для каждого компонента необходимо определить его внешний вид, размеры, способ и место размещения в области окна приложения (т. е. реализовать интерфейс разработки и интерфейс выполнения). Компоненты, доступные проектировщику на этапе разработки приложения, разбиты на функциональные подгруппы. С точки зрения внутренней структуры компоненты разбиваются на три группы. На рис. 4.1 представлена графическая интерпретация этого разбиения.

Рис. 4.1. Иерархия групп компонентов схожей внутренней структуры

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

Визуальные компоненты имеют две разновидности — «оконные» и «неоконные» (графические): • оконные визуальные компоненты (самая многочисленная группа компонентов) — это компоненты, которые могут получать фокус ввода (т. е. становиться активными для взаимодействия с пользователем) и содержать другие визуальные компоненты. • неоконные (графические) визуальные компоненты не могут получать фокус и содержать другие визуальные компоненты (например, надписи и графические кнопки). Невизуальные компоненты на стадии разработки не имеют своего фиксированного местоположения и размеров. Во время выполнения приложения некоторые из них иногда становятся видимыми (например, стандартные диалоговые окна от крытая и сохранения файлов), а другие остаются невидимыми всегда (например, таблицы базы данных). Важной характеристикой компонента, как и любого объекта, являются его свойства — атрибуты, определяющие его состояние и поведение. Различают три типа свойств компонента: • свойства времени проектирования. Установленные для них значения будут использоваться в момент первого отображения компонента и в дальнейшем могут быть изменены во время выполнения приложения; • динамические свойства. Изменением их значений можно управлять только изнутри программного кода (во время выполнения приложения); • свойства только для чтения, которые могут быть прочитаны и использованы при выполнении программы, но не могут быть изменены. Непосредственное программирование процедур обработки событий, исходящих от компонентов (второй этап). Основная задача при разработке таких процедур — запрограммировать реакцию на все возможные изменения состояний объектов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *