Processo de desenvolvimento de software

Um processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software. É estudado dentro da área de engenharia de software, sendo considerado um dos principais mecanismos para se obter software de qualidade e cumprir corretamente os contratos de desenvolvimento, sendo uma das respostas técnicas adequadas para resolver a crise do software.

Desde a década de 1970, os processos evoluíram de modelos sequenciais, como o modelo em cascata, para abordagens iterativas, incrementais e ágeis. A partir do início da década de 2020, ferramentas baseadas em modelos de linguagem de grande escala passaram a participar das atividades do processo, primeiro como assistentes de programação e, depois, como agentes capazes de executar tarefas de várias etapas. Esse movimento deu origem a propostas de reorganização do ciclo de vida em torno de agentes de inteligência artificial, reunidas no mercado sob expressões como agentic SDLC (ciclo de vida de desenvolvimento de software agêntico), para as quais ainda não há definição consensual.

Definição

Wazlawick define o processo de desenvolvimento de software como um conjunto de passos parcialmente ordenados, relacionados a artefatos, pessoas, estruturas organizacionais e restrições, cujo objetivo é produzir e manter os produtos de software finais requeridos. Esse conceito considera o contexto em que o processo é aplicado e destaca suas interdependências com outros fatores, como restrições, pessoas, recursos e padrões, que afetam o resultado final.

Histórico

Anos 70

Anos 80

Anos 90

Anos 2000

Anos 2020

Abordagens

A literatura descreve diversos modelos de ciclo de vida, que diferem na ordem, na repetição e na sobreposição das atividades do processo. Entre as principais abordagens estão:

Atividades do processo

Análise econômica

Visa a estabelecer a viabilidade do projeto de software, verificando se os benefícios esperados, como lucro ou receita, justificam os custos de desenvolvimento e operação. Para isso, a engenharia de software emprega análises de viabilidade e a elaboração de um caso de negócio.

Análise de requisitos de software

Consiste na extração dos requisitos junto ao cliente e aos demais interessados. O objetivo da elicitação é trazer à tona os requisitos candidatos, com técnicas como entrevistas e a consulta a documentos existentes.

Especificação

A especificação é a tarefa de descrever precisamente o software, preferencialmente de uma forma matematicamente rigorosa, como propõem os métodos formais. Na prática, somente especificações mais bem sucedidas foram escritas para aplicações bem compreendidas e afinadas que já estavam bem desenvolvidas, embora sistemas de software de missão crítica sejam frequentemente bem especificados antes do desenvolvimento da aplicação. Especificações são mais importantes para interfaces externas que devem permanecer estáveis.[carece de fontes]?

Arquitetura de software

A arquitetura de um sistema de software remete a uma representação abstrata daquele sistema. Arquitetura é concernente à garantia de que o sistema de software irá ao encontro de requisitos do produto, como também assegurar que futuros requisitos possam ser atendidos. A etapa da arquitetura também direciona as interfaces entre os sistemas de software e outros produtos de software, como também com o hardware básico ou com o sistema operacional. A norma ISO/IEC/IEEE 42010 distingue a arquitetura de um sistema da descrição que a expressa e estabelece requisitos para essas descrições.

Implementação ou codificação

A transformação de um projeto para um código deve ser a parte mais evidente do trabalho da engenharia de software, mas não necessariamente a sua maior porção. Frederick Brooks estimou, como regra prática, que a codificação ocupa cerca de um sexto do cronograma de um projeto, contra um terço para o planejamento e metade para os testes.

Teste

Teste de partes do software, especialmente onde tenha sido codificado por dois ou mais engenheiros trabalhando juntos, é um papel da engenharia de software.

Diversas atividades de testes são executadas a fim de se validar o produto de software, testando cada funcionalidade de cada módulo e levando em consideração a especificação feita na fase de projeto. Os resultados são registrados em documentação de teste, como relatórios com as informações sobre os erros encontrados e o comportamento do sistema; a norma ISO/IEC/IEEE 29119-3 padroniza modelos para essa documentação.

Documentação

