SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
A	
  importância	
  da	
  	
  
Arquitetura	
  de	
  So2ware	
  
       CEFET-­‐MG,	
  Março	
  de	
  2013	
  
                         	
  
       Adriano	
  de	
  Pinho	
  Tavares	
  
      adriano.tavares@gmail.com	
  
       h3p://adrianotavares.com	
  
                         	
  



                      hEp://pangeanet.org	
  
Agenda	
  

A	
  importância	
  da	
  arquitetura	
  de	
  so2ware	
  

O	
  Papel	
  do	
  arquiteto	
  de	
  so2ware	
  

Padrões	
  para	
  arquiteturas	
  de	
  so2ware	
  

Exemplo	
  didáOco	
  

Conclusões	
  
Arquitetura	
  como	
  o	
  elemento	
  central	
  no	
  desenvolvimento	
  de	
  so2ware	
  

A	
  IMPORTÂNCIA	
  DA	
  ARQUITETURA	
  
Toda	
  solução	
  tem	
  uma	
  arquitetura	
  
Toda	
  solução	
  tem	
  um	
  arquiteto	
  
A	
  arquitetura	
  não	
  é	
  apenas	
  uma	
  fase	
  
do	
  desenvolvimento	
  de	
  uma	
  solução	
  




           Quanto	
  maior	
  e	
  mais	
  complexo,	
  	
  
          maior	
  a	
  necessidade	
  de	
  arquitetar!	
  
Considerações	
  fundamentais	
  

                        1.	
  Todo	
  so2ware	
  tem	
  
                              uma	
  arquitetura	
  




      3.	
  Arquitetura	
  
      não	
  é	
  uma	
  fase	
                2.	
  Todo	
  so2ware	
  
      do	
  processo	
  de	
  	
               tem	
  pelo	
  menos	
  
     desenvolvimento	
                           um	
  arquiteto	
  
       do	
  so2ware	
  
Definição	
  de	
  Arquitetura	
  de	
  So2ware	
  



  “A	
  arquitetura	
  de	
  so2ware	
  de	
  um	
  sistema	
  
        é	
  o	
  conjunto	
  das	
  principais	
  decisões	
  
  técnicas	
  de	
  design	
  tomadas	
  a	
  respeito	
  do	
  
                           so2ware.”	
  
Exemplos	
  de	
  decisões	
  técnicas	
  
Tecnologia	
                                    Equipe	
                                  Estrutura	
  
• “O	
  So2ware	
  deve	
  ser	
                • “Para	
  este	
  projeto	
              • “Os	
  elementos	
  devem	
  estar	
  
  desenvolvido	
  em	
  Java	
  EE	
  com	
       precisaremos	
  de	
  um	
  Ome	
         organizados	
  em	
  camadas.”	
  
  banco	
  de	
  dados	
  Oracle.”	
              com	
  as	
  competências	
             • “Deve	
  ser	
  uOlizado	
  um	
  
                                                  técnicas	
  ABC.”	
                       barramento	
  de	
  integração."	
  



Comportamento	
                                 Interação	
                               Qualidade	
  interna	
  
• “O	
  processamento,	
                        • “A	
  comunicação	
  com	
  o	
  	
     • “Deve	
  haver	
  uma	
  replicação	
  
  armazenamento	
  e	
  consulta	
                back-­‐end	
  deve	
  ser	
               de	
  dados	
  entre	
  estes	
  dois	
  
  devem	
  ser	
  feitos	
                        assíncrona,	
  usando	
                   módulos	
  para	
  garanOr	
  a	
  
  sequencialmente.”	
                             noOficações	
  de	
  eventos.”	
           independência	
  entre	
  eles.”	
  



                                                Implementação	
  
                                                • “Os	
  componentes	
  da	
  
                                                  interface	
  com	
  o	
  usuário	
  
                                                  devem	
  ser	
  implementados	
  
                                                  usando	
  GWT.”	
  
A	
  experiência	
  do	
  arquiteto	
  	
  
                  influencia	
  as	
  decisões	
  
                            Experiência
                            do Arquiteto
Necessidades dos
envolvidos

Questões de gerenciamento
do negócio                  Atributos	
  de	
  
                             Qualidade	
  
Contratos e legislação

Pressão comercial /         Requisitos	
  
Competitiva                 De	
  Negócio	
        Arquitetura	
  


Ambiente técnico
                            Requisitos	
  
Questões políticas          Funcionais	
  
                                                   Sistema	
  
Questões de ciclo de vida
                                                         Sistema	
  

                                                               Sistema	
  
Arquitetura	
  é	
  o	
  elemento	
  central	
  	
  
              no	
  desenvolvimento	
  de	
  so2ware	
  
              Fornecem	
  	
            Metas	
  de	
  	
             DesOladas	
  em	
                 Condutores	
  
                                        Negócio	
                                                      Arquiteturais	
  

Envolvidos	
                                                          Conduzem	
  a	
  estrutura	
  da	
  
                                                                                                                             Refina	
  

                      Refina	
  

    DAS	
  
                 Descrita	
  pelo	
  
                                              Arquitetura                                       	
  
                                                                                                                 Acompanhamento	
  
                                                                  Base	
  para…	
                                  e	
  Supervisão	
  


 Plano	
         Plano	
                                                              Provas	
  de	
          Alocação	
     Releases	
  
                                  Plano	
  de	
                Desenho	
  
  de	
             de	
                                                               conceito	
                 da	
           do	
  
                                   Deploy	
                   detalhado	
  
