Componentes de software
Um sistema de software pode ser formado inteiramente somente por componentes, pois estes se interligam através de suas interfaces. Este processo de comunicação entre componentes é denominado composição.
A Engenharia de Software Baseada em Componentes (ESBC) é, em muitos sentidos, similar a engenharia de software convencional ou orientada a objetos. Uma equipe de desenvolvedores define requisitos para o sistema ser construído, usando técnicas de licitação de requisitos convencionais. Um design da arquitetura é estabelecido. Ao invés de um detalhando design, a equipe examina os requisitos, para determinar qual subconjunto é diretamente moldável ao esquema de composição, em detrimento de um esquema de construção.
A equipe tentará modificar ou remover os requisitos de sistema que não puderem ser implementados com componentes COTS. Isso nem sempre é possível ou prático, mas reduz o custo geral do sistema.
O processo ESBC identifica não somente possíveis componentes, mas também qualifica a interface de cada componente, adapta o componente para remover incongruências arquitetônicas, monta os componentes dentro de um estilo de arquitetura selecionado, e atualiza componentes como requisitos para a mudança no sistema. Por exemplo:
Engenharia de Domínio
Objetiva identificar, construir, catalogar e disseminar um conjunto de componentes de software que tenham aplicabilidade para softwares existentes e futuros, dentro de um domínio de aplicação específico. Um domínio de aplicação é como uma família de produtos - aplicações com funcionalidade similar. Desenvolvimento Baseado em Componentes
O Desenvolvimento Baseado em Componentes (DBC) aborda a criação de sistemas de software que envolva a composição de componentes