O documento apresenta a NOVL, uma linguagem de descrição de layout para o padrão Naked Objects que permite personalizar interfaces de usuário de forma simples utilizando texto em vez de estruturas complexas como Swing ou XML. A linguagem se baseia em grades para layout e possui exemplos, diagramas e definição formal de sua sintaxe. Trabalhos futuros incluem implementação de referência e avaliação da linguagem.
4. Introdução
Tempo é dinheiro
O mercado é competitivo
Necessidade de ferramentas de alta
produtividade
Mais e mais sistemas sendo
desenvolvidos com abordagem
orientada a objetos
(TIOBE.COM,2012)
5. Naked Objects Pattern
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 automaticamente para a interface do
propagar essas alterações usuário e as camadas de persistência
manualmente para as outras três (PAWSON,2008).
camadas (LÄUFER,2008).
6. Princípios do Naked Objects Pattern
Toda a lógica de negócio deve
ser encapsulada nos objetos
de domínio
A interface de usuário deve
refletir completamente os
objetos de domínio
a criação da interface de Muitos dos serviços exigidos
usuário deve ser inteiramente pelas aplicações de negócios
automatizada a partir dos podem ser implementadas
objetos de domínio genericamente
PAWSON,2002
7. Vantagens do Naked Objects
Grande
agilidade
O usuário é um
Rápido solucionador Interface de
ciclo de de problemas e usuários
desenvolvi não um mais
mento seguidor de poderosa
processos
Fácil análise
de requisitos
ARUANA,2010
10. 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
11.
12. NOVL
É uma linguagem de descrição de
layout para o padrão Naked Objects.
Seu objetivo é de personalizar as
interfaces de usuário de forma
simples e rápida utilizando texto
simples no lugar de estruturas mais
sofisticadas como
SWING, CSS, XML, HTML, etc.
13. A base da NOVL : Layout Grid
Um esquema em grade é uma das
mais poderosas ferramentas
disponíveis para o projetista
visual, pois fornece uma estrutura
uniforme e consistente para a criação
de uma interface com vários níveis de
complexidade visual ou funcional.
Uma grade bem projetada melhora o
apelo estético, a legibilidade e
usabilidade da tela, cria uma sensação
de ordem e deixa o usuário confortável
e predisposto a interagir com o
produto.
COOPER,2007
14. Definição EBNF da NOVL
A Extended Backus–Naur Form (ISO/IEC
14977) é uma meta-linguagem utilizada
para expressar e definir de maneira
formal e matematicamente a sintaxe de
uma linguagem não apenas de
programação de computador, mas para
definições formais.
A maioria dos padrões de linguagem de
programação usa alguma variante da
EBNF para definir a gramática da língua,
possibilitando a construção de
compiladores porque o analisador para o
compilador pode ser gerado
automaticamente com um compilador de
compilador comoYACC (Levine,1992).
15. Diagrama de sintaxes
Diagrama de Sintaxe é uma alternativa
gráfica para EBNF. Diagramas de sintaxe
são mais facilmente compreendidos pela
maioria das pessoas, uma vez que
permitem a exposição concisa e lúcida de
uma sintaxe de forma rigorosa, porém
amigável (Watt,1990).
16. Exemplos
View e Component: Member:
nome
*dataDeModificacao
endereco.cidade.estado.sigla
endereco.buscarCEP()
aprovar()
dependentes<nome,parentesco>
Ctrl.Persistence.save()
22. Contribuições do trabalho
Eliminação dos principais Por diferenciar-se de outras
limitadores da utilização linguagens de interface no
do padrão Naked Objects: sentido em que ela
• Interfaces de usuário especifica a forma da
personalizadas interface e não o caminho
• Múltiplas visões por objeto
para chegar a ela:
do domínio • Independência de tecnologia
• Uso SEM editores visuais de UI
• Foco apenas no domínio
• Ciclo de aprendizado reduzido
• Não invalida o padrão
• Manutenção facilitada
• Despreocupação da
implementação da UI
23. Trabalhos futuros
Implementação de
referência
(Swing, JSF, HTML, ...)
Utilização da linguagem
em algum framework NOP
Avaliação e extensão da
linguagem para abordar
outros aspectos das GUI
24. Referências Bibliográficas
Aruna Raja and Devika Lakshmanan, "Naked Objects Richard Pawson's Thesis
Framework," International Journal of Computer
Applications, vol. I, no. 20, 2010. incubator.apache.org/isis/Pawson-Naked-Objects-thesis.pdf
Richard Pawson and Robert Matthews, Naked Objects.
New York: Wiley, 2002 Naked Objects
Richard Pawson and
Richard Pawson, Naked Objects, Phd thesis. Dublin: Trinity Robert Matthews,
College, 2004.
Wiley 2002
Alan Cooper, Robert Reimann, and David Cronin, About
Face 3 : The Essentials of Interaction Design. Indianapolis: Versão free on-line:
Wiley Publishing, Inc., 2007.
www.nakedobjects.org/book
Internet
Domain Driven Design
using Naked Objects
Dan
Haywood, Pragmatic
Bookshelf 2009
25. Perguntas?
“A simplicidade é o último
grau de sofisticação”
Leonardo da Vinci.
Notas do Editor
Arquitetura padrão em 4-camadasO problema é que os requisitos do sistema são alvos em movimento: quando os requisitos mudam, geralmente temos que fazer mudanças nos objetos de domínio ou adicionar novas capacidades de serviço. Temos, então, que propagar essas alterações manualmente para as outras três camadas (LÄUFER,2008).Arquitetura Naked ObjectsAlterações nos objetos de domínio se propagam automaticamente para a interface do usuário e para a camada de persistência.