Projeto	
        Testes	
                                                        (experimentos)	
              Equipe	
      Produto	
  
Metas	
  
                                                                                  Blocos	
  de	
  
                               Mecanismos	
                                      construção	
  


               Padrões	
                                                                             Preocupações	
  




Modelagem	
  e	
  
Documentação	
                                                                                                     Restrições	
  


                                                      DAS	
  	
  
                                           (Documento	
  de	
  
                                           Arquitetura	
  de	
                                                      Atributos	
  de	
  

                                                                          	
  
 Métodos	
                                                                                                           Qualidade	
  
                                             So=ware)


      Envolvidos	
                                                                                            Condutores	
  




                        Visões	
                                                             Requisitos	
  

                                         Provas	
  de	
  
                                         Conceito	
                     Riscos	
  
Deveres,	
  habilidades	
  e	
  conhecimento.	
  

O	
  PAPEL	
  DO	
  ARQUITETO	
  DE	
  
SOFTWARE	
  
Porque	
  todo	
  mundo	
  quer	
  ser	
  
           arquiteto?	
  
O	
  Papel	
  do	
  Arquiteto	
  de	
  So2ware	
  


                                         Deveres	
  

                Conhecimento	
  




                                   Habilidades	
  




              Arquiteto	
  de	
  So2ware	
  
Deveres	
                     Habilidades	
             Conhecimento	
  


     Arquitetar	
  	
             Comunicação	
                  Ciência	
  da	
  
                                                                computação	
  	
  

Outras	
  disciplinas	
  	
      Relacionamento	
  
da	
  Eng.	
  So2ware	
            interpessoal	
  	
  
                                                               Tecnologias	
  e	
  
                                                                plataformas	
  
Interação	
  com	
  os	
  
                                     Liderança	
  
   envolvidos	
  
                                                           Conhecimento	
  sobre	
  
                                                              o	
  contexto	
  da	
  
                                   Organização	
  	
        organização	
  onde	
  
 Gerenciamento	
  	
  
                                     Pessoal	
                      trabalha	
  	
  
So2-­‐Skills	
  essenciais	
  para	
  	
  
 Arquitetos	
  de	
  So2ware	
  
                     •  Negócios	
  
                          1.     PragmaOsmo	
  
                          2.     Visão	
  
                          3.     Conhecimento	
  de	
  negócios	
  
                          4.     Inovação	
  
                     •  Pessoais	
  
                          5.     Mudança	
  de	
  contexto	
  
                          6.     Transparência	
  
                          7.     Paixão	
  
                     •  Relacionamento	
  
                          8.     Liderança	
  
                          9.     PolíOcas	
  
                          10.    Comunicação	
  
                          11.    Comportamento	
  
                          12.    Negociação	
  
                     •  Técnicos	
  
Arquitetos	
  precisam	
  de	
  métodos	
  para	
  
        fazer	
  o	
  seu	
  trabalho	
  


   “Um	
  método	
  centrado	
  em	
  arquitetura	
  é	
  
    uma	
  abordagem	
  repexvel	
  para	
  fazer	
  a	
  
        ligação	
  entre	
  a	
  arquitetura	
  e	
  o	
  
           desenvolvimento	
  iteraOvo."            	
  
ACDM	
  
    •  Architec@ng	
  So=ware	
  
       Intensive	
  Systems:	
  A	
  
       Prac@@oner’s	
  Guide	
  

    •  Livro	
  sobre	
  o	
  ACDM	
  -­‐	
  
       Architecture	
  Centric	
  
       Development	
  Method	
  
Método	
  de	
  desenvolvimento	
  centrado	
  em	
  arquitetura	
  
       Requisitos,	
  restrições	
  e	
  	
                         1:	
  Descobrir	
  os	
  condutores	
  arquiteturais	
  
       atributos	
  de	
  qualidade	
  

     Condutores	
  arquiteturais	
  e	
  	
                         2:	
  Estabelecer	
  o	
  escopo	
  do	
  projeto	
  
      planejamento	
  preliminar	
  
                                                                    3:	
  Descrever	
  a	
  arquitetura	
  
     Visualizações	
  Arquiteturais	
  	
  
                                                                    4:	
  Revisar	
  a	
  arquitetura	
  
         Riscos	
  e	
  trade-­‐offs	
  
                                                                                                            7:	
  Executar	
  POCs	
  e	
  
                                            No-­‐Go	
                                                       Refinar	
  Arquitetura	
  
                                                            6:	
  Planejar	
  POCs	
  
               5:	
  Produzir	
  
                                                                                                               Relatório	
  de	
  POCs,	
  
                 decisão	
  
                                                                Plano	
  de	
  POCs	
                        Arquitetura	
  Refinada	
  e	
  
               (Go/NoGo)	
                                                                                     Planos	
  atualizados	
  
                                                                                                                                         Retorna	
  ao	
  
                                                                                                                                         estágio	
  apropriado	
  
                                     6:	
  Planejar	
  Desenvolvimento	
                             7:	
  Desenvolver	
                 e	
  itera	
  o	
  quanto	
  for	
  	
  
                          Go	
                                                                                                           necessário	
  

                                                Plano	
  de	
  Projeto	
  e	
  	
                   Desenho	
  detalhado	
  
                                                  Plano	
  de	
  Teste	
                               do	
  produto	
  
