O que são metodologias de desenvolvimento de software?
As metodologias de desenvolvimento de software têm aparecido com menor frequência em avaliações da área de tecnologia da informação. Ainda assim, o domínio do tema é essencial, especialmente considerando a adoção crescente de métodos ágeis em instituições públicas de diferentes esferas.
Conceitos iniciais
Antes de avançarmos para os ciclos de vida, é necessário compreender alguns conceitos fundamentais.
Definições clássicas de Engenharia de Software
- IEEE: Engenharia de Software é a aplicação de uma abordagem sistemática, disciplinada e mensurável para o desenvolvimento, operação e manutenção de software.
- Friedrich Bauer: trata-se da criação e aplicação de princípios sólidos da engenharia para obter software confiável, econômico e executável em máquinas reais.
- Roger Pressman: a Engenharia de Software decorre da Engenharia de Sistemas, que analisa e integra diferentes elementos para construir produtos, serviços ou tecnologias voltadas ao processamento da informação.
- Ian Sommerville: envolve não apenas aspectos técnicos, mas também atividades de gerenciamento, desenvolvimento de métodos, ferramentas e teorias que apoiem a produção de software.
Esses autores são amplamente referenciados e suas definições aparecem com frequência em avaliações teóricas.
Princípios da Engenharia de Software
- Formalidade
- Abstração
- Generalização
- Flexibilidade
- Decomposição
Esses princípios fundamentam tanto os modelos de desenvolvimento quanto as boas práticas adotadas ao longo do ciclo de vida do software.
Fundamentos da Engenharia de Software
A Engenharia de Software tem como finalidade aplicar teorias, modelos, técnicas e ferramentas da computação e áreas correlatas para viabilizar o desenvolvimento sistemático de software.
Esse processo é sustentado por quatro pilares:
Qualidade
É o elemento central que sustenta toda a engenharia de software.
Processo
Representa a base que integra as camadas tecnológicas, permitindo o desenvolvimento racional e dentro de prazos definidos.
Métodos
Fornecem diretrizes técnicas para o desenvolvimento, baseadas em princípios que orientam atividades como modelagem e especificação.
Ferramentas
Oferecem suporte automatizado ou semiautomatizado aos processos e métodos, aumentando produtividade e consistência.