Uma importante tarefa é a documentação do projeto interno do software para propósitos de futuras manutenções e aprimoramentos. As documentações mais importantes são das interfaces externas.[carece de fontes]?

Suporte e treinamento de software

Uma grande percentagem dos projetos de software falham pelo fato de o desenvolvedor não perceber que não importa quanto tempo a equipe de planejamento e desenvolvimento irá gastar na criação do software se ninguém da organização irá usá-lo.[carece de fontes]? As pessoas ocasionalmente resistem à mudança e evitam aventurar-se em áreas pouco familiares; estudos sobre a implantação de sistemas de informação atribuem essa resistência tanto a fatores individuais quanto ao projeto do sistema e à interação entre o sistema e o contexto organizacional. O treinamento de usuários figura entre os requisitos de projeto que a engenharia de software deve prever. Então, como parte da fase de desenvolvimento, é muito importante o treinamento para os usuários de software mais entusiasmados, alternando o treinamento entre usuários neutros e usuários favoráveis ao software. Usuários irão ter muitas questões e problemas de software os quais conduzirão para a próxima fase.

Manutenção

A manutenção e melhoria de software lidam com a descoberta de novos problemas e requisitos. Elas podem tomar mais tempo do que o gasto no desenvolvimento inicial do software em si. Não somente pode ser necessário adicionar códigos que combinem com o projeto original, mas determinar como o software trabalhará em algum ponto depois da manutenção estar completa pode requerer um significativo esforço por parte de um engenheiro de software. Segundo Robert Glass, a manutenção consome tipicamente de 40% a 80% dos custos de software, e cerca de 60% desse custo corresponde a melhorias, e não à correção de erros. A maioria das manutenções é, portanto, para ampliar os sistemas com novas funcionalidades, as quais, de diversas formas, podem ser consideradas um novo trabalho. O SWEBOK classifica a manutenção em categorias como corretiva, adaptativa, perfectiva e preventiva.

Processo de meta-modelos

O processo de desenvolvimento de software tem sido objetivo de vários padrões, que visam a certificação de empresas como possuidoras de um processo de desenvolvimento, o que garantiria certo grau de confiança aos seus contratantes. No Brasil, por exemplo, o programa MPS.BR prevê a avaliação de empresas segundo níveis de maturidade compatíveis com o CMMI.

Alguns padrões existentes:

Métodos formais

Métodos formais em ciências da computação e engenharia de software são técnicas baseadas em formalismos matemáticos para a especificação, desenvolvimento e verificação dos sistemas de software e hardware. Seu uso para o desenvolvimento de software e hardware é motivado pela expectativa de que, como em outras disciplinas de engenharia, possam contribuir para a confiabilidade e robustez de um projeto executando análises matemáticas apropriadas. Entretanto, o alto custo do uso dos métodos formais faz com que, de modo geral, sejam usados apenas no desenvolvimento de sistemas de alta integridade, nos quais há alta probabilidade de as falhas provocarem perda de vidas ou sério prejuízo.

Uso de inteligência artificial no processo

A partir de 2021, ferramentas baseadas em modelos de linguagem de grande escala foram incorporadas às atividades de desenvolvimento de software. Segundo uma síntese publicada em 2026, as primeiras ferramentas atuavam na granularidade de uma linha ou função, enquanto os sistemas agênticos posteriores passaram a operar na granularidade de um repositório, de uma funcionalidade ou de um algoritmo. O mesmo trabalho propõe que o objeto central de estudo deixou de ser a geração de código e passou a ser a execução delegada sob supervisão humana.

Assistentes de programação

O GitHub Copilot, lançado em 2021, foi o primeiro contato da maioria dos engenheiros de software com uma ferramenta de inteligência artificial generativa integrada ao trabalho diário. Como seus sucessores, funcionava como um sistema de complementação de código no editor, em que o desenvolvedor escrevia, o modelo sugeria e o desenvolvedor aceitava ou rejeitava a sugestão.

