QUESTÃO 1
O trabalho feito durante o desenvolvimento para tornar a compreensão e a mudança no software mais fáceis provavelmente reduzira os custos de evolução. Boas técnicas de engenharia de software, como descrição precisa, uso de desenvolvimento orientado a objetos e gerenciamento de configuração, contribuem para a redução dos custos de manutenção.
SOMMERVILLE, I. Engenharia de Software. 9.ed. - São Paulo: Pearson Prentice Hall, 2011.
Diante do que foi exposto no texto acima, cite e explique as razões para que porque é mais caro adicionar funcionalidade depois que um software está em uso do que implementar a mesma funcionalidade durante o seu desenvolvimento.
Soluções para a tarefa
É mais cara a adição de funcionalidades após o software que está em utilização realizar a implementação da mesma funcionalidade no decorrer de seu desenvolvimento, pois tal processo caso seja feito com o programa aberto pode resultar em diversos problemas.
Entre os problemas que podem ocorrer, é possível citar alguns como um reset ou um bug. Dessa forma, tal processo seria mais fácil de ser realizado como o programa já estiver pronto.
Bons estudos!
Resposta:
Adicionar uma nova funcionalidade após a liberação é caro porque é necessário tempo para aprender o sistema e analisar o impacto das alterações propostas. É mais caro adicionar funcionalidade depois que um software está em uso do que implementar a mesma funcionalidade durante o seu desenvolvimento e as razões para isso são:
1. Estabilidade da equipe: após o sistema ter sido liberado para uso do cliente, muitas vezes a equipe de desenvolvimento é desmobilizada e remanejada para novos projetos. E muitas vezes, a equipe ou as pessoas
responsáveis pela manutenção deste sistema não entendem o sistema ou não entendem a regra de negócios do cliente.
2. Más práticas de desenvolvimento: em muitos casos, o contrato para a manutenção de um sistema é separado do contrato de desenvolvimento do sistema. E pode ocorrer do contrato de manutenção ser dado a uma empresa diferente da do desenvolvedor do sistema original.
3. Qualificações de pessoal: em geral, a equipe de manutenção é inexperiente e não domina a regra de negócio da aplicação. Segundo Sommerville (2011, p. 172), “a manutenção tem uma imagem pobre entre os engenheiros de software. É vista como um processo menos qualificado do que o desenvolvimento de sistema e é muitas vezes atribuída ao pessoal mais jovem”. Em alguns casos, os sistemas antigos podem ter sido desenvolvidos em linguagens obsoletas de programação e a equipe de manutenção pode não ter muita experiência nessas linguagens.
4. Idade do programa e estrutura: muitas vezes, o sistema sofre muitas alterações e com isso a sua estrutura tende a degradar e envelhecer, tornando-se cada vez mais difíceis de serem entendidos e alterados. Em alguns casos, os sistemas foram desenvolvidos sem técnicas modernas de engenharia de software, as documentações podem ter se perdido ou ser inconsistentes. E muitas vezes, não são submetidos a um gerenciamento de configuração, e com isso, acaba desperdiçando muito tempo para encontrar as versões
corretas dos componentes do sistema para a alteração.
Explicação: