38
Grupo: Eduardo Dória Bruno Lins Marcus Vinicius Diego Calasans

Rejuvenescimento Software

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Rejuvenescimento Software

Grupo: Eduardo DóriaBruno LinsMarcus ViniciusDiego Calasans

Page 2: Rejuvenescimento Software

O rejuvenescimento de software tem a finalidade de melhorar a qualidade do software reduzindo os custos com sua manutenção.

Page 3: Rejuvenescimento Software

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

Page 4: Rejuvenescimento Software

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.

Page 5: Rejuvenescimento Software
Page 6: Rejuvenescimento Software

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?

Page 7: Rejuvenescimento Software

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

Page 8: Rejuvenescimento Software

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

Page 9: Rejuvenescimento Software

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

Page 10: Rejuvenescimento Software

• 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

Page 11: Rejuvenescimento Software
Page 12: Rejuvenescimento Software

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

Page 13: Rejuvenescimento Software

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.

Page 14: Rejuvenescimento Software

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.

Page 15: Rejuvenescimento Software

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

Page 16: Rejuvenescimento Software

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

Page 17: Rejuvenescimento Software

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

Page 18: Rejuvenescimento Software

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

Page 19: Rejuvenescimento Software

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

Page 20: Rejuvenescimento Software

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

Page 21: Rejuvenescimento Software
Page 22: Rejuvenescimento Software

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

Page 23: Rejuvenescimento Software

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

Page 24: Rejuvenescimento Software
Page 25: Rejuvenescimento Software

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)

Page 26: Rejuvenescimento Software

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

Page 27: Rejuvenescimento Software
Page 28: Rejuvenescimento Software

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

Page 29: Rejuvenescimento Software

Refazer sistemas críticos ou complexos Maior facilidade na manutenção Reaproveitamento de funcionalidades

confiáveis

• Tempo de desenvolvimento maior

Page 30: Rejuvenescimento Software

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.

Page 31: Rejuvenescimento Software

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.

Page 32: Rejuvenescimento Software

É 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

Page 33: Rejuvenescimento Software

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

Page 34: Rejuvenescimento Software

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.

Page 35: Rejuvenescimento Software

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.

Page 36: Rejuvenescimento Software

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

Page 37: Rejuvenescimento Software

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.

Page 38: Rejuvenescimento Software

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.