Os estudos sobre o efeito dessas ferramentas na produtividade chegaram a resultados divergentes. Em experimento controlado conduzido por pesquisadores da Microsoft Research, do GitHub e do MIT, o grupo com acesso ao Copilot concluiu a implementação de um servidor HTTP em JavaScript 55,8% mais rápido que o grupo de controle. Por outro lado, um ensaio randomizado da organização METR, realizado de fevereiro a junho de 2025 com dezesseis desenvolvedores experientes de projetos de código aberto e 246 tarefas reais, constatou que o uso de ferramentas de IA aumentou em 19% o tempo de conclusão das tarefas, embora os participantes acreditassem ter ficado cerca de 20% mais rápidos.

A pesquisa anual de desenvolvedores do Stack Overflow de 2025 registrou que 84% dos respondentes usavam ou pretendiam usar ferramentas de IA no desenvolvimento, ante 76% em 2024, ao mesmo tempo que a confiança na exatidão dessas ferramentas caiu. Na mesma pesquisa, 45% apontaram como frustração o tempo gasto para depurar código gerado por IA, e apenas 31% usavam agentes de IA. O primeiro relatório do programa DORA do Google dedicado ao desenvolvimento assistido por IA, baseado em respostas de quase cinco mil profissionais, concluiu que a IA atua principalmente como amplificadora, reforçando tanto os pontos fortes das organizações de alto desempenho quanto as disfunções das demais.

Agentes de programação

Em outubro de 2023, pesquisadores da Universidade de Princeton apresentaram o SWE-bench, conjunto de avaliação formado por 2 294 problemas extraídos de issues e pull requests reais de doze repositórios populares em Python. Na avaliação original, o modelo com melhor desempenho resolveu apenas 1,96% dos problemas.

O Devin, da empresa Cognition, demonstrado em março de 2024, popularizou a ideia de um "engenheiro de software de IA" que executa tarefas num ambiente isolado com navegador, terminal e editor. No início de 2025, a Anthropic lançou o Claude Code, que lê a base de código, planeja alterações em vários arquivos, executa comandos e testes e itera sobre os resultados. Sistemas semelhantes incluem o Codex CLI, da OpenAI, o Jules, do Google, e os projetos de código aberto OpenHands e SWE-agent. Segundo a mesma síntese, ainda em revisão por pares, a taxa de resolução na variante SWE-bench Verified passou de 1,96% em outubro de 2023 para 78,4% em abril de 2026, e o papel do desenvolvedor deslocou-se da produção de código para a orquestração, a revisão e o direcionamento do trabalho dos agentes.

Desenvolvimento orientado por especificação

A expansão dos agentes de programação levou à proposta de fluxos em que a especificação, e não o código, é o artefato central. Em julho de 2025, a Amazon Web Services lançou em versão de pré-visualização o Kiro, um ambiente de desenvolvimento agêntico baseado em especificações. Em 2 de setembro de 2025, o GitHub publicou o Spec Kit, conjunto de ferramentas de código aberto sob licença MIT que organiza o trabalho em especificação, plano técnico e tarefas pequenas e testáveis a serem implementadas por agentes como GitHub Copilot, Claude Code e Gemini CLI.

Ciclo de vida agêntico

A expressão inglesa agentic SDLC designa propostas de ciclo de vida de desenvolvimento de software em que agentes de IA executam ou coordenam trabalho em várias etapas, da especificação à operação, sob supervisão humana. O conceito circula sob diversos nomes, entre eles Agentic Development Lifecycle (ADLC), Agentic-SDLC e a variante acadêmica A-SDLC, e até 2026 as firmas de análise Gartner e Forrester não haviam adotado nenhum deles.

Na síntese de Bhati, o ciclo de vida agêntico distingue-se do ciclo de vida apenas acelerado por assistentes em três aspectos: a unidade de trabalho encolhe para tarefas que um agente conclui em minutos ou horas, o desenvolvedor passa a orquestrar e revisar em vez de produzir, e métricas comportamentais, como taxa de aceitação das entregas dos agentes e qualidade dos escalonamentos, passam a complementar métricas de processo como tempo de ciclo e taxa de defeitos. No modelo descrito, um agente orquestrador coordena subagentes especializados por fase, e o humano intervém em pontos de definição de intenção, revisão e aprovação.