hEp://reports-­‐archive.adm.cs.cmu.edu/anon/isri2005/CMU-­‐ISRI-­‐05-­‐103.pdf	
  
O	
  Trabalho	
  de	
  um	
  arquiteto	
  não	
  é	
  fácil	
  
PADRÕES	
  PARA	
  ARQUITETURAS	
  DE	
  
SOFTWARE	
  
Padrões	
  para	
  Arquitetura	
  de	
  So2ware	
  




  “Arquitetos	
  experientes	
  procuram	
  aderir	
  a	
  princípios 	
  
  e	
  promover	
  boas	
  práOcas	
  de	
  design	
  usando	
  padrões
                                                                      	
  
  para	
   documentar	
   e	
   reuOlizar	
   soluções	
   em	
   novos
                                                                      	
  
  projetos	
  de	
  so2ware.”	
  
Padrões	
  de	
  desenho	
  SOA	
  
                  	
  
                  	
  
                  	
  
                  Catálogo	
  de	
  Padrões	
  para	
  SOA	
  
                  http://www.soapatterns.org/	
  
                  	
  
                  	
  
                  Livros	
  dobre	
  SOA	
  
                  http://www.soabooks.com/	
  
                  	
  
SOA	
  Reference	
  Architecture	
  
                  	
  
                  	
  
                  Arquitetura	
  de	
  
                  referência	
  SOA	
  do	
  	
  
                  The	
  Open	
  Group	
  
                  	
  
                  http://www.opengroup.org	
  
                  	
  
Camadas	
  SOA	
  
Padrões	
  para	
  Arquitetura	
  de	
  	
  
  Aplicações	
  CorporaOvas	
  

                      Catálogo	
  de	
  padrões	
  para	
  
                      aplicações	
  corporaOvas	
  
                      	
  
                      hEp://marOnfowler.com/eaaCatalog/	
  
Camadas	
  de	
  Arquitetura	
  de	
  Aplicações	
  CorporaOvas	
  	
  


             Camada	
  de	
  Apresentação	
  	
  

                 Camada	
  de	
  Negócios	
  	
  

                  Camada	
  de	
  Domínio	
  	
  

            Camada	
  de	
  Acesso	
  a	
  Dados	
  	
  

                  Serviços	
  de	
  Sistema	
  	
  
Padrões	
  para	
  Arquitetura	
  de	
  Aplicações	
  CorporaOvas	
  

Padrões	
  de	
  Lógica	
  de	
  domínio	
  
  • Modelo	
  de	
  Domínio	
  (Domain	
  Model),	
  o	
  Camada	
  de	
  Serviço	
  (Service	
  Layer);	
  

Padrões	
  de	
  Mapeamento	
  em	
  Metadados	
  
  • Mapeamento	
  em	
  metadados	
  (Metadata	
  Mapping),	
  o	
  Objeto	
  de	
  Pesquisa	
  (Query	
  Object);	
  

Padrões	
  Estruturais	
  Objeto-­‐Relacionas	
  
  • Campo	
  IdenOdade	
  (IdenOty	
  Field),	
  Mapeamento	
  de	
  Chave	
  Estrangeira	
  (Foreign	
  Key	
  Mapping),	
  
    Mapeamento	
  de	
  Tabela	
  AssociaOva	
  (AssociaOon	
  Table	
  Mapping);	
  

Padrões	
  Comportamentais	
  Objeto-­‐Relacionas	
  
  • Carga	
  Tardia	
  (Lazy	
  Load);	
  

Padrões	
  de	
  Apresentação	
  Web	
  
  • Modelo	
  Visão	
  Controlador	
  (Model	
  View	
  Controller);	
  

Padrões	
  de	
  Distribuição	
  
  • Fachada	
  Remota	
  (Remote	
  Facade),	
  Objeto	
  de	
  Transferência	
  de	
  dados	
  (Data	
  Transfer	
  Object).	
  	
  
Padrões	
  para	
  Integração	
  de	
  Aplicações	
  
                           •  Catálogo	
  de	
  65	
  padrões	
  
                              de	
  integração	
  baseados	
  
                              em	
  mensagens	
  

                           •  hEp://eaipaEerns.com/
                              toc.html	
  
Message	
  Bus	
  
Qual	
  arquitetura	
  permite	
  separar	
  aplicações	
  para	
  
trabar	
  juntas	
  mas	
  de	
  forma	
  desacoplada	
  para	
  que	
  
aplicações	
  sejam	
  facilmente	
  adicionadas	
  ou	
  
removidas	
  sem	
  afetar	
  as	
  outras?	
  




            hEp://www.eaipaEerns.com/MessageBus.html	
  
EXEMPLO	
  DIDÁTICO	
  
Meta	
  de	
  negócio	
  


A	
  empresa	
  ACME	
  quer	
  expandir	
  suas	
  vendas	
  
 e	
  para	
  isso	
  decidiu	
  abrir	
  um	
  novo	
  canal	
  de	
  
                       vendas	
  pela	
  Web.	
  
Desafios	
  da	
  arquitetura	
  
