Frameworks e seus Benefícios no Desenvolvimento de Software

Transcrição

Frameworks e seus Benefícios no Desenvolvimento de Software
Frameworks e seus Benefícios no Desenvolvimento de Software
Framework and its Beneftis in Software Development
Marco y su Beneftis en Desarrollo de Software
Antonio Henrique dos Santos1
Nelson Ribeiro Carvalho2
Resumo: Este trabalho apresenta as vantagens em relação à utilização de frameworks Open Source,
com práticas de reutilização de códigos, possuindo base em programação Orientada a Objetos (OO)
e ênfase nas melhores metodologia de desenvolvimento de softwares, em conjunto com os padrões
de tecnologias Java Enterprise Edition. Haverá um foco maior no Framework Jaguar, onde uma
aplicação será desenvolvida utilizando arquitetura de software. Afim de possuir melhores resultados
como custo-benefício e diminuição de erros.
Palavras-chave: Frameworks. Java Enterprise Edition. Open Source. Java Server Faces. Hibernate.
Jaguar.
Abstract: This paper presents the advantages over the use of Open Source frameworks with practical
reuse of code, having basic programming in Object Oriented (OO) methodology and emphasis on
better software development, together with the patterns of technology Java Enterprise Edition. There
will be a greater focus on the Framework Jaguar, where an application will be developed using
software architecture. In order to have better results as cost-benefit and minimize errors.
Keywords: Frameworks. Java Enterprise Edition. Open Source. Java Server Faces. Hibernate.
Jaguar.
Resumen: Este artículo presenta las ventajas sobre el uso de marcos de código abierto con la
reutilización de código práctico, que tiene la programación orientada a objetos de base en la
metodología y el énfasis en un mejor desarrollo de software (OO), junto con los patrones de la
tecnología Java Enterprise Edition. Habrá un mayor enfoque en el Jaguar Marco, donde se
desarrollará una aplicación que utiliza la arquitectura de software. Con el fin de tener mejores
resultados como costo-beneficio y minimizar los errores.
Palabras clave: Marcos.Java Enterprise Edition. Open Source. Java Server Faces. Hibernate.
Jaguar.
1 INTRODUÇÃO
Este
artigo
tem
como
tema
Framework
e
seus
benefícios
para
desenvolvimentos de software nas empresas em um cenário das empresas que
utilizam a Web. As empresas do mercado de tecnologia da informação investem
cada vez mais em inovações tecnológicas porém, a qualificação dos profissionais
não acompanha o mesmo ritmo.
A falta de criatividade e sinergia entre tecnologia e negócios também
impede as empresas de alavancarem seus lucros e objetivos. Uma vez que,
o trabalho com sistemas “tradicionais” e a falta de planejamento estratégico
e inovador, provoca a estagnação e impede as empresas visualizarem
novas oportunidades e tendências de mercado (ALVIM, 2010).
Nesse sentido Alvim (2010, p.12) afirma:
1
Graduando em Sistemas da Informação pela faculdade Inforium de Tecnologia. E-mail:
[email protected]
2
Especialista em Desenvolvimento de Software e Professor do curso de Graduação em Sistemas da
O framework é um conjunto de classes que colaboram entre si
proporcionando melhores práticas de desenvolvimento e diminuição à
repetição de tarefas. Além disso, evita variações de “soluções diferentes
para um mesmo tipo de problema”. O que facilita a reutilização e
customização dos códigos.
Porém, os frameworks também podem atrasar o trabalho, pois os
desenvolvedores, testers e outros envolvidos no processo de
desenvolvimento tem que dominar não apenas a linguagem de
programação. Mas também a utilização do framework.
Para se trabalhar com um framework específico (ou qualquer tipo de
tecnologia) é necessário obter conhecimento técnico, não somente para uso e
acesso as informações. Mas também, aplicar as especialidades que o produto em
fase de desenvolvimento necessita (PRESSMAN, 2006).
Outro fator considerável é que o projeto pode não seguir os padrões do
framework, levando a criar adaptações no projeto. Isto pode gerar mais trabalho, que
implica em mais tempo e perde qualidade, pois não se enquadra a padrões
definidos.
Assim, o objetivo geral de artigo é abordar a eficácia dos frameworks Open
Source no desenvolvimento de aplicações JEE estabelecendo comparações entre
um projeto de software que utiliza framework e outro que não utiliza.
Estas comparações serão para verificar o grande benefício que um projeto
que utiliza frameworks pode trazer ganhos de qualidade e produtividade .A obtenção
de boa estrutura para implementação, os recursos diversos que proporcionam a
facilidade para construir um projeto de software e o cumprimento pleno da
documentação, ajuda a diminuir custos estabelecidos e aumenta a produtividade dos
desenvolvedores em relação à construção do projeto de software.
Além disso, o reuso de componentes, aplicação, objetos e funções,
possibilitam aos projetistas de software o reaproveitamento do conteúdo utilizado em
outros projetos que já foram construídos e evita o trabalho de calcular a maior parte
das estimativas relacionadas ao novo projeto. Com base no conhecimento da equipe
de desenvolvimento, das tecnologias e quais os recursos que podem ser realmente
utilizados.
Diante do exposto, a pergunta orientadora do estudo é no sentido de verificar
se o uso de framework no desenvolvimento de software contribui para agilizar os
processos ágeis e a lucratividades das empresas.
Justifica-se esta pesquisa tendo em vista em relação desenvolvimento de
Software o framework é uma abstração que une códigos comuns entre vários
projetos de software provendo uma funcionalidade genérica.
Os frameworks
ajudam bastante as comunidades de desenvolvimento de
software porque já trazem, prontas e encapsuladas muitas coisas que são muito
trabalhosa de implementar do zero e que precisa ser refeita sempre.
2 ABORDAGEM TEÓRICA
Este
trabalho aborda a eficácia dos frameworks Open Source no
desenvolvimento de
3
aplicações JEE3
e
procura
estabelecer
comparações
(bibliográficas e em estudo de caso) entre um projeto de software que utiliza
framework e outro que não utiliza, e qual o auxilio no trabalho, na economia de
tempo e recursos.
Estas comparações procuram comprovar o grande benefício que um projeto
que utiliza frameworks pode trazer ganhos de qualidade e produtividade (ALVIM,
2010). A obtenção de boa estrutura para implementação, os recursos diversos que
proporcionam a facilidade para construir um projeto de software e o cumprimento
pleno da documentação, ajuda a diminuir custos estabelecidos e aumenta a
produtividade dos desenvolvedores em relação à construção do projeto de software
(SOMMERVILLE, 2008).
Além disso, o reuso de componentes, aplicação, objetos e funções,
possibilitam aos projetistas de software o reaproveitamento do conteúdo utilizado em
outros projetos que já foram construídos e evita o trabalho de calcular a maior parte
das estimativas relacionadas ao novo projeto. Com base no conhecimento da equipe
de desenvolvimento, das tecnologias e quais os recursos que podem ser realmente
utilizados.
Assim, busca-se apresentar nesta seção as principais características de um
processo de desenvolvimento de software, o surgimento das ferramentas Open
Source, o conceito de frameworks e quais foram utilizados para a construção do
estudo de caso.
a) Frameworks
Segundo Willemann e Ibarra (2007, p. 41), o framework pode ser definido como:
Um framework ou arcabouço é uma estrutura de suporte definida em que
outro projeto de software pode ser organizado e desenvolvido, quando se
analisa o conceito no âmbito do desenvolvimento de software. Um
framework pode incluir programas de suporte, bibliotecas de código,
linguagens de script e outros softwares para ajudar a desenvolver e juntar
diferentes componentes de um projeto de software.
Conforme Willemann e Ibarra (2007.p.84), para que um projeto de software seja
considerado um framework, ele deve respeitar algumas características, como:
a) Ser reutilizável, para que seja abrangente aos padrões
metodologia de desenvolvimento de aplicações orientada a objetos.
3
da
Sigla de Java Enterprise Edition – Antigo J2EE (Java 2 Plataform Enterprise Edition). Segundo Deitel
b) Facilitar o desenvolvimento de sistemas, para que a sua utilização seja
benéfica ao desenvolvimento de uma aplicação.
c) Possuir boa documentação, pois quem utiliza o framework precisa de
formas eficazes e esclarecedoras sobre como utilizá-lo de uma maneira
eficiente e correta, para que possa ajudar o desenvolvimento de um
determinado sistema.
d) Atender com exatidão o que foi proposto em sua documentação e ser
eficiente no auxilio a criação de aplicações com a linguagem
de programação.
b) Desenvolvimento de software
O processo de desenvolvimento de um software implica na conversão da
especificação em um sistema executável. Através de um projeto que passa por
diversas iterações, o software vai adquirindo suas características com base na
análise de requisitos em conjunto com o planejamento do sistema.
“Um projeto de software é a descrição da estrutura de software a ser
implementada, dos dados que são parte de um sistema, das interfaces entre
os componentes do sistema e, às vezes, dos algoritmos usados”(
Sommerville 2008, p. 50).
Os frameworks de maneira geral precisam de uma boa estrutura, pois seu
principal
objetivo
é
simplificar
trabalhos,
tanto
para
usuários quanto
desenvolvedores. E uma das principais características dos frameworks que utilizam
o paradigma da orientação a objetos, é trabalhar com a reutilização de códigos.
Além disso, o trabalho com subsistemas exige que o framework possua
controle dos mesmos e também realize a identificação e comunicação dos
componentes do sistema. Esta é a denominação para projeto de arquitetura.
“O projeto de arquitetura é um processo criativo em que se tenta
estabelecer uma organização de sistema que satisfaça os requisitos
funcionais e não funcionais do sistema”. (Segundo Sommerville 2008,
p.163).
Por trabalhar com as melhores práticas e eliminar trabalhos desnecessários,
os frameworks possuem papel importante para o desenvolvimento de software.
Alvim (2010) explica que o bom framework interage com o sistema de forma
agradável, proporcionando altos índices de produtividade e qualidade para o projeto.
c) Hibernate
Conforme Bauer e King (2005), o desenvolvimento de software utilizando o
paradigma Orientado a Objetos e Banco de Dados Relacionais pode ser complexo e
Os custos de desenvolvimento são significativamente altos, devido a uma
incompatibilidade entre o paradigma relacional dos dados com sã representação em
objetos para ambientes Java.
O Hibernate é uma solução Object/Relational Mapping que se refere à técnica
de mapeamento de dados entre uma representação do modelo de objeto em uma
representação de dados do modelo relacional.
Conforme Bauer e King (2005), o Hibernate mede a interação do aplicativo com
o banco de dados relacional. Além disso, o Hibernate é um framework não intrusivo.
Ou seja, permite que o desenvolvedor faça suas modificações em relação a modelos
de negócio e classes persistentes, de acordo com suas necessidades.
Pois, o Hibernate integra-se facilmente as adaptações no aplicativo e também
pode trabalhar com aplicativos novos. Sem a necessidade de grandes alterações no
aplicativo inicial.
Conforme Bauer e King (2005), Hibernate pode não ser a melhor solução para
aplicações centradas em dados que utilizam apenas os procedimentos armazenados
para implementar a lógica de negócios no banco de dados, é mais útil com modelos
orientados a objetos de domínio e lógica de negócios no Java baseada em middletier.
Entretanto, o Hibernate pode certamente ajudá-lo a remover ou encapsular
fornecedor específico código SQL e simplifica a tarefa comum de traduzir conjuntos
de resultados de uma representação tabular de um gráfico de objetos.
d) Open Source e sua história
Na década de 1960, os computadores eram despendidos para serem utilizados
individualmente. Somente programadores utilizavam e os mesmos resolviam a
maioria dos problemas nos sistemas operacionais (KUMAR, 2006).
Por volta de 1970, os fabricantes começaram a desagregação do código do
software. Porém, as
informações não eram publicadas. Normalmente, os
programadores faziam acordos para preservar as informações.
O ponto de partida do movimento Open Source foi iniciado através de uma
impressora. Richard Stallman, que trabalhava no Instituto de Tecnologia de
Massachusetts (MIT), sofria com um problema que ocorria na impressora. Devido
tantos acessos p/ impressão de diferentes máquinas, a impressora congestionava.
Stallman pretendia alterar o driver da impressora para enviar mensagens para o
computador conectado informando o congestionamento da impressora. Porém, a
Xerox recusou o fornecimento do código fonte. Porque a pessoa que criou o driver
No inicio da década de 1980, Stallman criou o GNU (ou GPL – General Public
License). Com o objetivo de ser um sistema livre que vem o código fonte em aberto.
Oferecendo oportunidade para o usuário (usar, modificar e distribuir) de acordo com
suas necessidades. Nesse projeto, Stallmann contou com a ajuda de diversos
programadores voluntários.
Porém, houve um desentendimento por parte desses usuários. Conforme
Kumar (2006), as pessoas confundiram software livre com software sem custos. E
isso causou graves consequências ao projeto de Stallmann.
O grande diferencial é que um software que obtém licença GPL não é
somente o software que ganhou “liberdade” para uso. Mas sim todos os programas
que utilizam software GPL.
Outros parceiros que também ajudaram na ideia da utilização foram Linus
Torvalds (Criador do Sistema Operacional Linux) e Open Source Initiative (OSI). Nos
dias atuais, existem milhares de colaboradores e defensores dessa prática
colaborativa para melhorias em códigos fonte (KUMAR, 2006).
e) Tecnologia Java Enterprise Edition
Os desenvolvedores encontram desafios cada vez maiores. E o JEE é uma
opção viável para atender as necessidades dos desenvolvedores. Pois, tem como
objetivo oferecer um poderoso conjunto de API’s4. Dessa maneira, o tempo gasto
com desenvolvimento é menor, também há diminuição em relação à complexidade
da aplicação e o aplicativo possui melhor desempenho.
Esta é a razão de utilizar frameworks Java Server Faces, Hibernate e Jaguar.
Pelo fato de agregar a tecnologia JEE e facilitar o processo de desenvolvimento de
software.
Possui um modelo de aplicação que inicia através da linguagem de
programação e máquina virtual Java. Além disso, apresenta recursos indispensáveis
em relação à qualidade de desenvolvimento do produto. Como confiabilidade,
segurança e produtividade. Pois o JEE suporta diversas aplicações. Isto torna a
plataforma necessariamente complexa. Em compensação, os usuários que agem
diretamente com o JEE ganham maior acessibilidade aos dados a partir da variação
de fontes e aplicações.
Bodoff (2005) explica que a Plataforma JEE define os padrões para o
desenvolvimento de aplicações empresariais com multicamadas e os diversos
componentes do aplicativo que compõem a plataforma, são instalados em máquinas
diferentes. Simplificando o desenvolvimento, pois é baseando em componentes
modulares padronizados, oferecendo um conjunto completo de serviços para esses
componentes.
A plataforma JEE aproveita muitos recursos do Java Standard Edition (JSE),
como "Write Once, Run Anywhere", portabilidade JDBC/API para acesso de banco
de dados, tecnologia CORBA para a interação com os recursos existentes na
empresa, e um modelo de segurança que protege os dados, mesmo em aplicações
de internet.
Partindo desta base a plataforma JEE adiciona suporte completo para
componentes Enterprise JavaBeans, Java Servlets5 API, JavaServer Pages (JSP) e
tecnologia XML.
Segundo Bodoff (2005, p. 13), um componente Enterprise JavaBeans (EJB),
“É um corpo de código [bloco de construção] que possui campos e métodos para
implementar módulos de lógica de negócios”.
O padrão JEE inclui as especificações completas e testes de conformidade
para garantir a portabilidade de aplicações em toda a vasta gama de sistemas
empresariais existentes, capazes de suportar a plataforma J2EE. Além disso, a
especificação JEE agora garante a interoperabilidade de serviços Web, através do
apoio para o perfil de WSI-Basic.
Embora a Sun Microsystems tenha criado a linguagem de programação Java
e tenha sido a pioneira no uso para serviços corporativos, o padrão J2EE representa
uma colaboração entre líderes de toda a área de software corporativo. As parcerias
incluem sistema operacional e banco de dados de provedores de gerenciamento de
sistemas, fornecedores de middleware e ferramentas, e aplicações de mercado
vertical e desenvolvedores de componentes.
Medeiros (2009) explica que middleware é um software desenvolvido para
disponibilizar aplicações J2EE. Sua execução é feita em servidores para que os
clientes (usuários) possam utilizar via conexão de rede.
3 Framework Jaguar
O Jaguar é um framework composto por uma quantidade razoável de projetos
JEE específicos, plug-ins Eclipse, métodos e padrões, soluções de integração e
gerência
de
configuração
extremamente
trabalhosa,
dentre
vários
outros
“suplementos” de alto valor agregado, mantidos pela equipe de desenvolvimento
dedicada da Powerlogic.
O Jaguar é uma solução bastante eficaz para o aprimoramento dos resultados
5
Tecnologia Java que permite a utilização de uma classe servlet específica para HTTP (Protocolo de
quando se trata de desenvolvimento de aplicações de software para Web em escala
corporativa.
Trata-se de uma suíte de produtos multidimensional conforme figura 1 que
trabalha a problemática da produtividade e qualidade por diversos ângulos.
Figura 1 – Dimensões de atuação de suíte do jCompany
.
Fonte: ALVIM, 2010, p.7
JCompany IDE6: É um ambiente onde as organizações desenvolvem seus
sistemas. Conforme Deitel (2005) o IDE possibilita a construção de sistemas de
informação duradouros e confiáveis. E também auxiliam os desenvolvedores ao
construírem seus projetos de software, por possuir diversas ferramentas como
suporte no processo de desenvolvimento.
O Jaguar tem em sua suíte de soluções a IDE Eclipse, com a maioria de seus
plug-ins. Esta é a ferramenta disponível para codificação, construção e distribuição
de códigos executáveis.
JCompany Patterns & Methods: Christopher Alexander afirma: “cada padrão
descreve um problema em nosso ambiente e o cerne da sua solução, de tal forma
que você possa usar essa solução mais de um milhão de vezes, sem nunca fazê-lo
da mesma maneira [...]”.
Muito embora Alexander estivesse falando acerca de padrões em construções
e cidades, o que ele diz é verdadeiro em relação aos padrões de projeto orientado a
objeto. Nossas soluções são expressas em termos de objetos e interfaces em vez de
paredes e portas, mas no cerne de ambos os tipos de padrões está à solução para
um problema num determinado contexto (GAMMA, 2000).
JCompany Patterns & Methods é um conjunto de boas práticas, padrões e
passo e passo que auxiliam o desenvolvedor na codificação.
No JCompany Test for Developer a garantia de qualidade de software é
definida da seguinte maneira: “Conformidade a requisitos funcionais e
desempenho explicitamente declarado a padrões de desenvolvimento
claramente documentados e a características implícitas que são esperadas
do software profissional”. (Pressman 2007, p. 724).
O JCompany Test for Developer atua na área de testes de unidade,
procurando garantir a qualidade do processo de desenvolvimento de software,
visando que a codificação manual esteja em conformidade (ALVIM, 2010).
JCompany Configuration Management: O módulo JCompany Configuration
Management procura garantir a integridade dos itens de configuração (códigos,
planilhas, CSU,...) e controlar a as iterações destes itens (Controle de versão).
Por ser um ambiente de produção, o JCompany Configuration Management
necessita de monitoramento contínuo. O trabalho com altas tecnologias propõe uma
infraestrutura sólida que evitas quedas de rendimento no desenvolvimento de
software. Além disso, a integridade e estabilidade são fatores primordiais ao longo
do processo.
A figura 2 exibe um diagrama em camadas que representa o esquema básico
da Visão de Componentes da “Arquitetura de Software Corporativa”, conforme
sugerida pelo Jaguar. A arquitetura em si é representada pelas camadas marcadas
com os números (2), (3) e (4).
Conforme Alvim (2010), a figura 2 representa a arquitetura em camadas de
uma aplicação JEE, desenvolvida com o framework Jaguar.
Figura 2 - Arquitetura em camadas de uma aplicação JEE com o JCompany Full Stack Framework
Fonte: ALVIM, 2010, p.10
As camadas de uma aplicação JEE conforme Alvim (2010,p.10) são:
Camada 1 - Representa a infraestrutura onde a aplicação será alocada.
caso, pode ser qualquer sistema operacional), uma JVM para execução de
um programa Java e o servidor de aplicação, onde estará à aplicação JEE.
Camada 2 - Esta camada apresenta os frameworks e utilitários Open
Source inclusos no Jaguar, estes frameworks são muito utilizados no
mercado e divididos no Jaguar cada um em sua camada apropriada
(Modelo MVC).
Camada 3 - Esta é a camada de software provida pelo framework Jaguar, esta
camada se integra com os insumos da camada 2 e as disponibiliza para
os níveis mais altos. É chamada de commodity, pois prove boas
praticas do mercado (Design Patterns, padrões de formulários, gerência de
transações, etc.). Que são comuns em diversos projetos.
Camada 4 – É nesta camada que a empresa pode generalizar e customizar o
projeto onde se aplica o framework Jaguar. Podem ser citados como
exemplo, as alterações em layout, segurança corporativa e outros ajustes
que o padrão do framework não atenda. Esta é a ultima camada de arquitetura
do framework.
Camada 5 – É a camada de negócio, onde os profissionais que trabalham
no ramo podem reutilizar módulos de negócio, ganhando padronização da
arquitetura.
4 Discussão sobre o tema abordado
Neste
estudo
de
caso,
realizaremos
um
comparativo
utilizando
desenvolvimento com frameworks e sem o mesmo. Com o objetivo de demonstrar os
pontos positivos e negativos, em relação às duas formas de construir o projeto de
software. Principalmente, nos quesitos tempo gasto para desenvolvimento, possíveis
vulnerabilidades
que
um
framework
pode
oferecer
e
suas
vantagens e
desvantagens.
Basicamente, os frameworks Java (JSF, Hibernate e Jaguar) que serão
utilizados, possuem projeto e programação orientada a objetos. Com o intuito de
implementar os requisitos que o sistema exige e através de classes e objetos, propor
soluções que possam resolver determinado tipo de problema (SOMMERVILLE,
2008).
Classe em terminologia Java são unidades de programa onde abrigam um ou
mais métodos. Métodos são utilizados para realizar tarefas da classe, e também
podem retornar um resultado. Já os objetos tem como finalidade armazenar atributos
(características) que estão relacionadas diretamente a classe (DEITEL, 2005).
Reforçando a idéia de programação e projeto orientado a objetos, é
importante lembrar que o reuso de componentes pode facilitar e otimizar sistemas.
Uma vez que a complexidade está sempre em evidência na construção de
softwares.
Assim, é possível dizer que os objetos podem ser reaproveitados. Pois, um
objeto pode utilizar as características e relacionamentos de uma classe e atribuí-los
em outra classe e também, implementar características específicas na nova classe
que foi criada. Isso condiz com a redução de gastos com projeto, programação e
validação (DEITEL, 2005; SOMMERVILLE, 2008).
Entretanto, se não houver ferramentas disponíveis, manutenção que dê o
devido suporte para reuso de componentes e desenvolvedores com experiência e
compreensão de quais os recursos podem ser reutilizados, será ineficiente o
trabalho. Abaixo seguem tabelas comparativas mostrando as vantagens e
desvantagens do reuso de componentes em um software.
a) Telas do caso de uso desenvolvidas com e sem frameworks
Figura 3 – Tela de Pesquisa no caso de uso desenvolvido sem Framework
Fonte: Autoria própria
Figura 4 – Tela de Pesquisa no caso de uso desenvolvido com Framework Jaguar
Fonte: Autoria própria
As figuras 3 e 4 mostram como o usuário realiza uma pesquisa e como são
exibidos os resultados. Sem framework é notável que questões como usabilidade e
design não atende os padrões estabelecidos. Já com o uso framework Jaguar, o
aproveitamento da interface de usuário, a visualização de campos e comandos,
tamanho e separação de labels, torna a visualização do sistema mais fácil e
agradável.
Figura 5 – Cadastro de novo produto efetuado desenvolvido sem Framework
Figura 6 – Cadastro de novo produto efetuado desenvolvido com Framework Jaguar
Fonte: Autoria próprio
As imagens acima demonstram o resultado do desenvolvimento do caso de
uso com a utilização do Framework Jaguar e do mesmo caso de uso sem
framework. Em relação às figuras 5 e 6 mostram o mesmo fluxo, mas o framework
Jaguar divide em abas caso de uso onde se tem uma agregação de classes.
b)Tabela comparativa
Tabela 3 – Aspectos Relacionados a desenvolvimento de software
Itens relativos ao
desenvolvimento de software
Tempo de desenvolvimento
2 horas
8 horas
Linhas de código digitadas
88
388
Modelo MVC
Sim
Não
Tecnologias Utilizadas
JSF, Hibernate, Jaguar, Jquery,
CDI, RestEasy, Maven, AJAX
Alta
Servlet,HTML
Baixa
Alta
Alta
Baixa
Interoperabilidade
Sim
Não
Compatibilidade com todos
navegadores
Quantidade de Papéis
Não
Sim
1 (Desenvolvedor)
Tempo gasto no processo de
Arquitetura do software
Segurança da aplicação
1 hora
3 (Designer, Desenvolvedor e
Arquiteto de software)
2 horas
Sim
Não
Internacionalização
Sim
Não
Nível de complexidade para o
desenvolvimento
Nível de complexidade para
evolução/manutenção
Usabilidade
Com Framework
Fonte: Autoria
própria
c) Desvantagens da utilização de framework
Sem Framework
Baixa

