Pular para o conteúdo principal

Questão de Engenharia de Software — Processos de Software — COPEVE-UFAL 2022

Engenharia de SoftwareProcessos de Software
Código
qq709614
Banca
COPEVE-UFAL
Órgão
TCE-AL
Ano
2022
Nível
Médio
Cargo
Agente de Controle Externo - Ciências da Computação
Um cliente deseja contratar uma empresa para desenvolver um sistema de informação. Porém, durante a negociação ele deixa claro que não conhece, ao menos a priori, todos os requisitos do software e afirmou ainda que tais requisitos devem ser apresentados incrementalmente, à medida que partes do software forem sendo entregues, podendo até haver, no decorrer do desenvolvimento, eventuais ajustes nos requisitos já implementados. Além disso, o cliente relatou que, dada a criticidade do seu negócio, o desenvolvimento deve considerar uma preocupação sistemática com a execução de testes, ainda que, para isso, seja necessário aumentar o preço cobrado para o desenvolvimento.Diante da situação apresentada, é correto afirmar:
  1. Anesse cenário, seria fundamental a adoção de um processo de desenvolvimento ágil, como por exemplo o XP, uma vez que processos tradicionais, tais como o processo unificado, não são adequados ao desenvolvimento incremental.
  2. Bapesar da sua rigidez na documentação do software, uma das principais limitações dos processos tradicionais, tais como o processo unificado, é o fato de não considerarem os testes em seu fluxo de trabalho. Tal limitação foi inclusive criticada no Manifesto Ágil.
  3. Co processo unificado poderia ser utilizado, uma vez que possui uma fase de testes e assim como os processos ágeis, também permite o desenvolvimento iterativo e incremental, favorecendo a aplicação de mudanças tardias nos artefatos que já foram desenvolvidos em iterações anteriores.
  4. Duma das características principais dos processos ágeis é a redução do esforço para documentação do software. Por essa razão, tais processos negligenciam o projeto arquitetural do software, não sendo recomendados para o desenvolvimento de softwares que possuem requisitos não funcionais.
  5. Eprocessos ágeis poderiam ser utilizados, desde que não seja necessário utilizar modelos da UML, uma vez que a documentação do sistema utilizando UML fere um dos princípios do Manifesto Ágil. Por essa razão, deve-se optar por processos ágeis que utilizam outras notações para documentar os artefatos do desenvolvimento.
Revelar gabarito e comentário

GabaritoC — o processo unificado poderia ser utilizado, uma vez que possui uma fase de testes e assim como os processos ágeis, também permite o desenvolvimento iterativo e incremental, favorecendo a aplicação de mudanças tardias nos artefatos que já foram desenvolvidos em iterações anteriores.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Processos de software: Processo Unificado e desenvolvimento ágil

Gabarito: letra C. O Processo Unificado (RUP) é um processo iterativo e incremental que inclui uma fase de testes, sendo adequado para cenários onde os requisitos são apresentados incrementalmente e há preocupação com testes sistemáticos. A alternativa C expressa corretamente essa compatibilidade.

A questão descreve um cliente que não conhece todos os requisitos a priori, deseja entregas incrementais, aceita mudanças tardias e prioriza testes. Tanto processos ágeis quanto o Processo Unificado podem atender a esses requisitos, pois ambos são iterativos e incrementais. No entanto, a banca cobra o conhecimento de que o Processo Unificado também possui essas características, ao contrário do que algumas alternativas sugerem.

Característica

Processo Unificado (RUP)

Processos Ágeis (ex.: XP)

Cenário do Cliente

Conhecimento prévio dos requisitos

Requisitos são refinados iterativamente; não exige total conhecimento a priori

Requisitos emergem ao longo do projeto; cliente define incrementalmente

Cliente não conhece todos os requisitos a priori

Forma de desenvolvimento

Iterativo e incremental (fases: Concepção, Elaboração, Construção, Transição)

Iterativo e incremental (sprints/iterações curtas)

Requisitos apresentados incrementalmente com entregas parciais

Aceitação de mudanças tardias

Permite ajustes em iterações posteriores, embora com custo crescente

Alta adaptabilidade a mudanças, mesmo em requisitos já implementados

Eventuais ajustes nos requisitos já implementados

Preocupação com testes

Disciplina de teste bem definida em cada iteração; fase de testes explícita

Testes são contínuos e sistemáticos (ex.: TDD no XP)

Preocupação sistemática com execução de testes

Documentação

Ênfase em documentação formal (modelos UML, artefatos)

Documentação enxuta, priorizando software funcionando

Não especificado, mas compatível com ambos

Alternativa A — ❌ Incorreta

Afirma que processos tradicionais, como o processo unificado, não são adequados ao desenvolvimento incremental. Isso é falso. O Processo Unificado (RUP) é explicitamente iterativo e incremental, com fases que evoluem por meio de iterações. Ele permite que requisitos sejam refinados ao longo do tempo e que incrementos sejam entregues progressivamente.

Alternativa B — ❌ Incorreta

Diz que processos tradicionais não consideram testes em seu fluxo de trabalho, e que o Manifesto Ágil criticou essa limitação. Errado. O Processo Unificado possui uma disciplina de teste bem definida, com atividades planejadas em cada iteração. O Manifesto Ágil não critica a ausência de testes em processos tradicionais; ele valoriza a entrega frequente e a resposta a mudanças, mas não nega a existência de testes em métodos como o RUP.

Alternativa C — ✅ Correta ⟵ GABARITO

Afirma que o processo unificado poderia ser utilizado, pois possui fase de testes e permite desenvolvimento iterativo e incremental, favorecendo mudanças tardias. Correto. O RUP é um processo iterativo e incremental, com fases de Concepção, Elaboração, Construção e Transição, sendo a Construção focada em design, implementação e teste. As iterações permitem incorporar mudanças nos requisitos ao longo do projeto, mesmo em iterações posteriores. Portanto, atende ao cenário descrito.

Alternativa D — ❌ Incorreta

Afirma que processos ágeis negligenciam o projeto arquitetural e não são recomendados para softwares com requisitos não funcionais. Falso. Métodos ágeis como XP possuem práticas como design simples, refatoração e integração contínua, que cuidam da arquitetura. Além disso, requisitos não funcionais são tratados por meio de histórias de usuário e critérios de aceitação. Não há negligência generalizada.

Alternativa E — ❌ Incorreta

Afirma que a UML fere os princípios do Manifesto Ágil e que, por isso, deve-se optar por notações alternativas. Incorreto. O Manifesto Ágil valoriza “software funcionando mais que documentação abrangente”, mas não proíbe o uso de UML. Muitas equipes ágeis utilizam diagramas UML para comunicação e modelagem, desde que não se tornem burocracia desnecessária. Portanto, não há incompatibilidade.

PEGA ESSA DICA!

Ao estudar processos de software, foque nas características essenciais de cada modelo: iteratividade, incrementalidade, tratamento de mudanças e atividades de teste. O Processo Unificado é frequentemente mal compreendido como um modelo cascata, mas ele é essencialmente iterativo e incremental. Já os métodos ágeis não são contra a documentação ou modelagem, mas contra o excesso delas.

Gabarito: letra C.

Link permanente: /questoes/qq709614