ü Capturar	
  os	
  condutores	
  arquiteturais;	
  
ü Selecionar	
  as	
  tecnologias	
  e	
  ferramentas;	
  
ü Desenhar	
  a	
  arquitetura	
  da	
  aplicação;	
  
ü GaranOr	
  a	
  qualidade	
  da	
  solução;	
  
ü Criar	
  a	
  arquitetura	
  executável	
  (Codificar).	
  
Condutores	
  arquiteturais	
  
ü Usar	
  uma	
  loja	
  virtual	
  de	
  mercado;	
  
ü Integrar	
  o	
  ERP	
  da	
  empresa	
  à	
  loja	
  virtual;	
  
ü UOlizar	
  tecnologias	
  Java	
  open-­‐source;	
  
ü Atributos	
  de	
  qualidade	
  
    –  Interoperabilidade;	
  
    –  Tolerância	
  a	
  Falhas;	
  
    –  Desempenho;	
  
    –  Escalabilidade.	
  
Proposta	
  de	
  plano	
  arquitetural	
  
                     preliminar	
  
ü Selecionar	
  fornecedor	
  de	
  loja	
  virtual	
  (POC);	
  
ü Desenhar	
  a	
  projeto	
  arquitetônico	
  para	
  solução	
  
   de	
  integração	
  entre	
  a	
  loja	
  virtual	
  e	
  o	
  ERP;	
  	
  
ü Definir	
  as	
  tecnologias	
  e	
  ferramentas;	
  
ü Dimensionar	
  o	
  Ome	
  e	
  as	
  competências	
  
   técnicas	
  necessárias	
  para	
  o	
  projeto;	
  
ü Desenvolver	
  um	
  protóOpo	
  para	
  validar	
  a	
  
   solução	
  (POC).	
  
Desenho:	
  Principal	
  EsOlo	
  Arquitetural	
  
                         ü Message	
  Bus	
  
                             –  O	
  objeOvo	
  de	
  introduzir	
  
                                um	
  barramento	
  de	
  
                                mensagens	
  é	
  estruturar	
  
                                um	
  middleware	
  de	
  
                                ligação	
  entre	
  a	
  loja	
  
                                virtual	
  e	
  o	
  ERP	
  para	
  
                                permiOr	
  que	
  eles	
  
                                operem	
  em	
  conjunto	
  de	
  
                                maneira	
  flexível	
  
                                uOlizando	
  mensagens.	
  
Plataforma	
  Tecnológica	
  	
  
ü Loja	
  virtual	
  	
  
     –  UOlizar	
  Plataforma	
  Magento;	
  
ü Integração	
  com	
  ERP	
  	
  
     –  UOlizar	
  plataforma	
  open-­‐source	
  baseada	
  em	
  Java;	
  
     –  Ferramentas	
  	
  
          •  IDE	
  -­‐	
  Eclipse;	
  	
  
          •  Message	
  Bus	
  -­‐	
  Apache	
  Camel	
  sobre	
  Apache	
  AcOveMQ;	
  
          •  Banco	
  de	
  dados	
  -­‐	
  MySQL.	
  
CONCLUSÃO	
  
Conclusões	
  
•  A	
  arquitetura	
  é	
  a	
  base	
  para	
  a	
  tomada	
  de	
  
   decisões	
  técnicas	
  em	
  um	
  projeto	
  de	
  
   software;	
  
•  A	
  arquitetura	
  é	
  um	
  aspecto	
  fundamental	
  
   durante	
  todo	
  o	
  ciclo	
  de	
  vida	
  de	
  um	
  
   software;	
  
•  Um	
  arquiteto	
  de	
  software	
  deve	
  se	
  
   desenvolver	
  em	
  aspectos	
  técnicos	
  e	
  
   pessoais.	
  
ParOcipe	
  da	
  rede	
  Pangea	
  
                hEp://pangeanet.org	
  




A	
  primeira	
  rede	
  social	
  sobre	
  arquitetura	
  de	
  so=ware	
  do	
  Brasil.	
  

Mais conteúdo relacionado

Mais procurados (20)

Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Rup
RupRup
Rup
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Ferramentas case
Ferramentas caseFerramentas case
Ferramentas case
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
Introdução à UML com Casos de Uso
Introdução à UML com Casos de UsoIntrodução à UML com Casos de Uso
Introdução à UML com Casos de Uso
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 
Eng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. RequisitosEng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. Requisitos
 
Engenharia de software para Web
Engenharia de software para WebEngenharia de software para Web
Engenharia de software para Web
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Modelo cascata
Modelo cascataModelo cascata
Modelo cascata
 
Padrões MVC
Padrões MVCPadrões MVC
Padrões MVC
 

Destaque

LDAP: Usos e Aplicações
LDAP: Usos e AplicaçõesLDAP: Usos e Aplicações
LDAP: Usos e Aplicaçõeselliando dias
 
Diagrama flujo software
Diagrama flujo softwareDiagrama flujo software
Diagrama flujo softwareClc Jrm
 
HELBER_CHOO_-_TRABALHO_DE_LICENCIATURA
HELBER_CHOO_-_TRABALHO_DE_LICENCIATURAHELBER_CHOO_-_TRABALHO_DE_LICENCIATURA
HELBER_CHOO_-_TRABALHO_DE_LICENCIATURAHelber Choo
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasGustavo Gonzalez
 
