SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Prof. Marcelo H. Yamaguti (1)
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Prof. Marcelo H. Yamaguti
Introdução à Engenharia de
Software
DESENVOLVIMENTO DE
SOFTWARE
Projeto e Arquitetura de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (2)
Referências
• Estude para aprofundamento no conteúdo:
– SOMMERVILLE, Ian. Engenharia de Software. 9ª ed. São
Paulo: Pearson, 2011. – Capítulos 6
– PFLEEGER, Shari Lawrence. Engenharia de Software: teoria
e prática. 2ª ed. São Paulo: Prentice-Hall, 2004. - Capítulo 5
– IEEE. Guide to the Software Engineering Body of Knowledge.
SWEBOK. Version 3. IEEE Computer Society. 2014. –
Chapter 2
– BUSCHMANN, Frank. et all. A system of patterns.
Chichester: John Wiley & Sons, 1996.
– GAMMA, Erich; HELM, Richard; JOHNSON, Ralph;
VLISSIDES, John. Design patterns: elements for reusable
object-oriented software. Reading: Addison-Wesley, 1994.
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (3)
Projeto e Arquitetura
• Projeto:
– Preliminar: foco no projeto da arquitetura do software.
– Detalhado: foco no projeto dos componentes (módulos) de
software.
Projeto
preliminar
Introdução à Engenharia de Software
Análise
Especificação
de requisitos
Arquitetura
O QUE COMO
Projeto
detalhado
Componentes
COMO
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (4)
Projeto da arquitetura
• A arquitetura de software envolve o conjunto de
decisões que definem a organização do sistema
objetivando:
– definir os elementos estruturais e suas interfaces de modo a
estabelecer a composição do sistema;
– estabelecer o comportamento pela colaboração entre estes
elementos;
– compor estes elementos estruturais e comportamentais em
subsistemas (agregação).
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (5)
Requisitos e Arquitetura de
SW
• Apesar dos requisitos funcionais definirem as
principais características do funcionamento do
software, os requisitos não-funcionais têm forte
influência na definição da arquitetura do software:
– Usabilidade
– Confiabilidade
– Desempenho
– Facilidade de suporte
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (6)
Aspectos chave
• Além dos requisitos não-funcionais o projetista
(arquiteto) deve estar atento aos seguintes aspectos
chave no projeto do software:
– Concorrência
– Controle e tratamento de eventos
– Persistência de dados
– Distribuição de componentes
– Tratamento de exceções e tolerância a falhas
– Interação e apresentação (IHC)
– Segurança
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (7)
Interface com o usuário
• O projeto de interface com o usuário é uma parte
importante do processo de projeto do software.
• O projeto da IHC (Interface Humano-Computador)
ou UX (User eXperience) envolve:
– Princípios gerais de projeto de interface com o usuário
(Ex.: facilidade de aprendizado, consistência, ...)
– Modalidades de interação com o usuário (Ex.: menus,
manipulação direta, formulários, ...)
– Projeto da apresentação da informação (Ex.: uso de cores,
fontes de letras, ...)
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (8)
Visões de arquitetura
• Dificilmente um único modelo ou visão consegue
representar todos os aspectos de uma arquitetura.
• Philippe Krutchen propôs a visão 4+1:
Introdução à Engenharia de Software
Visão
Lógica
Visão
Física
Visão de
Desenvolvimento
Visão de
Processo
Cenários
(casos de
uso)
Classes, Dados, Funcionalidade Desenvolvimento de componentes
Comportamento Implantação
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (9)
Padrões de arquitetura
• Na modelagem de uma arquitetura de software,
pode-se utilizar Padrões de Arquitetura que
descrevem estilos arquitetônicos mais comuns.
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (10)
Padrões de arquitetura
• Camadas
– Descrição: auxilia a estruturar aplicações que podem ser
decompostas em grupos de subtarefas, nas quais cada grupo de
subtarefas é um nível particular de abstração.
– Contexto: um grande sistema que requer decomposição.
Aplicação
Apresentação
Sessão
Transporte
Rede
Conexão de dados
Físico
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (11)
Padrões de arquitetura
• Dutos e Filtros
– Descrição: provê uma estrutura para sistemas que processam
uma cadeia de dados. Cada passo do processamento é
encapsulado em um componente-filtro. Dados são passados
por pipes entre filtros adjacentes. A recombinação de filtros
permite a construção de sistemas correlatos.
– Contexto: processamento de cadeias de dados.
Analisador léxico
Analisador sintático
Analisador semântico
Código-fonte
Cadeia de tokens
Árvore de sintaxe abstrata
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (12)
Padrões de arquitetura
• MVC (Model-View-Controller):
– Descrição: divide um sistema
interativo em três componentes. O
Model contém a funcionalidade
básica e dados. Views mostram a
informação ao usuário. Controllers
manipulam as entradas do usuário.
Views e controllers compreendem a
interface com o usuário. Um
mecanismo de propagação de
mudanças assegura a consistência
entre o modelo e a interface com o
usuário.
– Contexto: aplicações interativas
com interface homem-máquina
flexível.
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (13)
Padrões de arquitetura
• Repositório
– Descrição: os componentes do sistema não se comunicam
diretamente, mas por meio de um repositório central de dados.
– Contexto: sistemas dirigidos a dados, com grandes volumes
de informação que devem ser armazenados por longo tempo.
Repositório de dados
central
Componente 1 Componente 2
Componente 3 Componente n
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (14)
Padrões de arquitetura
• Cliente-Servidor
– Descrição: pode ser usado para estruturar sistemas de software
distribuídos com componentes pouco acoplados que interagem
por invocações de serviços remotos. Um componente broker é
responsável por coordenar a comunicação, tais como repassar
requisições, bem como, transmitir resultados e condições de
erro.
– Contexto: o ambiente é um
sistema distribuído e
possivelmente heterogêneo com
componentes heterogêneos
cooperantes.
– Exemplo: sistemas Web com
sistemas legados.
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (15)
Fast Quiz
1) Na visão 4+1 proposta por Krutchen, todas são
visões, EXCETO:
a) Física
b) Lógica
c) Processo
d) Conceitual
e) Desenvolvimento
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (16)
Fast Quiz
2) Uma rede de supermercados deseja que seja
desenvolvido um sistema de troca de dados de vendas
locais entre a matriz e as filiais. As filiais estão
distribuídas fisicamente por todo o estado. Neste
cenário o padrão arquitetônico mais adequado seria:
a) Camadas
b) Dutos-Filtros
c) Cliente-Servidor
d) Repositório
e) Model-View-Controller
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (17)
Fast Quiz
3) Deseja-se um sistema construído a partir de um
núcleo (core) que possua serviços e dados básicos para
todo o sistema; sobre este núcleo devem ser
implementados serviços mais genéricos; finalmente
sobre estes serviços mais genéricos devem ser
implementadas facilidades de interface com usuários
ou outros sistemas. Para este sistema o padrão
arquitetônico mais adequado é:
a) Camadas
b) Dutos-Filtros
c) Cliente-Servidor
d) Repositório
e) Model-View-Controller
Introdução à Engenharia de Software
Prof. Marcelo H. Yamaguti (18)
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Prof. Marcelo H. Yamaguti
Introdução à Engenharia de
Software
DESENVOLVIMENTO DE
SOFTWARE
Projeto e Arquitetura de Software

