Domain-Driven Design - Aplicada a um estudo de caso

Preview:

DESCRIPTION

Apresentação realizada com o objetivo de conclusão de curso - SI.Equipe: Danillo, Fábio, Ricardo(orientador) e Eu!!

Citation preview

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

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

Falha na comunicação

Domínios complexos

Alto acoplamento

Baixa coesão

Conjunto de práticas

Ideal para domínios complexos

Desenvolvimento centrado no domínio

Linguagem onipresente

Comunicação em torno do domínio

Manutenção da linguagem

Modelo do domínio expressado no software

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).

Anti-padrão

Criado a partir das conversas dos desenvolvedores com os especialistas de domínio.

Representado diretamente no código.

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.

Somente transporta informações

Não possui identificação única

Imutável

Possuem somente métodos de acesso

Coordenam os trabalhos dos objetos do domínio

Aplicação

Domínio

Infra-estrutura

Fonte: Imagem extraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 123).

Início do ciclo de vida

Criação de objetos complexos e agregações

Encapsula complexidade

Fonte: Imagem extraída e adaptada do livro, Domain-Driven Design: Tackling Complexity in the Heart of Software, Evans (2004, p. 65).

Requisitos do projeto

Estrutura do projeto

Camada do domínio

“ 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 . ”

A Comunicação

A linguagem onipresente

Desenvolvimento centrado no domínio

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;

Recommended