Antonio Henrique dos Santos 1 Nelson Ribeiro Carvalho 2



Documentos relacionados
DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Fábrica de Software 29/04/2015

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Figura 1 - Arquitetura multi-camadas do SIE

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Engenharia de Requisitos

Distribuidor de Mobilidade GUIA OUTSOURCING

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

GARANTIA DA QUALIDADE DE SOFTWARE

HIBERNATE EM APLICAÇÃO JAVA WEB

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Engenharia de Software

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

ENGENHARIA DE SOFTWARE I

Processos de Desenvolvimento de Software

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Corporativo. Transformar dados em informações claras e objetivas que. Star Soft.

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Governança de TI. ITIL v.2&3. parte 1

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Universidade da Beira Interior

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

UFG - Instituto de Informática

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

ISO/IEC 12207: Gerência de Configuração

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

INTERNET HOST CONNECTOR

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Material de Apoio. Sistema de Informação Gerencial (SIG)

Documento de Arquitetura

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Feature-Driven Development

TI em Números Como identificar e mostrar o real valor da TI

SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA)

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

INTEGRE Diversas fontes de informações em uma interface intuitiva que exibe exatamente o que você precisa

Projeto Você pede, eu registro.

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Gestão de Relacionamento com o Cliente CRM

Sistemas de Informação I

Eduardo Bezerra. Editora Campus/Elsevier

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Ferramentas unificadas de SOA alinham negócios e TI IDG Research aponta grandes ganhos potenciais a partir de uma solução integrada

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Soluções via.net para otimização de processos paramétricos com Autodesk Inventor.

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Entendendo como funciona o NAT

INTRODUÇÃO A PORTAIS CORPORATIVOS

Fase 1: Engenharia de Produto

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

ERP Enterprise Resource Planning

Resumo da solução SAP SAP Technology SAP Afaria. Gestão da mobilidade empresarial como vantagem competitiva

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina

Orientação a Objetos

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

Conheça a nova solução de servidor que ajuda pequenas empresas a fazer mais Com menos.

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

Processos Técnicos - Aulas 4 e 5

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9

Powerlogic Agosto / 2011.

Academia de Software Pró Informática

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

Análise e Projeto Orientados por Objetos

A Grande Importância da Mineração de Dados nas Organizações

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Transcrição:

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. Nesse sentido Alvim (2010, p.12) afirma: 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). 1 Graduando em Sistemas da Informação pela faculdade Inforium de Tecnologia. E-mail: tonyhenrysaints@gmail.com 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 aplicações JEE 33 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 da metodologia de desenvolvimento de aplicações orientada a objetos. 3 Sigla de Java Enterprise Edition Antigo J2EE (Java 2 Plataform Enterprise Edition). Segundo Deitel

b) Desenvolvimento de software 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. 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 s 4. 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 Servlets 5 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 IDE 6 : É 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 Com Framework Sem Framework 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, Servlet,HTML CDI, RestEasy, Maven, AJAX Nível de complexidade para o Alta Baixa desenvolvimento Nível de complexidade para Baixa Alta evolução/manutenção Usabilidade Alta Baixa Interoperabilidade Sim Não Compatibilidade com todos Não Sim navegadores Quantidade de Papéis 1 (Desenvolvedor) 3 (Designer, Desenvolvedor e Arquiteto de software) Tempo gasto no processo de 1 hora 2 horas Arquitetura do software Segurança da aplicação Sim Não Internacionalização Sim Não Fonte: Autoria própria c) Desvantagens da utilização de framework

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 é 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 J2EE TM. 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