Mais conteúdo relacionado

Mais procurados

Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na PraticaAlessandro Kieras
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareelliando dias
 
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
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de softwareleopp
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareelliando dias
 
Introdução à Qualidade de Software
Introdução à Qualidade de SoftwareIntrodução à Qualidade de Software
Introdução à Qualidade de SoftwareCloves da Rocha
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de PrototipaçãoJuliano Pires
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasClayton de Almeida Souza
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareFelipe Goulart
 
O que é Computação Gráfica?
O que é Computação Gráfica?O que é Computação Gráfica?
O que é Computação Gráfica?Liliane Machado
 

Mais procurados (20)

Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de software
 
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
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de software
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Introdução à Qualidade de Software
Introdução à Qualidade de SoftwareIntrodução à Qualidade de Software
Introdução à Qualidade de Software
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de Prototipação
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de Sistemas
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Diagrama de Casos de Uso
Diagrama de Casos de UsoDiagrama de Casos de Uso
Diagrama de Casos de Uso
 
O que é Computação Gráfica?
O que é Computação Gráfica?O que é Computação Gráfica?
O que é Computação Gráfica?
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 

Destaque

Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersSergio Crespo
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCEduardo Nicola F. Zagari
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasEduardo Nicola F. Zagari
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBRafael França
 
Arquitetura de Software - Concorrência
Arquitetura de Software - ConcorrênciaArquitetura de Software - Concorrência
Arquitetura de Software - ConcorrênciaAndré Faria Gomes
 
