O que é um componente de software?
Componente, objeto e sistema são todos termos que têm significados específicos diferentes em contextos diferentes.
Um sistema é um termo genérico usado para descrever um mecanismo/tecnologia/design/... que funciona para servir um conjunto de funções.
Um componente é um sub-sistema.
Um objeto é apenas um objeto.
Um carro é um sistema. Este sistema tem componentes tais como motor, assentos e painel de instrumentos. Um carro é um objeto e alguns de seus componentes também são objetos.
O motor do carro é um componente do carro e também um sistema por si só. É também um objeto.
Traffic é um sistema com componentes como estradas, regras, placas, carros, passageiros, motoristas, pedestres, etc.
Todos os programas/aplicações de software são um sistema e têm componentes diferentes. Da perspectiva de um designer UX, os componentes de um sistema de software podem ser sua navegação, diferentes seções, formulários e telas. Da perspectiva de um arquiteto de software, este sistema tem componentes principais, como frontend e vários serviços backend. Da perspectiva de um desenvolvedor, este sistema tem diferentes componentes, como bibliotecas e classes.
O termo objeto, em software, é usado para qualquer coisa na memória. Um int em C ou uma instância de uma grande Classe em Java são ambos objetos. A abordagem orientada a objetos adiciona algumas restrições sobre como definir, inicializar e acessar os objetos em um programa e essas adições naturalmente sobrecarregam o significado do termo objeto de acordo.
Existem diferentes significados específicos do termo componente, como você vê em outras respostas a essa pergunta. Para um desenvolvedor web, um componente web é um software que pode ser adicionado a um documento HTML sem causar conflitos com o host/documento alvo. Para outro framework/plataforma/sistema, um componente pode significar algo mais.
Em suma, você pode obter cem respostas diferentes para a pergunta "o que é um componente?" se você perguntar a cinqüenta desenvolvedores diferentes. Além de todos esses significados sobrecarregados em sistemas diferentes, um componente é sempre apenas um sub-sistema.
Artigos semelhantes
- O que é um ótimo componente de planilha de código aberto baseado na web que pode ser embutido em aplicativos baseados na web?
- O que é o componente de um carregador móvel?
- Qual é o componente mais importante de um carro que se conduz a si próprio?
- O que significa o termo 'renderizar' no ReactJS (como renderizar um componente)?