Você está na página 1de 15

14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

DOI:10.5748/9788599693131-14CONTECSI/PS-4458
USE OF THE XP AGILE METHODOLOGY FOR SOFTWARE DEVELOPMENT -
CASE STUDY: SOFTWARE FIQUIZ

Francisco Clarck Pinheiro Maciel (Centro Universitário Estácio do Ceará, Ceará, Brasil) -
clarck@yahoo.com.br
Francisco Alves Carneiro (Centro Universitário Estácio do Ceará, Ceará, Brasil) -
alvesfic@gmail.com
Wellington Sousa Aguiar (Centro Universitário Estácio do Ceará, Ceará, Brasil) -
wellington@tecsist.com
Josyane Lannes Florenzano de Souza (Centro Universitário Estácio do Ceará, Ceará,
Brasil) - josyane.souza@estacio.br

Agile software development methodologies have been strengthened, delivering value


quickly to the customer. This study aims to specify the importance of the agile XP
methodology of software development. It is a qualitative and experimental research. The
study scenario was based on the construction of a software using the agile XP methodology
and the Java programming language for the web platform. The period of construction of
the software was four months and the data collection was done by means of a
bibliographical survey. Software construction took place in 16 weekly iterations in
development cycles in which priority, analysis, design, development, testing and
deployment were defined. The study concludes that the application of this methodology
brought great benefits for software development, since it was always delivering value to
the customer and perceiving their satisfaction through feedback.

Keywords: Agile Methodology, eXtreme Programming, web programming, Java, quiz


software.

UTILIZAÇÃO DA METODOLOGIA ÁGIL XP PARA DESENVOLVIMENTO DE


SOFTWARE - ESTUDO DE CASO: SOFTWARE FIQUIZ

As metodologias ágeis de desenvolvimento de software vêm se fortalecendo, realizando


entrega de valor rapidamente ao cliente. Este estudo objetiva especificar a importância da
metodologia ágil XP de desenvolvimento de software.Trata-se de pesquisa de natureza
qualitativa e experimental. O cenário do estudo deu-se a partirda construção de um
softwareutilizando a metodologia ágil XP e a linguagem de programação Java para
plataforma web.O período de construção do software foi de quatro meses e a coleta dos
dados ocorreu por meio de levantamento bibliográfico.A construção do software deu-se em
16 iterações semanais em ciclos de desenvolvimento em que foram realizadas a definição
de prioridade, análise, projeto, desenvolvimento, testes e implantação. O estudo conclui
que a aplicação dessa metodologia trouxe grandes benefícios para o desenvolvimento do
software, pois estava sempre entregando valor ao cliente e percebendo sua satisfação
através do feedback.
Palavras-chave: Metodologia ágil, eXtremeProgramming, programação web, Java,
software de questionário.

0344
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

1 INTRODUÇÃO
O mundo moderno não poderia existir sem o uso de softwares. Infraestruturas e
serviços nacionais são controlados por sistemas computacionais e a maioria dos produtos
elétricos inclui um computador e um software que o controla. A manufatura e a
distribuição industrial são totalmente informatizadas, assim como o sistema financeiro. A
área de entretenimento, incluindo a indústria da música, jogos de computador, cinema e
televisão, faz uso intensivo de softwares. Portanto, a engenharia de software é essencial
para o funcionamento das sociedades nacionais e internacionais (SOMMERVILLE, 2011).
A engenharia de software estuda e providencia várias metodologias de
desenvolvimento de software. Na atualidade as metodologias ágeis de desenvolvimento de
softwarevêm se fortalecendo como uma metodologia que entrega valor rapidamente ao
cliente.
Esse estudo visa especificar que as perspectivas do produto FIQUIZ são de um
sistema fácil de ser utilizado que possui uma base de dados extensa de questões de provas
de concursos na área de informática, que possibilitará aos seus usuários a customização do
questionário, inclusive permitindo que eles definam a quantidade de questões que desejam
responder naquele momento.
Os usuários possuem a característica de serem interessados na área de informática,
área esta que exige que seus seguidores se atualizem constantemente. A alta concorrência
nos concursos públicos também exige que os candidatos estejam cada vez mais bem
preparados.
Não é requisito deste sistema a interação com outros sistemas, pois possuímos a
filosofia de autossuficiência do nosso software.
O sucesso deste sistema também depende de uma estrutura física que possibilite um
bom desempenho em aceitar requisições, processar e responder de forma rápida aos seus
utilizadores.
A metodologia ágil XP (eXtremeProgramming) será utilizada para nortear o
desenvolvimento do projeto.
Turban (2013), ressalta a importância de ser uma empresa ágil, aquela que tem
capacidade de se adaptar rapidamente, nunca foi tão grande quanto agora em função da
luta pela recuperação econômica e por causa dos avanços da tecnologia móvel. Adverte
ainda que as organizações dependem da Tecnologia da Informação para poderem se
adaptar às condições do mercado e ganhar uma vantagem competitiva. Essa vantagem
competitiva tem vida curta se os concorrentes puderem reproduzi-la rapidamente.
Nenhuma vantagem dura muito tempo.
Assim, as empresas precisam atualizar-se, desenvolver-se e/ou implantar novos
Sistemas de Informação para se manterem na competição.