Princípios Básicos do Design de Sistemas Interativos
Princípios Básicos do Design de Sistemas InterativosPrincípios Básicos do Design de Sistemas Interativos
Princípios Básicos do Design de Sistemas InterativosWellington Oliveira
 
Domain driven design na Prática
Domain driven design na PráticaDomain driven design na Prática
Domain driven design na PráticaDouglas Aguiar
 
Vssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativosVssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativosYan Justino
 
Introdução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIntrodução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIgor Takenami
 
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telasDo Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telasGeorge Gomes
 
Introdução ao Aspnet Core
Introdução ao Aspnet CoreIntrodução ao Aspnet Core
Introdução ao Aspnet CoreYan Justino
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gofYan Justino
 
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...André Constantino da Silva
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOYan Justino
 
Autenticação e Controle de Acesso
Autenticação e Controle de AcessoAutenticação e Controle de Acesso
Autenticação e Controle de AcessoDenis L Presciliano
 
Autenticação e autorização
Autenticação e autorizaçãoAutenticação e autorização
Autenticação e autorizaçãoDouglas Aguiar
 

Destaque (20)

Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and Filters
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVC
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - Camadas
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
 
Arquitetura de Software - Concorrência
Arquitetura de Software - ConcorrênciaArquitetura de Software - Concorrência
Arquitetura de Software - Concorrência
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
Princípios Básicos do Design de Sistemas Interativos
Princípios Básicos do Design de Sistemas InterativosPrincípios Básicos do Design de Sistemas Interativos
Princípios Básicos do Design de Sistemas Interativos
 
Angular
AngularAngular
Angular
 
Domain driven design na Prática
Domain driven design na PráticaDomain driven design na Prática
Domain driven design na Prática
 
TDD e BDD
TDD e BDDTDD e BDD
TDD e BDD
 
Vssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativosVssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativos
 
Introdução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIntrodução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a Serviços
 
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telasDo Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
 
Iniciando com DDD
Iniciando com DDDIniciando com DDD
Iniciando com DDD
 
Introdução ao Aspnet Core
Introdução ao Aspnet CoreIntrodução ao Aspnet Core
Introdução ao Aspnet Core
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
 
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
 
Autenticação e Controle de Acesso
Autenticação e Controle de AcessoAutenticação e Controle de Acesso
Autenticação e Controle de Acesso
 
Autenticação e autorização
Autenticação e autorizaçãoAutenticação e autorização
Autenticação e autorização
 

Semelhante a Arquitetura de Software

Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de SoftwareMarcelo Yamaguti
 
Gerenciamento de Configuração
Gerenciamento de ConfiguraçãoGerenciamento de Configuração
Gerenciamento de ConfiguraçãoMarcelo Yamaguti
 
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdfO_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdfBrunaBraga68
 
Projeto Liowsn - Um sistema operacional para trabalhos com RSSF
Projeto Liowsn - Um sistema operacional para trabalhos com RSSFProjeto Liowsn - Um sistema operacional para trabalhos com RSSF
Projeto Liowsn - Um sistema operacional para trabalhos com RSSFMarllus Lustosa
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...tdc-globalcode
 
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...Marcelo Palladino
 
