SlideShare uma empresa Scribd logo
1 de 17
Arquitetura de Software:
Introdução
Universidade de São Paulo
Instituto de Ciências Matemáticas e de Computação
SSC-121 – Engenharia de Software I
Profa. Dra. Elisa Yumi Nakagawa
2º semestre de 2012
Conteúdo
 Introdução e Motivação
 Definições
 Eventos científicos
 Bibliografia
 Exercício
Introdução
 O que é arquitetura?
 Disposição das partes ou elementos de um edifício ou
espaço urbano. [Aurélio]
 A estrutura e organização lógica de funcionamento
de um sistema computacional. [Aurélio]
 Considerando essas definições, como desenvolver
sistemas mais complexos, sem pensar em sua
arquitetura??
 Como fica a qualidade desses sistemas sem
“cuidar” da arquitetura??
Introdução
 À medida que a complexidade e o tamanho dos
sistemas de software têm aumentado,engenheiros
de software têm lançado mão de princípios de
projeto, tais como a modularização e o
ocultamento da informação, de modo a obter
sistemas com maior qualidade e a um baixo custo.
 Para isso, o projeto da estrutura global do
software (arquitetura de software) é uma questão
que vem sendo considerada.
Introdução
 A arquitetura de software é dita como tendo
principal papel na determinação da qualidade e da
manutenibilidade do software.[Wasserman, 1996]
 Os atributos de qualidade dos sistemas de
software são estreitamente relacionados às suas
arquiteturas. [SEI, 2005]
 Atributos de qualidade: performance/desempenho,
confiabilidade, manutenibilidade, portabilidade,...
Definição: Arquitetura de software
 Há uma diversidade de definições de arquitetura
de software.
 Arquitetura de software: [Shaw, 1997]
 É definida como um conjunto de componentes
computacionais e os relacionamentos entre esses
componentes.
 Arquitetura de software:[SEI,2005; Garlan, 2000]
 Estrutura de componentes de um programa/sistema,
os relacionamentos entre esses componentes, os
princípios e diretrizes que governam os projetos e a
evolução dos softwares.
Definições: Instância arquitetural
 Instância arquitetural:
 Refere-se à arquitetura de um determinado sistema de
software.
Definições: Instância arquitetural
 Estilo arquitetural:
 Definem as restrições sobre a forma e a estrutura de
uma família de instâncias arquiteturais.
 Exemplos:
 Camadas (duas, três ou quatro camadas)
 Pipes and Filters
 Centrada na base de dados
 Cliente-Servidor
 Estilos resultantes da combinação de estilos arquiteturais.
Definições: Estilo arquitetural
 Estilo arquitetural:
 Permite que um profissional (projetista, arquiteto ou
engenheiro) determine a classe a qual pertence a
organização de um sistema.
 O que ajudam a identificar o estilo que retrataa
arquitetura de software do sistema?
 Características dos componentes (subsistemas) e conectores
do sistema
 Topologia da arquitetura
 Restrições semânticas
 Mecanismos de interação entre os componentes.
Definições: Estilo arquitetural
 Estilo arquitetural:
 O uso de estilos arquiteturais no desenvolvimento de
software facilita:
 a comunicação entre as pessoas envolvidasno
desenvolvimento
 o entendimento do projeto em desenvolvimento
Definições: Arquitetura de referência
 Alguns autores utilizam os termos estilos
arquiteturais e arquitetura de referência como
sinônimos.
 Contudo, arquitetura de referência é:
 Uma estrutura que provê uma caracterização das
funcionalidades dos sistemas de software de um dado
domínio de aplicação.
Definições: Arquitetura de referência
 Arquitetura de referência:
 Exemplos:
 ADAGE um arquitetura de referência para o apoio ao
desenvolvimento de sistemas de software no domínio de
controle de aviões (Batory et al., 1995),.
 Arquitetura de referência para sistemas de comércio eletrônico
(Bass et al., 2003).
 Arquitetura de referência para servidoresWWW.
 Arquitetura de referência para sistemas baseados em
componentes
 Arquitetura de referência para sistemas orientados a serviços
Definições: Arquitetura de referência
 Arquitetura de referência:
 Exemplos:
 AUTOSAR
 Para sistemas de veículos
 RefASSET
 Para ambientes de engenharia de software
 RefTEST
 Para ferramentas de teste de software
Definições: Arquitetura de referência
 Arquitetura de referência:
 Constituem um elemento fundamental para o
desenvolvimento de linhas de produto (do inglês,
product lines)
 Podem também ser consideradas como o primeiro e
essencial passo para o desenvolvimento de frameworks
de aplicação.
 Propor arquiteturas de referência para sistemas de um