Geração de muitos códigos na aplicação

Desempenho comprometido, pois a aplicação desenvolvida com framework
Jaguar vai ter muitas camadas conforme figura 2.
 Curva muito alta de aprendizado, pois os profissionais que trabalharem
com os
frameworks citados nesta
aprender a utilizar
desenvolvimento
Programação
os
mesmos
OO (Orientado
JAVA
a
monografia terão
dominarem
Objetos)
o
e
a
que
antes
de
paradigma
de
linguagem
de
mais especificamente a tecnologia Java Enterprise
Edition.

Nem todo projeto o framework vai trazer bons resultados, exemplo é o
Hibernate, pois onde se há um projeto que se utiliza grandes números de
Stored Procedure não é recomendado à utilização do Hibernate.
5 CONCLUSÃO
Para compreensão do tema deste estudo, framework e seus benefícios no
desenvolvimento de softwares, buscou-se inicialmente rever a base conceitual e
teórica sobre esta questão.
Destacou-se evidenciamos, que utilização de frameworks em projetos de
desenvolvimento de softwares se torna uma prática atrativa, pois se constituem uma
das mais promissoras correntes tecnológicas para suportar reutilização de software
em grande escala, modelando tanto a parte genérica como as partes variáveis de
um sistema.
Essa boa prática de utilização dos frameworks no desenvolvimento de
software deve ser implementada fazendo uso dos padrões de projetos design
patterns para melhor documentar a sua arquitetura e proporcionar um melhor
vocabulário único entre os desenvolvedores.
Desta forma, caracterizou-se os frameworks com um potencial que se impõe,
e sua aplicação em projetos impacta em alto ganho de produtividade, possui
módulos bastante completos para desenvolvedores de aplicações, e permite ao
programador dedicar-se à implementação da regra de negócio deixando que o
framework se encarregue do resto do trabalho.
Assim, pode-se concluir que os framework reduzem significativamente o
tempo de construção de softwares, bem como a manutenção do mesmo.As
empresas que usam este recurso como ferramenta de trabalho podem se tornar
mais competitivas no mercado, pois reduzem seu custo sem perder em qualidade.
Diante do exposto, pode-se afirmar que a pergunta de pesquisa do estudo foi
REFERÊNCIAS
ALVIM, Paulo. Tirando o Máximo do Java EE 6 Open Source com jCompany©
Developer Suite. 3. Ed. Belo Horizonte: Powerlogic Publishing, 2010.
BAUER, Christian; KING, Gavin. Hibernate in Action. Greenwich: Manning
Publications, 2005.
BEZZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. Rio de
Janeiro: Elservier, 2007.
BODOFF, Stephanie et al. Tutorial do J2EETM. Rio de Janeiro: Editora Ciência
Moderna Ltda., 2005.
DEITEL, H. M. Java: como programar. 6. Ed. São Paulo: Pearson, 2005.
FAYAD, M.E.; SCHIMIDT, D.C.; JONHSON, R.E. Building Application Frameworks:
Object-Oriented Foundations of Framework Design. New York: J. Miley, 1999.
GAMMA, et al. Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a
Objetos. Porto Alegre: Bookman, 2005.
KUMAR, Sahaaj et al. Fast Track to Open Source Software. Jasubhai Digital Media.
Novembro, 2006. 209p.
LARMAN, Craig. Utilizando UML e Padrões: Uma Introdução a Analise e ao Projeto
Orientados a Objetos e ao Processo Unificado. 2 ed. Porto Alegre: Bookman, 2004.
PRESSMAN, Roger. S., Engenharia de Software, 6ª edição McGraw-Hill, 2006
SOMMERVILLE, Ian. Engenharia de Software. 8. Ed. São Paulo: Pearson, 2008.
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015