R/GA at DES: Don't Sacrifice Relevancy for Scale
R/GA at DES: Don't Sacrifice Relevancy for ScaleR/GA at DES: Don't Sacrifice Relevancy for Scale
R/GA at DES: Don't Sacrifice Relevancy for ScaleDigiday
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIgor Takenami
 

Destaque (8)

Programação aula002
Programação aula002Programação aula002
Programação aula002
 
LDAP: Usos e Aplicações
LDAP: Usos e AplicaçõesLDAP: Usos e Aplicações
LDAP: Usos e Aplicações
 
Diagrama flujo software
Diagrama flujo softwareDiagrama flujo software
Diagrama flujo software
 
HELBER_CHOO_-_TRABALHO_DE_LICENCIATURA
HELBER_CHOO_-_TRABALHO_DE_LICENCIATURAHELBER_CHOO_-_TRABALHO_DE_LICENCIATURA
HELBER_CHOO_-_TRABALHO_DE_LICENCIATURA
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de Sistemas
 
R/GA at DES: Don't Sacrifice Relevancy for Scale
R/GA at DES: Don't Sacrifice Relevancy for ScaleR/GA at DES: Don't Sacrifice Relevancy for Scale
R/GA at DES: Don't Sacrifice Relevancy for Scale
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 

Semelhante a A importância da arquitetura de software

Desenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalDesenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalRuan Carvalho
 
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
 
Gerenciamento Ágil de Projetos
Gerenciamento Ágil de ProjetosGerenciamento Ágil de Projetos
Gerenciamento Ágil de ProjetosDaniel de Amaral
 
BaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de SoftwareBaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de SoftwareAdriano Bertucci
 
Engenharia de software apostila analise de requisitos i
Engenharia de software   apostila analise de requisitos iEngenharia de software   apostila analise de requisitos i
Engenharia de software apostila analise de requisitos irobinhoct
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareMarcelo Fleury
 
Gerenciamento de Projetos de Software para Empresas de Pequeno Porte
Gerenciamento de Projetos de Software para Empresas de Pequeno PorteGerenciamento de Projetos de Software para Empresas de Pequeno Porte
Gerenciamento de Projetos de Software para Empresas de Pequeno Porteelliando dias
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialAlexandre Leão
 
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SW
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SWAula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SW
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SWRogerio P C do Nascimento
 
Apresentação para seleção de projetos e alocação de recursos
Apresentação para seleção de projetos e alocação de recursosApresentação para seleção de projetos e alocação de recursos
Apresentação para seleção de projetos e alocação de recursosAndré R. Rivas
 
Es17 predicao de defeitos em software
Es17   predicao de defeitos em softwareEs17   predicao de defeitos em software
Es17 predicao de defeitos em softwareVictor Hugo
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Adriano Bertucci
 
Paralelos Pmbok & Engenharia de Software
Paralelos Pmbok & Engenharia de SoftwareParalelos Pmbok & Engenharia de Software
Paralelos Pmbok & Engenharia de SoftwareTI Infnet
 
Testes em projetos usando Scrum
Testes em projetos usando ScrumTestes em projetos usando Scrum
Testes em projetos usando ScrumPablo Quiroga
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Marcelo Schumacher
 

Semelhante a A importância da arquitetura de software (20)

Desenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalDesenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-Incremental
 
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
 
Gerenciamento Ágil de Projetos
Gerenciamento Ágil de ProjetosGerenciamento Ágil de Projetos
Gerenciamento Ágil de Projetos
 
BaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de SoftwareBaixadaTech 2012 - Qualidade de Software
BaixadaTech 2012 - Qualidade de Software
 
Just java 2011
Just java   2011Just java   2011
Just java 2011
 
Engenharia de software apostila analise de requisitos i
Engenharia de software   apostila analise de requisitos iEngenharia de software   apostila analise de requisitos i
Engenharia de software apostila analise de requisitos i
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de Software
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
 
Gerenciamento de Projetos de Software para Empresas de Pequeno Porte
Gerenciamento de Projetos de Software para Empresas de Pequeno PorteGerenciamento de Projetos de Software para Empresas de Pequeno Porte
Gerenciamento de Projetos de Software para Empresas de Pequeno Porte
 
Folder
FolderFolder
Folder
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencial
 
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SW
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SWAula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SW
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SW
 
Apresentação para seleção de projetos e alocação de recursos
Apresentação para seleção de projetos e alocação de recursosApresentação para seleção de projetos e alocação de recursos
Apresentação para seleção de projetos e alocação de recursos
 
Es17 predicao de defeitos em software
Es17   predicao de defeitos em softwareEs17   predicao de defeitos em software
Es17 predicao de defeitos em software
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012
 
IBM Rational Unified Process
IBM Rational Unified ProcessIBM Rational Unified Process
IBM Rational Unified Process
 
Paralelos Pmbok & Engenharia de Software
Paralelos Pmbok & Engenharia de SoftwareParalelos Pmbok & Engenharia de Software
Paralelos Pmbok & Engenharia de Software
 
Aula2 paradigmas
Aula2 paradigmasAula2 paradigmas
Aula2 paradigmas
 
Testes em projetos usando Scrum
Testes em projetos usando ScrumTestes em projetos usando Scrum
Testes em projetos usando Scrum
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
 

