Você está na página 1de 7

Frameworks

Pasteur Ottoni de Miranda Junior

1-Definio Apesar do avano das tcnicas de desenvolvimento de software, a construo de software ainda um processo extremamente complexo.A reutilizao tem sido uma forma de aumento de qualidade e produtividade e a experincia passada norteia a reutilizao. A orientao a objetos poderosa no que tange reutilizao.Uma base arquitetural para a composio de componentes reutilizveis auxiliaria muitos dos problemas da construo de software. O benefcio bsico da reutilizao de software uma maior produtividade. A reutilizao tambm produz uma melhor qualidade, pois o componente de software reutilizvel sempre requer mais testes e garantia de qualidade, simplesmente porque as conseqncias de um erro so bem mais srias e o uso contnuo ocasiona uma maior probabilidade de deteco de erros. Uma das propostas de reutilizao bastante aceita a de se usar frameworks para domnios especficos, que poderiam ser instanciados para produzir novos produtos no domnio. Restries de custo e tempo impostas ao desenvolvimento moderno de software obrigam os desenvolvedores a abandonar a prtica de se partir do zero. Assim sendo, os desenvolvedores devem aderir a uma abordagem que suporte a reutilizao, adotando solues comprovadas, como componentes ,frameworks e padres de projeto. O framework (ou arcabouo, termo muito usado em portugus) uma tcnica da orientao a objetos voltada para a reutilizao, que se beneficia de trs caractersticas das linguagens de programao orientadas a objeto: abstrao de dados, polimorfismo e herana. Ele descreve a arquitetura de um sistema orientado a objeto, os tipos de objetos e as interaes entre os mesmos. Trata-se em essncia de um esqueleto de uma aplicao que pode ser customizado por um desenvolvedor na construo de um software.Um framework modela genericamente uma famlia de aplicativos semelhantes, permitindo uma maior agilidade que se traduz em uma reduo de custos no processo de desenvolvimento de software.(Fayad, 1999) Com frameworks no se busca apenas reutilizar simples componentes de software, mas subsistemas, aumentando assim o grau de reutilizao e contribuindo para uma melhor qualidade de software. 2-Conceitos Frozen Spots: definem a arquitetura global de um sistema, seus componentes bsicos e os relacionamentos entre eles, permanecendo inalterados da o termo congelado - em qualquer instanciao do framework. Hot Spots: pontos de refinamentos predefinidos, onde a especializao e a adaptao ocorrem. A especializao de hot spots requer a definio de classes adicionais de maneira a sobrepor mtodos e/ou configuraes de objetos baseados nos componentes j fornecidos pelo framework Um esquema de hot spots contm as seguintes partes (Schmidt, 1997): Uma classe abstrata de base, que define a interface para as responsabilidades comuns;

Classes concretas derivadas, representando cada uma das diferentes alternativas para os aspectos variveis; Parte opcional com relacionamentos e classes adicionais.

Os benefcios advindos da utilizao de frameworks so os seguintes Modularizao Reutilizao Extenso de interfaces Framework controla a estrutura e o fluxo de controle dos programas. 3-A UML-F (Fontoura,2000) Para modelar frameworks, preciso projetar frozen spots e hot spots. Os primeiros podem ser modelados com os recursos que a UML oferece. Quanto aos hot spots, so necessrias extenses na UML para a sua adequada especificao.A UML prov os seguintes mecanismos de extenso: esteretipos, tag values e restries. Os esteretipos so mecanismos para permitir a adicionar novos blocos de construo semelhantes aos existentes, mas especficos a um determinado problema. Um esteretipo representado graficamente como um nome entre os sinais << e >> (ex.: <<include>>,<<implementation>>) colocado acima do nome de outro elemento.(Amaral, 2002) Os tag values so meios para proporcionar a criao de novas propriedades, permitindo a criao de novas informaes na especificao desse elemento.Um tag value representado como uma seqncia de caracteres entre chaves, colocado abaixo do nome de outro elemento (ex.: {quantidade = 3}). Essa seqncia de caracteres usualmente inclui um nome, um separador (o smbolo = ) e um valor.(Amaral, 2002) As restries so mecanismos para especificar uma nova semntica de algum elemento UML. A restrio representada como uma seqncia de caracteres entre chaves, colocada prxima ao elemento associado.(Amaral, 2002)

Figura 1-Mecanismos de extenso da UML- (Extrado de Amaral, 2002)

