25
Marcius Gomes Brandão (UECE) Mariela Inês Cortés (UECE) Ênyo J. T. Gonçalves (UFC)

NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

Embed Size (px)

Citation preview

Page 1: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

Marcius Gomes Brandão (UECE)

Mariela Inês Cortés (UECE)

Ênyo J. T. Gonçalves (UFC)

Page 2: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

Agenda

Introdução

NOVL

Estudo de caso

Considerações finais

Page 3: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012
Page 4: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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)

Page 5: NOVL - Naked Objects View Language - Apresentação InfoBrasil 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).

Page 6: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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

Page 7: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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

Page 8: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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

Page 9: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

CriticismoAdequado para aplicativos soberanos[1], mas não para transientes[1][2]

[1]Aruana,2010 [1]Cooper,2007

vs

Page 10: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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

Page 11: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012
Page 12: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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.

Page 13: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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

Page 14: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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

Page 15: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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

Page 16: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

Exemplos

Member:

nome

*dataDeModificacao

endereco.cidade.estado.sigla

endereco.buscarCEP()

aprovar()

dependentes<nome,parentesco>

Ctrl.Persistence.save()

View e Component:

Page 17: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012
Page 18: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

O caso de uso Produto

Page 19: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

Usando NOVL

Page 20: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

Making of

Page 21: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012
Page 22: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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

Page 23: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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

Page 24: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

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

Page 25: NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012

Perguntas?

“A simplicidade é o último grau de sofisticação”

Leonardo da Vinci.