Escolar Documentos
Profissional Documentos
Cultura Documentos
Bruno Junqueira Alves - Monografia - Versao Final PDF
Bruno Junqueira Alves - Monografia - Versao Final PDF
Universidade de Pernambuco
Escola Politcnica de Pernambuco
Graduao em Engenharia de Computao
Recife, Agosto/2012.
ii
De acordo
Recife
____/___________/_____
_____________________________________
Orientador da Monografia
iii
Dedico esse trabalho a todos que me deram o apoio necessrio, minha famlia, meu
orientador e amigo Srgio Murilo e, principalmente, Deus.
iv
Resumo
Nesse trabalho, foi feita uma pesquisa a respeito dos atuais mtodos de
fabricao de software utilizados pelas principais software houses do mundo.
Tambm foram citados mtodos usados no incio da modernizao dos processos
de desenvolvimento. Atravs de entrevistas com especialistas na rea, leitura
especializada e um estudo de caso, foi possvel chegar a uma comparao concisa
entre os existentes mtodos de construo de software.
Abstract
In this study, a survey was made about the current software development
methods that are used by major software houses in the world. This work also
mentions the methods used at the beginning of the modernization of development
processes. Based on interviews with experts in the field, reading specialized books
and performing a case study, it was possible to reach a concise comparison between
the existing methods of software development.
vi
Sumrio
Captulo 1 Introduo
1.1
Objetivo
1.2
Estrutura do trabalho
1.3
Metodologia
2.1
Modelo cascata
2.2
7
8
11
13
2.3.1 Prototipagem
13
14
2.4
Desenvolvimento gil
17
23
3.1
Introduo
23
3.2
23
24
vii
3.2.2 Planejamento
25
3.2.2.1 Escopo
26
3.2.2.2 Tempo
26
3.2.2.3 Qualidade
27
3.2.2.4 Riscos
29
29
3.2.2.6 Custos
30
3.2.3 Execuo
31
3.2.4 Controle
31
3.2.5 Encerramento
32
Captulo 4
Pirmide
4.1
A Procenge
34
4.2
O Pirmide
35
4.3
Estudo de caso
35
Captulo 5
39
Referncias
41
viii
Lista de Figuras
Figura 1.
Figura 2.
Figura 3.
Figura 4.
Figura 5.
Figura 6.
Figura 7.
Figura 8.
Metodologia Scrum.................................................................................. 21
Figura 9.
Figura 10.
Figura 11.
ix
Captulo 1 - Introduo
Captulo 1
Introduo
A engenharia de software uma disciplina relativamente nova. A ideia de
engenharia de software apareceu na dcada de 1960, exatamente em 1968. Nessa
poca, o hardware passava para um nvel mais avanado de construo, tornando
os computadores capazes de efetuarem tarefas antes impensveis e tornando a
fabricao mais barata. Mas, ao contrrio dessa facilidade do hardware, o software
estava ficando mais caro e a entrega com mais atraso. Portanto, novos mtodos
eram necessrios para controlar a complexidade de sua fabricao.
Ento foram criados os primeiros processos de fabricao de software, onde
o objetivo era tornar a criao do software semelhante a um processo industrial, a
fim de acompanhar o desenvolvimento do hardware das mquinas.
Houve um grande progresso desde essa poca, mas ainda existem
problemas para entregar os projetos no prazo e manter o custo inicialmente
acordado. Por ser um processo intelectual, que usa julgamento humano, os
processos de desenvolvimento de software so complexos e suas tentativas de
automatizao no obtiveram sucesso pleno.
Os primeiros mtodos de desenvolvimento possuam orientao esttica,
exatamente como uma linha de montagem. Com um tempo, as empresas
comearam a adotar uma postura mais dinmica, onde as mudanas no cdigo no
representam tantos problemas para a adaptao a um cliente especfico. A partir da,
foram criados os mtodos geis, cujo foco era nas pessoas e no nos processos
estticos de desenvolvimento.
Captulo 1 - Introduo
1.1 Objetivo
Nesse
trabalho,
sero
demonstrados
os
principais
processos
de
captulo
2,
sero
apresentados
os
mtodos
criados
para
Captulo 1 - Introduo
1.3 Metodologia
A metodologia adotada nesse estudo foi a leitura de livros, artigos e trabalhos
especializados na rea de desenvolvimento de software junto com entrevistas com
profissionais que trabalham na rea de desenvolvimento e gerncia de qualidade de
software.
Captulo 2
Os processos de desenvolvimento
de software.
O processo de desenvolvimento de software pode ser definido como uma
coleo de padres que definem um conjunto de atividades, aes, tarefas de
trabalho, produtos de trabalho e/ou comportamentos relacionados e necessrios ao
desenvolvimento de software de computador. Pela combinao de padres, uma
equipe de software pode definir um processo que melhor satisfaa s necessidades
de um projeto.
Nesse captulo sero apresentados os principais mtodos conhecidos de
desenvolvimento de software, de modo que se possa ter um entendimento para a
comparao desses mtodos.
inicial
de
uma
arquitetura
robusta,
antes
do
10
11
12
brevemente
apresentados
dois
processos
evolucionrios:
2.3.1 Prototipagem
Muitas vezes o cliente no tem uma clara viso dos requisitos que lhe
interessam, ou o desenvolvedor no tem certeza sobre o uso de um certo algoritmo
ou sobre a portabilidade para um sistema operacional, ou qual interao
homem/mquina o sistema deve assumir. Nesses casos, o uso da prototipagem se
faz muito til.
Primeiramente, o engenheiro de software se rene com o cliente a fim de
delinear os requisitos bsicos do sistema, as necessidades conhecidas e requisitos
que precisam ser mais bem definidos. A seguir, o projeto se concentra em entregar
um executvel com todos os requisitos bsicos e uma interface prxima do ideal. O
Bruno Junqueira Alves
13
feedback do cliente vai servir para aprimorar esses requisitos e implementar outros
mais complexos, tornando o entendimento por parte do desenvolvedor mais fcil. A
Figura 6 ilustra como o processo de prototipagem acontece dentro do projeto.
Idealmente, o prottipo serve apenas para identificar os requisitos que esto
sendo satisfeitos e como o sistema pode ser aprimorado. Mas muitos clientes usam
esse prottipo inicial como se fosse o executvel final, ao perceberem que no o
produto final, eles reclamam e exigem consertos, ao invs de esperarem por uma
nova verso mais refinada do sistema, com mais qualidade e robustez.
14
processo como uma sequncia de atividades, cujo retorno essencial para iniciar a
prxima atividade, o modelo representado como uma espiral.
Cada loop da espiral divido em quatro setores:
Definio de objetivos So definidos os objetivos especficos do projeto.
Tambm so identificadas as restries para o processo e o produto e
preparado um plano de gerenciamento. Os riscos tambm so identificados e,
dependendo desses riscos, estratgias alternativas so planejadas.
Avaliao e reduo de riscos Aps os riscos serem identificados, uma
anlise detalhada dos mesmos feita e providncias so tomadas para
reduzi-los.
Desenvolvimento e validao Aps a avaliao dos riscos, um modelo
de desenvolvimento escolhido para o projeto. Por exemplo, se o risco
principal identificado na fase anterior for a integrao de sistemas, o modelo
cascata pode ser adotado.
Planejamento O projeto revisado para que seja tomada uma deciso a
respeito do prximo loop da espiral. Caso seja decidido continuar, novos
planos sero traados para o projeto seguindo a mesma metodologia.
A Figura 7 ilustra como ocorre um desenvolvimento de projeto seguindo o
padro espiral de projeto. Observar que a cada nova espiral realizada, novos
planejamentos so feitos para o projeto.
15
16
17
18
caracterstica
importante,
pois
mantm
os
desenvolvedores
19
20
21
seja,
em
quais
situaes
devemos
preferir
um
ou
outro
modelo.
22
Captulo 3
Comparao entre metodologias
geis e metodologias clssicas
3.1 Introduo
Nesse captulo sero detalhadas vantagens das metodologias geis em
relao s metodologias clssicas de engenharia de software.
Com essa comparao, mostrado o porqu da maior adoo das
metodologias geis nas empresas especializadas em desenvolvimento de software a
fim de acelerarem a rea de manuteno de sistemas. Com isso, as empresas
aumentam a satisfao dos clientes, podendo alcanar maiores ganhos financeiros e
de novos clientes.
23
24
3.2.2 Planejamento
Na fase de planejamento, muitos fatores so considerados:
Escopo;
Qualidade;
Tempo;
Riscos;
Recursos humanos;
Custos.
Sero detalhadas as comparaes entre as metodologias geis e tradicionais
para cada um desses fatores apresentados, esclarecendo as vantagens e
desvantagens entre as mesmas.
Bruno Junqueira Alves
25
Escopo
3.2.2.2
Tempo
26
diferentemente
da
metodologia
tradicional,
no
feito
um
3.2.2.3
Qualidade
27
28
Riscos
3.2.2.5
Recursos Humanos
29
3.2.2.6
Custos
30
3.2.4 Controle
Nas metodologias tradicionais, existe um rgido controle quanto s mudanas
no escopo do projeto. Qualquer alterao reflete como um risco a todo o projeto,
exigindo uma anlise de impacto em todas as reas que sero afetadas. Quanto ao
controle do tempo, existe um cronograma a ser seguido e tradicionalmente usado
o grfico de Gantt como referncia para saber se o desenvolvimento do projeto est
obedecendo ao tempo previsto no planejamento inicial.
Os custos do projeto so monitorados atravs da equipe de gerncia de
custos, a qual faz uma comparao com a linha de base de custos do projeto. Uma
no conformidade dos custos pode trazer a falta dos mesmos para a execuo do
resto do projeto, implicando at em sua paralisao para novas negociaes.
Bruno Junqueira Alves
31
3.2.5 Encerramento
Nas metodologias tradicionais, no momento de encerramento de um projeto,
os participantes sero informados atravs de um documento formal. Sero
mostrados os indicadores de desempenho e de qualidade medidos durante a
execuo do projeto, e essas informaes sero levadas aos responsveis pelo
patrocnio do mesmo.
32
33
Captulo 4
Estudo de caso Sistema de
Gesto Empresarial Pirmide
Nesse captulo, ser demonstrado como o uso de metodologias geis
ajudou o desenvolvimento em uma software house de modo que a alta demanda dos
clientes fosse suprida. Essas metodologias tambm ajudaram na gerncia de uma
maior quantidade de pessoas que foram contratadas para as equipes de
desenvolvimento.
A seguir ser feita uma apresentao da empresa Procenge e o sistema
estudado, o Pirmide. Aps essa apresentao, sero sintetizadas as opinies dos
especialistas da rea de qualidade de software, como tambm a opinio de
profissionais que antes trabalhavam usando somente a metodologia tradicional na
rea de manuteno e passaram a utilizar a metodologia gil, especificamente o
Scrum, para terem maior rendimento na produtividade.
4.1 A Procenge
A Procenge surgiu h 40 anos com o propsito de desenvolver sistemas de
gesto administrativa e de apoio tomada de decises. Est instalada no Porto
Digital do Recife desde 1998. Nesses anos de sua histria, desenvolveu parcerias
com empresas privadas e pblicas. Atualmente o maior foco da Procenge est nos
setores de saneamento, sucroenergtico (usinas de cana-de-acar), sade e gs.
Desde 2002, a Procenge passou a adotar normas exigidas pelas certificaes
de qualidade. Com isso, implantou o SGP Sistema de Gesto Procenge, que
redefiniu as orientaes estratgicas com definies de processos, prticas e
aplicao de recursos.
34
4.2 O Pirmide
O sistema Pirmide o principal produto da Procenge. Esse sistema
proporciona que os diretores e gerentes obtenham todas as informaes
necessrias ao funcionamento da empresa de modo interligado. Oferecendo, assim,
agilidade e transparncia nos processos de gesto administrativa, do financeiro ao
setor de compras, do fiscal ao estoque. Por ser constitudo de vrios mdulos, a
manuteno do sistema se tornou muito difcil de ser gerido por apenas um gerente
de projeto.
O Pirmide uma soluo ERP (Enterprise Resource Planning) que se
aplica a empresas de todos os setores da economia. Ele incorpora aos seus
mdulos aspectos fundamentais da gesto empresarial, valorizando a integrao de
dados e flexibilidade de adaptao a empresas dos mais variados segmentos. O
software automatiza e integra os processos de diversas reas da organizao, tais
como: contabilidade, controladoria, financeira, suprimentos, produo, comercial,
logstica e RH, facilitando o fluxo de informaes entre elas.
35
os
procedimentos
de
atendimento
do
Pirmide
foram
mapeados,
36
37
38
Captulo 5
Concluses e trabalhos futuros
A partir do estudo feito, conclui-se que o uso das metodologias tradicionais
est cedendo seu espao, pelo menos nas reas de manuteno de sistemas, s
metodologias geis devido sua alta burocracia, que exige todo o planejamento j
na fase inicial do projeto. J a metodologia gil, chega para tornar o ambiente de
desenvolvimento de softwares mais produtivo e dinmico, ajudando s empresas a
conquistarem mais clientes e trazendo mais qualidade aos seus produtos.
Nas metodologias geis, os profissionais tornam-se mais especializados, ao
passo que eles precisam ter conhecimento de anlise, programao e testes. Com
isso, as empresas encontram dificuldades em contratar pessoas com grandes nveis
de conhecimento. preciso tambm levar em conta que, dependendo do projeto, se
torna necessria uma equipe relativamente grande para o desenvolvimento do
sistema. No caso do Pirmide, alguns mdulos possuem mais profissionais que
outros, devido ao seu uso ser mais intenso nos clientes.
Com o uso de metodologias tradicionais, no final de um projeto, o sistema
pode ficar defasado em relao aos requisitos do cliente, caso as necessidades do
negcio
do
cliente
mudem
com
tempo.
Nas
metodologias
geis,
39
40
Referncias
Referncias
[1]
Agile
Manifesto.
Disponvel
em:
http://www.agilemanifesto.org/iso/ptbr/.
Proc. IFIP, IEEE CS Press, pp. 1069-1076; reprinted in IEEE Computer, pp. 10-19,
Apr. 1987.
[3]
[5]
[8]
Guia
on-line
do
RUP.
Disponvel
em:
Best
Practices
for
Development
Teams.
Disponvel
em:
http://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_
bestpractices_TP026B.pdf. Acesso em: 15 de dez. 2012
41