Mais de Adriano Tavares

Palestra Transformação Ágil - CBGPL 2019
Palestra Transformação Ágil - CBGPL 2019Palestra Transformação Ágil - CBGPL 2019
Palestra Transformação Ágil - CBGPL 2019Adriano Tavares
 
TDC2018 - Adriano Tavares - Design Thinking para arquitetos de software
TDC2018 - Adriano Tavares - Design Thinking para arquitetos de softwareTDC2018 - Adriano Tavares - Design Thinking para arquitetos de software
TDC2018 - Adriano Tavares - Design Thinking para arquitetos de softwareAdriano Tavares
 
Transformação ágil em uma grande empresa, um post-it por vez!
Transformação ágil em uma grande empresa, um post-it por vez! Transformação ágil em uma grande empresa, um post-it por vez!
Transformação ágil em uma grande empresa, um post-it por vez! Adriano Tavares
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começarAdriano Tavares
 
Disciplined Agile Delivery - indo além do Scrum
Disciplined Agile Delivery - indo além do ScrumDisciplined Agile Delivery - indo além do Scrum
Disciplined Agile Delivery - indo além do ScrumAdriano Tavares
 
Arquitetura Ágil, uma abordagem disciplinada
Arquitetura Ágil, uma abordagem disciplinadaArquitetura Ágil, uma abordagem disciplinada
Arquitetura Ágil, uma abordagem disciplinadaAdriano Tavares
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeAdriano Tavares
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Adriano Tavares
 
Modelagem de dados e objetos
Modelagem de dados e objetosModelagem de dados e objetos
Modelagem de dados e objetosAdriano Tavares
 

Mais de Adriano Tavares (12)

Palestra Transformação Ágil - CBGPL 2019
Palestra Transformação Ágil - CBGPL 2019Palestra Transformação Ágil - CBGPL 2019
Palestra Transformação Ágil - CBGPL 2019
 
TDC2018 - Adriano Tavares - Design Thinking para arquitetos de software
TDC2018 - Adriano Tavares - Design Thinking para arquitetos de softwareTDC2018 - Adriano Tavares - Design Thinking para arquitetos de software
TDC2018 - Adriano Tavares - Design Thinking para arquitetos de software
 
Transformação ágil em uma grande empresa, um post-it por vez!
Transformação ágil em uma grande empresa, um post-it por vez! Transformação ágil em uma grande empresa, um post-it por vez!
Transformação ágil em uma grande empresa, um post-it por vez!
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começar
 
Disciplined Agile Delivery - indo além do Scrum
Disciplined Agile Delivery - indo além do ScrumDisciplined Agile Delivery - indo além do Scrum
Disciplined Agile Delivery - indo além do Scrum
 
Arquitetura Ágil, uma abordagem disciplinada
Arquitetura Ágil, uma abordagem disciplinadaArquitetura Ágil, uma abordagem disciplinada
Arquitetura Ágil, uma abordagem disciplinada
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java ee
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
 
Pangea 21-07-2009
Pangea 21-07-2009Pangea 21-07-2009
Pangea 21-07-2009
 
JPA - MGJUG
JPA - MGJUGJPA - MGJUG
JPA - MGJUG
 
Modelagem de dados e objetos
Modelagem de dados e objetosModelagem de dados e objetos
Modelagem de dados e objetos
 
Gestao agil de projetos
Gestao agil de projetosGestao agil de projetos
Gestao agil de projetos
 

