Prévia do material em texto
Engenharia de Software para Sistemas Autoadaptáveis 1. Qual das seguintes características é essencial para um sistema autoadaptável? a) Estabilidade de software b) Capacidade de monitoramento c) Complexidade elevada d) Uso exclusivo de algoritmos determinísticos Resposta correta: b) Capacidade de monitoramento Explicação: Um sistema autoadaptável deve ter a capacidade de monitorar seu desempenho e condições externas para ajustar seu comportamento em tempo real. Isso permite que o sistema se adapte a mudanças nas condições operacionais ou nos requisitos do usuário, otimizando a eficácia e a eficiência. A estabilidade de software é importante, mas não é suficiente sem a capacidade de resposta ao ambiente em mudança. Sistemas complexos podem dificultar a adaptabilidade, enquanto algoritmos determinísticos não se encaixam bem na necessidade de flexibilidade. 2. Qual das seguintes abordagens é frequentemente usada em sistemas autoadaptáveis para garantir que o software se ajuste às mudanças de requisitos? a) Programação orientada a objetos b) Testes manuais extensivos c) Modelagem adaptativa d) Desenvolvimento ágil tradicional Resposta correta: c) Modelagem adaptativa Explicação: A modelagem adaptativa permite que o sistema ajuste suas estruturas e comportamentos com base em mudanças dinâmicas de requisitos e contextos. Essa abordagem é crucial para a criação de software que pode se adaptar sem a necessidade de grandes reimplementações. Embora a programação orientada a objetos e o desenvolvimento ágil possam contribuir para a flexibilidade, a modelagem adaptativa é específica para a adaptação em tempo real a novas condições. 3. Em um sistema autoadaptável, qual é o papel do feedback contínuo? a) Reduzir o tempo de desenvolvimento b) Aumentar a complexidade do sistema c) Informar o processo de adaptação d) Diminuir a necessidade de manutenção af://n4753 Resposta correta: c) Informar o processo de adaptação Explicação: O feedback contínuo é crucial em sistemas autoadaptáveis, pois fornece informações sobre o desempenho e as condições do sistema. Essa informação é usada para orientar decisões sobre como adaptar o sistema de forma eficaz, permitindo ajustes que melhoram a eficiência e a eficácia em resposta a mudanças nas condições. Embora o feedback possa ajudar na manutenção, seu papel principal é informar e facilitar adaptações. 4. Qual das seguintes técnicas é frequentemente utilizada em sistemas autoadaptáveis para otimizar o desempenho? a) Refatoração de código b) Aprendizado de máquina c) Controle de versão d) Documentação extensiva Resposta correta: b) Aprendizado de máquina Explicação: O aprendizado de máquina é uma técnica poderosa em sistemas autoadaptáveis, permitindo que o software aprenda a partir de dados e experiências passadas para melhorar seu desempenho e adaptar-se a novas situações. Essa técnica possibilita que os sistemas não apenas reajam a mudanças, mas também antecipem necessidades futuras e se ajustem proativamente. Embora a refatoração de código possa ajudar na manutenção, ela não é uma técnica adaptativa. O controle de versão e a documentação são importantes, mas não afetam diretamente a adaptabilidade em tempo real. 5. Em que situação um sistema autoadaptável é mais eficaz? a) Quando os requisitos são fixos e bem definidos b) Em ambientes de alta variabilidade e incerteza c) Quando o foco é na documentação rigorosa d) Em sistemas com poucos usuários Resposta correta: b) Em ambientes de alta variabilidade e incerteza Explicação: Sistemas autoadaptáveis são projetados para brilhar em ambientes onde as condições mudam rapidamente e os requisitos não são estáveis. Em tais cenários, a capacidade de se adaptar em tempo real é fundamental para o sucesso. Sistemas com requisitos fixos ou baixa variabilidade não necessitam da mesma flexibilidade, tornando-os menos dependentes de técnicas de adaptação. A documentação é importante, mas não é um fator determinante na eficácia de um sistema autoadaptável.