Aspectos técnicos do desenvolvimento baseado em componentes

Um novo processo de desenvolvimento

Novas etapas surgem:

Novos papeis no desenvolvimento

Comparação técnica de OOP e COP

Tempo de Binding Como funciona
Tempo de codificação
  • Codifição simples sem sequer separação procedural
Tempo de compilação
  • Separação padrão em procedimentos/funções
  • As chamadas são amarradas (bound) a uma implementação em tempo de compilação
Tempo de link-edição
  • Unidades separadas de compilação com interfaces (ex. "protótipos" em C) declaradas separadamente das implementações
  • As chamadas são compiladas usando as interfaces
  • As chamadas são amarradas (bound) a uma implementação em tempo de link-edição para gerar um único módulo executável
Ligação dinâmica
  • Unidades separadas de compilação que não precisam se link-editadas num único módulo executável para permitir a execução
  • Um módulo compilado (DLL) pode ser linkado dinamicamente a um sistema que esteja executando
  • As chamadas são compiladas usando as interfaces
  • As chamadas são amarradas (bound) a uma implementação em tempo de execução
  • A implementação é carregada em tempo de execução
  • Java é assim (DLL é o arquivo .class ou .jar)
Reflexivo
  • Chamadas não são compiladas com interfaces em tempo de compilação
  • Em tempo de execução, tem-se informação suficiente sobre as interfaces disponíveis
  • Em tempo de execução, as chamadas são feitas a tais interfaces usando "reflexão" (olhar dentro do "módulo" para descobrir o que se quer)
  • O binding é obviamente dinâmico
  • Normalmente, os nomes das chamadas são contidas em strings; os nomes das chamadas podem ser montadas dinamicamente e executadas
  • Java usa reflexão
Década Tecnologia de Programação Novidade
1940 Código de máquina Máquinas programáveis
1950 Assembly Linguagens simbólicas
1960 Linguagens de alto nível Expressões e independência de máquina
1970 Programação estruturada Tipos estruturados e estruturas de controle
1980 Programação modular Separação da interface e da implementação
1990 Programação Orientada a Objeto Polimorfismo
2000 Programação Orientada a Componente Composição dinâmica e segura

Supporte de Linguagem

comp2.gif (10952 bytes)

comp-2 programa anterior próxima