SlideShare uma empresa Scribd logo
1 de 31
Marcius Gomes Brandão
Orientadora: Prof. Dra. Mariela Inés Cortés
Co-orientação : Prof. Msc. Ênyo J. T. Gonçalves
Introdução
      Por que Projetos de Software Falham?
60

50

40
                                                                Com Problemas
30
                                                                Sucesso

20                                                              Abortados


10

 0
     1994   1996   1998   2000   2002   2004   2006   2008

                                                             CHAOS Report 2009
Introdução
                      Mudanças são
                       inevitáveis                                  Porque Projetos de
                                                                      Softwares são
       Mudanças são
       consideradas
                                     Software não é
                                    construído, e sim
                                                                        diferentes!
          fáceis                       desenhado




                        Trabalho                Desenvolvimento
                       repetitivo é              de Software é
                      automatizado                  pesquisa




                                                        Melhores práticas   Experiência em
                Requisitos são
                                                           não estão         tecnologia é
                 incompletos
                                                            maduras           incompleta




   Software é                    Software é             Tecnologia muda      Tecnologia é
   Complexo                       Abstrato                rapidamente           vasta

                                                                                             Stepanek,2005
Introdução
         Maior
     complexidade
        esta na
     modelagem do
       domínio



                      Construir aplicações
                        corporativas é
                          complexo



     70% do código
          é de
     infraestrutura
Objetivos Motivação e Metodologia
  Framework com infraestrutura p/ o desenvolvimento focado no domínio.




• OO
•-prazo e -custo                      •Pesquisa exploratória
•-LoC                                 •Aplicação em projetos reais
•Rápido ciclo de desenvolvimento      •Estudos de caso
•-Custo de manutenção                 •Elaboração de artigos científicos
•+Qualidade
Domain-Driven Design (DDD)




“código que resolve problema de        Model-Driven Design
   domínio não se mistura com código            e
   que resolve problema de               domain patterns
   software” NILSSON(2006).
Naked Objects Pattern (NOP)
   “Porque implementar n camadas se você precisa
    implementar apenas uma!” (www.nakedobject.com)‫‏‬




 Pra que desenvolver   Modele seu negócio   e o NOP crias as outras
    n camadas?                               camadas pra você
Princípios NOP

Completude comportamental

 Único ponto de definição :
      Domain Model

    GUI 100% geradas
    automaticamente

Implementação genérica de
        serviços
Arquitetura NOP x 4-camadas




   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 propagar    automaticamente para a interface do
 essas alterações manualmente para as   usuário e as camadas de persistência
  outras três camadas (LÄUFER,2008).              (PAWSON,2008).
Frameworks que implementam NOP
                                  Sanssouci
Naked Object–MVC
                                  Java, desktop,documentação?,ativo?
.NET,web, proprietário            freshmeat.net/projects/sanssouci
www.nakedobjects.org
                                  Trails
                                  Java, web, documentação?,ativo?
JMatter                           www.trailsframework.org
Java, desktop, proprietário
                                  TrueView
www.jmatter.org
                                  .NET, proprietário,doc?,ativo?
                                  www.evolving-software.co.uk
Apachi ISIS
                                  Domain Object Explorer
Java, Open Source,em construção
                                  Java, free, desktop, ativo?
incubator.apache.org/isis         java.net/projects/doe/pages/Home
Criticismo aos frameworks
A usabilidade e a aplicabilidade das OOUI principalmente para web.
Criticismo aos frameworks
Adequados para aplicações “soberanas” não para “transientes”(Raja,2010)
Criticismo aos frameworks
Interfaces 1:1 “não-personalizáveis” (Pawson,2010)




                                    vs
Criticismo aos frameworks
                             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
Arquitetura e estrutura
NOVL
Linguagem de descrição de layout
que especifica a forma da interface e
não a implementação