Visão Geral Arquiteturade Software
Visão Geral Arquiteturade SoftwareVisão Geral Arquiteturade Software
Visão Geral Arquiteturade Softwareelliando dias
 
Monografia eng soft1_halan
Monografia eng soft1_halanMonografia eng soft1_halan
Monografia eng soft1_halanHalan Ridolphi
 
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...Guilherme Veras
 
Linguagens DInâmicas vsAtividade aberta
Linguagens DInâmicas vsAtividade abertaLinguagens DInâmicas vsAtividade aberta
Linguagens DInâmicas vsAtividade abertaStanley Araújo
 
387555062-analise-sistemas-pdf.pdf
387555062-analise-sistemas-pdf.pdf387555062-analise-sistemas-pdf.pdf
387555062-analise-sistemas-pdf.pdfNickMartinsgaspar
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateRicardo Rinco
 
Implementing Product Line Variabilities - Presentation
Implementing Product Line Variabilities - PresentationImplementing Product Line Variabilities - Presentation
Implementing Product Line Variabilities - PresentationMichel Alves
 
Aula Teste Fatec Engenharia de Software III
Aula Teste  Fatec Engenharia de Software IIIAula Teste  Fatec Engenharia de Software III
Aula Teste Fatec Engenharia de Software IIIDalton Martins
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...tdc-globalcode
 

Semelhante a Arquitetura de Software (20)

Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de Software
 
Gerenciamento de Configuração
Gerenciamento de ConfiguraçãoGerenciamento de Configuração
Gerenciamento de Configuração
 
Projeto de software
Projeto de softwareProjeto de software
Projeto de software
 
Requisitos de software
Requisitos de softwareRequisitos de software
Requisitos de software
 
Implementação
ImplementaçãoImplementação
Implementação
 
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdfO_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
 
Projeto Liowsn - Um sistema operacional para trabalhos com RSSF
Projeto Liowsn - Um sistema operacional para trabalhos com RSSFProjeto Liowsn - Um sistema operacional para trabalhos com RSSF
Projeto Liowsn - Um sistema operacional para trabalhos com RSSF
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
 
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
 
Visão Geral Arquiteturade Software
Visão Geral Arquiteturade SoftwareVisão Geral Arquiteturade Software
Visão Geral Arquiteturade Software
 
Monografia eng soft1_halan
Monografia eng soft1_halanMonografia eng soft1_halan
Monografia eng soft1_halan
 
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
 
Linguagens DInâmicas vsAtividade aberta
Linguagens DInâmicas vsAtividade abertaLinguagens DInâmicas vsAtividade aberta
Linguagens DInâmicas vsAtividade aberta
 
387555062-analise-sistemas-pdf.pdf
387555062-analise-sistemas-pdf.pdf387555062-analise-sistemas-pdf.pdf
387555062-analise-sistemas-pdf.pdf
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
 
Indice
Indice Indice
Indice
 
Implementing Product Line Variabilities - Presentation
Implementing Product Line Variabilities - PresentationImplementing Product Line Variabilities - Presentation
Implementing Product Line Variabilities - Presentation
 
ArquiteturaSoftware
ArquiteturaSoftwareArquiteturaSoftware
ArquiteturaSoftware
 
Aula Teste Fatec Engenharia de Software III
Aula Teste  Fatec Engenharia de Software IIIAula Teste  Fatec Engenharia de Software III
Aula Teste Fatec Engenharia de Software III
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
 

