SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
Refatorando o software
      corporativo

       Rafael Chaves
    Abstratt Technologies
     http://abstratt.com
      twitter: @abstratt
Software corporativo

Conhecimento do negócio + Tecnologia
Definindo dois universos diferentes
Conhecimento do negócio
 ● entendimento do domínio do problema (jurídico, obras, ...)
 ● necessidades dos clientes (o que é ou não importante)
 ● como atendê-las (solução conceitual)

Tecnologia
 ● interface com usuário (HTML, Swing, WinForms)
 ● middleware (SOAP, REST, CORBA, JMS, sockets)
 ● gerenciamento de dados (SQL, No-SQL, prevalence)
 ● linguagens de programação (Java, Delphi, RoR, PL-SQL)
 ● ambiente operacional (hardware, SO, rede etc)
 ● paralelismo, transações, distribuição, logging,
   auditing, síncrono vs. assíncrono, local vs. remoto, ativo
   vs. passivo...
Comparando dois universos diferentes

Conhecimento do negócio
 ● a essência do valor da solução (o "fim")
 ● diferencial competitivo
 ● independente de tecnologia
 ● estabilidade: variável, mesmo que domínio

Tecnologia
 ● custo de se construir solução concreta (o "meio")
 ● não é diferencial competitivo significativo (commodity)
 ● independente de domínio
 ● trivial, bem compreendida, padronizada, repetitiva
 ● estabilidade: volátil (um a dois anos)
Cenário típico
 ● requisitos espalhados, em forma não estruturada, imprecisa,
   incompleta (documento Word, wiki, sistema de tickets, emails)

 ● solução conceitual em modelos UML
   imprecisos/incompletos/desatualizados ou perdida no código

 ● solução conceitual só pode ser validada após construção

 ● mudanças de natureza conceitual requerem muito esforço para se
   identificar a "intenção" do código existente

 ● mudanças de natureza técnica têm grande impacto na aplicação
   (afetam vários artefatos), normalmente feitas parcialmente

 ● inconsistência impera

                            Checkpoint
Problema

          Negócio e Tecnologia
  têm natureza completamente diferentes.




 As necessidades do negócio e da tecnologia
 requerem tratamento distinto e separado.
Solução
● solução conceitual é completamente definida antes da
  implementação

● linguagem própria para solução conceitual (nível de
  abstração mais adequado, independência de tecnologia)

● testes de unidade e aceitação definidos no nível
  conceitual (codificação precisa dos requisitos)

● avaliação de solução conceitual via protótipo (comunicação
  entre stakeholders técnicos e do negócio)

● estratégias de implementação definidas como
  mapeamentos automáticos (reuso de decisões técnicas,
  agilidade na evolução da arquitetura)
Demo
Referências

Blog
http://abstratt.com/blog/category/editorial/

AlphaSimple
http://alphasimple.com/

Lista de ferramentas com suporte a xUML
http://modeling-languages.com/list-of-executable-uml-tools/

Weitere ähnliche Inhalte

Andere mochten auch

AlphaSimple product pitch
AlphaSimple product pitchAlphaSimple product pitch
AlphaSimple product pitchRafael Chaves
 
Separando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestãoSeparando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestãoRafael Chaves
 
11 Dogmas of model driven development
11 Dogmas of model driven development11 Dogmas of model driven development
11 Dogmas of model driven developmentRafael Chaves
 
MDD with Executable UML Models
MDD with Executable UML ModelsMDD with Executable UML Models
MDD with Executable UML ModelsRafael Chaves
 
Model Driven Prototyping
Model Driven PrototypingModel Driven Prototyping
Model Driven PrototypingRafael Chaves
 

Andere mochten auch (7)

AlphaSimple product pitch
AlphaSimple product pitchAlphaSimple product pitch
AlphaSimple product pitch
 
Code generation
Code generationCode generation
Code generation
 
Separando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestãoSeparando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestão
 
11 Dogmas of model driven development
11 Dogmas of model driven development11 Dogmas of model driven development
11 Dogmas of model driven development
 
MDD with Executable UML Models
MDD with Executable UML ModelsMDD with Executable UML Models
MDD with Executable UML Models
 
TextUML Toolkit
TextUML ToolkitTextUML Toolkit
TextUML Toolkit
 
Model Driven Prototyping
Model Driven PrototypingModel Driven Prototyping
Model Driven Prototyping
 

Ähnlich wie Refatorando o software corporativo

CurriculumVitae_VictorXavier
CurriculumVitae_VictorXavierCurriculumVitae_VictorXavier
CurriculumVitae_VictorXavierVictor Xavier
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdfDouglas Siviotti
 
Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)
Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)
Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)Luciano Condé
 
Visao geraldorup 20slides
Visao geraldorup 20slidesVisao geraldorup 20slides
Visao geraldorup 20slideshoraciosila
 
Currículo Fernanda Paulo Ramos - Nov/2013
Currículo Fernanda Paulo Ramos - Nov/2013Currículo Fernanda Paulo Ramos - Nov/2013
Currículo Fernanda Paulo Ramos - Nov/2013Fernanda Paulo Ramos
 
DDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaDDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaGraziella Bonizi
 
CV-MARCOS_LUCAS_RONCHI_MENDES__16a-v0.2
CV-MARCOS_LUCAS_RONCHI_MENDES__16a-v0.2CV-MARCOS_LUCAS_RONCHI_MENDES__16a-v0.2
CV-MARCOS_LUCAS_RONCHI_MENDES__16a-v0.2Marcos Mendes
 
CV - Andre De Conto Matter
CV - Andre De Conto MatterCV - Andre De Conto Matter
CV - Andre De Conto MatterAndre Matter
 