2 OBJETIVOS
2.1. Objetivo Geral

Especificar a importância da metodologia ágil XP de desenvolvimento de software


na atualidade como forma de prover valor ao cliente através de entregas de valor constante,

0345
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

simulando o desenvolvimento de um aplicativo voltado para pessoas que desejam testar


seus conhecimentos através de resolução de questões.
2.2. ObjetivosEspecíficos
● Estudar e conhecer os aspectos conceituais de metodologias ágeis de
desenvolvimento, especialmente a Extreme Programming (XP).
● Estudar e conhecer a importância da engenharia de software para produção de
software de qualidade.
● Realizar análise do sistema FIQUIZ, objetivando o desenvolvimento do software
em um paradigma orientado a objeto.

3 METODOLOGIA
Esta pesquisa utilizou uma abordagem de natureza qualitativa e experimental, por
ser a mais adequada para investigar uma atividade profissional, e para o tratamento das
evidências obtidas através da pesquisa de campo. Desta forma, pretende-se fazer emergir
as respostas para a questão problema desta pesquisa: “A Metodologia Ágil XP para
desenvolvimento de softwares realmente entrega valor ao cliente de forma diferenciada ?”.
Segundo Creswell (2010), “a pesquisa qualitativa é um meio para explorar e para
entender o significado que os indivíduos ou grupos atribuem a um problema social ou
humano”.
A abordagem qualitativa pesquisa detalhadamente os fenômenos do
ambiente estudado, o pesquisador vive e conhece a realidade deste grupo ou ambiente. Na
pesquisa qualitativa, o pesquisador participa, compreende e interpreta (MICHEL, 2009).
O estudo de caso qualitativo necessita do uso de várias técnicas de coleta de dados
e evidências. Nesta pesquisa os dados foram coletados pela triangulação de:
- Entrevistas informais - coleta das impressões dos desenvolvedores sobre a
utilização da metodologia aplicada.
- Pesquisa documental – foram levantados registros e documentos utilizados na
definição e desenvolvimento do software, e em publicações científicas que abordavam o
assunto.
- Observação direta – durante as visitas de campo foram detectados
comportamentos, atitudes e informações visuais dos locais de trabalho.
O cenário do estudo deu-se a partir da construção de um software utilizando um
notebook HP com processador Intel core i3 e a linguagem de programação Java para
plataforma de internet.O período de construção do software ocorreu de agosto a novembro
de 2016.
A coleta de dados ocorreu por meio de levantamento bibliográfico em livros e
estudos científicos encontrados na Internet que tratava da teoria e das impressões colhidas
dos desenvolvedores que trabalharam no desenvolvimento do aplicativo de questionário
colaborativo denominado FIQUIZ, onde a metodologia Ágil XP foi utilizada para nortear o
desenvolvimento.
A partir da análise de dados construiu-se um software. A construção do software

0346
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

deu-se em 16 iterações semanais. Em cada iteração semanal, realizou-se a definição de


prioridade, análise, projeto, desenvolvimento, testes, implantação e coleta de informações
dos desenvolvedores.