Entre as formulações de mercado, a Amazon Web Services apresentou em 1 de agosto de 2025, no evento AWS DevSphere, em Bangalore, o AI-Driven Development Lifecycle (AI-DLC), metodologia aberta que coloca a IA no centro do processo e mantém supervisão humana em todas as etapas. O AI-DLC organiza o trabalho em três fases, denominadas Inception, Construction e Operation. A EPAM descreveu um ADLC próprio, e a Microsoft publicou uma arquitetura de referência em que agentes especializados por fase são coordenados por um orquestrador central.

Em 2026, a empresa brasileira CI&T publicou o white paper AI doesn't fix your SDLC, atribuído a Luiz Grecco e Gilson Gaseorowski, com sua formulação do conceito. O documento sustenta que, com o custo de gerar código reduzido pela IA, o gargalo da entrega se deslocou da execução para as decisões sobre se o código está pronto para avançar, e propõe tratar essas decisões como itens explícitos do fluxo. A proposta prevê validação contínua no lugar de aprovações por etapa e uma camada de orquestração, chamada agentic bus, que coordena humanos, agentes e contexto compartilhado. O texto descreve três estágios de maturidade (aumento, coordenação e autonomia), aos quais a empresa associa ganhos de duas, cinco e até vinte vezes, e novos papéis como orquestrador de IA e engenheiro de IA. A empresa apresentou a proposta na teleconferência de resultados do primeiro trimestre de 2026, em 11 de maio daquele ano. Os ganhos citados são declarações da própria empresa e não haviam sido verificados de forma independente até outubro de 2026.

As críticas e questões em aberto sobre o ciclo de vida agêntico incluem a hipótese de que o código produzido por agentes aumente a dívida técnica e o custo de manutenção, a carência de mecanismos de governança auditáveis e o deslocamento do gargalo para a revisão humana, já que um agente pode gerar mais alterações plausíveis do que uma equipe consegue examinar.

Ver também

