componentes e frameworks alcides calsavara. referências bibliográficas 1.grant larsen,...
TRANSCRIPT
![Page 1: Componentes e Frameworks Alcides Calsavara. Referências Bibliográficas 1.Grant Larsen, Component-Based Enterprise Frameworks, Communications of the ACM,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/1.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/2.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/3.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/4.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/5.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/6.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/7.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/8.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/9.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/10.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/11.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/12.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/13.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/14.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/15.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/16.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/17.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/18.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/19.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/20.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/21.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/22.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/23.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/24.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/25.jpg)
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,](https://reader035.vdocument.in/reader035/viewer/2022062623/552fc105497959413d8c034a/html5/thumbnails/26.jpg)
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