Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Rejuvenescimento de Software gerido pelo Project Office
 Bruno Lins Alves, Diego Calasans, Eduardo Dória Lima, Marcus Vini...
1.1.3Andrea Bobbio                                          O artigo [2] afirma que a linguagem mais adequada é a
O artigo...
2.5Reengenharia                                              A fase de “Escrita de testes” deverá ser realizada antes do
S...
iii.    Planejamento de Projetos – O planejamento é         O processo de rejuvenescimento através do Metex é
        cent...
Muitas dessas causas, como se pode notar, são quase que
                                                             compl...
rejuvenescimento. Mas como o custo de uma queda
                                                              planejada é ...
iv.    Sistemas que terão um maior tempo de vida.
                       Sem        Uma vez por   Uma vez a
              ...
http://www.pmimg.org.br/downloads/ProjectOffice.ppt>
Acesso em: 17 out. 2008.
[8] HUANG, Y.; KINTALA, C.; KOLETTIS, N.;
FU...
Upcoming SlideShare
Loading in …5
×

Manuscrito Rejuvenescimento De Software

1,227 views

Published on

Manuscrito Rejuvenescimento de Software gerido pelo Project Office

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Manuscrito Rejuvenescimento De Software

  1. 1. Rejuvenescimento de Software gerido pelo Project Office Bruno Lins Alves, Diego Calasans, Eduardo Dória Lima, Marcus Vinicius de Gois Oliveira Universidade Federal de Sergipe Cidade Universitária Prof. José Aloísio de Campos Av. Marechal Rondon S.N. São Cristóvão-SE CEP: 49.100-000 brunolinsalves, d.calasans, doriaeduardo, mvgois{@gmail.com} Abstract presença de modularizações. São boas práticas que In this paper, there is an explanation of what is the ajudam na manutenção do código e favorecem a practice of software rejuvenation. They both said all its aplicação do rejuvenescimento de software. features and subdivisions, and technologies that serve to Logo, tem-se que rejuvenescimento de software é um help it. Additionally, there is an introduction about the conjunto de técnicas que facilitam a manutenabilidade e Project Office. Then, it demonstrated a way to make the conseqüentemente a adaptação à novas tecnologias pela analysis of a system. Thus, there is need or not of maioria dos softwares, se vê nas próximas seções que rejuvenation. It was also proposed as an example, a case nem todos os softwares são adeptos a essa técnica. study that after made its analysis, the appropriate Verifica-se ainda na seção 1.1, alguns dos trabalhos conclusions were drawn. Finally it was explained how to relacionados ao tema que serviram como fonte de use the Project Office in the case study proposed. How pesquisa para elaboração desse trabalho. does it affect the organization as well as have studied the importance of implementation of rejuvenation. Na seção 2, descreve-se o que significa cada técnica, onde é utilizada e algumas tecnologias que utilizam a Categories and Subject Descriptors técnica do Rejuvenescimento, incluindo Project Office. D.2.10 [Software]: Software Engineering: Design – Na seção 3, é mostrada uma maneira de se fazer a análise Methodologies. de um sistema para que se verifique a necessidade ou não do rejuvenescimento e, é trazido um estudo de caso local General Terms onde é aplicado o rejuvenescimento e o Project Office. Design Na seção 4, são expostas as considerações finais e por Keywords fim, na seção 5, as referências utilizadas. Software, rejuvenation, methodology, Project Office 1.1Trabalhos Relacionados Nesta seção serão abordados os principais artigos Resumo referentes ao tema Rejuvenescimento que foram Neste trabalho, encontra-se uma explicação sobre o que estudados, os quais serviram de base para elaboração se trata a prática de rejuvenescimento de software. São deste trabalho. citadas tanto suas características e subdivisões, como também tecnologias que servem de auxilio a ela. 1.1.1Yennun Huang Adicionalmente, é feita uma introdução sobre o Project O artigo [8] foi o primeiro a aplicar o termo “software Office. Em seguida, é demonstrada uma maneira de fazer rejuvenation”. Nele é proposto um modelo de análise de a análise de um sistema. Dessa forma, se verifica a sistemas que analisa o impacto do rejuvenescimento de necessidade ou não do rejuvenescimento. Foi proposto determinado sistema para a organização. também, como exemplo, um estudo de caso onde depois Segundo ele, o envelhecimento de sistemas é um de feita a sua análise, foram tiradas as conclusões processo de duas etapas. Do estado estável, o sistema adequadas. Para finalizar foi explicado como usar o entra em um estado de possível falha. A partir daí duas Project Office no estudo de caso proposto. De que ações são possíveis: ou entrar em um estado de maneira ele afetará a organização estudada e também rejuvenescimento, ou entrar em um estado de queda como teria importância na aplicação de práticas de completa. Esse modelo é criticado por ser um modelo rejuvenescimento. baseado em caixa-preta e por não levar muito em conta a performance do sistema. Palavras-chave Software, rejuvenescimento, metodologia, Project Office 1.1.2Sachin Garg Em [10] é defendida a idéia de usar um intervalo de 1.INTRODUÇÃO rejuvenescimento periódico e fixo, não levando em conta Segundo [2], para melhorar o processo de o estado do sistema proposto por [8] durante esses desenvolvimento de software, atualmente, a tendência é rejuvenescimentos. Trabalha usando redes de Petri para fazer reaproveitamento de código. Reusabilidade é um analisar o comportamento do software. conceito que ganha cada vez mais espaço. Para isso precisa ter um software bem estruturado, que obedeça alguns padrões, uma arquitetura bem definida e a
  2. 2. 1.1.3Andrea Bobbio O artigo [2] afirma que a linguagem mais adequada é a O artigo [9] fala que é possível identificar a perfomance orientada a objetos. Por isso a necessidade de se aplicar o do sistema de acordo com observações e que o processo rejuvenescimento a estes tipos de sistemas. de degradação vem de uma seqüência sucessiva de falhas O rejuvenescimento surge também da necessidade de se e quebras. incluir novas funcionalidades em um sistema em que não Existe também um parâmetro de observação que é o que é simples tal inclusão. vai decidir se um sistema entrou ou não em um estado de De acordo com [1], há diversas estratégias para tal: queda. i. Redocumentação 1.1.4Nuno Alberto Pereira da Silva ii. ReestruturaçãoRefatoração Em [2], o autor aborda as necessidades dos softwares de iii. Engenharia reversa se adaptarem às constantes mudanças nas empresas, as vantagens de não precisar refazer um software do início, iv. Reengenharia descrevendo como fazer o rejuvenescimento de um sistema legado ou crítico. Toma como estudo de caso os 2.2Redocumentação sistemas financeiros, em particular, das empresas de Efetuar uma análise do código, de forma a produzir seguros. documentação explicativa do código. Segundo [13], redocumentação é uma técnica muito 1.1.5Eliete Marchioro importante quando se pensa em melhorar o custo de Em [6], a autora estuda causas e técnicas para superar o manutenção do software, pois segundo o mesmo, devido envelhecimento de software relacionado aos servidores a alta rotatividade de profissionais, tudo deve ser Web Apache. documentado para evitar que apenas uma pessoa entenda A mesma apresenta técnicas de rejuvenescimento e detalhadamente o sistema. explica como ocorre o envelhecimento, realizando dessa O autor afirma ainda que a redocumentação tem como forma um estudo de caso e descrevendo os resultados características básicas: obtidos. i. Ser baseado na engenharia reversa – A partir do 2.CONCEITOS E TECNOLOGIAS código obtido na engenharia reversa, construir a Nesta seção pretende-se esclarecer do que trata cada documentação; técnica utilizada para a elaboração deste trabalho, assim ii. Gerar documentação mínima necessária – Não se como, apresentar algumas tecnologias que utilizam a deve levar muito tempo para elaborar a metodologia proposta. documentação, deve-se ser o mais objetivo É descrito o Project Office e as técnicas utilizadas no possível; rejuvenescimento em detalhes, conforme Figura 1. iii. Buscar automatização quando possível – Deve-se utilizar de ferramentas que auxiliam na documentação de softwares a fim de agilizar o processo. 2.3ReestruturaçãoRefatoração Efetuar uma análise do código, de forma a reestruturar-lo para uma estrutura mais eficiente. Em [15], temos que a refatoração tem como objetivo de modificar um sistema de software para melhorar a estrutura interna do código sem alterar o seu comportamento externo. Com isso, pretende-se melhorar o entendimento do código. Existem também diversas ferramentas que servem e são úteis para automatizar esse processo. Figura1 - Relacionamentos no Ciclo de Desenvolvimento de Software (CHIKOFSKY e CROSS, 1990) 2.4Engenharia Reversa Efetuar uma análise do código, de forma a gerar o 2.1Rejuvenescimento de Software modelo e especificações que lhe deram origem. Segundo [1], o rejuvenescimento de software tem a Em [14], temos que engenharia reversa é processo finalidade de melhorar a qualidade do software reduzindo inverso da engenharia de software. Com esta técnica os custos com sua manutenção. Em [2], o autor afirma podemos, a partir de um produto, obter o código-fonte que os sistemas mais indicados para se utilizar essa que lhe deu origem. metodologia são os sistemas críticos e sistemas legados, pois são sistemas com confiabilidade muito alta e que O autor de [14] cita alguns exemplos de uso desta geralmente utilizam linguagens procedimentais que, pela técnica, tais como: cracks, pessoas conseguem quebrar a sua natureza, não suportam alguns princípios tidos como segurança dos softwares a fim de obter licenças de necessários para uma fácil evolutibilidade dos sistemas, utilização dos mesmos; Samba, software do sistema tais como: Linux que se utilizou desta técnica para conseguir fazer a comunicação entre o Linux e o sistema Windows. i. Grau de reutilização do código ii. Não duplicação do código iii. Testabilidade do código
  3. 3. 2.5Reengenharia A fase de “Escrita de testes” deverá ser realizada antes do Segundo [12], partindo-se do sistema existente (via inicio da codificação da nova funcionalidade. Nessa fase, código-fonte, interface ou ambiente), são abstraídas as devem ser criados os casos de teste, para descrever o suas funcionalidades e é construído o modelo de análise e funcionamento esperado por essa nova funcionalidade. o projeto do software. Os programadores do sistema usarão esses casos de teste para entender melhor os objetivos dessa funcionalidade. Caso não se tenha dados suficientes para se fazer a reengenharia, pode-se utilizar a engenharia reversa, e Depois que os casos de teste já foram criados, devemos então gerar novo modelo e novo código para auxiliar no começar a fase de “Codificação” do sistema. Essa fase irá processo. codificar a nova funcionalidade utilizando uma linguagem de programação. O programador deve-se 2.6Metodologia Proposta atentar que o uso de padrões para codificação além de Nesta seção será apresentada uma metodologia de melhorar a legibilidade do código, ele propõe soluções desenvolvimento que pode ser utilizada para o para alguns problemas comuns da codificação, como o rejuvenescimento de software. acesso à dados. A “Refatoração”, pode ser consideração uma sub-fase da “Codificação”, visto que seu objetivo é A metodologia proposta a seguir é baseada nos conceitos melhorar a estrutura do código. das metodologias ágeis, sendo assim, ela utiliza ciclos rápidos de iteração com pequenas alterações em cada Uma das fases mais importantes do ciclo de ciclo. Todos os releases do software deverão ser desenvolvimento de software é a “Execução de Testes”. validados através da execução de testes no mesmo. Sendo Pois é ela que garante que o sistema continua a funcionar assim, antes de começar a codificar uma nova de acordo com a sua lista de requisitos. Nessa funcionalidade do sistema, é necessário planejar os casos metodologia, a “Execução de Testes” assume uma de teste para testar todas as possibilidades de execução, importância ainda maior, pois como a refatoração é muito inclusive as situações de erros. utilizada, surge a necessidade da execução de testes que validem todo o sistema. Segundo [12], partindo-se do sistema existente (via código-fonte, interface ou ambiente), são abstraídas as O ciclo de desenvolvimento se encerra com o “Produto”. suas funcionalidades e são construídos o modelo de Nessa fase, será liberada uma nova versão do software análise e o projeto do software. que será chamada de produto. Os produtos não devem acumular um grande volume de alterações, devido à A metodologia proposta é composta por sete fases, representada pela Figura 2. facilidade de dar um rollback sempre que ocorra alguma coisa errada. 2.7Project Office Nos modelos tradicionais de gerencia de projetos, um gerente ficaria encarregado por todos ou apenas alguns projetos da empresa. Porém essa abordagem possui desvantagens que podem levar ao fracasso do projeto: i. O gerente de projeto fica sobrecarregado com as tarefas administrativas associadas ao gerenciamento do projeto; ii. A falta de padrões dificulta o controle e acompanhamento do projeto; iii. Não existe um banco de dados de lições aprendidas em projetos anteriores. Figura 2 – Metodologia Proposta Devido ao desejo de melhorar a taxa de sucesso dos A primeira fase, chamada de “Nova Funcionalidade”, projetos, as empresas estão adotando um novo modelo de inicia-se quando o cliente identifica a necessidade de gestão de projetos: o Project Office. criar, ou alterar uma funcionalidade já implementada pelo O Project Office, ou Escritório de Projetos, é uma área da sistema. empresa que tem uma visão de todos os projetos da Após a identificação de uma nova funcionalidade, é mesma. Dentro desse escritório de projetos, serão necessário identificar os requisitos dessa nova debatidas questões para melhorar o planejamento e funcionalidade. Essa é a principal tarefa da fase de condução dos projetos. O escritório também fornecerá “Recolher histórias dos clientes”. Para a identificação informações rápidas sobre a situação dos projetos, desses requisitos, podem ser usadas reuniões com o auxiliando a tomada de decisões cliente e a equipe de desenvolvimento, com o objetivo de Segundo o Gartner[3], existem cinco atividades criar uma lista com todos os requisitos envolvidos na desempenhadas pelo Project Office, que contribuem implementação dessa nova funcionalidade. bastante na gerencia de projetos. São elas: O objetivo da fase de “Desenho”, ou “Projeto”, é i. Padronização de uma Metodologia – Define uma representar a nova funcionalidade através de elementos ferramenta e métodos de controle e visuais, chamados de modelo. Para isso, pode-se usar acompanhamento de projetos; linguagens visuais de modelagem como a UML (Unified Modeling Language). Esses modelos deverão ser usados ii. Avaliação dos recursos de projetos – Todos os para analisar os impactos que o desenvolvimento dessa recursos dos projetos são analisados para a nova funcionalidade pode trazer ao sistema. análise do desempenho e prioridade dos projetos;
  4. 4. iii. Planejamento de Projetos – O planejamento é O processo de rejuvenescimento através do Metex é centralizado e coordenado. Devem-se utilizar as dividido em quatro fases: lições aprendidas nos projetos anteriores; i. Revisão de arquitetura – Discussão com o cliente iv. Gerenciamento de Projetos - Defini as melhores sobre a nova arquitetura; práticas de trabalho com o intuito de facilitar o ii. Conversão automática de código – A ferramenta gerenciamento; converte o código automaticamente dentre os v. Revisão e Análise de Projetos – Constante aceitos por ela; revisão das atividades, custo e prazos e impactos iii. Utilização de ferramentas avançadas para nos projetos. completar o código – Após a conversão pode Para combinar os conceitos de Project Office com o ocorrer de algum código não ter sido convertido, rejuvenescimento de software, seria necessário, nesse caso são utilizadas algumas ferramentas primeiramente, que a empresa adotasse o conceito de avançadas do Metex para completar a conversão; Project Office, criando uma área que possuísse uma visão iv. Teste de integração e Verificação – O Metex de todos os projetos da empresa e desempenhasse as também oferece ferramentas para verificação e cinco atividades citadas anteriormente. O segundo passo testes do código gerado; seria utilizar o rejuvenescimento de software como parte da metodologia de desenvolvimento na empresa. v. Teste de aceitação de usuário – Ao final do processo é utilizado um rastreador de bugs online 2.8Tecnologias e Ferramentas para correção de possíveis erros. Nesta seção serão apresentadas algumas ferramentas A Figura 3 representa a arquitetura-base para uma tecnológicas que utilizadas no rejuvenescimento de aplicação Web (arquitetura em três camadas): software automatizam e, conseqüentemente, agilizam o processo. A camada mais alta é a camada de interface, representada na figura pela coluna mais à esquerda na imagem. Em 2.8.1LegayJ seguida, temos a camada de lógica de negócio, A ferramenta LegacyJ tem como característica a pouca ou representada na figura pela coluna central. E por último nenhuma modificação no código. O software apenas existe a camada de acesso a dados, representada na figura permite a integração de aplicações escritas em COBOL pela coluna mais à direita. com tecnologias baseadas em J2EE. EJB é um exemplo Como citado anteriormente, essa arquitetura é a base para das tecnologias suportadas. uma aplicação Web, nada impede que a arquitetura O LegacyJ permite ainda, a edição de código fonte possua mais do que três camadas. Com o Metex, a COBOL na IDE (Integrated development environment) arquitetura cliente/servidor pode ser atualizada para uma Eclipse. arquitetura em N-camadas sem restrições. 2.8.2Micro Focus Net Express O Micro Focus Net Express é uma ferramenta auxiliar na prática do rejuvenescimento e serve para tornar aplicações COBOL em aplicações Web. O Net Express também torna aplicações COBOL compatível com servidores JAVA. Além de permitir o compartilhamento de dados entre aplicações através do uso de XML. 2.8.3Metex O Metex é um software que tem como principal objetivo recriar aplicações legadas, entregando um código de altíssima qualidade. Figura 3 – Arquitetura em três camadas Tal ferramenta possui a capacidade de transformar o Na Figura 4 temos a representação do processo de código fonte escrito em PowerBuilder, Oracle Forms, rejuvenescimento aplicado pelo Metex e aqui descrito. Forte, VB ou Centura em um código JAVA ou .NET. Segundo os criadores do programa, o que classifica o Metex como uma ferramenta de rejuvenescimento de software e não apenas como um migrador de código é o fato de que o Metex transforma aplicações legadas cliente/servidor em aplicações com arquiteturas modernas, escolhida pelo usuário, em JAVA ou .NET. A ferramenta apresenta ainda alguns serviços adicionais tais quais: i. Transformação; Figura 4 – Processo de rejuvenescimento no Metex ii. Reengenharia; A Figura 5 mostra um comparativo do rejuvenescimento iii. Documentação UML; de software aplicado manualmente (linha vermelha) iv. Migração de Banco de dados; versus rejuvenescimento aplicado com Metex (linha verde) versus uma simples tradução de código (linha v. Habilitação para Web. azul).
  5. 5. Muitas dessas causas, como se pode notar, são quase que completamente amenizadas hoje em dia, devido às linguagens de alto nível e as plataformas de desenvolvimento modernas. Um software bem feito, usando ferramentas modernas e adequadas tem sua curva de degradação muito mais longa que um software legado teve, por exemplo. Apesar de esse fato existir, o software nunca deixará de envelhecer, por menor que seja, o rejuvenescimento constante é recomendado na imensa maioria dos sistemas, como veremos abaixo. Às vezes se tem a duvida sobre porque é tão importante o rejuvenescimento. A resposta é que um sistema com o passar do tempo, como já foi dito, vai envelhecendo e Figura 5 – Comparação das formas de esse envelhecimento pode chegar a tal ponto de deixar-lo rejuvenescimento inativo, ou melhor, causando sua queda. Dessa forma, todos os seus serviços ficarão fora de disponibilidade. Como pode ver na Figura 5, o rejuvenescimento feito manualmente apresenta o maior custo durante um tempo O problema é que nenhum sistema vai ficar sempre ativo maior na fase de tradução de código (linha sólida), durante toda sua vida útil, pois não existem sistemas porém, o custo da manutenção cai significativamente. totalmente perfeitos. Por mínima que seja, uma hora a manutenção deve ser feita, portanto, é importante para a Já a migração de código feita através de tradutores se organização saber quando o sistema está perto de entrar mostra menos custosa na fase de tradução, porém o custo em um estado de queda ou não a fim que se evite esse da manutenção sobe drasticamente. estado de queda. Evitando que sua queda fará com que a Apesar de o custo da fase inicial, utilizando o software organização não arque com os prejuízos dessa perda, que Metex, ser superior ao custo inicial utilizando um com certeza, na imensa maioria dos casos, são bem tradutor, o custo da manutenção da aplicação é muito maiores do que o custo de uma queda programada, inferior, o que acaba por justificar o uso do Metex. necessária para fazer a manutenção. Podemos notar a partir disso, que o aumento do tempo de vida da 3.ANÁLISE DE APLICAÇÕES aplicação, junto com o seu monitoramento, a fim de O rejuvenescimento de software é um pratica interessante evitar quedas não planejadas, traz muita economia para para se propor a uma organização desenvolvedora de organização. sistemas, pois os sistemas degradam ao passar do tempo e a pratica de rejuvenescimento faz com que a sua vida útil 3.1Diferentes Abordagens seja prolongada o máximo de tempo possível. Existem duas diferentes abordagens a serem aplicadas nos sistemas a fim de aumentar sua vida util. A primeira é Todo software sofre um processo de envelhecimento, que a prevenção reativa, que é a mais comum. Nela toda na verdade se trata da degradação gradual da sua decisão é tomada somente quando ocorre algo errado no performance. Ao longo do tempo, esse processo de sistema. Assim que a aplicação entra em um estado de envelhecimento pode deixar esse software em um estado inutilidade, queda ou perto disso, é tomada uma decisão, de inutilidade, tirando assim a necessidade dele. que pode ser desde rollbacks, até reiniciar o sistema, Segundo [8] e [9], existem várias causas que podem ordenar arquivos, ou alguma manutenção mais seria nas provocar e agravar esse processo de envelhecimento, funcionalidades. A segunda abordagem é a prevenção algumas delas são: proativa e preventiva, que como o próprio nome já diz, nela não espera que aconteça algo para tomar uma i. Vazamento de memória – Quando um sistema faz decisão. A cada momento, a situação atual do sistema é uso da memória, mas não verifica o “lixo” que visualizada para que se tome uma decisão adequada de deixa nela após o uso. Isso vem sendo mais acordo com a necessidade, evitando que o sistema entre atenuado com as linguagens de alto nível, tipo em um estado de queda. É nesse tipo de prevenção que Java, que possui na sua maquina virtual um faz parte o rejuvenescimento de software. Garbage Collection que faz o gerenciamento da memória; 3.2Estados do Sistema ii. Uso progressivo de discos de armazenamento – Quando um sistema está com todas suas funcionalidades Esse é um problema já praticamente inexistente ao máximo, atendendo completamente às necessidades e hoje em dia, devido o barateamento das unidades sem riscos de quedas, ele se encontra em um estado de armazenamento, mas já foi um ponto crítico estável. Mas nem sempre esse estado permanece, causas dos sistemas, que ocupavam espaço adversas já ditas anteriormente fazem com que o software continuamente com logs ou caches por exemplo; entre em um estado de provável falha. Nesse ponto ele ainda está funcionando, mas se consegue notar que algo, iii. Uso de estruturas e arquivos desatualizados – por mínimo que seja, está errado. Esse erro que pode ser Quando um sistema usa bibliotecas que estão tanto provocado pela implementação do próprio sistema desatualizadas ou arquivos que não existem mais em si, como do ambiente em que ele está envolvido. suporte para manutenção, por exempl;. A partir do estado de provável falha, caso nada seja feito, iv. Erros de arredondamento numérico em excesso – só existe um caminho a seguir: que é o caminho da São erros que aparentam ser simples, mas simples queda. Agora o sistema já está indisponível, não existe erros de cálculos podem levar a aplicação a um mais nada a fazer que não seja parar tudo e fazer a estado de falha. manutenção, voltando a um estado estável novamente e iniciando o ciclo.
  6. 6. rejuvenescimento. Mas como o custo de uma queda planejada é muito menor que o custo de uma queda não planejada, então for definido como maior importância o custo e não o downtime, na grande maioria das vezes o rejuvenescimento freqüente vai ser adequado. 3.3Estudo de Caso Nesse trabalho, foi analisado como estudo de caso o Figura 6 – Software sem o rejuvenescimento Aplicativo CPD/RH, usado na Prefeitura Municipal de Aracaju e o setor de TIC como um todo. Esse sistema é De acordo com a Figura 6 pode-se ver o ciclo completo usado para gerar a folha de pagamento dos funcionários e do sistema sem o uso do rejuvenescimento, onde λ é a outras funcionalidades gerais da administração como: taxa de queda de um sistema. férias, décimo terceiro salário, adicionais, pensões, Quando um sistema entra em um estado de provável contra-cheques, relatórios e várias outras. falha, outro caminho pode ser feito. É ai que entra o rejuvenescimento. Pela Figura 7 pode-se ver a nova abordagem. Dessa vez um novo estado é criado, que é chamado estado de rejuvenescimento. É importante observar que tanto o estado de rejuvenescimento, quanto o estado de queda, o sistema estará fora de serviço. Mas a grande diferença é que no estado de rejuvenescimento, o sistema estará fora de uma maneira planejada. Figura 8 – Tela do sistema Aplicativo CPD/RH Ele foi feito por uma empresa terceirizada e desenvolvido em Visual Basic a partir de um contrato específico, onde teria garantia da manutenção do mesmo durante um período de 24 meses, fora os demais termos da Garantia Legal Tecnológica. Figura 7 – Software com o rejuvenescimento Existe também uma versão Web do mesmo sistema, O objetivo é tentar deixar o sistema no estado estável o chamado FolhaNET, onde acessa a mesma base de dados maior tempo possível. Segundo [8], algumas Oracle, mas não possui todas as funcionalidades da características são válidas observar: versão para desktop. O FolhaNET, no entanto, foi i. Quanto maior for a taxa de rejuvenescimento (r3), desenvolvido internamente pelos funcionários da menor será o tempo de queda do sistema prefeitura. (downtime); Após uma série de entrevistas, foi feita uma análise do ii. Quando menor for a taxa de rejuvenescimento sistema Aplicativo CPD/RH que resultou nas seguintes (r3), maior será o tempo de queda do sistema conclusões: (downtime); i. O tempo médio entre as ocorrências de falhas é iii. Quando o lambda (λ) for alto, o rejuvenescimento um mês; tem que ser mais freqüente; ii. Quando acontece uma falha inesperada, demora iv. Quando o lambda (λ) for alto, o aumento no em média 30 minutos para conseguir se rejuvenescimento causa um maior downtime. recuperar; A partir desse autômato mostrado na Figura 7, em [8] é iii. O tempo que o sistema sai do estado estável e mostrado como calcular as probabilidades de alcançar entra em um estado de provável falha são sete cada estado separadamente. dias; Definindo como Pf com a probabilidade de alcançar o iv. Leva 10 minutos para fazer o rejuvenescimento, estado de falha, Pr a probabilidade de alcançar o estado ou seja, se recuperar de um erro esperado; de rejuvenescimento e L o tempo total que deve ser v. O custo médio do sistema fora do ar de maneira analisado, temos o tempo de queda total (downtime) do imprevista é R$ 5000 por hora; sistema por: vi. O custo médio do rejuvenescimento é R$ 5 por Downtime = (Pf + Pr) * L hora. Também é possível calcular a partir do downtime, o custo Seguindo a mesma base de cálculos fornecida por [8], total da manutenção. Tendo como Cf o custo caso ocorra chegamos à seguinte tabela: uma queda não planejada e como Cr o custo do sistema em estado de rejuvenescimento (queda planejada), temos o custo total como: Custo = (Pf*Cf+Pr*Cr)*L É importante observar que podem existir casos em que o downtime do sistema usando rejuvenescimento é maior que o downtime dele caso não fosse feito o
  7. 7. iv. Sistemas que terão um maior tempo de vida. Sem Uma vez por Uma vez a rejuvenescimento mês cada duas E como desvantagem: semanas i. Alto custo de desenvolvimento, se levar em conta Downtime somente a parte financeira e não a qualidade do 4,86 5,68 7,03 (em horas) produto; Custo total R$ 24.310 R$ 18.944 R$ 10.072 ii. Tempo de inoperabilidade (downtime), do downtime estatisticamente maior (na maioria dos casos), se Tabela 1 – Análise do sistema Aplicativo CPD/RH comparado aos sistemas que não passam pelo rejuvenescimento; De acordo com a Tabela 1, podemos analisar que o tempo que o sistema ficará fora do ar sem rejuvenescimento vai iii. Não se pode utilizar o rejuvenescimento em todo ser menor que o tempo que ele ficaria se fosse feito uma tipo de sistema, pois uma análise profunda vez por mês, que por sua vez seria ainda menor, do que se anterior deve ser feita. fosse feito uma vez a cada duas semanas. Na análise do estudo de caso, viu-se a importância do Como já foi dito anteriormente, se fosse analisar se deve rejuvenescimento no sistema Aplicativo CPD/RH, mas ou não serem feitas praticas constantes de foi concluído que nem sempre um custo mais baixo de rejuvenescimento nesse sistema baseando-se somente no manutenção significa um menor tempo de downtime. tempo downtime, vê-se facilmente que seria desvantagem Notou-se também a clara importância de uma política de o rejuvenescimento. Porém se for analisar o custo que o gerenciamento de projetos no setor de TIC da Prefeitura sistema teria, pois a queda imprevista é muito mais cara Municipal de Aracaju e a conclusão foi que o Project do que uma queda prevista (rejuvenescer), vê-se que o Office, se aplicado, poderia atender a essa falha no setor. rejuvenescimento tem mais vantagem. Também políticas de rejuvenescimento aplicadas a esses A partir disso vem o questionamento se prioriza o custo sistemas reduziriam o custo e conseqüentemente ou o downtime. A resposta disso é que a grande maioria aumentariam o seu tempo de vida. das organizações olha o custo como o fator mais 5.REFERÊNCIAS importante. Logo, no exemplo do estudo de caso proposto, concluímos que seria muito bom para a [1] Universidade Aberta. Rejuvenescimento de prefeitura se fossem aplicadas praticas de Software. 2007. Disponível em: rejuvenescimento no sistema Aplicativo CPD/RH. <http://www.moodle.univ- ab.pt/moodle/mod/glossary/print.php?id=2243&mode=& 3.3.1Aplicação do Project Office hook=ALL&sortkey=&sortorder=&offset=-10>. Acesso Analisando também um pouco mais do sistema em: 17 out. 2008. FolhaNET na situação em que se encontra o setor de TIC [2] SILVA, Nuno Alberto Pereira da. Rejuvenescimento na prefeitura, vimos que houve uma grande falha de de Aplicações: Uma experiência com software de administração e gerenciamento de projetos. seguros. Universidade do Minho, 2005. Disponível em: < O FolhaNET foi desenvolvido com o objetivo de aliviar http://repositorium.sdum.uminho.pt/handle/1822/5635 >. um pouco a demanda pelo Aplicativo CPD/RH, criando Acesso em: 17 out. 2008 assim funcionalidades repetidas, que só seriam acessadas [3] LABUTO, Gianncarla Cutini Barcellos. A gestão de pela Web. Mas a falta de uma política de gerenciamento Projetos e o Project Office. 2008. Disponível em: de projetos adequada, fez com que o sistema nunca <http://www.ietec.com.br/site/techoje/categoria/detalhe_a alcançasse um estado estável dentro da prefeitura. rtigo/103>. Acesso em: 17 out. 2008. Hoje em dia, tanto o Aplicativo CPD/RH, como o [4] VAIDYANATHAN, Kalyanaraman; TRIVEDI , FolhaNET possuem código difícil de manutenção, graves Kishor S. A Comprehensive Model for Software problemas nas suas funcionalidades e nem um nem outro Rejuvenation. 2005. Disponível em: < atende completamente às necessidades plenas propostas. http://ieeexplore.ieee.org/iel5/8858/31216/01453531.pdf Recomenda-se fortemente o inicio da prática do Project > Acesso em: 17 out. 2008. Office na prefeitura como uma forma de gerenciar esses [5] AVRITZER Alberto ;BONDI Andre; GROTTKE projetos. Isso poderá ser feito utilizando algumas das Michael ; TRIVEDI Kishor S. ; WEYUKER Elaine J. ferramentas propostas anteriormente (seção 3.8) e a Performance Assurance via Software Rejuvenation: equipe que ficará responsável por isso poderá administrar Monitoring, Statistics and Algorithms. 2006. o ciclo de rejuvenescimento desses softwares, sem nunca Disponível em: < eliminar a possibilidade do desenvolvimento de um novo http://ieeexplore.ieee.org/iel5/10881/34248/01633532.pdf sistema que resolva todos esses problemas. > Acesso em: 17 out. 2008. 4.CONSIDERAÇÕES FINAIS [6] MARCHIORO, Eliete. Um Estudo Sobre Após análise da prática de rejuvenescimento, tem-se Rejuvenescimento de Software em Servidores Web como principais vantagens encontradas: Apache. 2003. Disponível em: <http://www1.capes.gov.br/estudos/dados/2003/4100101 i. Sistemas sempre atuais, de acordo com as novas 0/002/2003_002_41001010025P2_Teses.pdf >. Acesso tecnologias; em: 17 out. 2008. ii. Sistemas com melhor manutenabilidade, baixo [7] BAUMOTTE, Ana Cláudia. Project Office: como custo de manutenção; vender essa idéia na sua organização. 2008. Disponível iii. Sistemas capazes de se adaptar facilmente à em: < novas tecnologias;
  8. 8. http://www.pmimg.org.br/downloads/ProjectOffice.ppt> Acesso em: 17 out. 2008. [8] HUANG, Y.; KINTALA, C.; KOLETTIS, N.; FULTON, N.D. Software rejuvenation: analysis, module and applications, in: Proceedings of the 25th International Symposium on Fault-Tolerance Computing (FTCS-25), Pasadena, CA, USA, June 1995. [9] BOBBIO, A.; SERENO, M.; ANGLANO C., 2001. Fine grained software degradation models for optimal rejuvenation policies. Performance Evaluation [10] GARG, S.; PFENING, A.; PULIAFITO, A. ; TELEK, M.; TRIVEDI, K.S. Modelling and analysis of load and time-dependent software rejuvenation policies, in: Proceedings of the Third International Workshop on Performability Modeling of Computer and Communication Systems (PMCCS3), Bloomingdale, IL, September 1996, pp. 35–39. [11] GARG, S.; PFENING, A.; PULIAFITO, A. ; TELEK, M.; TRIVEDI, K.S. Analysis of software rejuvenation using Markov regenerative stochastic Petri net, in: Proceedings of the Sixth International Symposium on Software Reliability Engineering (ISSRE95), Toulouse, France, October 1995. [12] PIEKARSKI, Ana ElisaTozetto ; QUINÁIA, Marcos Antonio. Reengenharia de software: o que, por quê e como. 2000. Disponível em: < http://www.unicentro.br/editora/revistas/recen/v1n2/Reen genharia.pdf>. Acesso em: 29 nov. 2008. [13] ANQUETIL, Nicolas; OLIVEIRA, Káthia Marçal de. Processo de Redocumentação: Uma Necessidade. 2002. Disponível em: < http://www.ucb.br/prg/professores/anquetil/Publicacoes/s bqs02.doc>. Acesso em: 29 Mai. 2008. [14] WIKIPEDIA. Engenharia reversa de software. 2008. Disponível em: <http://pt.wikipedia.org/wiki/Engenharia_reversa>. Acesso em: 29 Mai. 2008 [15] WIKIPEDIA. Refatoração. 2008. Disponível em: <http://pt.wikipedia.org/wiki/Refatora%C3%A7%C3%A 3o>. Acesso em: 29 nov. 2008. [16] METEX. 2008. Disponível em: < http://www.metex.com>. Acesso em: 29 nov. 2008. [17] LEGACYJ. 2008. Disponível em: <http://www.legacyj.com>. Acesso em: 29 nov. 2008. [18] NETEXPRESS. 2008. Disponível em: < http://www.microfocus.com/products/netexpress>. Acesso em: 29 nov. 2008.

×