26
Componentes e Frameworks Alcides Calsavara

Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Embed Size (px)

Citation preview

Page 1: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Componentes e Frameworks

Alcides Calsavara

Page 2: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Referências Bibliográficas

1. Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM, 43(10), pp. 25-26, October 2000.

2. Jon Hopkins, Component Primer, Communications of the ACM, 43(10), pp. 27-30, October 2000.

3. Cris Kobryn, Modeling Components and Frameworks with UML, Communications of the ACM, 43(10), pp. 31-38, October 2000.

Page 3: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Referências Bibliográficas

• Michael Sparling, Lessons Learned through Six Years of Component-based Development, Communications of the ACM, 43(10), pp. 47-53, October 2000.

• Clemens Szyperski, Component Software: Beyond Object-Oriented Programming, Addison-Wesley, 1998.

Page 4: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Soluções de software:abordagens típicas

• turnkey solutions– prontas para o uso– requerem alguma configuração

• custom development solutions– grande parte do sistema é integralmente construída

• component-based framework solutions– abstrações para identificar, discutir, resolver e implementar

sistemas – implementações parciais– extensíveis de forma segura

Page 5: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Exemplos de frameworkpara objetos distribuídos

• SUN J2EE

• Microsoft .NET

• OMG CORBA Specification

Page 6: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Exemplos de Modelos de Componentes

• SUN Enterprise JavaBeans - EJB

• Microsoft DCOM (COM+)

• OMG CORBA Specification

Page 7: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Exemplos de Componentes

• Componentes GUI (Graphical User Interface) - “widgets” :– ActiveX– Java Beans

• Componentes de negócio: objetos CORBA

• Aplicações inteiras: Excel, PowerPoint

Page 8: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Definição de Grady Boochpara Componente

“uma parte física e substituível de um sistema que está de acordo com e provê a realização de um conjunto de interfaces”

Page 9: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Definição de Jon Hopkinspara componente

“Um componente de software é um empacotamento físico de software executável com uma interface pública bem definida.”

Page 10: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Definição de D’Souza e Willspara componente

“Um pacote coerente de artefatos de software que podem ser independentemente desenvolvidos e entregues como uma unidade e que pode ser composto, sem modificação, com outros componentes para construir algo maior”

Page 11: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Definição de Szyperskipara componente

“Um componente de software é uma unidade de composição com interfaces especificadas de forma contratual e com dependências apenas de contexto e explícitas. Um componente de software pode ser distribuído independentemente e fica sujeito a composição por terceiros”

Page 12: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Definição de Michael Sparlingpara componente

• Pacote de serviços de software implementado independentemente e netro com relação a linguagem.

• Distribuído como um contâiner encapsulado e substituível, acessado via uma ou mais interfaces públicas.

• Pode modificar uma base de dados, mas não deve manter informação de estado.

• Não é restrito a uma plataforma e nem a uma aplicação.

Page 13: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Definição de Grady Boochpara Framework

“Um padrão arquitetural que provê um ‘template’ extensível para aplicações dentro de um certo domínio”

Page 14: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Definição de Desmond D’Souzapara Framework baseado em

Componentes

“De maneira geral, um framework baseado em componentes é uma colaboração na qual todos os componentes são especificados através de modelos de tipos; alguns deles podem vir com suas próprias implementações. Para se usar o framework, conectam-se componentes que satisfazem as especificações”

Page 15: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Frameworks & Aplicações

• Elementos fundamentais

• Relacionamentos

• Integridade estrutural e dinâmica

• Pontos de extensão e modificação

Page 16: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Componentes & Frameworks

• Cada framework deve prover especificações de pontos de extensão.

• Em cada ponto de extensão deve ser conectado um componente que seja compatível com a correspondente especificação.

Page 17: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Construção de Frameworks baseados em Componentes

• Considerar modelos estáticos que ilustram a estrutura dos componentes;

• Considerar modelos dinâmicos que ilustram a colaboração entre componentes;

• Considerar a tecnologia que implementa o framework;

• Considerar o que já se conhece do domínio da aplicação: experiências e tecnologias.

Page 18: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Diretrizes para Sistemasbaseados em Componentes

• Reuso : A habilidade de reusar componentes existentes para criar sistemas mais complexos.

• Evolução : Um sistema altamente componentizado é de mais fácil manutenção. Em um sistema bem projetado, as alterações serão localizadas, e essas poderão ser feitas no sistema com pouco ou nenhum efeito nos componentes restantes.

Page 19: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Necessidades de um Sistema baseado em Componentes

• Biblioteca de componentes• Modelo de componentes:

– Montagem– Interação

• “Backplane”: lugar de existência e comunicação entre componentes

• Processo de desenvolvimento• Arquitetura de software

Page 20: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Componentes eOrientação a Objetos

• Bertrand Meyer: um componente é uma manifestação física de um objeto que tem uma interface bem definida e um conjunto de implementações para esta interface.

• Um componente não precisa ser desenvolvido através de ferramentas orientadas a objetos.

• É mais “natural” modelar sistemas usando orientação a objetos quando se tem a perspectiva de componentização do sistema.

Page 21: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Modelo de comunicação entre componentes

• Mecanismo para que dois componentes se achem e se comuniquem.

• Modelo de referência para:– definição de interfaces– passagem de mensagens– transferência de dados

• Tendência: emprego de XML– freqüência baixa de trocas de mensagens– necessidade de muita semântica nas mensagens

Page 22: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Exemplos de Modelos de Componentes

• SUN Enterprise JavaBeans - EJB

• Microsoft DCOM (COM+)

• OMG CORBA Specification

Page 23: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Componentes e Sistemas Distribuídos

• Subsistemas fracamente acoplados que, quando agregados, provêem alto poder de comportamento (semântica).

• Internet tem um mecanismo de transporte "neutro": integra componentes heterogêneos.

• Troca de informação: XML (Web Services)

• Troca de mensagens: IP, HTTP, RMI, ...

Page 24: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Granularidade de Componentes

• Comunicação entre componentes é dispendiosa em termos de tempo e recursos da plataforma de execução.

• Componentes muito grandes possuem interfaces mais complexas e representam uma oportunidade maior de serem afetados por uma alteração.

• Quanto maiores os componentes, menor é a flexibilidade do sistema.

• Equilíbrio é necessário!– minimização do acoplamento tende a prejudicar a boa

coesão

Page 25: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Exemplos de Componentes

• Componentes GUI (Graphical User Interface) - “widgets” :– ActiveX– Java Beans

• Componentes de negócio: objetos CORBA

• Aplicações inteiras: Excel, PowerPoint

Page 26: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,

Lições aprendidas(Michael Sparling)

• Desenvolvimento baseado em um modelo de referência para componentes

• Desenvolvimento paralelo• Prós e contras de reuso• Imutabilidade e componentes• Prototipagem cedo e freqüente• Gerenciamento de exceções• Estratégias de teste diferenciadas