4 REFERENCIAL TEÓRICO
Segundo Pressman (2011), software de computador é o produto que profissionais
de software desenvolvem e ao qual dão suporte no longo prazo. Abrange programas
executáveis em um computador de qualquer porte ou arquitetura, conteúdos apresentados à
medida que os softwares são executados, informações descritivas tanto na forma impressa
como na virtual, abrangendo praticamente qualquer mídia eletrônica. A engenharia de
software abrange um processo, um conjunto de métodos (práticas) e um leque de
ferramentas que possibilitam aos profissionais desenvolverem software de altíssima
qualidade.
Sommerville (2011),relata que é relativamente fácil escrever programas
computacionais sem usar técnicas e métodos de engenharia de software. Muitas empresas
foram forçadas a desenvolver software à medida que seus produtos e serviços evoluíram.
Elas não usam métodos de engenharia de software no dia a dia. consequentemente, seu
software é frequentemente mais caro e menos confiável do que deveria ser. Precisamos de
educação e treinamento em engenharia de software para solucionar esses problemas.
Pressman ressalta a importância da engenharia de software afirmando que é ela que nos
capacita para o desenvolvimento de sistemas complexos dentro do prazo e com alta
qualidade.
Segundo o autor supracitado, nos dias de hoje, as empresas operam em um
ambiente global, com mudanças rápidas. Assim, precisam responder a novas oportunidades
e novos mercados, a mudanças econômicas e ao surgimento de produtos e serviços
concorrentes. Softwares fazem parte de quase todas as operações de negócios, assim,
novos softwares são desenvolvidos rapidamente para obterem proveito de novas
oportunidades e responder às pressões competitivas. O desenvolvimento e entrega rápidos
são, portanto, o requisito mais crítico para o desenvolvimento de sistemas de software.
Muitas empresas estão dispostas a trocar a qualidade e o compromisso com requisitos do
software por uma implantação mais rápida do software de que necessitam.
ParaSommerville (2011), os processos de desenvolvimento de software que
planejam especificar completamente os requisitos e, em seguida, projetar, construir e testar
o sistema não estão adaptados ao desenvolvimento rápido de software. Com as mudanças
nos requisitos ou a descoberta de problemas de requisitos, o projeto do sistema ou sua
implementação precisa ser refeito ou retestado. Como consequência, um processo
convencional em cascata ou baseado em especificações costuma ser demorado, e o
software final é entregue ao cliente bem depois do prazo acordado.
A insatisfação com as abordagens pesadas da engenharia de software levou um
grande número de desenvolvedores de software a proporem, na década de 1990, novos
‘métodos ágeis’. Estes permitiram que a equipe de desenvolvimento focasse no software
em si, e não em sua concepção e documentação. Métodos ágeis, universalmente, baseiam-
se em uma abordagem incremental para a especificação, o desenvolvimento e a entrega do
software. Eles são mais adequados ao desenvolvimento de aplicativos nos quais os
requisitos de sistema mudam rapidamente durante o processo de desenvolvimento.
Destina-se a entregar o software rapidamente aos clientes, em funcionamento, e estes

0347
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

podem, em seguida, propor alterações e novos requisitos a serem incluídos nas iterações
posteriores do sistema. Têm com objetivo reduzir a burocracia do processo, evitando
qualquer trabalho de valor duvidoso de longo prazo e qualquer documentação que
provavelmente nunca será usada.
Os processos de desenvolvimento rápido de software são concebidos para produzir,
rapidamente, softwares úteis. O software não é desenvolvido como uma única unidade,
mas como uma série de incrementos, cada incremento inclui uma nova funcionalidade do
sistema. Embora existam muitas abordagens para o desenvolvimento rápido de software,
elas compartilham algumas características fundamentais como: Os processos de
especificação, projeto e implementação são intercalados. Não há especificação detalhada
do sistema, e a documentação do projeto é minimizada ou gerada automaticamente pelo
ambiente de programação usado para implementar o sistema. O sistema é desenvolvido em
uma série de versões.
Os métodos ágeis são métodos de desenvolvimento incremental em que os
incrementos são pequenos e, normalmente, as novas versões do sistema são criadas e
disponibilizadas aos clientes a cada duas ou três semanas. Elas envolvem os clientes no
processo de desenvolvimento para obter feedback rápido sobre a evolução dos requisitos.
Assim, minimiza-se a documentação, pois se utiliza mais a comunicação informal do que
reuniões formais com documentos escritos.
Está disponível na internet o Manifesto para Desenvolvimento Ágil de software que
relata:
"Estamos descobrindo maneiras melhores de desenvolversoftwares,
fazendo-o nós mesmos e ajudando outros afazerem o mesmo. Através
deste trabalho, passamos a valorizar:
Indivíduos e interações mais que processos e ferramentas.
Software em funcionamento mais que documentação abrangente.
Colaboração com o cliente mais que negociação de contratos
Responder a mudanças mais que seguir um plano, ou seja, mesmo
havendo valor nos itens à direita,valorizamos mais os itens à
esquerda."Beck, Kent et al. (2001)

