📘 QUESTIONÁRIO – ENGENHARIA DE SOFTWARE (REESCRITO E ORGANIZADO)*
---
# *CAPÍTULO 1 – INTRODUÇÃO À ENGENHARIA DE SOFTWARE*
*1. O que é Engenharia de Software?*
R: É a área que aplica princípios, métodos e boas práticas da engenharia para planejar,
desenvolver, testar e manter sistemas de software com qualidade. Ela garante que o
software seja construído de forma organizada, confiável e capaz de atender às necessidades
dos utilizadores.
*2. Cite duas diferenças entre Engenharia de Software e Programação.*
R: Engenharia de Software abrange todo o ciclo de vida do produto, incluindo requisitos,
análise, design, testes e manutenção, enquanto a Programação é apenas a atividade de
escrever código. Além disso, a Engenharia envolve processos, documentação e gestão,
enquanto Programação foca exclusivamente na implementação técnica.
*3. Por que o software é considerado intangível?*
R: Porque ele não pode ser tocado ou manipulado fisicamente, já que consiste em
instruções lógicas e digitais. Diferentemente de produtos físicos, o software existe apenas
de forma abstrata em dispositivos e sistemas.
*4. Liste três características fundamentais do software.*
R: (1) É intangível.
(2) Não se desgasta fisicamente, mas “envelhece” quando não recebe manutenção.
(3) Pode ser modificado continuamente de acordo com necessidades do usuário.
*5. O que é o ciclo de vida do software?*
R: É o conjunto de etapas que o software percorre desde sua concepção até sua
desativação. Ele organiza o desenvolvimento para reduzir erros, melhorar a qualidade e
facilitar a gestão do projeto.
*6. Mencione as fases do ciclo de vida do software.*
R: Levantamento de requisitos, análise, design, implementação, testes, implantação e
manutenção.
---
# *CAPÍTULO 2 – MODELOS DE PROCESSO DE SOFTWARE*
*7. Caracterize o modelo em cascata.*
R: É um modelo sequencial onde cada fase do desenvolvimento só inicia após terminar a
anterior. É simples e muito estruturado, mas pouco flexível quando mudanças são
necessárias.
*8. Qual é a principal ideia do modelo incremental?*
R: Entregar partes do software gradualmente, em pequenos módulos funcionais. Isso
permite avaliar resultados cedo, corrigir erros rapidamente e adaptar-se a novos requisitos.
*9. Em que consiste o modelo espiral?*
R: É um modelo iterativo baseado em ciclos que combinam desenvolvimento incremental
com análise de riscos. Cada ciclo revisa riscos, planeja soluções e incrementa o produto.
*10. O que são métodos ágeis?*
R: São abordagens que priorizam entregas rápidas, adaptação contínua e participação ativa
do cliente. O desenvolvimento ocorre em ciclos curtos (iterações), com foco em melhorias
constantes.
*11. Cite três princípios da Engenharia de Software.*
R: (1) Foco na qualidade desde o início.
(2) Trabalho colaborativo com o cliente e a equipa.
(3) Reutilização de componentes e boas práticas para reduzir custos e tempo.
*12. Cite quatro áreas de atuação da Engenharia de Software.*
R: Desenvolvimento (programação), testes de software, análise de requisitos, arquitetura de
software, gestão de projetos e DevOps.
*13. Liste três atributos de qualidade de software.*
R: Confiabilidade, usabilidade e segurança. Outros incluem desempenho e facilidade de
manutenção.
*14. Dê exemplos de ferramentas usadas na Engenharia de Software.*
R: Git/GitHub (versão), VS Code ou IntelliJ (IDE), Trello/Jira (gestão), UML e Figma
(modelagem), JUnit ou Selenium (testes).
*15. Por que a comunicação é importante no desenvolvimento?*
R: Porque garante alinhamento entre cliente, utilizadores e equipa técnica, evitando erros,
atrasos e mal-entendidos no produto final.
*16. Por que sistemas modernos dependem da Engenharia de Software?*
R: Porque sistemas atuais são complexos e exigem organização, qualidade e escalabilidade
para funcionarem corretamente em ambientes reais.
*17. Cite três benefícios da Engenharia de Software para empresas.*
R: Redução de custos, aumento da qualidade das entregas e melhoria da produtividade dos
projetos.
---
# *CAPÍTULO 3 – REQUISITOS DE SOFTWARE*
*18. O que significa definir requisitos?*
R: É identificar, compreender e documentar as necessidades dos usuários e as funções que o
software deve executar. Essa definição orienta todas as fases do projeto.
*19. Diferencie requisitos funcionais e não funcionais.*
R: Funcionais descrevem o que o sistema deve fazer (ações e funcionalidades).
Não funcionais definem como o sistema deve funcionar (desempenho, confiabilidade,
segurança, usabilidade).
*20. Dê dois exemplos de requisitos funcionais.*
R: O sistema deve permitir que o usuário faça login; o sistema deve gerar relatórios de
vendas.
*21. Dê dois exemplos de requisitos não funcionais.*
R: O sistema deve responder em menos de 3 segundos; deve estar disponível 99% do
tempo.
*22. O que são requisitos de produto?*
R: São requisitos que descrevem características internas e técnicas do software, como
desempenho, usabilidade, interface e segurança.
*23. O que são requisitos organizacionais?*
R: São regras e padrões da organização que influenciam o desenvolvimento, como normas
internas, políticas de segurança ou tecnologias pré-definidas.
*24. O que são requisitos externos?*
R: São exigências impostas por leis, regulamentos, segurança, integrações ou fatores
externos ao sistema.
*25. O que é levantamento de requisitos?*
R: É o processo de descobrir, coletar e compreender necessidades e expectativas dos
stakeholders por meio de entrevistas, observações e outros métodos.
*26. Cite três técnicas de levantamento de requisitos.*
R: Entrevistas, observação e questionários. Também podem ser usados brainstorming,
workshops e análise de documentos.
*27. Por que a recolha de requisitos pode ser difícil?*
R: Porque os usuários podem não saber explicar suas necessidades, podem surgir conflitos
de interesse, requisitos podem mudar e nem sempre as informações são claras ou
completas.
*28. O que é um stakeholder?*
R: Qualquer pessoa ou entidade que afeta ou é afetada pelo sistema, como clientes,
utilizadores, gestores ou programadores.
*29. Por que é importante envolver utilizadores reais?*
R: Porque eles conhecem o trabalho prático e garantem que o software seja realmente útil,
evitando falhas e funcionalidades desnecessárias.
*30. O que é gestão de requisitos?*
R: É o controle, organização e acompanhamento das mudanças nos requisitos ao longo do
projeto, garantindo que tudo esteja documentado e atualizado.
*31. O que são cenários de utilização?*
R: São narrativas simples que descrevem como um usuário utiliza o sistema em situações
específicas, ajudando a compreender usos reais.
*32. Defina casos de uso.*
R: São modelos que descrevem interações entre usuário (ator) e sistema para alcançar um
objetivo definido, com passos claros e estruturados.
*33. O que é um caso de uso essencial?*
R: É uma versão simplificada do caso de uso, que descreve apenas a lógica fundamental,
sem detalhes de interface ou tecnologia.
*34. Por que requisitos bem definidos são importantes?*
R: Porque reduzem retrabalho, aumentam a qualidade, diminuem custos, facilitam testes e
garantem que o produto final atenda às expectativas.