16
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 Santos 1 Nelson Ribeiro Carvalho 2 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 Informação pela Faculdade Inforium de Tecnologia E-mail:[email protected]

Frameworks e seus Benefícios no Desenvolvimento de ...revistapensar.com.br/tecnologia/pasta_upload/artigos/a95.pdf · Antonio Henrique dos Santos1 ... Este artículo presenta las

  • Upload
    lamanh

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

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

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.