Sommerville (2011), diz que a Extreme Programming (XP) é talvez o mais


conhecido e mais utilizado dos métodos ágeis. O nome foi cunhado por Beck (2000), pois
a abordagem foi desenvolvida para impulsionar práticas reconhecidamente boas, como o
desenvolvimento iterativo, a níveis 'extremos', por exemplo, em XP, várias novas versões
de um sistema podem ser desenvolvidas, integradas e testadas em um único dia por
programadores diferentes.
O XP tem foco em sistemas que são voltados para as seguintes características:
(Teles, 2014).
● Projetos cujos requisitos são vagos e mudam com frequência;
● Desenvolvimento de sistemas orientado a objeto;

0348
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

● Equipes pequenas, preferencialmente até 12 desenvolvedores;


● Desenvolvimento incremental (ou iterativo), onde o sistema começa a ser
implementado logo no início do projeto e vai ganhando novas funcionalidades
ao longo do tempo.
Segundo autor supracitado existe uma categoria de processos de desenvolvimento
conhecida como Processos Ágeis de Desenvolvimento, dentro da qual o XP e outros
processos se encaixam. Eles compartilham a premissa de que o cliente acaba aprendendo
sobre suas necessidades na medida em que é capaz de manipular o sistema que está sendo
produzido. Com base no feedback do sistema, ele reavalia as suas necessidades e
prioridades, gerando mudanças que devem ser incorporadas ao software. O aprendizado é
importante porque permite que o cliente direcione o desenvolvimento de modo que a
equipe produza sempre aquilo que tem o maior valor para o seu negócio.
Teles (2014) afirma que o XP é um processo de desenvolvimento que busca
garantir que o cliente receba o máximo de valor de cada dia de trabalho da equipe de
desenvolvimento. Ele é organizado em torno de um conjunto de valores e práticas que
atuam de forma harmônica e coesa para assegurar que o cliente sempre receba um alto
retorno do investimento em software.
O XP se baseia em quatro valores fundamentais:
● Feedback
● Comunicação
● Simplicidade
● Coragem
Quando o cliente aprende com o sistema que utiliza e reavalia as suas necessidades,
ele gera feedback para a equipe de desenvolvimento. Isto é, ele realimenta a equipe com
alterações nas necessidades que ainda serão implementadas e, eventualmente, naquelas que
já fazem parte do software. O feedback é o mecanismo fundamental que permite que o
cliente conduza o desenvolvimento diariamente e garanta que a equipe direcione as suas
atenções para aquilo que irá gerar mais valor.
Para que o cliente possa compartilhar o seu aprendizado com a equipe, é necessário
que ele utilize permanentemente o valor da comunicação. A comunicação entre o cliente e
a equipe permite que todos os detalhes do projeto sejam tratados com a atenção e a
agilidade que merecem. O XP procura assegurar que a comunicação ocorra da forma mais
direta e eficaz possível. Sendo assim, ele busca aproximar todos os envolvidos do projeto
de modo que todos possam se comunicar face a face ou da forma mais rica possível.
A comunicação, embora seja essencial, não é suficiente para garantir que o cliente
possa aprender durante o projeto e gerar feedback rapidamente. Também é necessário que
a equipe compreenda e utilize o valor da simplicidade, que nos ensina a implementar
apenas aquilo que é suficiente para atender a cada necessidade do cliente. Ou seja, ao
codificar uma funcionalidade, devemos nos preocupar apenas com os problemas de hoje e
deixar os problemas do futuro para o futuro. Não devemos tentar prever o futuro, pois
raramente acertamos nas previsões. Ao evitar especular sobre o que acontecerá amanhã,
ganhamos tempo e permitimos que o cliente tenha acesso à funcionalidade mais
rapidamente. Isso permite que ele a utilize no seu negócio, gerando valor para ele e
tornando viável que ele dê feedback para a equipe o quanto antes.

