Anda di halaman 1dari 26

Componentes e Frameworks

Alcides Calsavara

Referncias Bibliogrficas
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.

Referncias Bibliogrficas
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.

Solues de software: abordagens tpicas


turnkey solutions
prontas para o uso requerem alguma configurao

custom development solutions


grande parte do sistema integralmente construda

component-based framework solutions


abstraes para identificar, discutir, resolver e implementar sistemas implementaes parciais extensveis de forma segura

Exemplos de framework para objetos distribudos


SUN J2EE Microsoft .NET OMG CORBA Specification

Exemplos de Modelos de Componentes


SUN Enterprise JavaBeans - EJB Microsoft DCOM (COM+) OMG CORBA Specification

Exemplos de Componentes
Componentes GUI (Graphical User Interface) - widgets :
ActiveX Java Beans

Componentes de negcio: objetos CORBA Aplicaes inteiras: Excel, PowerPoint

Definio de Grady Booch para Componente


uma parte fsica e substituvel de um sistema que est de acordo com e prov a realizao de um conjunto de interfaces

Definio de Jon Hopkins para componente


Um componente de software um empacotamento fsico de software executvel com uma interface pblica bem definida.

Definio de DSouza e Wills para componente


Um pacote coerente de artefatos de software que podem ser independentemente desenvolvidos e entregues como uma unidade e que pode ser composto, sem modificao, com outros componentes para construir algo maior

Definio de Szyperski para componente


Um componente de software uma unidade de composio com interfaces especificadas de forma contratual e com dependncias apenas de contexto e explcitas. Um componente de software pode ser distribudo independentemente e fica sujeito a composio por terceiros

Definio de Michael Sparling para componente


Pacote de servios de software implementado independentemente e netro com relao a linguagem. Distribudo como um continer encapsulado e substituvel, acessado via uma ou mais interfaces pblicas. Pode modificar uma base de dados, mas no deve manter informao de estado. No restrito a uma plataforma e nem a uma aplicao.

Definio de Grady Booch para Framework


Um padro arquitetural que prov um template extensvel para aplicaes dentro de um certo domnio

Definio de Desmond DSouza para Framework baseado em Componentes


De maneira geral, um framework baseado em componentes uma colaborao na qual todos os componentes so especificados atravs de modelos de tipos; alguns deles podem vir com suas prprias implementaes. Para se usar o framework, conectam-se componentes que satisfazem as especificaes

Frameworks & Aplicaes


Elementos fundamentais Relacionamentos Integridade estrutural e dinmica Pontos de extenso e modificao

Componentes & Frameworks


Cada framework deve prover especificaes de pontos de extenso. Em cada ponto de extenso deve ser conectado um componente que seja compatvel com a correspondente especificao.

Construo de Frameworks baseados em Componentes


Considerar modelos estticos que ilustram a estrutura dos componentes; Considerar modelos dinmicos que ilustram a colaborao entre componentes; Considerar a tecnologia que implementa o framework; Considerar o que j se conhece do domnio da aplicao: experincias e tecnologias.

Diretrizes para Sistemas baseados em Componentes


Reuso : A habilidade de reusar componentes existentes para criar sistemas mais complexos. Evoluo : Um sistema altamente componentizado de mais fcil manuteno. Em um sistema bem projetado, as alteraes sero localizadas, e essas podero ser feitas no sistema com pouco ou nenhum efeito nos componentes restantes.

Necessidades de um Sistema baseado em Componentes


Biblioteca de componentes Modelo de componentes:
Montagem Interao

Backplane: lugar de existncia e comunicao entre componentes Processo de desenvolvimento Arquitetura de software

Componentes e Orientao a Objetos


Bertrand Meyer: um componente uma manifestao fsica de um objeto que tem uma interface bem definida e um conjunto de implementaes para esta interface. Um componente no precisa ser desenvolvido atravs de ferramentas orientadas a objetos. mais natural modelar sistemas usando orientao a objetos quando se tem a perspectiva de componentizao do sistema.

Modelo de comunicao entre componentes


Mecanismo para que dois componentes se achem e se comuniquem. Modelo de referncia para:
definio de interfaces passagem de mensagens transferncia de dados

Tendncia: emprego de XML


freqncia baixa de trocas de mensagens necessidade de muita semntica nas mensagens

Exemplos de Modelos de Componentes


SUN Enterprise JavaBeans - EJB Microsoft DCOM (COM+) OMG CORBA Specification

Componentes e Sistemas Distribudos


Subsistemas fracamente acoplados que, quando agregados, provem alto poder de comportamento (semntica). Internet tem um mecanismo de transporte "neutro": integra componentes heterogneos. Troca de informao: XML (Web Services) Troca de mensagens: IP, HTTP, RMI, ...

Granularidade de Componentes
Comunicao entre componentes dispendiosa em termos de tempo e recursos da plataforma de execuo. Componentes muito grandes possuem interfaces mais complexas e representam uma oportunidade maior de serem afetados por uma alterao. Quanto maiores os componentes, menor a flexibilidade do sistema. Equilbrio necessrio!
minimizao do acoplamento tende a prejudicar a boa coeso

Exemplos de Componentes
Componentes GUI (Graphical User Interface) - widgets :
ActiveX Java Beans

Componentes de negcio: objetos CORBA Aplicaes inteiras: Excel, PowerPoint

Lies aprendidas (Michael Sparling)


Desenvolvimento baseado em um modelo de referncia para componentes Desenvolvimento paralelo Prs e contras de reuso Imutabilidade e componentes Prototipagem cedo e freqente Gerenciamento de excees Estratgias de teste diferenciadas

Anda mungkin juga menyukai