Desenvolvimento de Componentes

Estou querendo saber dos companheiros, se já desenvolveram Componentes de software de acordo com uma definição, digamos assim, mais acadêmica.

Estou fazendo um trabalho e estou precisando fazer um estudo de caso de um componente. O problema que estou encontrando é não conseguir identificar em uma aplicação composta por componentes (por exemplo, um framework), onde está o danado.

Onde está e como é desenvolvido para permitir sua substituição por um componente que atenda às mesmas interfaces requeridas e as mesmas funcionalidades oferecidas para a aplicação sem que ela perceba a diferença?

Se possível, precisaria ter acesso aos códigos deste componente e da aplicação que faz seu uso, para tentar desenvolver um outro componente que atenda às mesmas interfaces (requeridas e fornecidas), fazer sua substituição e “comprovar” as vantagens do desenvolvimento de software baseado em componentes.

Espero ter deixado claro minha dúvida.

[]'s

Componente componente acho que um bom exemplo é o JBOSS … isso mesmo :shock: … o danado é todo desenhado em componentes, vocês tem até como trocá-lo embora eu desconheça mais de uma implementação pro mesmo componente (isso não quer dizer que não exista) mas de qualquer modo você tem o código fonte e também os arquivos de configuração pra exemplificar como seria trocar

Outro exemplo mas acho que não é tão acadêmico assim seria o framework MVC do Webwork … ele é construído em cima do Xwork mas você pode substituir pelo Spring, intregrá-lo com o Pico e qualquer outra coisa que quiser. Além disso ele tem um framework (que poderia ser entendido como componente? sei lá) de validação (nunca vi ninguém trocando, mas também dá) e a view pode ser acoplada a vontade do freguês (talvez mais componentes? :silly: )

Ah … o Spring também é todo componentes … com ele é bem capaz de você encontrar 2 implementações que façam a mesma coisa.

Existe um livro chamado UML Components que define uma estrutura bem legal para desenvolvimento Orientado a Componentes, com exemplos em EJB e COM+ [bleagh!]. Apesar de importado, é baratim [R$60+ ou -] e relativamente fácild e encontrar.

Eu estou preparando um artigo com uma itnroduçãod este método, está no finzinho mas meu tempo não me deixa despachar o bendito. A PUC-RIO tem ume xcelente curso na área, também.

Basicamente você usa design by contract para assegurar que suas itnerfaces sejam mantidas.

Um bom exemplo de substituição de componentes no JBoss é a dobradinha Jetty/Tomcat que ele pdoe usar facilmente :wink:

[]s

Inicialmente, pelo que estou vendo do Spring ele realmente permite substituir componentes.

O interessante é que ele trabalha com Programação Orientada a Aspectos, que também faz parte de meu trabalho.

Muito obrigado.