0349
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

Eventualmente, com base no feedback, a equipe poderá fazer generalizações


quando elas se fizerem necessárias. Neste caso, entretanto, elas virão na forma de uma
necessidade explícita e não como a especulação de algo que poderia vir a ser necessário no
futuro.
Dado que o sistema é desenvolvido de forma incremental, a equipe está
continuamente fazendo a manutenção do software e criando novas funcionalidades. Em
muitos casos, ela irá alterar algo que vinha funcionando corretamente, o que leva ao risco
de gerar falhas no sistema. Por esta razão, a equipe precisa ser corajosa e acreditar que,
utilizando as práticas e os valores do XP, será capaz de fazer o software evoluir com
segurança e agilidade.
Conforme Teles (2014), o XP se baseia nas seguintes práticas: Cliente presente,
Jogo do planejamento, Stand up meeting, Programação em par, Desenvolvimento guiado
pelos testes, Refactoring, Código coletivo, Código padronizado, Design simples, Metáfora,
Ritmo sustentável, Integração contínua e Releases curtos

Figura 1 - Práticas XP
Fonte: Teles (2014: 31)

5 O APLICATIVO FIQUIZ
5.1. Introdução

A finalidade deste artigo é coletar, analisar e definir necessidades e recursos de


nível superior do Sistema FIQUIZ de Teste de Conhecimento para Concurso Público de
Informática. Ele se concentra nos recursos necessários aos envolvidos e aos usuários-alvo e
nas razões que levam a essas necessidades. Os detalhes de como o Sistema FIQUIZ
satisfaz essas necessidades são descritos nos casos de usos e nas especificações
suplementares anexas.

5.1.1. Escopo

A Visão do FIQUIZ está associada a um projeto que permita auxiliar na preparação

0350
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

para realização de provas/testes de conhecimento específico na área de tecnologia da


informação, objetivando sucesso em provas de concurso público para esta área,
possibilitando uma espécie de simulado com questões de provas anteriores e outras
semelhantes com o mesmo nível de dificuldade ou até mesmo superior.

5.2. Posicionamento

5.2.1. Oportunidade de Negócios

Atualmente, o maior diferencial da humanidade é a informação, o conhecimento e a


sabedoria. Existem pessoas que dedicam mais de 10 horas por dia na busca de
conhecimento, estudando teoria e buscando o aperfeiçoamento do saber. Mas, geralmente
precisam verificar se realmente absorveram o conhecimento almejado. A forma mais
eficiente de realizar esta tarefa é submetendo-se a testes de conhecimento, o qual
denominamos neste escopo de QUIZ (questionário).

5.2.2. Descrição do Problema

O problema da falta de um instrumento que constate o nível de conhecimento de


estudantes em determinada área de conhecimento afeta os estudantes interessados em
chegar à perfeição do saber cujo impacto é a impossibilidade de verificar se está realmente
preparado para outros testes mais importantes e, talvez, mais rigorosos. Uma boa solução
seria um sistema que possibilite a geração de vários testes customizáveis pelo usuário para
satisfazer suas necessidades.

5.2.3. Sentença de Posição do Produto

Para estudantes que precisam testar os próprios conhecimentos que possibilita a


geração de testes simulados customizáveis com questões iguais e/ou semelhantes às
encontradas nas provas de concurso, diferente de sites que não possibilitam a customização
do teste de acordo com as preferências do usuário, nosso produto terá como principal
diferença a capacidade de customizar a geração do teste por área de interesse, visto que
todas as questões são catalogadas e classificadas.

5.3. O desenvolvimento do Aplicativo

