A vida de um software é composta por um conjunto de fases q...

Próximas questões
Com base no mesmo assunto
Q1760403 Engenharia de Software

A vida de um software é composta por um conjunto de fases que definem uma série de atividades. Desenvolvimento, operação e manutenção são alguns exemplos, etapas presentes na vida de um sistema e a literatura de engenharia de software costuma chamar este conjunto de ciclo de vida de software. A respeito dos diversos modelos de ciclo de vida de software, analise as afirmativas abaixo.


I. Cascata, evolutivo, incremental e espiral são exemplos de modelos de ciclo de vida de software.

II. O modelo cascata é um modelo tradicional onde as fases são realizadas de forma serial em um processo que flui sempre para frente. Uma das desvantagens deste modelo é a dificuldade de lidar com mudanças durante a execução do projeto.

III. O modelo incremental preconiza a divisão das entregas do projeto, característica que justifica seu nome. Tem como vantagem em relação ao modelo cascata o fato de ser mais tolerante a mudanças de requisito.


É correto o que se afirma  

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D - em I, II e III.

Vamos explorar cada uma das afirmativas para entender por que a alternativa D é a correta:

I. Cascata, evolutivo, incremental e espiral são exemplos de modelos de ciclo de vida de software.

Esta afirmativa está correta. Estes são todos modelos de ciclo de vida de software reconhecidos e utilizados na Engenharia de Software. Cada um possui características distintas que o tornam mais adequado para determinados tipos de projetos e contextos.

II. O modelo cascata é um modelo tradicional onde as fases são realizadas de forma serial em um processo que flui sempre para frente. Uma das desvantagens deste modelo é a dificuldade de lidar com mudanças durante a execução do projeto.

A afirmativa II também é verdadeira. O modelo em cascata é conhecido por suas fases sequenciais e linearidade, o que pode dificultar a adaptação a mudanças, uma vez que o retorno a fases anteriores não é previsto de maneira flexível. Este modelo pressupõe uma compreensão completa dos requisitos antes do início do desenvolvimento, o que nem sempre é possível na prática.

III. O modelo incremental preconiza a divisão das entregas do projeto, característica que justifica seu nome. Tem como vantagem em relação ao modelo cascata o fato de ser mais tolerante a mudanças de requisito.

A afirmativa III está correta porque o modelo incremental permite uma abordagem mais flexível ao desenvolvimento de software, com entregas em partes menores e mais gerenciáveis, permitindo ajustes ao longo do caminho com base no feedback das partes interessadas. Isso contrasta com o modelo em cascata, que é menos adaptável depois que as fases iniciais são concluídas.

Em resumo, a alternativa D é a correta pois as três afirmativas apresentam uma descrição acurada de modelos de ciclo de vida de software bem conhecidos na literatura e prática da Engenharia de Software. Cada modelo tem suas vantagens e implicações, e escolher o modelo certo depende das necessidades específicas do projeto e do contexto em que o software será desenvolvido.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

I. Existem diversos modelos de ciclo de vida de software, e esses modelos mencionados são exemplos comuns. O modelo cascata, o modelo evolutivo, o modelo incremental e o modelo em espiral são abordagens diferentes para o desenvolvimento de software, cada um com suas características específicas.

II. No modelo cascata, as fases ocorrem de forma sequencial, em que cada fase é concluída antes do início da próxima. Essa abordagem torna difícil acomodar mudanças nos requisitos ou na fase de implementação, já que voltar atrás nas fases anteriores pode ser complexo.

III. No modelo incremental, o projeto é dividido em incrementos ou partes menores, em que cada incremento representa uma entrega funcional do software. Essa abordagem permite uma maior flexibilidade e acomodação de mudanças, uma vez que os requisitos podem ser ajustados em cada incremento.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo