Escolar Documentos
Profissional Documentos
Cultura Documentos
Belo Horizonte
2010
Aos meus pais, minha esposa e meus filhos
Pela paciência e apoio.
“...tempo de derrubar, e tempo de edificar...”
Rei Salomão
RESUMO
fábrica de software.
UP – Processo Unificado.
XP – Extreme Programming.
SUMÁRIO
1. INTRODUÇÃO …............................................................................ 10
1.1 JUSTIFICATIVA …............................................................................ 12
1.2 OBJETIVOS …..…............................................................................. 14
3. METODOLOGIA …..................................................................... 24
REFERÊNCIAS .................................................................................. 43
APÊNDICE …...................................................................................... 44
10
1. INTRODUÇÃO
produção do mesmo.
utilizada dentro do Processo Unificado (UP) caso se faça necessário. O foco aqui é
podem esperar muito tempo por novas versões de software customizado que se
clientes como os descritos acima. Desta forma, projetos de sistemas com liberação
exercer suas atividades de forma eficaz. Precisam sobreviver dentro do ciclo de vida
adaptativa. Fatores como a clareza dos requisitos das partes interessadas e sua
funções e classes a partir de seu significado. Muda uma função de uma classe para
software.
14
1.2 OBJETIVOS
algum momento o programador precisará alterar código fonte para corrigir erros,
técnicas podem diminuir o custo desta tarefa. Outro dos objetivos é avaliar como a
deste processo.
agilizam ainda mais esta atividade, tornando-a menos entediante, mais precisa e
ferramenta de refatoração.
16
2. REVISÃO DA LITERATUA
Programming (XP).
prepara-se para o tratamento destas mudanças, mas não deseja nem estimula a sua
requisitos mais importantes, visão geral do software, custo total, prazo, recursos
para a fase de elaboração onde então todo o restante dos requisitos são detalhados.
mensagens entre elas. Desta forma se torna menos trabalhoso verificar o impacto de
modificação de desenho.
sistema.
19
O terceiro fator apontado por BECK (1999) são as praticas padronizadas de
que padrões de projeto são alvos para refatoração. Segundo FOWLER “Muitas
2004, p.98) .
interações dos processos ágeis, utilizar refatoração para manter o código segundo
do software. FOWLER (2004) lista quatro razões por que se deve refatorar.
alerta que em projetos de softwares de longa duração não controlar mudanças leva
change (Realizar mudança), Review (audit) the change (Revisar Mudança) e ECO
21
(Ordem de Mudança de Engenharia) generated (Gerar ECO). Segundo PRESSMAN,
versus seu impacto nos artefatos do projeto e nas funcionalidades do sistema. Após
a mudança ser realizada, ela é revisada segundo critérios definidos na ECO (Ordem
de Mudança de Engenharia).
das quatro atividades básicas do XP, BECK(1999) lista como um código bem escrito
(FOWLER, 2004, p.55). Como resultado “Refatorar me ajuda ajuda a ser muito mais
efetivo na escrita de código robusto” (FOWLER, 2004, p.55). Existe porém o risco da
própria refatoração introduzir erros no projeto. Podemos listar pelo menos duas
para esta atividade. ROBERTS e BRANT (2004) listam alguns critérios técnicos e
desenvolvimento.
que simula uma situação de alteração de código por um par de programadores onde
23
em um certo momento são realizadas refatorações para melhor entendimento do
ferramentas de refatoração.
Revisão da Literatura, isso porque o estudo teórico foi escolhido como uma das
seguinte ordem:
metodologias ágeis.
de refatoração de código.
literatura.
conclusões.
em http://www.openoffice.org .
26
d) O ambiente utilizado para experimentação no estudo de caso possui as seguintes
configurações:
eventuais erros, refatorar, e testar . Foi preparado um ambiente com o Eclipse como
refatoração pelo fato de não ser este o objetivo deste estudo de caso. Seria
Development Tools 2.1) que oferece alguns recursos úteis para refatoração de
código.
4.1 O SOFTWARE
após o horário esperado. Apesar da empresa não exigir um horário fixo de chegada
e saída dos seus funcionários, precisa da presença das equipes dos diversos
projetos dentro do horário comercial, onde seus clientes podem ter acesso a eles.
4.2 O REQUISITO
Condições Prévias:
- Integração com sistema de Gerenciamento de Projetos ter recuperado dados de apontamentos de
horas de funcionários em projetos.
Fluxo Básico:
1) Usuário inicia caso de uso.
2) Sistema exibe tela solicitando Mês para geração de pontuação.
3) Usuário informa Mês e confirma inicio de processamento.
4) Sistema busca lista de funcionários.
5) Para cada funcionário sistema busca apontamentos de horas no mês indicado.
6) Para cada dia de apontamento de horas do funcionários sistema calcula pontuação diária.
6.1) Sistema calcula pontuação por hora de chegada segundo regras: Até 5 (cinco) pontos para
horário de chegada: chegando até as 09:00 horas, o funcionário recebe 5 (cinco) pontos;
combinando com o gerente até o dia anterior sobre eventuais atrasos, recebe 5 (cinco) pontos,
limitado a 2 dias por mês; chegando das 9:00 hrs até as 9:30 hrs, avisando até 09:00 hrs sobre o
atraso, recebe 4 (quatro) pontos; chegando das 9:00 hrs até as 9:30 hrs sem avisar sobre o atraso,
recebe 3 (três) pontos; chegando das 9:30 hrs até as 10:00 hrs, avisando até as 09:00 hrs sobre o
atraso, recebe 2 (dois) pontos; chegando das 9:30 hrs até as 10:00 hrs, sem avisar sobre o atraso,
recebe 1 (um) ponto; chegando das 10:00 hrs até as 10:30 hrs, avisando até as 9:00 hrs sobre o
atraso, recebe 1 (um) ponto; chegando após às 10:00 hrs, sem avisar sobre o atraso, não recebe
pontos.
6.2) Sistema calcula pontuação por hora de saída segundo regras: Até 5 (cinco) pontos para horário
de saída: combinando com o gerente até o dia anterior sobre saídas mais cedo, recebe 5 (cinco)
pontos, limitado a 2 (dois) dias por mês; saindo após às 17:30 hrs, o funcionário recebe 5 (cinco)
pontos; saindo das 17:00 hrs até às 17:30 hrs, o funcionário recebe 4 (quatro) pontos; saindo das
16:30 hrs até às 17:00 hrs, o funcionário recebe 3 (três) pontos; saindo das 16:00 hrs até às 16:30
hrs, o funcionário recebe 2 (dois) pontos; saindo antes das 16:00 hrs o funcionário não recebe
pontos.
6.3) Sistema adiciona pontos relacionados a regra: combinando com o gerente até o dia anterior
sobre ausências de um período, o funcionário recebe 3 (três) pontos.
7) Sistema registra pontuação diária de funcionário.
8) Sistema verifica existência de período de férias do funcionário dentro do mês.
9) Sistema registra pontuação média diária de funcionário do mês anterior para cada dia do período
de férias.
10) Sistema calcula desconto de horas de funcionário relacionados a horas devedoras no mês
segundo regra: para cada hora devedora no banco de horas o funcionário perderá 2 (dois) pontos.
11) Caso existam mais funcionários para processar sistema retorna ao passo 5). Caso NÃO existam
finaliza o caso de uso.
Condições Posteriores:
- Pontuações mensais de funcionários registradas.
Tabela 1: Caso de Uso - Gerar pontuação automática de mês.
31
4.3 O ESTADO INICIAL
gera_pontuacao_automatica_mes:
fazerem parte de uma framework e estarem fora do âmbito deste estudo de caso
classes não estão bem estabelecidas; existe um forte acoplamento entre as classes
destes problemas.
método será quebrado em vários métodos que terão nomes descritivos de cada
casos de teste. Um caso de teste para funcionário com registro de pontos e sem
férias, um caso de teste para funcionário somente com férias e um caso de teste
para funcionário com férias e registro de pontos no mês. Nos registros de pontos dos
funcionários são realizados testes de fronteira. Foi criada uma ferramenta que
35
realiza os três casos teste de uma só vez no código, sinalizando caso ocorram erros.
Esta monografia não são explicadas as técnicas de testes de software, para saber
mais sobre assunto consulte MYERS (1985). Os casos de teste criados podem ser
vistos no Apêndice A.
4.5 REFATORANDO
por vez:
criadas ou refatoradas as classes do tipo entidade que são responsáveis por manter
os dados do sistema. Foi criada uma classe para manter cada uma das tabelas com
apagar registros. Foi utilizado o padrão de desenho Factory Method da Gangue dos
classes entidades descendem de uma nova classe tabela e são fabricadas por uma
classe, bem como a nova classe fabrica_tabela, podem ficar escondidas dentro de
fazem acesso direto a classe class_bd para acessarem métodos das classes de
entidade. Isso pode ser feito utilizando o métodos de refatoração Extrair Método e
bem estabelecidas: Para resolver este problema todos os métodos das classes
Para resolver este problema foi reorganizada a troca de mensagens entre as classes
(FOWLER, 2004).
que terão nomes descritivos de cada etapa da geração de pontuação. Foi utilizada a
estudo de caso:
$tb_motivo_funcionario_dia->cod_motivo_funcionario_dia = $cod_funcionario_dia;
$tb_motivo_funcionario_dia->cod_funcionario = $cod_funcionario;
$tb_motivo_funcionario_dia->cod_motivo = $this->calcula_motivo_entrada($lista_ponto[$num_ponto]["hor_entrada"]);
$tb_motivo_funcionario_dia->grava(0);
$tb_motivo_funcionario_dia->cod_motivo_funcionario_dia = $cod_funcionario_dia;
$tb_motivo_funcionario_dia->cod_funcionario = $cod_funcionario;
$tb_motivo_funcionario_dia->cod_motivo = $this->calcula_motivo_saida($lista_ponto[$num_ponto]["hor_saida"]);
$tb_motivo_funcionario_dia->grava(0);
}
}
$this->gera_pontuacao_ferias($cod_funcionario, $cod_funcionario_interface);
}
}
echo "Processamento finalizado!";
}
conjunto bem maior de pessoas que códigos escritos em uma linguagem particular.
Por outro lado o código fonte esta mais perto do programador que é o responsável e
fonte.
GAMMA, E.; HELM, R.; JOHNSON R.; VLISSIDES, J.; Design Patterns: Elements
of Reusable Object Oriented Software. Addison-Wesley, 1995. 358p.
MYERS, G.J. The Art of Software Testing 1st ed. Wiley Interscience, 1985.
44
APÊNDICE