Cv Carlos Nunes Pt Br
Cv Carlos Nunes Pt BrCv Carlos Nunes Pt Br
Cv Carlos Nunes Pt Brguesta120fa80
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Camilla Gomes
 
CV Jorge Ramos Dez 2008
CV Jorge Ramos Dez 2008CV Jorge Ramos Dez 2008
CV Jorge Ramos Dez 2008Jorge Ramos
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareFábio Nogueira de Lucena
 

Ähnlich wie Refatorando o software corporativo (20)

CurriculumVitae_VictorXavier
CurriculumVitae_VictorXavierCurriculumVitae_VictorXavier
CurriculumVitae_VictorXavier
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdf
 
Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)
Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)
Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)
 
Visao geraldorup 20slides
Visao geraldorup 20slidesVisao geraldorup 20slides
Visao geraldorup 20slides
 
20141128-Carlos-Eduardo-Capparelli
20141128-Carlos-Eduardo-Capparelli20141128-Carlos-Eduardo-Capparelli
20141128-Carlos-Eduardo-Capparelli
 
Currículo Fernanda Paulo Ramos - Nov/2013
Currículo Fernanda Paulo Ramos - Nov/2013Currículo Fernanda Paulo Ramos - Nov/2013
Currículo Fernanda Paulo Ramos - Nov/2013
 
DDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaDDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquitetura
 
CV-MARCOS_LUCAS_RONCHI_MENDES__16a-v0.2
CV-MARCOS_LUCAS_RONCHI_MENDES__16a-v0.2CV-MARCOS_LUCAS_RONCHI_MENDES__16a-v0.2
CV-MARCOS_LUCAS_RONCHI_MENDES__16a-v0.2
 
Aula1 Apresentacao TEES
Aula1 Apresentacao TEESAula1 Apresentacao TEES
Aula1 Apresentacao TEES
 
CV - Andre De Conto Matter
CV - Andre De Conto MatterCV - Andre De Conto Matter
CV - Andre De Conto Matter
 
CV Alexandre R. de Castro
CV Alexandre R. de CastroCV Alexandre R. de Castro
CV Alexandre R. de Castro
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
Quem quer ser um arquiteto?
Quem quer ser um arquiteto?Quem quer ser um arquiteto?
Quem quer ser um arquiteto?
 
Cv Carlos Nunes Pt Br
Cv Carlos Nunes Pt BrCv Carlos Nunes Pt Br
Cv Carlos Nunes Pt Br
 
Aula1 dia 22 02 2022.pdf
Aula1  dia 22 02 2022.pdfAula1  dia 22 02 2022.pdf
Aula1 dia 22 02 2022.pdf
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9
 
CV Jorge Ramos Dez 2008
CV Jorge Ramos Dez 2008CV Jorge Ramos Dez 2008
CV Jorge Ramos Dez 2008
 
ArquiteturaSoftware
ArquiteturaSoftwareArquiteturaSoftware
ArquiteturaSoftware
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de software
 

Refatorando o software corporativo

  • 1. Refatorando o software corporativo Rafael Chaves Abstratt Technologies http://abstratt.com twitter: @abstratt
  • 2. Software corporativo Conhecimento do negócio + Tecnologia
  • 3. Definindo dois universos diferentes Conhecimento do negócio ● entendimento do domínio do problema (jurídico, obras, ...) ● necessidades dos clientes (o que é ou não importante) ● como atendê-las (solução conceitual) Tecnologia ● interface com usuário (HTML, Swing, WinForms) ● middleware (SOAP, REST, CORBA, JMS, sockets) ● gerenciamento de dados (SQL, No-SQL, prevalence) ● linguagens de programação (Java, Delphi, RoR, PL-SQL) ● ambiente operacional (hardware, SO, rede etc) ● paralelismo, transações, distribuição, logging, auditing, síncrono vs. assíncrono, local vs. remoto, ativo vs. passivo...
  • 4. Comparando dois universos diferentes Conhecimento do negócio ● a essência do valor da solução (o "fim") ● diferencial competitivo ● independente de tecnologia ● estabilidade: variável, mesmo que domínio Tecnologia ● custo de se construir solução concreta (o "meio") ● não é diferencial competitivo significativo (commodity) ● independente de domínio ● trivial, bem compreendida, padronizada, repetitiva ● estabilidade: volátil (um a dois anos)
  • 5. Cenário típico ● requisitos espalhados, em forma não estruturada, imprecisa, incompleta (documento Word, wiki, sistema de tickets, emails) ● solução conceitual em modelos UML imprecisos/incompletos/desatualizados ou perdida no código ● solução conceitual só pode ser validada após construção ● mudanças de natureza conceitual requerem muito esforço para se identificar a "intenção" do código existente ● mudanças de natureza técnica têm grande impacto na aplicação (afetam vários artefatos), normalmente feitas parcialmente ● inconsistência impera Checkpoint
  • 6. Problema Negócio e Tecnologia têm natureza completamente diferentes. As necessidades do negócio e da tecnologia requerem tratamento distinto e separado.
  • 7. Solução ● solução conceitual é completamente definida antes da implementação ● linguagem própria para solução conceitual (nível de abstração mais adequado, independência de tecnologia) ● testes de unidade e aceitação definidos no nível conceitual (codificação precisa dos requisitos) ● avaliação de solução conceitual via protótipo (comunicação entre stakeholders técnicos e do negócio) ● estratégias de implementação definidas como mapeamentos automáticos (reuso de decisões técnicas, agilidade na evolução da arquitetura)
  • 9. Referências Blog http://abstratt.com/blog/category/editorial/ AlphaSimple http://alphasimple.com/ Lista de ferramentas com suporte a xUML http://modeling-languages.com/list-of-executable-uml-tools/