A importância da arquitetura de software

  • 1. A  importância  da     Arquitetura  de  So2ware   CEFET-­‐MG,  Março  de  2013     Adriano  de  Pinho  Tavares   adriano.tavares@gmail.com   h3p://adrianotavares.com     hEp://pangeanet.org  
  • 2. Agenda   A  importância  da  arquitetura  de  so2ware   O  Papel  do  arquiteto  de  so2ware   Padrões  para  arquiteturas  de  so2ware   Exemplo  didáOco   Conclusões  
  • 3. Arquitetura  como  o  elemento  central  no  desenvolvimento  de  so2ware   A  IMPORTÂNCIA  DA  ARQUITETURA  
  • 4. Toda  solução  tem  uma  arquitetura  
  • 5. Toda  solução  tem  um  arquiteto  
  • 6. A  arquitetura  não  é  apenas  uma  fase   do  desenvolvimento  de  uma  solução   Quanto  maior  e  mais  complexo,     maior  a  necessidade  de  arquitetar!  
  • 7. Considerações  fundamentais   1.  Todo  so2ware  tem   uma  arquitetura   3.  Arquitetura   não  é  uma  fase   2.  Todo  so2ware   do  processo  de     tem  pelo  menos   desenvolvimento   um  arquiteto   do  so2ware  
  • 8. Definição  de  Arquitetura  de  So2ware   “A  arquitetura  de  so2ware  de  um  sistema   é  o  conjunto  das  principais  decisões   técnicas  de  design  tomadas  a  respeito  do   so2ware.”  
  • 9. Exemplos  de  decisões  técnicas   Tecnologia   Equipe   Estrutura   • “O  So2ware  deve  ser   • “Para  este  projeto   • “Os  elementos  devem  estar   desenvolvido  em  Java  EE  com   precisaremos  de  um  Ome   organizados  em  camadas.”   banco  de  dados  Oracle.”   com  as  competências   • “Deve  ser  uOlizado  um   técnicas  ABC.”   barramento  de  integração."   Comportamento   Interação   Qualidade  interna   • “O  processamento,   • “A  comunicação  com  o     • “Deve  haver  uma  replicação   armazenamento  e  consulta   back-­‐end  deve  ser   de  dados  entre  estes  dois   devem  ser  feitos   assíncrona,  usando   módulos  para  garanOr  a   sequencialmente.”   noOficações  de  eventos.”   independência  entre  eles.”   Implementação   • “Os  componentes  da   interface  com  o  usuário   devem  ser  implementados   usando  GWT.”  
  • 10. A  experiência  do  arquiteto     influencia  as  decisões   Experiência do Arquiteto Necessidades dos envolvidos Questões de gerenciamento do negócio Atributos  de   Qualidade   Contratos e legislação Pressão comercial / Requisitos   Competitiva De  Negócio   Arquitetura   Ambiente técnico Requisitos   Questões políticas Funcionais   Sistema   Questões de ciclo de vida Sistema   Sistema  
  • 11. Arquitetura  é  o  elemento  central     no  desenvolvimento  de  so2ware   Fornecem     Metas  de     DesOladas  em   Condutores   Negócio   Arquiteturais   Envolvidos   Conduzem  a  estrutura  da   Refina   Refina   DAS   Descrita  pelo   Arquitetura   Acompanhamento   Base  para…   e  Supervisão   Plano   Plano   Provas  de   Alocação   Releases   Plano  de   Desenho   de   de   conceito   da   do   Deploy   detalhado   Projeto   Testes   (experimentos)   Equipe   Produto  
  • 12. Metas   Blocos  de   Mecanismos   construção   Padrões   Preocupações   Modelagem  e   Documentação   Restrições   DAS     (Documento  de   Arquitetura  de   Atributos  de     Métodos   Qualidade   So=ware) Envolvidos   Condutores   Visões   Requisitos   Provas  de   Conceito   Riscos  
  • 13. Deveres,  habilidades  e  conhecimento.   O  PAPEL  DO  ARQUITETO  DE   SOFTWARE  
  • 14. Porque  todo  mundo  quer  ser   arquiteto?  
  • 15. O  Papel  do  Arquiteto  de  So2ware   Deveres   Conhecimento   Habilidades   Arquiteto  de  So2ware  
  • 16. Deveres   Habilidades   Conhecimento   Arquitetar     Comunicação   Ciência  da   computação     Outras  disciplinas     Relacionamento   da  Eng.  So2ware   interpessoal     Tecnologias  e   plataformas   Interação  com  os   Liderança   envolvidos   Conhecimento  sobre   o  contexto  da   Organização     organização  onde   Gerenciamento     Pessoal   trabalha    
  • 17. So2-­‐Skills  essenciais  para     Arquitetos  de  So2ware   •  Negócios   1.  PragmaOsmo   2.  Visão   3.  Conhecimento  de  negócios   4.  Inovação   •  Pessoais   5.  Mudança  de  contexto   6.  Transparência   7.  Paixão   •  Relacionamento   8.  Liderança   9.  PolíOcas   10.  Comunicação   11.  Comportamento   12.  Negociação   •  Técnicos  
  • 18. Arquitetos  precisam  de  métodos  para   fazer  o  seu  trabalho   “Um  método  centrado  em  arquitetura  é   uma  abordagem  repexvel  para  fazer  a   ligação  entre  a  arquitetura  e  o   desenvolvimento  iteraOvo."  
  • 19. ACDM   •  Architec@ng  So=ware   Intensive  Systems:  A   Prac@@oner’s  Guide   •  Livro  sobre  o  ACDM  -­‐   Architecture  Centric   Development  Method  
  • 20. Método  de  desenvolvimento  centrado  em  arquitetura   Requisitos,  restrições  e     1:  Descobrir  os  condutores  arquiteturais   atributos  de  qualidade   Condutores  arquiteturais  e     2:  Estabelecer  o  escopo  do  projeto   planejamento  preliminar   3:  Descrever  a  arquitetura   Visualizações  Arquiteturais     4:  Revisar  a  arquitetura   Riscos  e  trade-­‐offs   7:  Executar  POCs  e   No-­‐Go   Refinar  Arquitetura   6:  Planejar  POCs   5:  Produzir   Relatório  de  POCs,   decisão   Plano  de  POCs   Arquitetura  Refinada  e   (Go/NoGo)   Planos  atualizados   Retorna  ao   estágio  apropriado   6:  Planejar  Desenvolvimento   7:  Desenvolver   e  itera  o  quanto  for     Go   necessário   Plano  de  Projeto  e     Desenho  detalhado   Plano  de  Teste   do  produto   hEp://reports-­‐archive.adm.cs.cmu.edu/anon/isri2005/CMU-­‐ISRI-­‐05-­‐103.pdf  
  • 21. O  Trabalho  de  um  arquiteto  não  é  fácil  
  • 22. PADRÕES  PARA  ARQUITETURAS  DE   SOFTWARE  
  • 23. Padrões  para  Arquitetura  de  So2ware   “Arquitetos  experientes  procuram  aderir  a  princípios   e  promover  boas  práOcas  de  design  usando  padrões   para   documentar   e   reuOlizar   soluções   em   novos   projetos  de  so2ware.”  
  • 24. Padrões  de  desenho  SOA         Catálogo  de  Padrões  para  SOA   http://www.soapatterns.org/       Livros  dobre  SOA   http://www.soabooks.com/    
  • 25. SOA  Reference  Architecture       Arquitetura  de   referência  SOA  do     The  Open  Group     http://www.opengroup.org    
  • 27. Padrões  para  Arquitetura  de     Aplicações  CorporaOvas   Catálogo  de  padrões  para   aplicações  corporaOvas     hEp://marOnfowler.com/eaaCatalog/  
  • 28. Camadas  de  Arquitetura  de  Aplicações  CorporaOvas     Camada  de  Apresentação     Camada  de  Negócios     Camada  de  Domínio     Camada  de  Acesso  a  Dados     Serviços  de  Sistema    
  • 29. Padrões  para  Arquitetura  de  Aplicações  CorporaOvas   Padrões  de  Lógica  de  domínio   • Modelo  de  Domínio  (Domain  Model),  o  Camada  de  Serviço  (Service  Layer);   Padrões  de  Mapeamento  em  Metadados   • Mapeamento  em  metadados  (Metadata  Mapping),  o  Objeto  de  Pesquisa  (Query  Object);   Padrões  Estruturais  Objeto-­‐Relacionas   • Campo  IdenOdade  (IdenOty  Field),  Mapeamento  de  Chave  Estrangeira  (Foreign  Key  Mapping),   Mapeamento  de  Tabela  AssociaOva  (AssociaOon  Table  Mapping);   Padrões  Comportamentais  Objeto-­‐Relacionas   • Carga  Tardia  (Lazy  Load);   Padrões  de  Apresentação  Web   • Modelo  Visão  Controlador  (Model  View  Controller);   Padrões  de  Distribuição   • Fachada  Remota  (Remote  Facade),  Objeto  de  Transferência  de  dados  (Data  Transfer  Object).    
  • 30. Padrões  para  Integração  de  Aplicações   •  Catálogo  de  65  padrões   de  integração  baseados   em  mensagens   •  hEp://eaipaEerns.com/ toc.html  
  • 31. Message  Bus   Qual  arquitetura  permite  separar  aplicações  para   trabar  juntas  mas  de  forma  desacoplada  para  que   aplicações  sejam  facilmente  adicionadas  ou   removidas  sem  afetar  as  outras?   hEp://www.eaipaEerns.com/MessageBus.html  
  • 33. Meta  de  negócio   A  empresa  ACME  quer  expandir  suas  vendas   e  para  isso  decidiu  abrir  um  novo  canal  de   vendas  pela  Web.  
  • 34. Desafios  da  arquitetura   ü Capturar  os  condutores  arquiteturais;   ü Selecionar  as  tecnologias  e  ferramentas;   ü Desenhar  a  arquitetura  da  aplicação;   ü GaranOr  a  qualidade  da  solução;   ü Criar  a  arquitetura  executável  (Codificar).  
  • 35. Condutores  arquiteturais   ü Usar  uma  loja  virtual  de  mercado;   ü Integrar  o  ERP  da  empresa  à  loja  virtual;   ü UOlizar  tecnologias  Java  open-­‐source;   ü Atributos  de  qualidade   –  Interoperabilidade;   –  Tolerância  a  Falhas;   –  Desempenho;   –  Escalabilidade.  
  • 36. Proposta  de  plano  arquitetural   preliminar   ü Selecionar  fornecedor  de  loja  virtual  (POC);   ü Desenhar  a  projeto  arquitetônico  para  solução   de  integração  entre  a  loja  virtual  e  o  ERP;     ü Definir  as  tecnologias  e  ferramentas;   ü Dimensionar  o  Ome  e  as  competências   técnicas  necessárias  para  o  projeto;   ü Desenvolver  um  protóOpo  para  validar  a   solução  (POC).  
  • 37. Desenho:  Principal  EsOlo  Arquitetural   ü Message  Bus   –  O  objeOvo  de  introduzir   um  barramento  de   mensagens  é  estruturar   um  middleware  de   ligação  entre  a  loja   virtual  e  o  ERP  para   permiOr  que  eles   operem  em  conjunto  de   maneira  flexível   uOlizando  mensagens.  
  • 38. Plataforma  Tecnológica     ü Loja  virtual     –  UOlizar  Plataforma  Magento;   ü Integração  com  ERP     –  UOlizar  plataforma  open-­‐source  baseada  em  Java;   –  Ferramentas     •  IDE  -­‐  Eclipse;     •  Message  Bus  -­‐  Apache  Camel  sobre  Apache  AcOveMQ;   •  Banco  de  dados  -­‐  MySQL.  
  • 40. Conclusões   •  A  arquitetura  é  a  base  para  a  tomada  de   decisões  técnicas  em  um  projeto  de   software;   •  A  arquitetura  é  um  aspecto  fundamental   durante  todo  o  ciclo  de  vida  de  um   software;   •  Um  arquiteto  de  software  deve  se   desenvolver  em  aspectos  técnicos  e   pessoais.  
  • 41. ParOcipe  da  rede  Pangea   hEp://pangeanet.org   A  primeira  rede  social  sobre  arquitetura  de  so=ware  do  Brasil.