dado domínio de aplicação não é uma tarefa trivial.
Definições: Arquitetura de software de
domínio específico
 Arquitetura de software de domínio específico
 Base estrutural para a interoperabilidade de
componentes dentro de um domínio.
 Pode dar apoio a uma abordagem de
desenvolvimento de domínio específico que
possibilite a configuração de componentes
reutilizáveis.
 Compreende um modelo de domínio, requisitos de
referência, uma arquitetura de referência, infra-
estrutura ou ambiente de apoio e um processo de
desenvolvimento.
Eventos Científicos
 Diversidade de eventos científicos:
 ECSA
 WICSA
 SEI Software Architecture Technology User Network
Workshop
 International Conference on the Quality of Software
Architectures
 Workshop on Architecture-Centric Evolution
 Workshop Infusing Software Architecture into Software
Engineering Curricula
 Refactoring of Software at Architectural Level IEEEWorkshop
Bibliografia
 KRUCHTEN, P.; OBBINK, H.; STAFFORD, J.
The past, present, and future for software
architecture. IEEE Software, v. 23, n. 2, p. 22–30,
2006.
 Site da SEI (Software Engineering Institute)
 Livros de Clemments e Bass

Mais conteúdo relacionado

Semelhante a Aula15 arquitetura software_01_introducao-convertido

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
 
Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Vanilson Buregio
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)elliando dias
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - WikipediaRobson Silva Espig
 
Arquitetura de software - Introdução
Arquitetura de software - IntroduçãoArquitetura de software - Introdução
Arquitetura de software - IntroduçãoSergio Crespo
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureRicardo Terra
 
Saam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanSaam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanHalan Ridolphi
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantaçãoelliando dias
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Glauco Vinicius Argentino de Oliveira
 
Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Nécio de Lima Veras
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Adriano Tavares
 
Php Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsPhp Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsWildtech
 
06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docxJulioCesar371362
 

Semelhante a Aula15 arquitetura software_01_introducao-convertido (20)

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
 
1.pdf
1.pdf1.pdf
1.pdf
 
Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - Wikipedia
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura de software - Introdução
Arquitetura de software - IntroduçãoArquitetura de software - Introdução
Arquitetura de software - Introdução
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Saam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanSaam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halan
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantação
 
ArquiteturaSoftware
ArquiteturaSoftwareArquiteturaSoftware
ArquiteturaSoftware
 
Modelos de Referência-BIAN
Modelos de Referência-BIANModelos de Referência-BIAN
Modelos de Referência-BIAN
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
 
Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)
 
UM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOAUM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOA
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Php Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsPhp Conf08 Enterprise Patterns
Php Conf08 Enterprise Patterns
 
06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx
 
Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 

Mais de Ana Claudia Annunciação (10)

Ia01 introducao (1)
Ia01   introducao (1)Ia01   introducao (1)
Ia01 introducao (1)
 
Introducao redes
Introducao redesIntroducao redes
Introducao redes
 
Arq orgcom (1)
Arq orgcom (1)Arq orgcom (1)
Arq orgcom (1)
 
Introducao informatica
Introducao informaticaIntroducao informatica
Introducao informatica
 
Determinantes de ordem n e suas propriedades
Determinantes de ordem n e suas propriedadesDeterminantes de ordem n e suas propriedades
Determinantes de ordem n e suas propriedades
 
22 11-2016- internet-das-coisas-e-cidades-inteligentes
22 11-2016- internet-das-coisas-e-cidades-inteligentes22 11-2016- internet-das-coisas-e-cidades-inteligentes
22 11-2016- internet-das-coisas-e-cidades-inteligentes
 
Z br office writer-otimo
Z br office writer-otimoZ br office writer-otimo
Z br office writer-otimo
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmos
 
Cap.12
Cap.12Cap.12
Cap.12
 
Aula8
Aula8Aula8
Aula8
 