Questão inédita
A Engenharia de Software é sustentada por conceitos, princípios e definições clássicas que orientam o desenvolvimento sistemático de software. Com base nesse entendimento, assinale a alternativa correta.
A) A Engenharia de Software concentra-se exclusivamente na fase de codificação, sendo os aspectos de gerenciamento e manutenção tratados fora de seu escopo.
B) O processo é o elemento responsável por fornecer suporte automatizado ao desenvolvimento, substituindo a necessidade de métodos e ferramentas.
C) A qualidade é considerada um aspecto secundário da Engenharia de Software, pois depende majoritariamente da experiência individual do desenvolvedor.
D) Métodos fornecem diretrizes técnicas para o desenvolvimento de software, enquanto ferramentas oferecem suporte automatizado ou semiautomatizado a esses métodos e processos.
E) Segundo a Engenharia de Software, a aplicação de princípios formais e sistemáticos é dispensável quando se utilizam metodologias ágeis.
✅ Gabarito: D
Comentário:
A alternativa D está correta, pois diferencia adequadamente métodos, que
orientam tecnicamente o desenvolvimento, e ferramentas, que dão suporte
ao processo e aos métodos, conforme os fundamentos clássicos da Engenharia
de Software.
Atributos de um bom software:
– Proporcionar funcionalidades e desempenho requeridos;
– Passível de manutenção, confiável e de fácil uso.
– Desafios da Engenharia de SW:
– Lidar com sistemas legado;
– Atender à crescente diversidade;
– Prazos reduzidos.
Engenharia de Software: Ciclo de Vida
O conceito de ciclo de vida tem origem na biologia e é utilizado para representar as etapas pelas quais um ser vivo passa ao longo de sua existência. Nesse contexto, considera-se todo o seu percurso: nascimento, crescimento, desenvolvimento, reprodução, envelhecimento e, em determinado momento, o fim de sua existência.
Na engenharia de software, esse conceito é aplicado de maneira equivalente. Um software também percorre um ciclo completo: é concebido, desenvolvido, utilizado, mantido e, em algum momento, pode ser descontinuado ou substituído. Essa interrupção pode ocorrer por diferentes motivos, como obsolescência tecnológica, mudança de requisitos ou decisões estratégicas da organização.
Esse entendimento não se restringe apenas ao software. O mesmo raciocínio pode ser aplicado a sistemas, produtos, projetos e até a organizações, sempre com o objetivo de compreender as fases sucessivas que algo percorre desde o seu início até o seu encerramento.
🔖 SE LIGA
Ciclo de vida: conjunto de fases pelas quais algo passa desde o seu início até o seu fim ou interrupção.
🧩 Questão inédita
O conceito de ciclo de vida, amplamente utilizado na engenharia de software, permite compreender as fases pelas quais um software passa ao longo de sua existência. Com base nesse conceito, é correto afirmar que:
A) o ciclo de vida de um software se limita às fases de codificação e testes, não abrangendo manutenção ou descontinuação.
B) a interrupção do ciclo de vida de um software ocorre exclusivamente por falhas técnicas durante o desenvolvimento.
C) o ciclo de vida representa as etapas sucessivas desde a concepção do software até sua retirada de uso.
D) o ciclo de vida é aplicável apenas a softwares, não podendo ser estendido a projetos ou produtos.
E) a fase final do ciclo de vida de um software corresponde obrigatoriamente à sua substituição por outro sistema.
✅ Gabarito: C

