Em disciplinas de programação e engenharia, um componente é uma parte identificável de um programa ou construção maior. Normalmente, um componente fornece uma determinada função ou grupo de funções relacionadas. Na concepção da programação, um sistema é dividido em componentes que por sua vez são constituídos por módulos. teste de componentes significa testar todos os módulos relacionados que formam um componente como um grupo para garantir que eles trabalhem juntos.
Na programação orientada a objetos e na tecnologia de objetos distribuídos, um componente é um bloco de construção de programa reutilizável que pode ser combinado com outros componentes no mesmo ou outros computadores em uma rede distribuída para formar uma aplicação. Exemplos de um componente incluem: um único botão em uma interface gráfica de usuário, uma pequena calculadora de interesse, uma interface para um gerenciador de banco de dados. Os componentes podem ser implantados em diferentes servidores em uma rede e comunicam-se entre si para os serviços necessários.
Sun Microsystems, cuja interface do programa aplicativo JavaBeans define como criar um componente, define "um modelo de componente" como tipicamente fornecendo esses principais tipos de serviços:
- Exposição e descoberta da interface do componente. Assim, durante o uso da aplicação, um componente pode interrogar outro para descobrir suas características e como se comunicar com ele. Isso permite que diferentes empresas (possivelmente provedores de serviços independentes) criem componentes que possam interoperar com os componentes de outras empresas sem ter que saber com antecedência exatamente com quais componentes ele estará trabalhando.
- Propriedades do componente. Isto permite que um componente torne suas características publicamente visíveis para outros componentes.
- Configuração de componentes. Isto permite que um componente identifique a um ou mais componentes que um evento (como um usuário pressionando um botão) tenha ocorrido para que o componente possa responder a ele. No exemplo da Sun, um componente que forneceu uma interface de usuário para um botão de uma aplicação financeira "levantaria" um evento quando o botão fosse pressionado, resultando em um componente de cálculo gráfico ganhando controle, formulando um gráfico, e exibindo-o para o usuário.
- Persistência. Isto permite que o estado dos componentes seja preservado para sessões posteriores do usuário.
- Suporte ao construtor da aplicação. Uma idéia central dos componentes é que eles não só serão fáceis e flexíveis para implantação em uma rede distribuída, mas que os desenvolvedores podem facilmente criar novos componentes e ver as propriedades dos existentes.
- Empacotamento de componentes. Como um componente pode compreender vários arquivos, tais como ícones e outros arquivos gráficos, o modelo de componente da Sun inclui uma facilidade para empacotar os arquivos em um único formato de arquivo que pode ser facilmente administrado e distribuído. (A Sun chama seu pacote de componentes de um formato de arquivo JAR (Java Archive).)