Grupo:  Eduardo Dória Bruno Lins Marcus Vinicius Diego Calasans
<ul><li>O rejuvenescimento de software tem a finalidade de melhorar  a qualidade do software reduzindo os custos com sua m...
<ul><li>Em quais tipos de sistemas deve-se utilizar o rejuvenescimento? </li></ul><ul><ul><li>Sistemas Legados </li></ul><...
<ul><li>Há diversas estratégias para tal:  </li></ul><ul><li>Redocumentação  – efetuar uma análise do código, de forma a p...
 
<ul><li>O custo de manutenção é muito alto? </li></ul><ul><li>A confiabilidade do sistema é inaceitável? </li></ul><ul><li...
<ul><li>Mudança contínua:  conduz a menos utilidade </li></ul><ul><li>Aumento da complexidade:  estrutura se deteriora </l...
<ul><li>Corretiva:   mantém o controle sobre as funções do dia-a-dia do sistema </li></ul><ul><li>Adaptativa:  mantém o co...
<ul><li>Entender o sistema </li></ul><ul><li>Localizar informações na documentação do sistema </li></ul><ul><li>Manter a d...
<ul><li>Localizar e corrigir defeitos </li></ul><ul><li>Responder a questões sobre como o sistema funciona </li></ul><ul><...
 
<ul><li>Nova Funcionalidade </li></ul><ul><ul><li>Necessidade de implementação de uma nova funcionalidade ou alteração dos...
<ul><li>Recolher histórias dos clientes </li></ul><ul><ul><li>Tem como objetivo identificar os requisitos da nova funciona...
<ul><li>Desenho (Design) </li></ul><ul><ul><li>Representação da nova funcionalidade através de modelos. </li></ul></ul><ul...
<ul><li>Escrita de Testes </li></ul><ul><ul><li>Descreve o comportamento esperado para a nova funcionalidade </li></ul></u...
<ul><li>Codificação </li></ul><ul><ul><li>Codifica a nova funcionalidade uma linguagem de programação. </li></ul></ul><ul>...
<ul><li>Execução de Testes </li></ul><ul><ul><li>Fase essencial no desenvolvimento de software </li></ul></ul><ul><ul><li>...
<ul><li>Produto </li></ul><ul><ul><li>Cada iteração termina com a geração de uma nova versão do sistema. </li></ul></ul><u...
<ul><li>A escolha depende da equipe e da instituição </li></ul><ul><li>Redocumentação é fundamental </li></ul><ul><li>O pa...
<ul><li>Automatiza completamente a reconstrução de softwares legados </li></ul><ul><li>Gera código de alta qualidade </li>...
 
<ul><li>Muitos sistemas legados nas instituições </li></ul><ul><li>Solução: Fazer a migração usando software livre </li></...
<ul><li>Sistema aplicativo CPD/RH </li></ul><ul><li>Prefeitura Municipal de Aracaju </li></ul><ul><li>Visual Basic -> Powe...
 
<ul><li>Suporte técnico de manutenção, modalidade Garantia e Tecnológica (GLT) </li></ul><ul><ul><li>Atualização do sistem...
<ul><li>Suporte técnico de Manutenção, modalidade Assessoria Operacional </li></ul><ul><ul><li>Treinamento de uso </li></u...
 
<ul><li>Problemas: </li></ul><ul><ul><li>Sistema antigo e ruim de fazer manutenção </li></ul></ul><ul><ul><li>Regras de ne...
<ul><li>Refazer sistemas críticos ou complexos </li></ul><ul><li>Maior facilidade na manutenção </li></ul><ul><li>Reaprove...
<ul><li>Na área de TI, as mudanças tem sido cada vez mais constantes. </li></ul><ul><li>Aumento no número de projetos e co...
<ul><li>Surgimento dos Project Offices </li></ul><ul><ul><li>Desejo de melhorar a taxa de sucesso de projetos, que continu...
<ul><li>É uma área da empresa que possui a visão de todos os projetos. </li></ul><ul><li>Tem como objetivos: </li></ul><ul...
<ul><li>Padronização de uma metodologia </li></ul><ul><ul><li>Define uma ferramenta e métodos de controle e acompanhamento...
<ul><li>Avaliação dos recursos de projetos </li></ul><ul><ul><li>São analisados todos os recursos do projeto: </li></ul></...
<ul><li>Planejamento de Projetos </li></ul><ul><ul><li>Tem como objetivo manter cada projeto organizado, priorizado, distr...
<ul><li>Gerenciamento de Projetos </li></ul><ul><ul><li>Definir melhores práticas de trabalho para facilitar o gerenciamen...
<ul><li>Universidade Aberta.  Rejuvenescimento de Software  .  Disponível em: <http://www.moodle.univ-ab.pt/moodle/mod/glo...
<ul><li>BAUMOTTE, Ana Cláudia .  Project Office: como vender essa idéia na sua organização.  Disponível em: < http://www.p...
Upcoming SlideShare
Loading in …5
×