Ciclo de vida do ser humano. O mesmo ocorre com projetos de software
Princípios da Engenharia de Software
É fundamental destacar alguns princípios da engenharia de software que mantêm relação direta com os modelos de ciclo de vida, pois orientam decisões técnicas e organizacionais ao longo de todo o desenvolvimento.
Razão de existência
Todo software existe com um propósito claro: entregar valor aos seus usuários. Esse princípio reforça que decisões técnicas devem sempre considerar o benefício gerado.
Mantenha a simplicidade
O projeto deve ser o mais simples possível, evitando complexidades desnecessárias, mas sem comprometer requisitos essenciais ou qualidade.
Mantenha a visão
Uma visão clara e bem definida é indispensável para o sucesso de um projeto de software, pois orienta escolhas ao longo de todas as fases do ciclo de vida.
O que você produz será utilizado por outros
Todo artefato deve ser especificado, projetado e implementado considerando que outras pessoas precisarão compreendê-lo, mantê-lo ou evoluí-lo.
Esteja preparado para o futuro
Soluções devem evitar restrições que impeçam evoluções posteriores, permitindo adaptações conforme novas necessidades surgirem.
Planeje o reuso com antecedência
O reuso planejado reduz custos, aumenta produtividade e agrega valor aos componentes e ao sistema como um todo.
Pense antes de agir
Uma análise cuidadosa e completa antes da execução tende a gerar resultados mais consistentes e de melhor qualidade.
Outras formas de abordagem dos princípios
Além das formulações conceituais, esses princípios também podem ser apresentados sob outras perspectivas:
Formalidade
Busca pela qualidade por meio de procedimentos formais e previamente estabelecidos.
Abstração
Capacidade de concentrar-se no que é essencial, ignorando detalhes irrelevantes em determinado contexto.
Generalização
Uso de soluções reutilizáveis para resolver problemas semelhantes, evitando retrabalho.
Flexibilidade
Possibilidade de modificar o software sem impactar negativamente o que já foi desenvolvido.
Decomposição
Divisão de problemas complexos em partes menores e mais gerenciáveis, facilitando o entendimento e a solução.
🧩 Questão inédita
Os princípios da engenharia de software orientam tanto a escolha dos modelos de ciclo de vida quanto as decisões tomadas durante o desenvolvimento. Considerando esses princípios, assinale a alternativa correta.
A) O princípio da simplicidade incentiva a redução máxima de funcionalidades, mesmo que requisitos essenciais deixem de ser atendidos.
B) A formalidade está associada à ausência de processos definidos, favorecendo maior liberdade criativa dos desenvolvedores.
C) A decomposição consiste em tratar o sistema como um bloco único, evitando subdivisões para reduzir complexidade.
D) O planejamento do reuso contribui para redução de custos e aumento do valor dos componentes e do sistema.
E) A flexibilidade pressupõe que qualquer alteração impactará negativamente as funcionalidades já implementadas.
✅ Gabarito: D
Comentário:
A alternativa D está correta, pois o planejamento antecipado do reuso permite reduzir custos e ampliar o valor dos componentes e do sistema, conforme os princípios clássicos da engenharia de software.
DIRETO DO CONCURSO
(MEC/Atividade Técnica de Complexidade Gerencial/Análise de Sistemas/2011) O processo de desenvolvimento de software é uma caracterização descritiva ou prescritiva de como um produto de software deve ser desenvolvido.
COMENTÁRIO
Segundo o renomado autor de engenharia de software Roger Pressman, um modelo prescritivo corresponde a um conjunto definido de atividades de arcabouço, que envolve ações de engenharia de software, produtos de trabalho e mecanismos destinados a garantir qualidade e controle de mudanças ao longo de cada projeto necessário ao desenvolvimento de um sistema de software.
Como exemplo, a NBR ISO/IEC 12207 estabelece uma estrutura padronizada para os processos do ciclo de vida de software.
Por outro lado, um modelo descritivo apresenta o processo em alto nível de detalhamento, funcionando como um guia passo a passo para a construção de um sistema de software, descrevendo como as atividades são efetivamente realizadas.
De forma geral, um processo de software compreende duas atividades principais:
- a elaboração de um modelo de processo descritivo;
- a elaboração de um modelo de processo prescritivo.
O modelo descritivo representa como o processo ocorre na prática, em um determinado ambiente organizacional.
Já o modelo prescritivo define como o processo deve ser executado, estabelecendo diretrizes, padrões e boas práticas a serem seguidas.
Essa distinção é fundamental para compreender a relação entre prática real e modelo ideal no contexto da engenharia de software.
Gabarito correto.
DIRETO DO CONCURSO
(TRE 9-BA/Analista Judiciário/Análise de Sistemas) Um modelo de processo de software consiste em uma representação complexa de um processo de software, apresentada a partir de uma perspectiva genérica.
COMENTÁRIO
Conforme exposto por Sommerville (2003, p. 6) — outro autor amplamente reconhecido na engenharia de software —, um modelo de desenvolvimento de software deve ser simplificado, sempre de acordo com a perspectiva adotada e o contexto de aplicação.
O autor diferencia claramente modelo e processo de desenvolvimento de software. Segundo Sommerville, o modelo de ciclo de vida (ou modelo de processo de software) tem como finalidade apresentar as atividades principais e o fluxo em que elas ocorrem, sem se aprofundar excessivamente em detalhes operacionais.
Já o processo de desenvolvimento de software, por sua vez, descreve essas atividades de forma mais detalhada, incluindo procedimentos, técnicas, papéis, artefatos e controles.
Portanto, quando se afirma que o modelo de ciclo de vida apresenta o processo com o mesmo nível de detalhamento do processo de desenvolvimento em si, a afirmação está incorreta.
Logo, está errado.
![[REINVENÇÃO 2026] Lote relâmpago – Cabeçalho](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2025/12/31124357/1238X216-1.webp)
![[REINVENÇÃO 2026] Lote relâmpago – Post](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2025/12/31124859/730X150-1-1.webp)



Participe da conversa