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

Post on 09-Jul-2015

1754 Views

Category:

Technology

8 Downloads

Preview:

Click to see full reader

Transcript

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.

top related