Arquitetura de Software

  • 1. Prof. Marcelo H. Yamaguti (1) Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Prof. Marcelo H. Yamaguti Introdução à Engenharia de Software DESENVOLVIMENTO DE SOFTWARE Projeto e Arquitetura de Software
  • 2. PUCRS - FACIN Prof. Marcelo H. Yamaguti (2) Referências • Estude para aprofundamento no conteúdo: – SOMMERVILLE, Ian. Engenharia de Software. 9ª ed. São Paulo: Pearson, 2011. – Capítulos 6 – PFLEEGER, Shari Lawrence. Engenharia de Software: teoria e prática. 2ª ed. São Paulo: Prentice-Hall, 2004. - Capítulo 5 – IEEE. Guide to the Software Engineering Body of Knowledge. SWEBOK. Version 3. IEEE Computer Society. 2014. – Chapter 2 – BUSCHMANN, Frank. et all. A system of patterns. Chichester: John Wiley & Sons, 1996. – GAMMA, Erich; HELM, Richard; JOHNSON, Ralph; VLISSIDES, John. Design patterns: elements for reusable object-oriented software. Reading: Addison-Wesley, 1994. Introdução à Engenharia de Software
  • 3. PUCRS - FACIN Prof. Marcelo H. Yamaguti (3) Projeto e Arquitetura • Projeto: – Preliminar: foco no projeto da arquitetura do software. – Detalhado: foco no projeto dos componentes (módulos) de software. Projeto preliminar Introdução à Engenharia de Software Análise Especificação de requisitos Arquitetura O QUE COMO Projeto detalhado Componentes COMO
  • 4. PUCRS - FACIN Prof. Marcelo H. Yamaguti (4) Projeto da arquitetura • A arquitetura de software envolve o conjunto de decisões que definem a organização do sistema objetivando: – definir os elementos estruturais e suas interfaces de modo a estabelecer a composição do sistema; – estabelecer o comportamento pela colaboração entre estes elementos; – compor estes elementos estruturais e comportamentais em subsistemas (agregação). Introdução à Engenharia de Software
  • 5. PUCRS - FACIN Prof. Marcelo H. Yamaguti (5) Requisitos e Arquitetura de SW • Apesar dos requisitos funcionais definirem as principais características do funcionamento do software, os requisitos não-funcionais têm forte influência na definição da arquitetura do software: – Usabilidade – Confiabilidade – Desempenho – Facilidade de suporte Introdução à Engenharia de Software
  • 6. PUCRS - FACIN Prof. Marcelo H. Yamaguti (6) Aspectos chave • Além dos requisitos não-funcionais o projetista (arquiteto) deve estar atento aos seguintes aspectos chave no projeto do software: – Concorrência – Controle e tratamento de eventos – Persistência de dados – Distribuição de componentes – Tratamento de exceções e tolerância a falhas – Interação e apresentação (IHC) – Segurança Introdução à Engenharia de Software
  • 7. PUCRS - FACIN Prof. Marcelo H. Yamaguti (7) Interface com o usuário • O projeto de interface com o usuário é uma parte importante do processo de projeto do software. • O projeto da IHC (Interface Humano-Computador) ou UX (User eXperience) envolve: – Princípios gerais de projeto de interface com o usuário (Ex.: facilidade de aprendizado, consistência, ...) – Modalidades de interação com o usuário (Ex.: menus, manipulação direta, formulários, ...) – Projeto da apresentação da informação (Ex.: uso de cores, fontes de letras, ...) Introdução à Engenharia de Software
  • 8. PUCRS - FACIN Prof. Marcelo H. Yamaguti (8) Visões de arquitetura • Dificilmente um único modelo ou visão consegue representar todos os aspectos de uma arquitetura. • Philippe Krutchen propôs a visão 4+1: Introdução à Engenharia de Software Visão Lógica Visão Física Visão de Desenvolvimento Visão de Processo Cenários (casos de uso) Classes, Dados, Funcionalidade Desenvolvimento de componentes Comportamento Implantação
  • 9. PUCRS - FACIN Prof. Marcelo H. Yamaguti (9) Padrões de arquitetura • Na modelagem de uma arquitetura de software, pode-se utilizar Padrões de Arquitetura que descrevem estilos arquitetônicos mais comuns. Introdução à Engenharia de Software
  • 10. PUCRS - FACIN Prof. Marcelo H. Yamaguti (10) Padrões de arquitetura • Camadas – Descrição: auxilia a estruturar aplicações que podem ser decompostas em grupos de subtarefas, nas quais cada grupo de subtarefas é um nível particular de abstração. – Contexto: um grande sistema que requer decomposição. Aplicação Apresentação Sessão Transporte Rede Conexão de dados Físico Introdução à Engenharia de Software
  • 11. PUCRS - FACIN Prof. Marcelo H. Yamaguti (11) Padrões de arquitetura • Dutos e Filtros – Descrição: provê uma estrutura para sistemas que processam uma cadeia de dados. Cada passo do processamento é encapsulado em um componente-filtro. Dados são passados por pipes entre filtros adjacentes. A recombinação de filtros permite a construção de sistemas correlatos. – Contexto: processamento de cadeias de dados. Analisador léxico Analisador sintático Analisador semântico Código-fonte Cadeia de tokens Árvore de sintaxe abstrata Introdução à Engenharia de Software
  • 12. PUCRS - FACIN Prof. Marcelo H. Yamaguti (12) Padrões de arquitetura • MVC (Model-View-Controller): – Descrição: divide um sistema interativo em três componentes. O Model contém a funcionalidade básica e dados. Views mostram a informação ao usuário. Controllers manipulam as entradas do usuário. Views e controllers compreendem a interface com o usuário. Um mecanismo de propagação de mudanças assegura a consistência entre o modelo e a interface com o usuário. – Contexto: aplicações interativas com interface homem-máquina flexível. Introdução à Engenharia de Software
  • 13. PUCRS - FACIN Prof. Marcelo H. Yamaguti (13) Padrões de arquitetura • Repositório – Descrição: os componentes do sistema não se comunicam diretamente, mas por meio de um repositório central de dados. – Contexto: sistemas dirigidos a dados, com grandes volumes de informação que devem ser armazenados por longo tempo. Repositório de dados central Componente 1 Componente 2 Componente 3 Componente n
  • 14. PUCRS - FACIN Prof. Marcelo H. Yamaguti (14) Padrões de arquitetura • Cliente-Servidor – Descrição: pode ser usado para estruturar sistemas de software distribuídos com componentes pouco acoplados que interagem por invocações de serviços remotos. Um componente broker é responsável por coordenar a comunicação, tais como repassar requisições, bem como, transmitir resultados e condições de erro. – Contexto: o ambiente é um sistema distribuído e possivelmente heterogêneo com componentes heterogêneos cooperantes. – Exemplo: sistemas Web com sistemas legados.
  • 15. PUCRS - FACIN Prof. Marcelo H. Yamaguti (15) Fast Quiz 1) Na visão 4+1 proposta por Krutchen, todas são visões, EXCETO: a) Física b) Lógica c) Processo d) Conceitual e) Desenvolvimento
  • 16. PUCRS - FACIN Prof. Marcelo H. Yamaguti (16) Fast Quiz 2) Uma rede de supermercados deseja que seja desenvolvido um sistema de troca de dados de vendas locais entre a matriz e as filiais. As filiais estão distribuídas fisicamente por todo o estado. Neste cenário o padrão arquitetônico mais adequado seria: a) Camadas b) Dutos-Filtros c) Cliente-Servidor d) Repositório e) Model-View-Controller Introdução à Engenharia de Software
  • 17. PUCRS - FACIN Prof. Marcelo H. Yamaguti (17) Fast Quiz 3) Deseja-se um sistema construído a partir de um núcleo (core) que possua serviços e dados básicos para todo o sistema; sobre este núcleo devem ser implementados serviços mais genéricos; finalmente sobre estes serviços mais genéricos devem ser implementadas facilidades de interface com usuários ou outros sistemas. Para este sistema o padrão arquitetônico mais adequado é: a) Camadas b) Dutos-Filtros c) Cliente-Servidor d) Repositório e) Model-View-Controller Introdução à Engenharia de Software
  • 18. Prof. Marcelo H. Yamaguti (18) Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Prof. Marcelo H. Yamaguti Introdução à Engenharia de Software DESENVOLVIMENTO DE SOFTWARE Projeto e Arquitetura de Software