O aplicativo FIQUIZ será desenvolvido utilizando linguagem de programação


JAVA que é orientada a objeto. A IDE de desenvolvimento escolhida é a NetBeans versão
8.0.2. Será desenvolvido para ser executado em um navegador de internet, web browser.
Nessa implementação, para fins acadêmicos, será utilizado padrões de projeto como o Data
AcessObject (DAO) para persistência. A modelagem de dados foi realizada com o auxílio
da ferramenta CASE ERwin Data Modeler. O Sistema Gerenciador de Banco de Dados,
SGBD, escolhido é o Microsoft SqlServer, aproveitando a parceria existente entre a
Microsoft e a Estácio. Para a documentação do projeto também foi utilizado a Linguagem
de Modelagem Unificada (UML – Unified Modeling Language) e adotado a metodologia
ágil de desenvolvimento XP para nortear o desenvolvimento de forma iterativa e
incremental entregando valor ao cliente em curtos espaços de tempo.

Conforme Deitel(2016), Java é uma das linguagens de programação mais utilizadas


no mundo. Para muitas organizações, a linguagem preferida a fim de atender às
necessidades de programação corporativa é o Java. Ele também é amplamente utilizado

0351
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

para implementar aplicativos e softwares baseados na internet para dispositivos que se


comunicam por uma rede. Deitel (2016) menciona a pesquisa que a ForresterResearch
prevê que mais de dois bilhões de computadores pessoais (PCs) estarão em uso até 2015.
De acordo com a Oracle, 97% dos desktops corporativos, 89% dos desktops PC, 3 bilhões
de dispositivos e 100% de todos os players Blu-ray DiscTM executam o Java, e há mais de
9 milhões de desenvolvedores Java.

Deitel (2016) diz que de acordo com um estudo realizado pela Gartner, os
dispositivos móveis continuação a ultrapassar os PCs como dispositivos de computação
principais dos usuários; estima-se que 1,96 bilhão de smartphones e 388 milhões de tablets
serão distribuídos em 2015 — 8,7 vezes o número de PCs. Em 2018, o mercado de
aplicativos móveis deverá alcançar US$ 92 bilhões. Isso está criando oportunidades
profissionais significativas para pessoas que programam aplicativos móveis, muitos dos
quais são programados em Java.

Deitel(2016) diz que como a demanda por software novo e mais poderoso está
aumentando, construir softwares de maneira rápida, correta e econômica continua a ser um
objetivo indefinido. Objetos ou, mais precisamente, as classes de onde os objetos vêm são
essencialmente componentes reutilizáveis de software. Há objetos data, objetos data/hora,
objetos áudio, objetos vídeo, objetos automóvel, objetos pessoas etc. Quase qualquer
substantivo pode ser razoavelmente representado como um objeto de software em termos
dos atributos (por exemplo, nome, cor e tamanho) e comportamento (por exemplo,
calcular, mover e comunicar). Grupos de desenvolvimento de software podem usar uma
abordagem modular de projeto e implementação orientados a objetos para que sejam muito
mais produtivos do que com as técnicas anteriormente populares como "programação
estruturada"—programas orientados a objetos são muitas vezes mais fáceis de entender,
corrigir e modificar.

Deitel(2016), no item 1.5.10, diz que para criar as melhores soluções, você deve
seguir um processo de análise detalhado a fim de determinar os requisitos do projeto, isto
é, o que o sistema deve fazer, e desenvolver um design que os atenda, isto é, especificar
como o sistema deve fazê-lo). Se esse processo envolve analisar e projetar o sistema de um
ponto de vista orientado a objetos, ele é chamado de processo de análise e projeto
orientado a objetos. Linguagens como Java são orientadas a objetos. A programação nessa
linguagem, chamada programação orientada a objetos, permite-lhe implementar um projeto
orientado a objetos como sistema funcional.

Visto considerações acima, escolhi a linguagem Java para realizar a implementação


do projeto, primeiramente voltado para o ambiente de internet e como trabalho futuro
realizarei a implementação da aplicação para dispositivos móveis.

O Ambiente de Desenvolvimento Integrado, ou


