Upload
marcus-oliveira
View
1.723
Download
0
Embed Size (px)
DESCRIPTION
Apresentação semi-final sobre rejuvenescimento de Software e Poject Office
Citation preview
Grupo: Eduardo DóriaBruno LinsMarcus ViniciusDiego Calasans
O rejuvenescimento de software tem a finalidade de melhorar a qualidade do software reduzindo os custos com sua manutenção.
Em quais tipos de sistemas deve-se utilizar o rejuvenescimento?› Sistemas Legados› Sistemas Críticos
Surge da necessidade de se incluir uma nova funcionalidade em um sistema em que não é possível tal inclusão
Há diversas estratégias para tal: • Redocumentação – efetuar uma análise do
código, de forma a produzir documentação explicativa do código;
• Reestruturação /Refatoração– efetuar uma análise do código, de forma a reestruturar o código para uma estrutura mais eficiente;
• Engenharia reversa – efetuar uma análise do código, de forma a gerar o modelo e especificações que lhe deram origem;
• Reengenharia – A partir da engenharia reversa, gerar novo modelo e novo código.
O custo de manutenção é muito alto?
A confiabilidade do sistema é inaceitável?
O sistema não pode mais se adaptar a mudanças adicionais dentro de um período de tempo razoável?
O desempenho do sistema ainda está fora das restrições prescritas?
As funções do sistema têm utilidade limitada?
Outros sistemas fazem o mesmo trabalho melhor, mais rápido ou gerando menos custos?
O custo de manutenção do hardware é muito alto, a ponto de justificar sua substituição por um hardware mais novo e mais barato?
Mudança contínua: conduz a menos utilidade
Aumento da complexidade: estrutura se deteriora
Lei fundamental de evolução do programa: programa obedece estatisticamente a tendências e invariâncias determináveis
Corretiva: mantém o controle sobre as funções do dia-a-dia do sistema
Adaptativa: mantém o controle sobre as modificações do sistema
Perfectiva: aperfeiçoa as funções aceitáveis já existentes
Preventiva: toma medidas preventivas para que o desempenho do sistema não diminua para níveis inaceitáveis
Entender o sistema Localizar informações na
documentação do sistema Manter a documentação sistema
atualizada Ampliar as funções existentes, a fim de
incluir novos requisitos ou requisitos modificados
Adicionar novas funções ao sistema Descobrir a fonte das falhas ou
problemas do sistema
• Localizar e corrigir defeitos• Responder a questões sobre como o
sistema funciona• Reestruturar o projeto e os componentes
do código• Reescrever o projeto e os componentes
do código• Excluir o projeto e os componentes do
código que não são mais úteis• Gerenciar as mudanças que são feitas no
sistema
Nova Funcionalidade› Necessidade de implementação de uma
nova funcionalidade ou alteração dos requisitos de uma funcionalidade já implementada
› Normalmente, o cliente identifica uma nova necessidade não atendida pelo sistema
Recolher histórias dos clientes› Tem como objetivo identificar os requisitos
da nova funcionalidade.› São realizadas reuniões com os
desenvolvedores e os clientes.› Tem como resultado uma lista de requisitos
que devem ser atendidos por essa nova funcionalidade.
Desenho (Design)› Representação da nova funcionalidade
através de modelos.› Deve ser usada para a validação.
Conseguir uma melhor percepção dos impactos do desenvolvimento de novas funcionalidades.
Escrita de Testes› Descreve o comportamento esperado para
a nova funcionalidade› A especificação dos testes deve ser feita
antes da codificação› Ao iniciar a codificação, os testes serviram
para o desenvolvedor saber o objetivo da nova funcionalidade
Codificação› Codifica a nova funcionalidade uma
linguagem de programação.› O uso de padrões na codificação melhora a
legibilidade no código e propõe soluções para problemas comuns.
› Normalmente, não se é usado padrões de codificação nas primeiras iterações. Refactoring
Execução de Testes› Fase essencial no desenvolvimento de
software› Garante que o comportamento do sistema
continua a funcionar de acordo com os seus requisitos
Produto› Cada iteração termina com a geração de
uma nova versão do sistema.› Não deve ter um grande volume de
alterações
A escolha depende da equipe e da instituição
Redocumentação é fundamental O papeis do pessoal da equipe segue o
mesmo modelo definido pela instituição e pela metodologia
reengenharia X refatoração X rejuvenescimento X redocumentação
Automatiza completamente a reconstrução de softwares legados
Gera código de alta qualidade Gera aplicações Java ou .NET Pode gerar aplicações pra WEB PowerBuilder, Oracle Forms, Forte, VB e
Centura
Muitos sistemas legados nas instituições
Solução: Fazer a migração usando software livre
Não se tem certeza do sucesso dessas migrações
Cada instituição tem seu plano de migração
Sistema aplicativo CPD/RH Prefeitura Municipal de Aracaju Visual Basic -> Power Object Implantado em 01/08/2000 FolhaNET implementa algumas
funcionalidades Serviços de manutenção: Garantia
Legal Tecnológica
Suporte técnico de manutenção, modalidade Garantia e Tecnológica (GLT)› Atualização do sistema para o atendimento
das exigências ou modificações na legislação federal, estadual ou municipal
› Fornecimento de novas versões dos sistemas desenvolvidos visando o aperfeiçoamento operacional
› Atendimento de chamados com análise, diagnóstico e encaminhamento de solução de problemas
› Agilização dos atendimentos a partir do Serviço de Tele suporte
› Correção de eventuais erros nos softwares (garantia de funcionamento)
Suporte técnico de Manutenção, modalidade Assessoria Operacional› Treinamento de uso› Migração do Sistema contratado em caso de
expansão› Personificação (Adequação do Sistema as
características da Prefeitura Municipal de Aracaju)› Atendimento de chamados com análise,
diagnóstico e encaminhamento de solução de problemas (in loco)
› Acompanhamento de processamentos, inspeção e verificação de relatórios de fechamento
› Serviços de conversão e recuperação de dados› Monitoramento da integridade dos Bancos de
Dados› Inclusão de novas funções, relatórios ou consultas
Problemas:› Sistema antigo e ruim de fazer
manutenção› Regras de negócio desatualizadas e com
problemas› Contrato com a empresa não foi renovado
Soluções:› Transferir a maioria das funcionalidade
para o FolhaNET› Re-implementar outro software desktop
moderno
Refazer sistemas críticos ou complexos Maior facilidade na manutenção Reaproveitamento de funcionalidades
confiáveis
• Tempo de desenvolvimento maior
Na área de TI, as mudanças tem sido cada vez mais constantes.
Aumento no número de projetos e com complexidades cada vez maiores.
A empresa precisa manter bem organizado o controle sobre os seus projetos.
Surgimento dos Project Offices› Desejo de melhorar a taxa de sucesso de
projetos, que continuamente se tornam mais complexos
› Necessidade de aliviar o gerente de projetos de tarefas administrativas associadas ao gerenciamento de um projeto.
É uma área da empresa que possui a visão de todos os projetos.
Tem como objetivos:› Melhoria da eficiência no planejamento e
condução dos projetos› Informação rápida sobre os projetos
existentes› Auxílio nas decisões a serem tomadas
sobre o futuro de cada projeto
Padronização de uma metodologia› Define uma ferramenta e métodos de
controle e acompanhamento dos projetos.› Manter essas ferramentas e métodos
atualizados e adaptados às necessidades da empresa
› Realizar o treinamento dos funcionários e mantê-los atualizados na metodologia e ferramentas
Avaliação dos recursos de projetos› São analisados todos os recursos do
projeto: Humano Financeiro Tempo Material
› É importante para a análise de desempenho dos projetos e a priorização dos mesmos.
Planejamento de Projetos› Tem como objetivo manter cada projeto
organizado, priorizado, distribuído em áreas e devidamente documentado
› É possível se obter também dados históricos que auxiliam a elaboração de novos planos.
Gerenciamento de Projetos› Definir melhores práticas de trabalho para
facilitar o gerenciamento Revisão e Análise de Projetos
› Constante revisão das atividades Custo e prazo Impactos no desempenho
Universidade Aberta. Rejuvenescimento de Software . Disponível em: <http://www.moodle.univ-ab.pt/moodle/mod/glossary/print.php?id=2243&mode=&hook=ALL&sortkey=&sortorder=&offset=-10>. Acesso em: 17 out. 2008.
SILVA, Nuno Alberto Pereira da. Rejuvenescimento de Aplicações: Uma experiência com software de seguros. Universidade do Minho, 2005. Disponível em: < http://repositorium.sdum.uminho.pt/handle/1822/5635 >. Acesso em: 17 out. 2008
LABUTO, Gianncarla Cutini Barcellos. A gestão de Projetos e o Project Office. Disponível em: <http://www.ietec.com.br/site/techoje/categoria/detalhe_artigo/103>. Acesso em: 17 out. 2008.
VAIDYANATHAN, Kalyanaraman; TRIVEDI , Kishor S. A Comprehensive Model for Software Rejuvenation, 2005. Disponivel em: < http://ieeexplore.ieee.org/iel5/8858/31216/01453531.pdf > Acesso em: 17 out. 2008.
AVRITZER Alberto ;BONDI Andre; GROTTKE Michael ; TRIVEDI Kishor S. ; WEYUKER Elaine J. Performance Assurance via Software Rejuvenation: Monitoring, Statistics and Algorithms, 2006. Disponivel em: < http://ieeexplore.ieee.org/iel5/10881/34248/01633532.pdf> Acesso em: 17 out. 2008.
MARCHIORO, Eliete. UM ESTUDO SOBRE REJUVENESCIMENTO DE SOFTWARE EM SERVIDORES WEB APACHE, 2003. Disponivel em: <http://www1.capes.gov.br/estudos/dados/2003/41001010/002/2003_002_41001010025P2_Teses.pdf >. Acesso em: 17 out. 2008.
BAUMOTTE, Ana CláudiaBAUMOTTE, Ana Cláudia. . Project Office: como vender essa idéia na sua organização. Disponível em: < http://www.pmimg.org.br/downloads/ProjectOffice.ppt> Acesso em: 17 out. 2008.