Upload
marcius-brandao
View
1.755
Download
8
Embed Size (px)
Citation preview
Marcius Gomes Brandão (UECE)
Mariela Inês Cortés (UECE)
Ênyo J. T. Gonçalves (UFC)
Agenda
Introdução
NOVL
Estudo de caso
Considerações finais
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)
Naked Objects Pattern
Arquitetura padrão em 4-camadas Arquitetura com Naked Objects
O problema : quando os requisitos
mudam, geralmente temos que
propagar essas alterações
manualmente para as outras três
camadas (LÄUFER,2008).
Alterações no domínio se propagam
automaticamente para a interface do
usuário e as camadas de persistência
(PAWSON,2008).
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 usuário deve ser inteiramente
automatizada a partir dos objetos de domínio
PAWSON,2002
Muitos dos serviços exigidospelas aplicações de negóciospodem ser implementadas
genericamente
Vantagens do Naked Objects
ARUANA,2010
O usuário é um solucionador
de problemas e não um
seguidor de processos
Grande agilidade
Interface de usuários
mais poderosa
Fácil análise de requisitos
Rápido ciclo de
desenvolvimento
Frameworks que implementam NOP
Naked Object–MVC
.NET,web, proprietário
www.nakedobjects.org
JMatter
Java, desktop, proprietário
www.jmatter.org
Apachi ISIS
Java, Open Source,em construção
incubator.apache.org/isis
Entities
Java, web, free
entitiesframework.blogspot.com
Sanssouci
Java, desktop,documentação?,ativo?
freshmeat.net/projects/sanssouci
Trails
Java, web, documentação?,ativo?
www.trailsframework.org
TrueView
.NET, proprietário,doc?,ativo?
www.evolving-software.co.uk
Domain Object Explorer
Java, free, desktop, ativo?
java.net/projects/doe/pages/Home
CriticismoAdequado para aplicativos soberanos[1], mas não para transientes[1][2]
[1]Aruana,2010 [1]Cooper,2007
vs
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
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.
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
Definição EBNF da NOVL
A Extended Backus–Naur Form (ISO/IEC14977) é uma meta-linguagem utilizadapara expressar e definir de maneiraformal e matematicamente a sintaxe deuma linguagem não apenas deprogramação de computador, mas paradefinições formais.
A maioria dos padrões de linguagem deprogramação usa alguma variante daEBNF para definir a gramática da língua,possibilitando a construção decompiladores porque o analisador para ocompilador pode ser geradoautomaticamente com um compilador decompilador comoYACC (Levine,1992).
Diagrama de sintaxes
Diagrama de Sintaxe é uma alternativagráfica para EBNF. Diagramas de sintaxesão mais facilmente compreendidos pelamaioria das pessoas, uma vez quepermitem a exposição concisa e lúcida deuma sintaxe de forma rigorosa, porémamigável (Watt,1990).
Exemplos
Member:
nome
*dataDeModificacao
endereco.cidade.estado.sigla
endereco.buscarCEP()
aprovar()
dependentes<nome,parentesco>
Ctrl.Persistence.save()
View e Component:
O caso de uso Produto
Usando NOVL
Making of
Contribuições do trabalho
Por diferenciar-se de outras linguagens de interface no sentido em que ela especifica a forma da interface e não o caminho para chegar a ela:• Independência de tecnologia
• Uso SEM editores visuais de UI
• Ciclo de aprendizado reduzido
• Manutenção facilitada
• Despreocupação da implementação da UI
Eliminação dos principais limitadores da utilização do padrão Naked Objects:• Interfaces de usuário
personalizadas
• Múltiplas visões por objeto do domínio
• Foco apenas no domínio
• Não invalida o padrão
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
Referências Bibliográficas
Aruna Raja and Devika Lakshmanan, "Naked Objects Framework," International Journal of ComputerApplications, vol. I, no. 20, 2010.
Richard Pawson and Robert Matthews, Naked Objects. New York: Wiley, 2002
Richard Pawson, Naked Objects, Phd thesis. Dublin: Trinity College, 2004.
Alan Cooper, Robert Reimann, and David Cronin, About Face 3 : The Essentials of Interaction Design. Indianapolis: Wiley Publishing, Inc., 2007.
Internet
Versão free on-line:
www.nakedobjects.org/book
Naked ObjectsRichard Pawson and
Robert Matthews, Wiley 2002
Domain Driven Design using Naked ObjectsDan Haywood, Pragmatic Bookshelf 2009
Richard Pawson's Thesisincubator.apache.org/isis/Pawson-Naked-Objects-thesis.pdf
Perguntas?
“A simplicidade é o último grau de sofisticação”
Leonardo da Vinci.