IntegratedDevelopmentEnvironment (IDE), escolhido para o projeto é o NetBeans IDE que
oferece suporte abrangente e de primeira classe para as tecnologias e melhorias de
especificação Java mais recentes, antes de outros IDEs. É o primeiro IDE gratuito a
oferecer suporte a JDK 8, JDK 7, Java EE 7, inclusive a seus aprimoramentos de HTML5
relacionados, e a JavaFX2. Com seu Editor Java em constante aprimoramento, muitas
funcionalidades avançadas e uma extensa linha de ferramentas, modelos e exemplos, o
NetBeans IDE define o padrão de desenvolvimento com suas tecnologias inovadoras.

0352
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

Quanto ao padrão de projeto DAO para persistência especifica que as classes DAO
representam uma camada própria, e formam um pacote de acesso de dados, algumas vezes
sob o pacote do modelo, algumas vezes um pacote independente e outras vezes parte do
pacote de controladores. O mais comum é mesmo que o pacote de DAO fique subordinado
ao Modelo, mas sem estendê-lo. Assim temos uma separação e relativa independência da
camada de acesso a dados e do Domínio.

DAO: Data Access Layer

Figura 2 - Padrão DAO (data Access Layer)


Fonte: http://manifesto.blog.br/2.0/Programacao/dao-active-record

O princípio é que para cada Modelo, temos um DAO correspondente. Toda


interação e configuração com o Banco de dados, ou com o framework de persistência,
ficam na camada dos DAO. Então o DAO passa a programar métodos como Select, Delete,
Insert, Update e outros que venham a ser necessário. Podem programar métodos mais
específicos, como selecionarOndeNomeComecaComLetra ou cadastrarLista.
Quanto a metodologia ágil de desenvolvimento XP utilizada para nortear o projeto,
buscou-se priorizar as funcionalidades conforme feedbacks do cliente que informava o que,
naquele momento, acrescentaria mais valor ao aplicativo. É importante salientar que a
metodologia ágil busca através de iterações e incrementos permanecer agregando valor ao
cliente continuamente, e que após uma iteração, caso tenha ocorrido algum problema no
que foi solicitado e o que foi entregue pela equipe de desenvolvimento, este problema
poderá ser sanado com rapidez, diferentemente da metodologia de desenvolvimento em
cascata que o cliente e a equipe de desenvolvimento só chegariam a conclusão que estavam
com um problema de projeto na entrega final do produto. O benefício de entregar pequenas
partes funcionais ao cliente é poder ter a certeza que sempre está no caminho certo,
cumprindo os acordos e entregando o que é esperado, desta forma tornando o cliente
satisfeito e dando a percepção que o mesmo está tendo o retorno sobre o investimento
rapidamente.
A metodologia ágil atribuiu qualidade ao projeto possibilitando entregas rápidas,
frequentes e regulares. A flexibilidade para mudanças de requisitos e prioridades além de
possibilitarem maior agilidade na tomada de decisões também agregou valor ao projeto
reduzindo riscos e indesejáveis surpresas.
5.4. Modelagem do Sistema

0353
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

5.4.1. Diagrama de Caso de Uso

0354
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

5.4.2. Diagrama de Classes

0355
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

5.4.3. Diagrama de Entidade-Relacionamento

0356
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