Referências

  1. ↑ Wazlawick, Raul Sidnei (2013). Engenharia de software: conceitos e práticas. Rio de Janeiro: Elsevier. p. 30
  2. ↑ Dijkstra, Edsger W. (março de 1968). «Go To Statement Considered Harmful». Communications of the ACM (em inglês). 11 (3): 147–148. doi:10.1145/362929.362947
  3. ↑ Hice, G. F.; Turner, William S. (1987). SDM, System Development Methodology (em inglês). Rijswijk; Amsterdã: Pandata; North-Holland
  4. ↑ Lutkevich, Ben (17 de junho de 2022). «What is SSADM (Structured Systems Analysis and Design Method)?» (em inglês). TechTarget. Consultado em 12 de outubro de 2026
  5. ↑ Checkland, Peter (1981). Systems Thinking, Systems Practice (em inglês). Chichester; Nova Iorque: John Wiley & Sons. ISBN 0-471-27911-0
  6. ↑ Booch, Grady (1994). Object-Oriented Analysis and Design with Applications (em inglês) 2 ed. Redwood City: Benjamin/Cummings. ISBN 0-8053-5340-2
  7. 1 2 Martin, James (1991). Rapid Application Development (em inglês). Nova Iorque: Macmillan
  8. ↑ Crelin, Joy. «Rapid application development (RAD)» (em inglês). EBSCO Research Starters. Consultado em 12 de outubro de 2026
  9. ↑ «About Us» (em inglês). Agile Business Consortium. Consultado em 12 de outubro de 2026
  10. ↑ Krishnamurthy, Venkatesh (15 de outubro de 2012). «A Brief History of Scrum» (em inglês). TechWell Insights. Consultado em 12 de outubro de 2026
  11. ↑ Humphrey, Watts S. (novembro de 2000). The Team Software Process (TSP) (Relatório) (em inglês). Software Engineering Institute, Carnegie Mellon University
  12. 1 2 Kruchten, Philippe (2007). The Rational Unified Process: An Introduction (em inglês) 3 ed. Upper Saddle River: Addison-Wesley. ISBN 0-321-19770-4
  13. ↑ Beck, Kent (1999). Extreme Programming Explained: Embrace Change (em inglês). Boston: Addison-Wesley. ISBN 0-201-61641-6
  14. 1 2 «Manifesto para Desenvolvimento Ágil de Software». 2001. Consultado em 12 de outubro de 2026
  15. ↑ Ambler, Scott W. «The Agile Edge: Unified and Agile» (em inglês). Dr. Dobb's. Consultado em 12 de outubro de 2026
  16. 1 2 3 4 5 6 7 8 9 10 Bhati, Happy (29 de abril de 2026). «Agentic AI in the Software Development Lifecycle: Architecture, Empirical Evidence, and the Reshaping of Software Engineering» (em inglês). arXiv. Consultado em 12 de outubro de 2026
  17. 1 2 3 «GitHub Open Sources Kit for Spec-Driven AI Development» (em inglês). Visual Studio Magazine. 3 de setembro de 2025. Consultado em 12 de outubro de 2026
  18. 1 2 Baruah, Ayushman (1 de agosto de 2025). «AWS Launches New AI Methodology to Transform Software Development» (em inglês). Entrepreneur India. Consultado em 12 de outubro de 2026
  19. 1 2 3 «ADLC Has Six Definitions and Zero Consensus: I Compared Every Major Framework» (em inglês). Towards AI. Consultado em 12 de outubro de 2026
  20. 1 2 3 4 Boehm, Barry W. (maio de 1988). «A Spiral Model of Software Development and Enhancement». Computer (em inglês). 21 (5): 61–72. doi:10.1109/2.59
  21. 1 2 3 Larman, Craig; Basili, Victor R. (2003). «Iterative and Incremental Development: A Brief History». Computer (em inglês). 36 (6): 47–56. doi:10.1109/MC.2003.1204375
  22. ↑ Royce, Winston W. (agosto de 1970). «Managing the Development of Large Software Systems». Proceedings, IEEE WESCON (em inglês): 1–9
  23. ↑ Fowler, Martin (21 de julho de 2000). «The New Methodology» (em inglês). Consultado em 12 de outubro de 2026
  24. ↑ Washizaki, Hironori, ed. (2024). «Software Engineering Economics; Software Engineering Management». Guide to the Software Engineering Body of Knowledge (SWEBOK Guide), Version 4.0 (em inglês). [S.l.]: IEEE Computer Society. p. 9-6, 15-16
  25. ↑ Washizaki, Hironori, ed. (2024). «Software Requirements». Guide to the Software Engineering Body of Knowledge (SWEBOK Guide), Version 4.0 (em inglês). [S.l.]: IEEE Computer Society. p. 1-6
  26. 1 2 Butler, Ricky W. «What is Formal Methods?» (em inglês). Consultado em 26 de março de 2015
  27. ↑ Washizaki, Hironori, ed. (2024). «Software Architecture». Guide to the Software Engineering Body of Knowledge (SWEBOK Guide), Version 4.0 (em inglês). [S.l.]: IEEE Computer Society. p. 2-1
  28. ↑ «ISO/IEC/IEEE 42010:2022: Software, systems and enterprise, Architecture description» (em inglês). International Organization for Standardization. Novembro de 2022. Consultado em 12 de outubro de 2026
  29. ↑ Brooks, Frederick P. (1995). «The Mythical Man-Month». The Mythical Man-Month: Essays on Software Engineering (em inglês) Edição de aniversário ed. Reading: Addison-Wesley
  30. ↑ Washizaki, Hironori, ed. (2024). «Software Testing». Guide to the Software Engineering Body of Knowledge (SWEBOK Guide), Version 4.0 (em inglês). [S.l.]: IEEE Computer Society. p. 5-1
  31. ↑ «ISO/IEC/IEEE 29119-3:2021: Software and systems engineering, Software testing, Part 3: Test documentation» (em inglês). International Electrotechnical Commission. 28 de outubro de 2021. Consultado em 12 de outubro de 2026
  32. ↑ Markus, M. Lynne (1983). «Power, Politics, and MIS Implementation». Communications of the ACM (em inglês)
  33. ↑ Washizaki, Hironori, ed. (2024). «Software Requirements». Guide to the Software Engineering Body of Knowledge (SWEBOK Guide), Version 4.0 (em inglês). [S.l.]: IEEE Computer Society. p. 1-3
  34. ↑ Glass, Robert L. (2003). «Maintenance (fatos 41 e 42)». Facts and Fallacies of Software Engineering (em inglês). Boston: Addison-Wesley. ISBN 0-321-11742-5
  35. ↑ Washizaki, Hironori, ed. (2024). «Software Maintenance». Guide to the Software Engineering Body of Knowledge (SWEBOK Guide), Version 4.0 (em inglês). [S.l.]: IEEE Computer Society. p. 7-3, 7-4
  36. 1 2 Weber, Kival (2006). Melhoria de Processo do Software Brasileiro (MPS.BR): um Programa Mobilizador (PDF). XXXII Conferencia Latinoamericana de Informática (CLEI 2006). Consultado em 12 de outubro de 2026
  37. ↑ «ISO/IEC/IEEE 12207:2017: Systems and software engineering, Software life cycle processes» (em inglês). International Organization for Standardization. Consultado em 12 de outubro de 2026
  38. ↑ «ISACA acquires CMMI Institute». Daily Herald (em inglês). 4 de março de 2016. Consultado em 12 de outubro de 2026
  39. ↑ «ISO/IEC 15504-1:2004 (retirada)» (em inglês). International Electrotechnical Commission. Consultado em 12 de outubro de 2026
  40. ↑ Holloway, C. Michael. «Why Engineers Should Consider Formal Methods» (PDF). 16th Digital Avionics Systems Conference (27 a 30 de outubro de 1997) (em inglês). Consultado em 26 de março de 2015. Arquivado do original (PDF) em 16 de novembro de 2006
  41. ↑ Peng, Sida; Kalliamvakou, Eirini; Cihon, Peter; Demirer, Mert (13 de fevereiro de 2023). «The Impact of AI on Developer Productivity: Evidence from GitHub Copilot». arXiv (em inglês). doi:10.48550/arXiv.2302.06590
  42. ↑ Willison, Simon (12 de julho de 2025). «Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity» (em inglês). Consultado em 12 de outubro de 2026
  43. ↑ «Report: AI tools slow down experienced developers by 19%» (em inglês). Diginomica. Consultado em 12 de outubro de 2026
  44. ↑ «Stack Overflow's 2025 Developer Survey Reveals Trust in AI at an All Time Low» (em inglês). Stack Overflow. 2025. Consultado em 12 de outubro de 2026
  45. ↑ DeBellis, Derek (2025). «DORA 2025 State of AI-assisted Software Development Report» (em inglês). Google Research. Consultado em 12 de outubro de 2026
  46. ↑ Jimenez, Carlos E. (10 de outubro de 2023). «SWE-bench: Can Language Models Resolve Real-World GitHub Issues?». arXiv (em inglês). doi:10.48550/arXiv.2310.06770
  47. ↑ «AWS launches new AI methodology to transform software development» (em inglês). About Amazon India. 2025. Consultado em 12 de outubro de 2026
  48. ↑ «GitHub Spec Kit Takes Off as Antidote to Piecemeal 'Vibe Coding'» (em inglês). Visual Studio Magazine. 12 de maio de 2026. Consultado em 12 de outubro de 2026
  49. ↑ «"AI can write code, but it can't finish development": AWS unveils 'AI-DLC' solution» (em inglês). Venture Square. 2026. Consultado em 12 de outubro de 2026
  50. 1 2 «AI doesn't fix your SDLC: Rethinking software delivery through decision orchestration and the Agentic SDLC» (em inglês). CI&T. 2026. Consultado em 12 de outubro de 2026
  51. ↑ «CI&T (CINT) Q1 2026 Earnings Call Transcript» (em inglês). The Motley Fool, via Yahoo Finance. 11 de maio de 2026. Consultado em 12 de outubro de 2026

Bibliografia