Baseada no Layout Grid
Utiliza texto simples
Independente de tecnologia
Rápido aprendizado
Definição EBNF da NOVL
NOVL : Diagrama de sintaxes
O caso de uso Produto
Usando NOVL
Artigos produzidos
“Naked Objects View Language”   “Entities – Um framework baseado em
InfoBrasil 2012                 Naked Objects para o Desenvolvimento de
                                aplicações Web Transiente”
                                SBES 2012

                                “Entities – A framework Based on Naked
                                Objects for the Development of Transient
                                Web applications”

                                “NOVL – A language of Layout for
                                Naked Objects”
                                OOPSLA 2012
Cronograma
          Atividades x Meses         Maio   Junho   Julho   Agosto   Setembro


 Estudo aprofundado dos trabalhos
           relacionados


 Desenvolvimento do estudo de caso


  Desenvolvimento do framework


       Escrita da dissertação


       Defesa da dissertação
Principais Referências Bibliográficas
Evans, Eric. Domain
                       Domain Driven Design
Driven       Design.
                       using Naked Objects
Addison – Wesley,
                       Dan Haywood,
2004.
                       Pragmatic Bookshelf
                       2009



   Naked Objects
Richard Pawson and     About Face
 Robert Matthews,      Alan Cooper,
    Wiley 2002         Wiley Publishing 2007
Perguntas?




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

Mais conteúdo relacionado

Semelhante a Por que Projetos de Software Falham

Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013André Borgonovo
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Felipe Nascimento
 
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropMaurício Linhares
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkGiuseppe Lopes
 
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
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven DesignAndré Borgonovo
 
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
 
Teched Brasil 2005 - A Metodologia MSF Agile e o Visual Studio Team System
Teched Brasil 2005 -  A Metodologia MSF Agile e o Visual Studio Team SystemTeched Brasil 2005 -  A Metodologia MSF Agile e o Visual Studio Team System
Teched Brasil 2005 - A Metodologia MSF Agile e o Visual Studio Team SystemFábio Câmara
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...iMasters
 
Guia para o Profissional Java
Guia para o Profissional JavaGuia para o Profissional Java
Guia para o Profissional Javaarmeniocardoso
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012Luís Cobucci
 
Apresentação Estágio UDESC
Apresentação Estágio UDESCApresentação Estágio UDESC
Apresentação Estágio UDESCMarcos Ferreira
 

Semelhante a Por que Projetos de Software Falham (20)

Aula 1
Aula 1Aula 1
Aula 1
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
 
Titanium appacelerator
Titanium appaceleratorTitanium appacelerator
Titanium appacelerator
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
 
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do framework
 
Fundamentos Java - 01
Fundamentos Java - 01Fundamentos Java - 01
Fundamentos Java - 01
 
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
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 
Aula 1a.ppt
Aula 1a.pptAula 1a.ppt
Aula 1a.ppt
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven Design
 
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
 
Teched Brasil 2005 - A Metodologia MSF Agile e o Visual Studio Team System
Teched Brasil 2005 -  A Metodologia MSF Agile e o Visual Studio Team SystemTeched Brasil 2005 -  A Metodologia MSF Agile e o Visual Studio Team System
Teched Brasil 2005 - A Metodologia MSF Agile e o Visual Studio Team System
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
Guia para o Profissional Java
Guia para o Profissional JavaGuia para o Profissional Java
Guia para o Profissional Java
 
DDD e PHP - TDC 2012
DDD e PHP - TDC 2012DDD e PHP - TDC 2012
DDD e PHP - TDC 2012
 
Apresentação Estágio UDESC
Apresentação Estágio UDESCApresentação Estágio UDESC
Apresentação Estágio UDESC
 