UML-F trata trs tipos de hot spots em um framework orientado a objeto: Mtodos variveis: so mtodos que tm uma interface bem definida, mas que podem variar em sua implementao de acordo com a instanciao do framework. Classes estendidas: so classes que podem ser estendidas durante a instanciao do framework, recebendo novos mtodos, por exemplo. Interfaces estendidas ou classes abstratas: permitem a criao de subclasses concretas na instanciao do framework. Estas novas classes so chamadas de classes de aplicao, que existem somente quando um framework instanciado. Os trs tipos de hot spots anteriores podem ser estticos (instanciao no requerida em tempo de execuo) ou dinmicos (instanciao requerida em tempo de execuo). As Tags utilizadas em diagramas UML-F so as seguintes: Variable aplicado aos mtodos de uma classe e representa o hot spot mtodos variveis. Indica que a implementao do mtodo varia de acordo com a instanciao do framework Extensible aplicado a classe e representa o hot spot classes estendidas. Indica que sua interface pode ser estendida durante a instanciao do framework pela adio de novos mtodos. Incomplete representa o hot spot interfaces estendidas. Indica que novas subclasses podem ser criadas nas instncias do framework. A tag appl-class complementa a definio de classes estendidas. Ela usada para indicar um aditivo na estrutura de um framework onde classes especficas da aplicao podem ser ou j foram adicionadas. Os tags static e dynamic complementam a notao do hot spot, indicando se o mesmo requer instanciao em tempo de execuo ou no. 4-Um exemplo Seja um sistema que exibe informaes de cursos a estudantes. Um mtodo showcourse() responsvel por controlar o fluxo da aplicao: ele chama selectCourse() para seleo do curso e showContent() para apresentar o contedo do curso selecionado O mtodo selectCourse() um ponto de variao do framework, pois pode ter diferentes implementaes em diferentes aplicaes web criados com o framework. Exemplos de mecanismos de seleo possveis de serem implementados nesse mtodo: requerer login do estudante, mostrar uma lista e cursos disponveis ou apenas os disponveis ao estudante, exibir uma pr-visualizao do curso, etc.

Existem 3 categorias de usurios especializados de uma classe Actor. Esta classe pode ter novas subclasses que vo depender da instncia do framework

Figura 2-Especializaes da classe Actor (Extrado de Amaral, 2002)

Figura 3- Framework proposto no exemplo (Extrado de Amaral, 2002)

Na Figura 3 acima temos as o diagrama UML-F do framework proposto no exemplo. Perceba que a classe ShowCourse extensible, significando que novos mtodos podem ser a ela acrescidos quando da instanciao do framework. Perceba tambm que a classe Actor, contm a tab {incomplete} significando que, na instanciao, novas subclasses podem ser includas. Repare na tag {variable} colocada ao lado do mtodo selectCourse(), significando que ele pode ter sua implementao modificada na instncia.

Show Course
showCourse() selectCourse() showContent() showLibrary()

Actor
getLogin() getPassword()

U ser

Student

Teacher

Adm inistrator

Librarian

Figura 4- Instncia do framework exibido na Figura 3. Na Figura 4 temos a visualizao de uma instncia do framework mostrado na Figura 3. Perceba que na classe ShowCourse que extensible, foi adicionado o mtodo showLibrary(). J para a classe Actor, que {incomplete}, adicionamos a classe User. Repare tambm, que no diagrama da instncia do framework as tags exibidas no framework no so exibidas. Finalmente, importante destacar que o diagrama do framework nunca usado para implementao da aplicao. Essa feita utilizando-se o diagrama da instncia do framework, como o da Figura 4. Bibliografia AMARAL, J. Intercmbio de Frameworks especificados em UML-F atravs de estruturas XML para apoiar o desenvolvimento de software. Diss. Mestrado, PUC Minas, 2002. FAYAD, Mohamed; SCHMIDT, Douglas; JOHNSON, Ralph. Building Applications Frameworks. John Willey & Sons,1999. FONTOURA, Marcus; PREE, Wolfgang; RUMPE, Bernhard. UML-F: A Modeling Language for Object-Oriented Frameworks. 14th European Conference on Object Oriented Programming (ECOOP 2000), Lecture Notes in Computer Science 1850, Springer, 63-82, Cannes, Frana, 2000 PREE, Wolfgang; POMBERGER, Gustav; SCHPPERT, Albert;SOMMERLAND, Peter. Active Guidance of Framework Development. Software Concepts and Tools. Editora Springer-Verlager, 1995 SCHMIDT, Hans Albrecht. Systematic Framework Design by Generalization.Communications of the ACM, Vol. 40, No.10, Outubro 1997

BARBOSA, lvaro C. Pereira; LUCENA, Carlos Jos P. Integrao de Frameworks de Software. Monografia em Cincia da Computao, PUCRJ,Departamento de Informtica, 2000.