Rejuvenescimento Software

1,487 views

Published on

Apresentação semi-final sobre rejuvenescimento de Software e Poject Office

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,487
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rejuvenescimento Software

  1. 1. Grupo: Eduardo Dória Bruno Lins Marcus Vinicius Diego Calasans
  2. 2. <ul><li>O rejuvenescimento de software tem a finalidade de melhorar a qualidade do software reduzindo os custos com sua manutenção. </li></ul>
  3. 3. <ul><li>Em quais tipos de sistemas deve-se utilizar o rejuvenescimento? </li></ul><ul><ul><li>Sistemas Legados </li></ul></ul><ul><ul><li>Sistemas Críticos </li></ul></ul><ul><li>Surge da necessidade de se incluir uma nova funcionalidade em um sistema em que não é possível tal inclusão </li></ul>
  4. 4. <ul><li>Há diversas estratégias para tal: </li></ul><ul><li>Redocumentação – efetuar uma análise do código, de forma a produzir documentação explicativa do código; </li></ul><ul><li>Reestruturação /Refatoração – efetuar uma análise do código, de forma a reestruturar o código para uma estrutura mais eficiente; </li></ul><ul><li>Engenharia reversa – efetuar uma análise do código, de forma a gerar o modelo e especificações que lhe deram origem; </li></ul><ul><li>Reengenharia – A partir da engenharia reversa, gerar novo modelo e novo código. </li></ul>
  5. 6. <ul><li>O custo de manutenção é muito alto? </li></ul><ul><li>A confiabilidade do sistema é inaceitável? </li></ul><ul><li>O sistema não pode mais se adaptar a mudanças adicionais dentro de um período de tempo razoável? </li></ul><ul><li>O desempenho do sistema ainda está fora das restrições prescritas? </li></ul><ul><li>As funções do sistema têm utilidade limitada? </li></ul><ul><li>Outros sistemas fazem o mesmo trabalho melhor, mais rápido ou gerando menos custos? </li></ul><ul><li>O custo de manutenção do hardware é muito alto, a ponto de justificar sua substituição por um hardware mais novo e mais barato ? </li></ul>
  6. 7. <ul><li>Mudança contínua: conduz a menos utilidade </li></ul><ul><li>Aumento da complexidade: estrutura se deteriora </li></ul><ul><li>Lei fundamental de evolução do programa: programa obedece estatisticamente a tendências e invariâncias determináveis </li></ul>
  7. 8. <ul><li>Corretiva: mantém o controle sobre as funções do dia-a-dia do sistema </li></ul><ul><li>Adaptativa: mantém o controle sobre as modificações do sistema </li></ul><ul><li>Perfectiva: aperfeiçoa as funções aceitáveis já existentes </li></ul><ul><li>Preventiva: toma medidas preventivas para que o desempenho do sistema não diminua para níveis inaceitáveis </li></ul>
  8. 9. <ul><li>Entender o sistema </li></ul><ul><li>Localizar informações na documentação do sistema </li></ul><ul><li>Manter a documentação sistema atualizada </li></ul><ul><li>Ampliar as funções existentes, a fim de incluir novos requisitos ou requisitos modificados </li></ul><ul><li>Adicionar novas funções ao sistema </li></ul><ul><li>Descobrir a fonte das falhas ou problemas do sistema </li></ul>
  9. 10. <ul><li>Localizar e corrigir defeitos </li></ul><ul><li>Responder a questões sobre como o sistema funciona </li></ul><ul><li>Reestruturar o projeto e os componentes do código </li></ul><ul><li>Reescrever o projeto e os componentes do código </li></ul><ul><li>Excluir o projeto e os componentes do código que não são mais úteis </li></ul><ul><li>Gerenciar as mudanças que são feitas no sistema </li></ul>
  10. 12. <ul><li>Nova Funcionalidade </li></ul><ul><ul><li>Necessidade de implementação de uma nova funcionalidade ou alteração dos requisitos de uma funcionalidade já implementada </li></ul></ul><ul><ul><li>Normalmente, o cliente identifica uma nova necessidade não atendida pelo sistema </li></ul></ul>
  11. 13. <ul><li>Recolher histórias dos clientes </li></ul><ul><ul><li>Tem como objetivo identificar os requisitos da nova funcionalidade. </li></ul></ul><ul><ul><li>São realizadas reuniões com os desenvolvedores e os clientes. </li></ul></ul><ul><ul><li>Tem como resultado uma lista de requisitos que devem ser atendidos por essa nova funcionalidade. </li></ul></ul>
  12. 14. <ul><li>Desenho (Design) </li></ul><ul><ul><li>Representação da nova funcionalidade através de modelos. </li></ul></ul><ul><ul><li>Deve ser usada para a validação. </li></ul></ul><ul><ul><ul><li>Conseguir uma melhor percepção dos impactos do desenvolvimento de novas funcionalidades. </li></ul></ul></ul>
  13. 15. <ul><li>Escrita de Testes </li></ul><ul><ul><li>Descreve o comportamento esperado para a nova funcionalidade </li></ul></ul><ul><ul><li>A especificação dos testes deve ser feita antes da codificação </li></ul></ul><ul><ul><li>Ao iniciar a codificação, os testes serviram para o desenvolvedor saber o objetivo da nova funcionalidade </li></ul></ul>
  14. 16. <ul><li>Codificação </li></ul><ul><ul><li>Codifica a nova funcionalidade uma linguagem de programação. </li></ul></ul><ul><ul><li>O uso de padrões na codificação melhora a legibilidade no código e propõe soluções para problemas comuns. </li></ul></ul><ul><ul><li>Normalmente, não se é usado padrões de codificação nas primeiras iterações. </li></ul></ul><ul><ul><ul><li>Refactoring </li></ul></ul></ul>
  15. 17. <ul><li>Execução de Testes </li></ul><ul><ul><li>Fase essencial no desenvolvimento de software </li></ul></ul><ul><ul><li>Garante que o comportamento do sistema continua a funcionar de acordo com os seus requisitos </li></ul></ul>
  16. 18. <ul><li>Produto </li></ul><ul><ul><li>Cada iteração termina com a geração de uma nova versão do sistema. </li></ul></ul><ul><ul><li>Não deve ter um grande volume de alterações </li></ul></ul>
  17. 19. <ul><li>A escolha depende da equipe e da instituição </li></ul><ul><li>Redocumentação é fundamental </li></ul><ul><li>O papeis do pessoal da equipe segue o mesmo modelo definido pela instituição e pela metodologia </li></ul><ul><li>reengenharia X refatoração X rejuvenescimento X redocumentação </li></ul>
  18. 20. <ul><li>Automatiza completamente a reconstrução de softwares legados </li></ul><ul><li>Gera código de alta qualidade </li></ul><ul><li>Gera aplicações Java ou .NET </li></ul><ul><li>Pode gerar aplicações pra WEB </li></ul><ul><li>PowerBuilder, Oracle Forms, Forte, VB e Centura </li></ul>
  19. 22. <ul><li>Muitos sistemas legados nas instituições </li></ul><ul><li>Solução: Fazer a migração usando software livre </li></ul><ul><li>Não se tem certeza do sucesso dessas migrações </li></ul><ul><li>Cada instituição tem seu plano de migração </li></ul>
  20. 23. <ul><li>Sistema aplicativo CPD/RH </li></ul><ul><li>Prefeitura Municipal de Aracaju </li></ul><ul><li>Visual Basic -> Power Object </li></ul><ul><li>Implantado em 01/08/2000 </li></ul><ul><li>FolhaNET implementa algumas funcionalidades </li></ul><ul><li>Serviços de manutenção: Garantia Legal Tecnológica </li></ul>
  21. 25. <ul><li>Suporte técnico de manutenção, modalidade Garantia e Tecnológica (GLT) </li></ul><ul><ul><li>Atualização do sistema para o atendimento das exigências ou modificações na legislação federal, estadual ou municipal </li></ul></ul><ul><ul><li>Fornecimento de novas versões dos sistemas desenvolvidos visando o aperfeiçoamento operacional </li></ul></ul><ul><ul><li>Atendimento de chamados com análise, diagnóstico e encaminhamento de solução de problemas </li></ul></ul><ul><ul><li>Agilização dos atendimentos a partir do Serviço de Tele suporte </li></ul></ul><ul><ul><li>Correção de eventuais erros nos softwares (garantia de funcionamento) </li></ul></ul>
  22. 26. <ul><li>Suporte técnico de Manutenção, modalidade Assessoria Operacional </li></ul><ul><ul><li>Treinamento de uso </li></ul></ul><ul><ul><li>Migração do Sistema contratado em caso de expansão </li></ul></ul><ul><ul><li>Personificação (Adequação do Sistema as características da Prefeitura Municipal de Aracaju) </li></ul></ul><ul><ul><li>Atendimento de chamados com análise, diagnóstico e encaminhamento de solução de problemas (in loco) </li></ul></ul><ul><ul><li>Acompanhamento de processamentos, inspeção e verificação de relatórios de fechamento </li></ul></ul><ul><ul><li>Serviços de conversão e recuperação de dados </li></ul></ul><ul><ul><li>Monitoramento da integridade dos Bancos de Dados </li></ul></ul><ul><ul><li>Inclusão de novas funções, relatórios ou consultas </li></ul></ul>
  23. 28. <ul><li>Problemas: </li></ul><ul><ul><li>Sistema antigo e ruim de fazer manutenção </li></ul></ul><ul><ul><li>Regras de negócio desatualizadas e com problemas </li></ul></ul><ul><ul><li>Contrato com a empresa não foi renovado </li></ul></ul><ul><li>Soluções: </li></ul><ul><ul><li>Transferir a maioria das funcionalidade para o FolhaNET </li></ul></ul><ul><ul><li>Re-implementar outro software desktop moderno </li></ul></ul>
  24. 29. <ul><li>Refazer sistemas críticos ou complexos </li></ul><ul><li>Maior facilidade na manutenção </li></ul><ul><li>Reaproveitamento de funcionalidades confiáveis </li></ul><ul><li>Tempo de desenvolvimento maior </li></ul>
  25. 30. <ul><li>Na área de TI, as mudanças tem sido cada vez mais constantes. </li></ul><ul><li>Aumento no número de projetos e com complexidades cada vez maiores. </li></ul><ul><li>A empresa precisa manter bem organizado o controle sobre os seus projetos. </li></ul>
  26. 31. <ul><li>Surgimento dos Project Offices </li></ul><ul><ul><li>Desejo de melhorar a taxa de sucesso de projetos, que continuamente se tornam mais complexos </li></ul></ul><ul><ul><li>Necessidade de aliviar o gerente de projetos de tarefas administrativas associadas ao gerenciamento de um projeto. </li></ul></ul>
  27. 32. <ul><li>É uma área da empresa que possui a visão de todos os projetos. </li></ul><ul><li>Tem como objetivos: </li></ul><ul><ul><li>Melhoria da eficiência no planejamento e condução dos projetos </li></ul></ul><ul><ul><li>Informação rápida sobre os projetos existentes </li></ul></ul><ul><ul><li>Auxílio nas decisões a serem tomadas sobre o futuro de cada projeto </li></ul></ul>
  28. 33. <ul><li>Padronização de uma metodologia </li></ul><ul><ul><li>Define uma ferramenta e métodos de controle e acompanhamento dos projetos. </li></ul></ul><ul><ul><li>Manter essas ferramentas e métodos atualizados e adaptados às necessidades da empresa </li></ul></ul><ul><ul><li>Realizar o treinamento dos funcionários e mantê-los atualizados na metodologia e ferramentas </li></ul></ul>
  29. 34. <ul><li>Avaliação dos recursos de projetos </li></ul><ul><ul><li>São analisados todos os recursos do projeto: </li></ul></ul><ul><ul><ul><li>Humano </li></ul></ul></ul><ul><ul><ul><li>Financeiro </li></ul></ul></ul><ul><ul><ul><li>Tempo </li></ul></ul></ul><ul><ul><ul><li>Material </li></ul></ul></ul><ul><ul><li>É importante para a análise de desempenho dos projetos e a priorização dos mesmos. </li></ul></ul>
  30. 35. <ul><li>Planejamento de Projetos </li></ul><ul><ul><li>Tem como objetivo manter cada projeto organizado, priorizado, distribuído em áreas e devidamente documentado </li></ul></ul><ul><ul><li>É possível se obter também dados históricos que auxiliam a elaboração de novos planos. </li></ul></ul>
  31. 36. <ul><li>Gerenciamento de Projetos </li></ul><ul><ul><li>Definir melhores práticas de trabalho para facilitar o gerenciamento </li></ul></ul><ul><li>Revisão e Análise de Projetos </li></ul><ul><ul><li>Constante revisão das atividades </li></ul></ul><ul><ul><ul><li>Custo e prazo </li></ul></ul></ul><ul><ul><ul><li>Impactos no desempenho </li></ul></ul></ul>
  32. 37. <ul><li>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. </li></ul><ul><li>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 </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul>
  33. 38. <ul><li>BAUMOTTE, 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. </li></ul>

×