A Engenharia de Software Evolução de Software
Por: Lucas Eduardo Sampaio • 3/11/2021 • Trabalho acadêmico • 1.038 Palavras (5 Páginas) • 1.034 Visualizações
TRABALHO SOBRE EVOLUÇÃO DE SOFTWARE
- Explique por que um sistema de software usado em um ambiente real deve mudar ou tornar-se progressivamente menos útil.
Ele deve mudar, pois implementar um software é uma atividade contínua. Mesmo após a entrega oficial ao cliente, o desenvolvimento continua, principalmente no aperfeiçoamento e correção de funcionalidades, o que cria um ciclo recursivo, onde ao implantar novas funcionalidades ou corrigi-las, o ambiente de operação muda para se adaptar, gerando novas necessidades.
- Explique a base lógica das leis de Lehman. Em que circunstâncias essas leis podem ser quebradas?
A base das leis de Lehman é o estudo das mudanças de um software e o feedback delas, uma vez que os requisitos do software estão em constante mudança na maioria dos softwares, devido às novas necessidades que vem a surgir. Podem ser quebradas por questões comerciais, como marketing, por exemplo, onde, aconteceria a obrigatoriedade de alteração de várias funcionalidades de um sistema em um único release, o que acarretaria posteriormente na necessidade de novos releases para correção dos erros que passariam a existir por alterar tais funcionalidades de forma não cadencial.
- A partir da Figura - O processo de evolução de software (Slide 18 -parte 1), você pode ver que a análise de impacto é um subprocesso importante no processo de evolução de software. Usando um diagrama, sugira quais atividades podem estar envolvidas na análise do impacto de mudanças.
Reanálise dos requisitos, reanálise do código e linguagem de programação, planejamento de implementação, tempo de desenvolvimento e tempo de implementação.
- Como gerente de projeto de software em uma empresa especializada no desenvolvimento de software para a indústria de petróleo offshore, você recebeu a tarefa de descobrir os fatores que afetam a manutenibilidade dos sistemas desenvolvidos por sua empresa. Sugira como se pode configurar um programa para analisar o processo de manutenção e descubra as métricas de manutenibilidade adequadas para sua empresa.
Primeiramente, seria necessário analisar as interfaces do sistema, porque, uma vez que quanto maiores e mais complexas elas forem, maiores serão as chances de novos requisitos surgirem. Segundo, analisar os requisitos que podem ser mais voláteis e suscetíveis a mudanças. Também seria necessário analisar os processos de negócios, pois quanto mais complexos e numerosos, maior demanda por mudanças o software necessitaria. Quanto às métricas, elas seriam o número de solicitações de manutenção corretiva; o tempo para análise de impacto; o tempo para implantar uma mudança/correção e o número de solicitações de mudança pendentes.
- Descreva brevemente os três principais tipos de manutenção de software. Por que às vezes é difícil distingui-los?
- Correção de defeitos, onde quando são defeitos de software conhecidos como bugs, são mais fáceis e baratos de resolver. Já os erros de projeto são mais complicados porque pode ser que haja necessidade de reescrever uma funcionalidade por completo, o que demanda mais tempo e dinheiro. Já os erros de projeto são os mais caros e extensos, pois demandam uma reanálise completa e extensa do sistema.
- Adaptação ambiental, onde acontece quando o hardware ou sistema operacional do sistema sofre uma mudança e necessita que todo o sistema se readapte a ele;
- Adição de funcionalidade, que ocorre quando os requisitos do sistema mudam e demandam o desenvolvimento de uma funcionalidade não prevista na análise dos requisitos, o que acontece com mais frequência em relação aos outros tipos de manutenção supracitadas.
- Quais são os principais fatores que afetam os custos de reengenharia de sistema?
Tradução do código fonte, engenharia reversa, melhoria estrutural do programa, modularização do programa e reengenharia de dados.
- Em que circunstâncias uma organização pode decidir descartar um sistema, mesmo que a avaliação de sistema sugira que ele é de alta qualidade e de alto valor de negócio?
Quando o sistema não consegue mais contribuir com a demanda dos negócios, consequência de sucessivas mudança dos requisitos ao longo do tempo, que fizeram com que esse sistema não conseguisse mais suprir a atual necessidade.
- Quais são as opções estratégicas para a evolução do sistema legado? Quando você substituiria a totalidade ou parte de um sistema, em vez de continuar a manutenção do software?
Descartar completamente o sistema; deixar o sistema inalterado e continuar com a manutenção; reestruturar o sistema para facilitar a manutenção ou substituir parte ou o sistema em sua totalidade por um novo. A substituição total de um sistema fica viável quando o hardware já não consegue sustentar as funcionalidades do sistema ou quando os sistemas de prateleira permitem o desenvolvimento de um novo sistema com um custo razoável.
...