É uma abordagem avançada de design de software que coloca o foco no profundo entendimento e modelagem do domínio do negócio, promovendo uma linguagem ubíqua entre desenvolvedores e especialistas do domínio. Através da identificação e encapsulamento de conceitos complexos no código, visa criar sistemas mais flexíveis e alinhados com as necessidades do negócio, facilitando a evolução e manutenção ao longo do tempo. De acordo com a afirmativa acima, assinale a alternativa que apresenta qual modelo de arquitetura a afirmativa se refere.
- A)Test Driven Design (TDD)
Errada, porque TDD trata de desenvolvimento orientado por testes automatizados, não de modelagem profunda do domínio do negócio.
- B)Domain Driven Design (DDD)
Certa, porque DDD é justamente a abordagem que usa linguagem ubíqua e modelagem do domínio para alinhar software e negócio.
- C)Behavior Driven Development (BDD)
Errada, porque BDD foca no comportamento esperado do sistema e na colaboração por cenários, não na arquitetura centrada no domínio.
- D)Develop Under Structure (DUS)
Errada, porque Develop Under Structure não é um modelo de arquitetura reconhecido na área e não corresponde à descrição da questão.
Gabarito: B
A descrição do enunciado aponta diretamente para o Domain Driven Design, ou DDD. Essa abordagem parte da ideia de que o software precisa refletir o domínio do negócio de forma fiel, então o time deve entender bem as regras, os conceitos e as relações do mundo real antes de sair codando por aí como se não houvesse amanhã. Um dos pilares do DDD é a linguagem ubíqua: desenvolvedores e especialistas do negócio usam os mesmos termos para reduzir ruído, ambiguidades e aquelas reuniões em que cada área acha que está falando de uma coisa diferente. Além disso, o DDD trabalha com o encapsulamento de conceitos complexos em modelos bem definidos, ajudando a manter o sistema mais organizado e evolutivo. Por isso, o gabarito é a letra B. A questão praticamente descreve a essência do DDD: foco no domínio, comunicação clara com o negócio e modelagem para facilitar manutenção e evolução do software. Vale lembrar a diferença para outras abordagens famosas: TDD é técnica de desenvolvimento guiada por testes, e BDD enfatiza o comportamento do sistema em cenários de negócio. Já o DDD não é sobre testar primeiro ou escrever histórias, mas sobre projetar o software a partir do domínio.