Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software e Gerencia de Projetos Engenharia de Software e Gerencia de Projetos 2Estratégias para mudança de software Os sistemas implantados no ambiente das empresas são desenvolvidos e implantados aos usuários após sua aprovação, mas tão logo isso ocorre já requerem alguma modificação para adequação a novas necessidades ou até requisitos mal definidos. A essas modificações, para sistemas com até 5 anos de uso denominamos manutenção, disciplina da engenharia de software utilizada para realizar ajustes nas definições ou corrigir erros. Aos sistemas com mais de 5 anos de uso, denominados Sistemas Legados, deve-se analisar as condições do sistema a nível de qualidade e valor de negócio para definir uma estratégia de atualização: manutenção, transformação, reengenharia ou até um novo sistema. A estratégia deve ser definida e aplicada para obter maior qualidade e aumentar o valor de negócios para a empresa. ● Conhecer os procedimentos necessários para realização de manutenção em sistemas e os princípios necessários para análise de sistemas legados. ● Estratégias de mudança; ● Manutenção de sistemas - Conceitos gerais; ● Transformação de arquitetura; ● Reengenharia de sistemas; ● Gerência de configuração. Introdução Objetivo Tópicos Abordados Engenharia de Software e Gerencia de Projetos 3Estratégias para mudança de software Estratégias de mudança Os sistemas após implantados começam a não atender as necessidades do usuário e com isso dispara procedimentos para adequação dos procedimentos do sistema com as necessidades. É desejável que o sistema tenha uma vida útil no mínimo entre 3 e 5 anos, ou seja, somente após esse prazo sejam necessárias manutenções, mas nem sempre isso acontece e é preciso definir uma estratégia de mudança, pois dependendo do tipo de alteração a melhor opção pode não ser uma manutenção e sim um novo sistema ou uma reengenharia. É preciso analisar o valor do negócio e a qualidade do sistema para definir a estratégia de mudança do sistema. Normalmente para sistemas novos (com até 5 anos de uso) a manutenção é indicada, mas para sistemas legados (acima de 5 anos de uso) a análise deve ser criteriosa antes da decisão. A análise do valor do negócio considera quatro quesitos em relação a qualidade e valor do negócio. A qualidade é analisada pelo nível de fatores utilizados no ambiente (idade do sistema, estabilidade do fornecedor, desempenho, custo de manutenção, interoperabilidade) e na aplicação (documentação, gerenciamento de configuração, habilidades pessoais da equipe, facilidade de compreensão), performance) oferecido e o valor de negócio está associado ao nível de atendimento às operações do sistema (requisitos e funcionalidade). A seguir uma análise dos quesitos: Engenharia de Software e Gerencia de Projetos 4Estratégias para mudança de software Manutenção de Sistemas - Conceitos Gerais São quatro estratégias possíveis para atualização dos sistemas de acordo com as necessidades: A manutenção de sistemas é uma disciplina da engenharia de software utilizada após a implantação dos sistemas. Manutenção é o processo de melhoria e/ou otimização do sistema. Normalmente é realizada por: ● Erros no levantamento dos requisitos, ou seja, defeitos e deficiências identificados pelo usuário no momento da utilização; ● Novas funcionalidades com o objetivo de melhorar a aplicabilidade e usabilidade do software; ● Novos requisitos; ● Para adaptar o software a ambiente operacional diferente; Identificada a necessidade de manutenção no sistema o processo de desenvolvimento da manutenção passará pelas disciplinas do ciclo de vida a fim de que se possa desenvolver as seguintes atividades: ● Identificação do problema; ● Análise da documentação ● Análise de impacto das modificações ● Definição da solução, ajustando a documentação; ● Identificação dos pontos afetados no sistema (programas, banco de dados); ● Projeto é modificado e revisado; ● Planejar a alteração (definir, alocar pessoas); ● Modificar ambiente (código, banco de dados): desenvolver, testar; ● Gerar uma nova versão do software; ● Aplicar Testes de regressão; ● Implantar; Algumas considerações devem ser citadas: ● O processo de manutenção repete o ciclo de vida de desenvolvimento. ● Dois terços do custo do tempo de vida do sistema de software envolve manutenções. ● A equipe ou organização de desenvolvimento deverá ter algum mecanismo para documentar e rastrear os defeitos e deficiências afim de minimizar a freqüência de manutenção. ● A manutenção de sistemas é uma prática que deve ser desenvolvida com muita cautela, para não causar defeitos maiores ou tornar o sistema uma colcha de retalhos, ficando mais difícil obterem a estabilidade do sistema. Engenharia de Software e Gerencia de Projetos 5Estratégias para mudança de software Transformação de Arquitetura e Reengenharia de Sistemas A transformação de arquitetura é o processo de substituição da arquitetura de software, influenciando a evolução do hardware e software. Alguns fatores podem influenciar essa estratégia: custo de hardware, expectativas quanto a interface com o usuário e acesso distribuído aos sistemas e outros fatores são analisados para tomada de decisão: importância para os negócios; idade do sistema; estrutura do sistema; políticas de suprimento de hardware. A reengenharia é o processo utilizado para tornar mais fácil a compreensão e alteração. Tem como objetivo melhorar a estrutura do sistema, criar ou atualizar a documentação, facilitar o entendimento do sistema e melhorar a motivação da equipe de manutenção. Pode envolver alterações estruturais, mas não possui novas funcionalidade e grandes mudanças de arquitetura. A reengenharia apresenta algumas vantagens como riscos e custos reduzidos e se justifica para eliminar atividades redundantes e aumentar eficiência, porque as mudanças são necessárias em uma parte do sistema e porque a plataforma de hw ou sw se torna obsoleta. A reegenharia desenvolve os seguintes processos: Engenharia de Software e Gerencia de Projetos 6Estratégias para mudança de software Gerência de Configuração RAZÕES QUE JUSTIFICAM A RE-ESTRUTURAÇÃO: ● degradação dos dados; ● limites inseridos no sistema e ● evolução da arquitetura. A execução das atividades da Gerência de configuração tem como objetivo a identificação e o controle das mudanças, de modo a assegurar um processo de implantação correto e bem comunicado às pessoas interessadas. É importante que armazenem, de forma segura os diferentes componentes e todas as versões de um produto de software. Assim, os engenheiros estarão providos dos objetos certos nos locais certos. Importante Importante Após a implantação dos sistemas é prática isolar os componentes disponibilizados aos usuários em um ambiente protegido para que não sejam efetivadas alterações sem a devida realização dos testes e homologação. Com isso surge a necessidade de se manter um controle e fácil identificação dos componentes que serão mantidos, evitando inconsistências entre as versões alteradas. Dependendo do tamanho da equipe e do sistema não é possível a gerência e controle total dos procedimentos de atualização. Sendo assim, criou-se o conceito de Gerência de Configuração. A gerência de configuração é a abordagem disciplinada para gerenciar a evolução do desenvolvimento de software, práticas de manutenção e os produtos de software, contribuindo para satisfazer restrições de qualidade e de cronograma. É uma atividade de apoio que pode ser executada ao longo de todo ciclo de vida do software, pois mudanças podem ocorrer a qualquer instante. Engenharia de Software e Gerencia de Projetos 7Estratégiaspara mudança de software Avaliação a Distância 1 - Relacione as colunas, indicando a definição das atividades do processo de reengenharia: Respostas - 1 - (C, E, B, D e A),, 2 - (A, B, B, B, A e A) A - Tradução de código fonte B - Engenharia reversa C - Melhoria de estrutura de programa D - Modularização de programa E - Re-estruturação de dados Alteração na forma de construção dos programas para facilitar leitura; Alteração nos dados para retirar redundâncias; Informações são extraídas do programa para compor documentação; Processo de agrupamento das partes do software. Programas são convertidos em uma nova linguagem de programação; 2 - Relacione as colunas, indicando o tipo de avaliação correspondente aos fatores relacionados: A - Avaliação do ambiente B - Avaliação de Aplicação Custos de Manutenção Documentação Facilidade de compreensão Habilidades pessoais Hardware tem alta taxa de falhas? Interoperabilidade Engenharia de Software e Gerencia de Projetos 8Estratégias para mudança de software 3 - Analise as sentenças abaixo e indique V para as sentenças VERDADEIRAS e F para as sentenças FALSAS. A gerência de configuração é implantada em uma empresa para definir a melhor estrutura de sistema para garantir o sucesso das operações. A gerência de configuração é usada na empresa para controlar a evolução de versões dos sistemas. A alteração em Sistemas Legados devem ser realizadas após uma avaliação criteriosa, pois são sistemas instalados na empresa com mais de 5 anos de uso. Um dos motivos que leva a manutenção de sistemas é o processo não corresponder às necessidades da empresa, pois com o tempo perdeu a adesão com a realidade. A reengenharia é utilizada somente para atualização dos equipamentos. Respostas - 3 - (F, V, V, V e F) Engenharia de Software e Gerencia de Projetos 9Estratégias para mudança de software Síntese Em resumo, pode-se destacar desta unidade: Possuem 4 estratégias de alteração de um sistema: manutenção, transformação, reengenharia e desenvolvimento de um novo sistema; A definição da estratégia de alteração de um sistema deve ser definida a partir da análise da representação do sistema para a empresa quanto a qualidade e o valor do negócio; A manutenção de sistemas é uma disciplina da engenharia de software utilizada para ajustar o sistema a uma nova necessidade ou corrigir erros; Sistemas legados são sistemas em uso há mais de 5 anos na empresa; A Gerência de Configuração tem como objetivo manter e controlar a versão dos componentes de sistema. ● PRESSMAN, R.G. Engenharia de Software. Rio de Janeiro: McGraw-Hill, 2002. 935p. ● SOMMERVILLE, I.. Software Engineering, 8 ed.-São Paulo: Pearson Addison - Wesley, 2007. Bibliografia Recomendada
Compartilhar