domain-driven design - aplicada a um estudo de caso
DESCRIPTION
Apresentação realizada com o objetivo de conclusão de curso - SI.Equipe: Danillo, Fábio, Ricardo(orientador) e Eu!!TRANSCRIPT
![Page 1: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/1.jpg)
A Utilização das Práticas do DDD Aplicada a um Estudo de Caso.
Danillo César de Oliveira MeloFábio Brasil Fernandes de Araújo
Jairo Barros Junior
FACULDADE DE ALAGOAS - FAL
Orientador: MSc. Ricardo Rubens
![Page 2: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/2.jpg)
A utilização da linguagem ubíqua
Construção do modelo de domínio◦ Padrões de projeto
◦ Ciclo de vida de um objeto de domínio
Estudo de caso
Conclusão
![Page 3: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/3.jpg)
Falha na comunicação
Domínios complexos
Alto acoplamento
Baixa coesão
![Page 4: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/4.jpg)
Conjunto de práticas
Ideal para domínios complexos
Desenvolvimento centrado no domínio
Linguagem onipresente
![Page 5: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/5.jpg)
![Page 6: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/6.jpg)
Comunicação em torno do domínio
Manutenção da linguagem
Modelo do domínio expressado no software
![Page 7: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/7.jpg)
![Page 8: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/8.jpg)
Arquitetura em camadas
Fonte: Imagem extraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 68).
![Page 9: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/9.jpg)
Anti-padrão
![Page 10: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/10.jpg)
![Page 11: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/11.jpg)
![Page 12: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/12.jpg)
Criado a partir das conversas dos desenvolvedores com os especialistas de domínio.
Representado diretamente no código.
![Page 13: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/13.jpg)
Possui identificação única
Possui características próprias dentro do modelo.
Responsabilidade e associações baseadas na sua identificação e não em seus atributos.
![Page 14: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/14.jpg)
Somente transporta informações
Não possui identificação única
Imutável
Possuem somente métodos de acesso
![Page 15: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/15.jpg)
Coordenam os trabalhos dos objetos do domínio
Aplicação
Domínio
Infra-estrutura
![Page 16: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/16.jpg)
Fonte: Imagem extraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 123).
![Page 17: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/17.jpg)
Início do ciclo de vida
Criação de objetos complexos e agregações
Encapsula complexidade
![Page 18: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/18.jpg)
![Page 19: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/19.jpg)
![Page 20: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/20.jpg)
Fonte: Imagem extraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 65).
![Page 21: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/21.jpg)
Requisitos do projeto
Estrutura do projeto
Camada do domínio
![Page 22: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/22.jpg)
“ O s i s t e m a d e v e t e r r e s e r v a e h o s p e d a g e m , d e f o r m a q u e o s
c l i e n t e s p o s s a m r e a l i z a r s u a s r e s e r v a s p o r t e l e f o n e o u v i a
i n t e r n e t . U m a r e s e r v a n ã o é u m a h o s p e d a g e m , p o i s n a h o r a d a
h o s p e d a g e m a r e s e r v a f e i t a p o d e s e r a l t e r a d a , m a s c a s o i s s o
n ã o o c o r r a e l a s e t o r n a u m a h o s p e d a g e m . C a d a q u a r t o p o s s u i
u m ú n i c o i d e n t i f i c a d o r , e x i s t e m c i n c o t i p o s d e q u a r t o , s ã o
e l e s : s i m p l e s , c a s a l , d u p l o , t r i p l o e f a m í l i a . O h o t e l p o s s u i
u m a m p l o r e s t a u r a n t e , q u e p o d e s e r u t i l i z a d o p o r q u a l q u e r
c l i e n t e , m a s e x i s t e u m a á r e a d o r e s t a u r a n t e s ó p a r a o s
h o s p e d e s , a s s i m c o m o t a m b é m e x i s t e u m a á r e a s ó p a r a o s
f u m a n t e s , q u e c o n s e g u i m o s i d e n t i f i c a r n o s e u c a d a s t r o . ”
![Page 23: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/23.jpg)
![Page 24: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/24.jpg)
![Page 25: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/25.jpg)
![Page 26: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/26.jpg)
![Page 27: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/27.jpg)
![Page 28: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/28.jpg)
![Page 29: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/29.jpg)
A Comunicação
A linguagem onipresente
Desenvolvimento centrado no domínio
![Page 30: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/30.jpg)
AVRAM, Abel; MARINESCU, Floyd. Domain-Driven Design Quickly. InfoQ. 2007;
DDD. Domain-Driven Design, disponível em http://domaindrivendesign.org/. Acesso em 3 de Julho de 2008;
EVANS, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley. 2004;
FREEMAN, Elisabeth; FREEMAN, Eric; BATES, Bert; SIERRA, Kathy. Head First Design Patterns.O'REILLY. 2004;
METSKER, Steven John. Padrões de Projeto em Java. Bookman. 2004;
MCCARTHY, Tim. .NET Domain-Driven Design with C#: Problem - Design - Solution. Wrox. 2008;
NILSSON, Jimmy. Applying Domain-Driven Design and Patterns: With Examples in C# and .NET.Addison-Wesley. 2006;
SITEFANE, João Pedro Manaças. Desenvolvimento de software centrado no domínio. Lisboa. Dissertação de Mestrado. 2007;
![Page 31: Domain-Driven Design - Aplicada a um estudo de caso](https://reader033.vdocuments.pub/reader033/viewer/2022052413/559ac6f41a28abd8138b4759/html5/thumbnails/31.jpg)