SlideShare uma empresa Scribd logo
1 de 25
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         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).
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
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
Frameworks que implementam NOP
Naked Object–MVC                  Sanssouci
.NET,web, proprietário            Java, desktop,documentação?,ativo?
www.nakedobjects.org              freshmeat.net/projects/sanssouci

JMatter                           Trails
Java, desktop, proprietário       Java, web, documentação?,ativo?
www.jmatter.org                   www.trailsframework.org

Apachi ISIS                       TrueView
Java, Open Source,em construção   .NET, proprietário,doc?,ativo?
incubator.apache.org/isis         www.evolving-software.co.uk

Entities                          Domain Object Explorer
Java, web, free                   Java, free, desktop, ativo?
entitiesframework.blogspot.com    java.net/projects/doe/pages/Home
Criticismo
Adequado para aplicativos soberanos[1], mas não para transientes[1][2]




                                      vs




                           [1]Aruana,2010 [1]Cooper,2007
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/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).
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).
Exemplos
View e Component:   Member:
                    nome
                    *dataDeModificacao
                    endereco.cidade.estado.sigla
                    endereco.buscarCEP()
                    aprovar()
                    dependentes<nome,parentesco>
                    Ctrl.Persistence.save()
O caso de uso Produto
Usando NOVL
Making of
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
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               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
Perguntas?




             “A simplicidade é o último
                  grau de sofisticação”
                    Leonardo da Vinci.

Mais conteúdo relacionado

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

Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetosPaulo Carvalho
 
Usability x Accessibility - 2008 (Portuguese, pt-BR)
Usability x Accessibility - 2008 (Portuguese, pt-BR)Usability x Accessibility - 2008 (Portuguese, pt-BR)
Usability x Accessibility - 2008 (Portuguese, pt-BR)Leo Abdala
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Douglas Roeder
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Arquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHArquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHHugo Ferreira
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoMarcius Brandão
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Fabrício Lopes Sanchez
 

Semelhante a NOVL - Naked Objects View Language - Apresentação InfoBrasil 2012 (20)

Básico de desenvolvimento com Android
Básico de desenvolvimento com AndroidBásico de desenvolvimento com Android
Básico de desenvolvimento com Android
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Aula 1
Aula 1Aula 1
Aula 1
 
Usability x Accessibility - 2008 (Portuguese, pt-BR)
Usability x Accessibility - 2008 (Portuguese, pt-BR)Usability x Accessibility - 2008 (Portuguese, pt-BR)
Usability x Accessibility - 2008 (Portuguese, pt-BR)
 
Fundamentos Java - 01
Fundamentos Java - 01Fundamentos Java - 01
Fundamentos Java - 01
 
Aula 1a.ppt
Aula 1a.pptAula 1a.ppt
Aula 1a.ppt
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Netbeans
NetbeansNetbeans
Netbeans
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Arquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHArquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BH
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
Microsoft .NET Framework
Microsoft .NET FrameworkMicrosoft .NET Framework
Microsoft .NET Framework
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
 

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

  • 1. Marcius Gomes Brandão (UECE) Mariela Inês Cortés (UECE) Ênyo J. T. Gonçalves (UFC)
  • 2. Agenda Introdução NOVL Estudo de caso Considerações finais
  • 3.
  • 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
  • 8. Frameworks que implementam NOP Naked Object–MVC Sanssouci .NET,web, proprietário Java, desktop,documentação?,ativo? www.nakedobjects.org freshmeat.net/projects/sanssouci JMatter Trails Java, desktop, proprietário Java, web, documentação?,ativo? www.jmatter.org www.trailsframework.org Apachi ISIS TrueView Java, Open Source,em construção .NET, proprietário,doc?,ativo? incubator.apache.org/isis www.evolving-software.co.uk Entities Domain Object Explorer Java, web, free Java, free, desktop, ativo? entitiesframework.blogspot.com java.net/projects/doe/pages/Home
  • 9. Criticismo Adequado para aplicativos soberanos[1], mas não para transientes[1][2] vs [1]Aruana,2010 [1]Cooper,2007
  • 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()
  • 17.
  • 18. O caso de uso Produto
  • 21.
  • 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

  1. 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.
  2. É ai que entra a NOVL...