Por que Projetos de Software Falham

  • 1. Marcius Gomes Brandão Orientadora: Prof. Dra. Mariela Inés Cortés Co-orientação : Prof. Msc. Ênyo J. T. Gonçalves
  • 2.
  • 3. Introdução Por que Projetos de Software Falham? 60 50 40 Com Problemas 30 Sucesso 20 Abortados 10 0 1994 1996 1998 2000 2002 2004 2006 2008 CHAOS Report 2009
  • 4. Introdução Mudanças são inevitáveis Porque Projetos de Softwares são Mudanças são consideradas Software não é construído, e sim diferentes! fáceis desenhado Trabalho Desenvolvimento repetitivo é de Software é automatizado pesquisa Melhores práticas Experiência em Requisitos são não estão tecnologia é incompletos maduras incompleta Software é Software é Tecnologia muda Tecnologia é Complexo Abstrato rapidamente vasta Stepanek,2005
  • 5. Introdução Maior complexidade esta na modelagem do domínio Construir aplicações corporativas é complexo 70% do código é de infraestrutura
  • 6. Objetivos Motivação e Metodologia Framework com infraestrutura p/ o desenvolvimento focado no domínio. • OO •-prazo e -custo •Pesquisa exploratória •-LoC •Aplicação em projetos reais •Rápido ciclo de desenvolvimento •Estudos de caso •-Custo de manutenção •Elaboração de artigos científicos •+Qualidade
  • 7.
  • 8. Domain-Driven Design (DDD) “código que resolve problema de Model-Driven Design domínio não se mistura com código e que resolve problema de domain patterns software” NILSSON(2006).
  • 9. Naked Objects Pattern (NOP)  “Porque implementar n camadas se você precisa implementar apenas uma!” (www.nakedobject.com)‫‏‬ Pra que desenvolver Modele seu negócio e o NOP crias as outras n camadas? camadas pra você
  • 10. Princípios NOP Completude comportamental Único ponto de definição : Domain Model GUI 100% geradas automaticamente Implementação genérica de serviços
  • 11. Arquitetura NOP x 4-camadas 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 propagar automaticamente para a interface do essas alterações manualmente para as usuário e as camadas de persistência outras três camadas (LÄUFER,2008). (PAWSON,2008).
  • 12.
  • 13. Frameworks que implementam NOP Sanssouci Naked Object–MVC Java, desktop,documentação?,ativo? .NET,web, proprietário freshmeat.net/projects/sanssouci www.nakedobjects.org Trails Java, web, documentação?,ativo? JMatter www.trailsframework.org Java, desktop, proprietário TrueView www.jmatter.org .NET, proprietário,doc?,ativo? www.evolving-software.co.uk Apachi ISIS Domain Object Explorer Java, Open Source,em construção Java, free, desktop, ativo? incubator.apache.org/isis java.net/projects/doe/pages/Home
  • 14. Criticismo aos frameworks A usabilidade e a aplicabilidade das OOUI principalmente para web.
  • 15. Criticismo aos frameworks Adequados para aplicações “soberanas” não para “transientes”(Raja,2010)
  • 16. Criticismo aos frameworks Interfaces 1:1 “não-personalizáveis” (Pawson,2010) vs
  • 17. Criticismo aos frameworks 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
  • 18.
  • 19.
  • 21.
  • 22. NOVL Linguagem de descrição de layout que especifica a forma da interface e não a implementação Baseada no Layout Grid Utiliza texto simples Independente de tecnologia Rápido aprendizado
  • 24. NOVL : Diagrama de sintaxes
  • 25. O caso de uso Produto
  • 27.
  • 28. Artigos produzidos “Naked Objects View Language” “Entities – Um framework baseado em InfoBrasil 2012 Naked Objects para o Desenvolvimento de aplicações Web Transiente” SBES 2012 “Entities – A framework Based on Naked Objects for the Development of Transient Web applications” “NOVL – A language of Layout for Naked Objects” OOPSLA 2012
  • 29. Cronograma Atividades x Meses Maio Junho Julho Agosto Setembro Estudo aprofundado dos trabalhos relacionados Desenvolvimento do estudo de caso Desenvolvimento do framework Escrita da dissertação Defesa da dissertação
  • 30. Principais Referências Bibliográficas Evans, Eric. Domain Domain Driven Design Driven Design. using Naked Objects Addison – Wesley, Dan Haywood, 2004. Pragmatic Bookshelf 2009 Naked Objects Richard Pawson and About Face Robert Matthews, Alan Cooper, Wiley 2002 Wiley Publishing 2007
  • 31. Perguntas? “A simplicidade é o último grau de sofisticação” Leonardo da Vinci.