Prévia do material em texto
Manutenção e reengenharia de software Exercícios 1. Após o desenvolvimento de um projeto de software, ou seja, quando ele já está em produção, manutenções podem ocorrer, a fim de ampliar a sobrevida do software. Um dos tipos de manutenção é a adaptativa. Escolha a alternativa que defina o objetivo dessa manutenção. Você acertou! D. Modificar um programa devido à fórmula de cálculo de um imposto ter sido alterada pelo governo federal. Quando um software está em produção e ocorre algum erro que deveria ter sido detectado nos testes, ele é solucionado com uma manutenção corretiva. No entanto, pode ser que o usuário queira implementar novas funcionalidades. Esse tipo de manutenção é denominado evolutiva. Quando a alteração é causada por uma ação externa, ela é denominada adaptativa. Por fim, existe a manutenção preditiva ou preventiva, na qual ocorre a análise do programa visando a melhorar sua performance, manutenibilidade e confiabilidade. 2. Com relação à manutenção de software, ou seja, qualquer alteração no sistema após a sua implantação, vale dizer que: I. É o processo que ocorre logo após a fase de levantamento de requisitos e é classificada como corretiva ou evolutiva. II. É o processo que ocorre após a fase de implantação do software e pode ser adaptativa, corretiva, preventiva ou evolutiva. III. Quanto maior o esforço empregado para tornar o software manutenível, menor o custo da manutenção. IV. É um processo mais rápido e mais barato quando o profissional for o mesmo que participou do desenvolvimento. Assinale a alternativa que apresenta as afirmações corretas. Você acertou! D. II, III e IV. A manutenção é toda correção ou implementação que ocorre logo após o sistema ser colocado em produção. Ela pode ser do tipo adaptativa, corretiva, preventiva ou evolutiva. Quando o sistema é desenvolvido com a preocupação de deixá-lo manutenível, as futuras manutenções serão mais simples e, portanto, mais baratas, ainda mais se forem feitas pela mesma equipe que participou do desenvolvimento do software. 3. A reengenharia de software é uma das formas de se fazer manutenção nos softwares. Assinale verdadeiro (V) ou falso (V) para cada uma das afirmações a seguir: ( ) Reconstrução de algo do mundo real, com melhorias e aperfeiçoamentos em relação ao modelo inicial. ( ) A reengenharia é composta por processos de engenharia reversa, seguida de processos de engenharia progressiva. ( ) Reorganização e modificação de sistemas legados, produzindo um sistema novo com maior facilidade de manutenção. ( ) Em algumas situações, as empresas acabam optando por ficarem com os sistemas legados por medo de que a reengenharia não perceba as regras de negócio implícitas nos sistemas. ( ) A importância da reengenharia para os softwares já existentes é iniciar um novo produto e fazer com que todo o conteúdo dele seja desconsiderado. Assinale a alternativa que apresenta a sequência correta. Você acertou! A. V, V, V, V, F. A reengenharia de software é o processo que analisa softwares legados com o objetivo de melhorá-los e deixá-los mais simples para futuras manutenções. Em muitos casos, o processo é feito com o uso da engenharia reversa, que é responsável por identificar as funcionalidades e desvendar o funcionamento do sistema; e da engenharia progressiva, que é a sua reconstrução propriamente dita. Todo o conhecimento acumulado no software legado tem que ser aproveitado e consumido no novo sistema. Logo, estão incorretas as alternativas que mencionam que o conteúdo do software legado é desconsiderado. 4. Com base no escopo "venda de seguros para veículos leves", foi desenvolvido um projeto para venda de seguros para veículos. Os testes foram feitos com diversas marcas de veículos e o sistema entrou em produção. No primeiro dia, o lojista foi vender o seguro para o proprietário de um caminhão e o sistema não permitiu; isso foi reclamado junto ao SAC da empresa. Para liberar a venda do seguro para o caminhão, será necessária uma manutenção no sistema. Qual é o tipo dessa manutenção? Você acertou! A. Evolutiva. A manutenção evolutiva é aquela que ocorre quando é preciso implementar uma nova situação ou funcionalidade no sistema. A manutenção corretiva é aquela cujo requisito não foi atendido adequadamente. No caso apresentado, o escopo era “venda de seguros para veículos leves”, portanto não estava contemplada a venda de seguros para veículos pesados, ou seja, caminhões. Por isso, a manutenção foi classificada como evolutiva. Além disso, ela não poderia ser classificada como adaptativa, pois não tem a ver com algum fator externo, como mudança de ambiente ou infraestrutura. Também não poderia ser classificada como preventiva, pois não se trata de uma antecipação na busca por erros no sistema. A manutenção não poderia ser constante, pois não existe essa denominação dentro da manutenção de software. 5. Para fazer todo o processo de manutenção, é necessário o conhecimento das técnicas de manutenção de software. Relacione as técnicas com as descrições. Técnicas: I) Documentação. II) Versionamento. III) Status Reporting. IV) Codificação. Descrições: ( ) Documentação de todas as alterações efetuadas no sistema, com a possibilidade de recuperação das versões anteriores. ( ) Indentação, comentários e práticas que produzem legibilidade. ( ) Atualização das alterações efetuadas com o objetivo de transmitir conhecimento sobre o sistema. ( ) Alinhamento que exibe o estado atual do projeto e o que foi alterado em um período pela equipe de desenvolvimento. Assinale a alternativa que apresenta a sequência correta. Você acertou! C. II – IV – I – III As principais técnicas de manutenção de software são: Versionamento: é altamente recomendável, visto que com essa técnica é possível armazenar e recuperar versões do software. Documentação: é o processo de passagem de conhecimento sobre o sistema, o que contribui com o aumento do número de profissionais capacitados para trabalhar com o software, já que eles terão onde consultar informações. Status Reporting: é um documento em que os profissionais envolvidos na manutenção se alinham, registrando informações sobre quando e o que foi alterado no sistema durante a manutenção. Codificação: é uma prática que mantém o código limpo, com comentários e indentação, que é o deslocamento para a direita de todo o bloco de código que está dentro de uma estrutura de decisão ou repetição, melhorando o entendimento. Manutenção e reengenharia de software Exercícios