O documento discute os desafios no desenvolvimento de software e propõe abordagens para resolvê-los. É apresentado o Domain-Driven Design para focar no domínio do problema e o Naked Objects Pattern para automatizar a geração da interface do usuário. O autor também desenvolveu um framework e linguagem de layout chamados NOVL e Entities para implementar tais padrões de forma a superar limitações de outros frameworks existentes.
3. Introdução
Por que Projetos de Software Falham?
60
50
40
Com Problemas
30
Sucesso
20 Abortados
10
0
1994 1996 1998 2000 2002 2004 2006 2008
CHAOS Report 2009
4. Introdução
Mudanças são
inevitáveis Porque Projetos de
Softwares são
Mudanças são
consideradas
Software não é
construído, e sim
diferentes!
fáceis desenhado
Trabalho Desenvolvimento
repetitivo é de Software é
automatizado pesquisa
Melhores práticas Experiência em
Requisitos são
não estão tecnologia é
incompletos
maduras incompleta
Software é Software é Tecnologia muda Tecnologia é
Complexo Abstrato rapidamente vasta
Stepanek,2005
5. Introdução
Maior
complexidade
esta na
modelagem do
domínio
Construir aplicações
corporativas é
complexo
70% do código
é de
infraestrutura
6. Objetivos Motivação e Metodologia
Framework com infraestrutura p/ o desenvolvimento focado no domínio.
• OO
•-prazo e -custo •Pesquisa exploratória
•-LoC •Aplicação em projetos reais
•Rápido ciclo de desenvolvimento •Estudos de caso
•-Custo de manutenção •Elaboração de artigos científicos
•+Qualidade
7.
8. Domain-Driven Design (DDD)
“código que resolve problema de Model-Driven Design
domínio não se mistura com código e
que resolve problema de domain patterns
software” NILSSON(2006).
9. Naked Objects Pattern (NOP)
“Porque implementar n camadas se você precisa
implementar apenas uma!” (www.nakedobject.com)
Pra que desenvolver Modele seu negócio e o NOP crias as outras
n camadas? camadas pra você
11. Arquitetura NOP x 4-camadas
Arquitetura padrão em 4-camadas Arquitetura com Naked Objects
O problema : quando os requisitos Alterações no domínio se propagam
mudam, geralmente temos que propagar automaticamente para a interface do
essas alterações manualmente para as usuário e as camadas de persistência
outras três camadas (LÄUFER,2008). (PAWSON,2008).
17. Criticismo aos frameworks
Customização de UI
•Pouca ou nenhuma possibilidade de
customização das UI
•Codificação em Swing, CSS, XML, HTML
•Ferramentas de terceiros
A maioria fere o princípio NOP
a criação da interface de
usuário deve ser inteiramente
automatizada a partir dos
objetos de domínio
22. NOVL
Linguagem de descrição de layout
que especifica a forma da interface e
não a implementação
Baseada no Layout Grid
Utiliza texto simples
Independente de tecnologia
Rápido aprendizado
28. Artigos produzidos
“Naked Objects View Language” “Entities – Um framework baseado em
InfoBrasil 2012 Naked Objects para o Desenvolvimento de
aplicações Web Transiente”
SBES 2012
“Entities – A framework Based on Naked
Objects for the Development of Transient
Web applications”
“NOVL – A language of Layout for
Naked Objects”
OOPSLA 2012
29. Cronograma
Atividades x Meses Maio Junho Julho Agosto Setembro
Estudo aprofundado dos trabalhos
relacionados
Desenvolvimento do estudo de caso
Desenvolvimento do framework
Escrita da dissertação
Defesa da dissertação
30. Principais Referências Bibliográficas
Evans, Eric. Domain
Domain Driven Design
Driven Design.
using Naked Objects
Addison – Wesley,
Dan Haywood,
2004.
Pragmatic Bookshelf
2009
Naked Objects
Richard Pawson and About Face
Robert Matthews, Alan Cooper,
Wiley 2002 Wiley Publishing 2007
31. Perguntas?
“A simplicidade é o último
grau de sofisticação”
Leonardo da Vinci.