Aula15 arquitetura software_01_introducao-convertido

  • 1. Arquitetura de Software: Introdução Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação SSC-121 – Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012
  • 2. Conteúdo  Introdução e Motivação  Definições  Eventos científicos  Bibliografia  Exercício
  • 3. Introdução  O que é arquitetura?  Disposição das partes ou elementos de um edifício ou espaço urbano. [Aurélio]  A estrutura e organização lógica de funcionamento de um sistema computacional. [Aurélio]  Considerando essas definições, como desenvolver sistemas mais complexos, sem pensar em sua arquitetura??  Como fica a qualidade desses sistemas sem “cuidar” da arquitetura??
  • 4. Introdução  À medida que a complexidade e o tamanho dos sistemas de software têm aumentado,engenheiros de software têm lançado mão de princípios de projeto, tais como a modularização e o ocultamento da informação, de modo a obter sistemas com maior qualidade e a um baixo custo.  Para isso, o projeto da estrutura global do software (arquitetura de software) é uma questão que vem sendo considerada.
  • 5. Introdução  A arquitetura de software é dita como tendo principal papel na determinação da qualidade e da manutenibilidade do software.[Wasserman, 1996]  Os atributos de qualidade dos sistemas de software são estreitamente relacionados às suas arquiteturas. [SEI, 2005]  Atributos de qualidade: performance/desempenho, confiabilidade, manutenibilidade, portabilidade,...
  • 6. Definição: Arquitetura de software  Há uma diversidade de definições de arquitetura de software.  Arquitetura de software: [Shaw, 1997]  É definida como um conjunto de componentes computacionais e os relacionamentos entre esses componentes.  Arquitetura de software:[SEI,2005; Garlan, 2000]  Estrutura de componentes de um programa/sistema, os relacionamentos entre esses componentes, os princípios e diretrizes que governam os projetos e a evolução dos softwares.
  • 7. Definições: Instância arquitetural  Instância arquitetural:  Refere-se à arquitetura de um determinado sistema de software.
  • 8. Definições: Instância arquitetural  Estilo arquitetural:  Definem as restrições sobre a forma e a estrutura de uma família de instâncias arquiteturais.  Exemplos:  Camadas (duas, três ou quatro camadas)  Pipes and Filters  Centrada na base de dados  Cliente-Servidor  Estilos resultantes da combinação de estilos arquiteturais.
  • 9. Definições: Estilo arquitetural  Estilo arquitetural:  Permite que um profissional (projetista, arquiteto ou engenheiro) determine a classe a qual pertence a organização de um sistema.  O que ajudam a identificar o estilo que retrataa arquitetura de software do sistema?  Características dos componentes (subsistemas) e conectores do sistema  Topologia da arquitetura  Restrições semânticas  Mecanismos de interação entre os componentes.
  • 10. Definições: Estilo arquitetural  Estilo arquitetural:  O uso de estilos arquiteturais no desenvolvimento de software facilita:  a comunicação entre as pessoas envolvidasno desenvolvimento  o entendimento do projeto em desenvolvimento
  • 11. Definições: Arquitetura de referência  Alguns autores utilizam os termos estilos arquiteturais e arquitetura de referência como sinônimos.  Contudo, arquitetura de referência é:  Uma estrutura que provê uma caracterização das funcionalidades dos sistemas de software de um dado domínio de aplicação.
  • 12. Definições: Arquitetura de referência  Arquitetura de referência:  Exemplos:  ADAGE um arquitetura de referência para o apoio ao desenvolvimento de sistemas de software no domínio de controle de aviões (Batory et al., 1995),.  Arquitetura de referência para sistemas de comércio eletrônico (Bass et al., 2003).  Arquitetura de referência para servidoresWWW.  Arquitetura de referência para sistemas baseados em componentes  Arquitetura de referência para sistemas orientados a serviços
  • 13. Definições: Arquitetura de referência  Arquitetura de referência:  Exemplos:  AUTOSAR  Para sistemas de veículos  RefASSET  Para ambientes de engenharia de software  RefTEST  Para ferramentas de teste de software
  • 14. Definições: Arquitetura de referência  Arquitetura de referência:  Constituem um elemento fundamental para o desenvolvimento de linhas de produto (do inglês, product lines)  Podem também ser consideradas como o primeiro e essencial passo para o desenvolvimento de frameworks de aplicação.  Propor arquiteturas de referência para sistemas de um dado domínio de aplicação não é uma tarefa trivial.
  • 15. Definições: Arquitetura de software de domínio específico  Arquitetura de software de domínio específico  Base estrutural para a interoperabilidade de componentes dentro de um domínio.  Pode dar apoio a uma abordagem de desenvolvimento de domínio específico que possibilite a configuração de componentes reutilizáveis.  Compreende um modelo de domínio, requisitos de referência, uma arquitetura de referência, infra- estrutura ou ambiente de apoio e um processo de desenvolvimento.
  • 16. Eventos Científicos  Diversidade de eventos científicos:  ECSA  WICSA  SEI Software Architecture Technology User Network Workshop  International Conference on the Quality of Software Architectures  Workshop on Architecture-Centric Evolution  Workshop Infusing Software Architecture into Software Engineering Curricula  Refactoring of Software at Architectural Level IEEEWorkshop
  • 17. Bibliografia  KRUCHTEN, P.; OBBINK, H.; STAFFORD, J. The past, present, and future for software architecture. IEEE Software, v. 23, n. 2, p. 22–30, 2006.  Site da SEI (Software Engineering Institute)  Livros de Clemments e Bass