Frameworks e seus Benefícios no Desenvolvimento de...
Transcript of Frameworks e seus Benefícios no Desenvolvimento de...
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
Frameworks e seus Benefícios no Desenvolvimento de SoftwareFramework 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õesde tecnologias Java Enterprise Edition. Haverá um foco maior no Framework Jaguar, onde umaaplicação será desenvolvida utilizando arquitetura de software. Afim de possuir melhores resultadoscomo 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 practicalreuse of code, having basic programming in Object Oriented (OO) methodology and emphasis onbetter software development, together with the patterns of technology Java Enterprise Edition. Therewill be a greater focus on the Framework Jaguar, where an application will be developed usingsoftware 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 lareutilización de código práctico, que tiene la programación orientada a objetos de base en lametodología y el énfasis en un mejor desarrollo de software (OO), junto con los patrones de latecnología Java Enterprise Edition. Habrá un mayor enfoque en el Jaguar Marco, donde sedesarrollará una aplicación que utiliza la arquitectura de software. Con el fin de tener mejoresresultados 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émimpede as empresas de alavancarem seus lucros e objetivos. Uma vez que,o trabalho com sistemas “tradicionais” e a falta de planejamento estratégicoe inovador, provoca a estagnação e impede as empresas visualizaremnovas 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] Especialista em Desenvolvimento de Software e Professor do curso de Graduação em Sistemas daInformação pela Faculdade Inforium de Tecnologia E-mail:[email protected]
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
O framework é um conjunto de classes que colaboram entre siproporcionando melhores práticas de desenvolvimento e diminuição àrepetição de tarefas. Além disso, evita variações de “soluções diferentespara um mesmo tipo de problema”. O que facilita a reutilização ecustomização dos códigos.Porém, os frameworks também podem atrasar o trabalho, pois osdesenvolvedores, testers e outros envolvidos no processo dedesenvolvimento tem que dominar não apenas a linguagem deprogramaçã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.
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
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.
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
2 ABORDAGEM TEÓRICA
Este trabalho aborda a eficácia dos frameworks Open Source no
desenvolvimento de aplicações JEE33
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 queoutro projeto de software pode ser organizado e desenvolvido, quando seanalisa o conceito no âmbito do desenvolvimento de software. Umframework pode incluir programas de suporte, bibliotecas de código,linguagens de script e outros softwares para ajudar a desenvolver e juntardiferentes 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 dametodologia de desenvolvimento de aplicações orientada a objetos.
3 Sigla de Java Enterprise Edition – Antigo J2EE (Java 2 Plataform Enterprise Edition). Segundo Deitel(2005, p.3), “É voltado para o desenvolvimento de aplicativos de rede de grande porte, distribuídos ebaseados na Web”.
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
b) Facilitar o desenvolvimento de sistemas, para que a sua utilização sejabenéfica ao desenvolvimento de uma aplicação.
c) Possuir boa documentação, pois quem utiliza o framework precisa deformas eficazes e esclarecedoras sobre como utilizá-lo de uma maneiraeficiente e correta, para que possa ajudar o desenvolvimento de umdeterminado sistema.
d) Atender com exatidão o que foi proposto em sua documentação e sereficiente no auxilio a criação de aplicações com a linguagemde 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 serimplementada, dos dados que são parte de um sistema, das interfaces entreos 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 tentaestabelecer uma organização de sistema que satisfaça os requisitosfuncionais 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
moroso.
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
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 middle-
tier.
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
assinou um termo de não-divulgação (KUMAR, 2006).
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
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
4 Application Programming Interface (Interface de Programação de Aplicativos). Um grande conjunto declasses existentes em bibliotecas Java (DEITEL, 2005).
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
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 paracomponentes Enterprise JavaBeans, Java Servlets5 API, JavaServer Pages (JSP) etecnologia 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 JaguarO 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 desenvolvimentodedicada 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 deTransferência de Hipertexto). É comum sua utilização para servidores Web para estender os aplicativosJava utilizados (BODOFF, 2005).
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
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.
6 IDE – Ambiente Integrado de Desenvolvimento em português.
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
No JCompany Test for Developer a garantia de qualidade de software édefinida da seguinte maneira: “Conformidade a requisitos funcionais edesempenho explicitamente declarado a padrões de desenvolvimentoclaramente documentados e a características implícitas que são esperadasdo 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.Exemplo: um servidor (Hardware), com um sistema operacional (Neste
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
caso, pode ser qualquer sistema operacional), uma JVM para execução deum programa Java e o servidor de aplicação, onde estará à aplicação JEE.
Camada 2 - Esta camada apresenta os frameworks e utilitários OpenSource inclusos no Jaguar, estes frameworks são muito utilizados nomercado e divididos no Jaguar cada um em sua camada apropriada(Modelo MVC).
Camada 3 - Esta é a camada de software provida pelo framework Jaguar, estacamada se integra com os insumos da camada 2 e as disponibiliza paraos níveis mais altos. É chamada de commodity, pois prove boaspraticas do mercado (Design Patterns, padrões de formulários, gerência detransações, etc.). Que são comuns em diversos projetos.
Camada 4 – É nesta camada que a empresa pode generalizar e customizar oprojeto onde se aplica o framework Jaguar. Podem ser citados comoexemplo, as alterações em layout, segurança corporativa e outros ajustesque o padrão do framework não atenda. Esta é a ultima camada de arquiteturado framework.
Camada 5 – É a camada de negócio, onde os profissionais que trabalhamno ramo podem reutilizar módulos de negócio, ganhando padronização daarquitetura.
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
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
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 frameworksFigura 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
Fonte: Autoria própria
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
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 aodesenvolvimento de software
Com Framework Sem Framework
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
Servlet,HTML
Nível de complexidade para odesenvolvimento
Alta Baixa
Nível de complexidade paraevolução/manutenção
Baixa Alta
Usabilidade Alta Baixa
Interoperabilidade Sim Não
Compatibilidade com todosnavegadores
Não Sim
Quantidade de Papéis 1 (Desenvolvedor) 3 (Designer, Desenvolvedor eArquiteto de software)
Tempo gasto no processo deArquitetura do software
1 hora 2 horas
Segurança da aplicação Sim Não
Internacionalização Sim Não
Fonte: Autoriaprópria
c) Desvantagens da utilização de framework
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
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 monografia terão que antes de
aprender a utilizar os mesmos dominarem o paradigma de
desenvolvimento OO (Orientado a Objetos) e a linguagem de
Programação JAVA mais especificamente a tecnologia Java Enterprise
Edition.
Nem todo projeto o framework vai trazer bons resultados, exemplo é oHibernate, 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
respondida e os objetivos foram alcançados.
Revista Pensar Tecnologia, v. 4, n. 1, jan. 2015
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: ManningPublications, 2005.
BEZZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. Rio deJaneiro: Elservier, 2007.
BODOFF, Stephanie et al. Tutorial do J2EETM. Rio de Janeiro: Editora CiênciaModerna 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 aObjetos. 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 ProjetoOrientados 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.