6 RESULTADOS OBTIDOS
Aplicou-se a prática XP do "cliente presente", onde para o autor, o orientador foi
tido por cliente, ele informava quais eram as funcionalidades esperadas e que agregariam
mais valor ao aplicativo, tais funcionalidades foram desenvolvidas na ordem de prioridade
estabelecida pelo cliente. A primeira funcionalidade desenvolvida foi cadastro de questões.
Outra prática aplicada foi a de releases curtos, semanalmente apresentava a versão
mais atualizada ao coordenados e de acordo com o feedback do cliente dava andamento ao
desenvolvimento. Desta forma colocava-se em prática também o conceito do Teste de
Aceitação.
Buscou-se pôr em prática o Código Padronizado utilizando interfaces para
estabelecer um contrato de métodos para as classes. Nas primeiras semanas precisou-sede
maior dedicação para a leitura e desenvolvimento, utilizando-se a linguagem Java para
web. Já possuía conhecimento acadêmico e prático em desenvolvimento Java para web,
porém alguns entraves apareceram e buscou-se pôr em prática a integração contínua e
manter o aplicativo sempre funcionando. Realizou-se testes unitários e a refatoração do
código sempre que se julgou necessário. Buscou-se manter os formulários com design
simples o que facilita a vida do cliente e do desenvolvedor. Procurou-se desenvolver as
funcionalidades estritamente necessárias conforme preconizado pela metodologia XP.
Não foi possível exercitar práticas como Programação em Par e Código coletivo
visto que se desenvolveu o software sozinho.
A aplicação dessa metodologia trouxe grandes benefícios para o desenvolvimento,
pois estava sempre entregando valor ao cliente e percebendo sua satisfação através do
feedback. Software funcionando sempre e agregando valor ao cliente foi o principal
resultado obtido na aplicação da metodologia XP nesse projeto de desenvolvimento de
software.
Acredita-se que com uma equipe de cinco a sete pessoas seria possível um maior
aprofundamento na metodologia e na utilização de ferramentas que auxiliam na execução
de suas práticas como a integração contínua e o código coletivo, por exemplo.

7 CONCLUSÕES
Conforme análise e desenvolvimento do aplicativo FIQUIZ conclui-se que o
desenvolvimento de software é uma atividade complexa que envolve dedicação,
conhecimento técnico, conhecimento de metodologias de desenvolvimento, linguagem de
programação, atividades diversas como implementação, teste, integração dentre tantas
outras.
A utilização do XP possibilitou colocar em prática o conhecimento disseminado no
curso de Bacharelado em Sistemas de Informação na busca de realizar o desenvolvimento
de acordo com as metodologias modernas de desenvolvimento iterativo e incremental,
priorizando a entrega de valor ao cliente.
Práticas XP como o cliente presente, ritmo sustentável, código padronizado, entres
outras, tornaram o desenvolvimento melhor e atribuíram qualidade ao software, visto que o
cliente orientava o desenvolvimento constantemente através de feedbacks e recebia em
seguida um release com as funcionalidades que havia julgado que traria maior valor para a

0357
14th INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS & TECHNOLOGY MANAGEMENT - CONTECSI - 2017

aplicação.
Conclui-se que a aplicação dessa metodologia trouxe grandes benefícios para o
desenvolvimento, pois estava sempre entregando valor ao cliente e percebendo sua
satisfação através do feedback. Software funcionando e agregando valor ao cliente foi o
principal resultado obtido na aplicação da metodologia XP nesse projeto de
desenvolvimento de software.

REFERÊNCIAS BIBLIOGRÁFICAS
BECK, Kent et al. Manifesto para Desenvolvimento Ágil de Software. 2001.
Disponívelem: <http://agilemanifesto.org/iso/ptbr/manifesto.html> Acessado em
28/09/2016.
CRESWELL, J. W. Projeto de pesquisa: Métodos qualitativo, quantitativo e misto. 3ª ed.
Porto Alegre: Ed. Artmed, 2010.
DEITEL, Paul. Java: como programar, 10 ed. Harvey Deitel; São Paulo: Pearson Education
do Brasil, 2016.
MICHEL, Maria Helena. Metodologia e Pesquisa Científica em Ciências Sociais: Um guia
prático para acompanhamento da disciplina e elaboração de trabalhos monográficos. 2ª ed.
São Paulo: Ed. Atlas, 2009.
Netbeans.org disponível em <https://netbeans.org/features/index_pt_BR.html> acessado
em 26/10/2016.
PRESSMAN, Roger S. Engenharia de Software: uma abordagem profissional, 7ª ed. Porto
Alegre: AMGH, 2011. 780 p.
SOMMERVILLE, Ian. Engenharia de Software, 9 ed. São Paulo: Pearson Prentice Hal,
2011.
TELES, Vinícius Manhães. Extreme Programming: aprenda como encantar seus
usuáriosdesenvolvendo software com agilidade e alta qualidade. 1. ed. São Paulo:
Novatec,2014. 328 p.
TURBAN, Efraim. Tecnologia da Informação para Gestão. 8ª. Editora Bookman, 2013.

0358

Você também pode gostar