Grupo de Pesquisa em ENGENHARIA DE SOFTWARE
Arquitetura de Software
Professores:
Danillo Leal Belmonte
Mônica H. Pietruchinski
Simone de Almeida
Simone Nasser Matos
Tarcízio Alexandre Bini
Alunos:
Karléia Braun
Marcos Ferreira Vosgerau
Rafael Hornung
Campus de
Ponta Grossa - Paraná
1
Arquitetura de Software
A estrutura dos componentes de um
programa/sistema, seus interrelacionamentos, princípios e diretrizes
guiando o projeto e evolução ao longo
do tempo. [apud David Garlan (Garlan,
1995)]
Campus de
Ponta Grossa - Paraná
2
Requisitos
Requisitos funcionais
Requisitos não-funcionais
Campus de
Ponta Grossa - Paraná
3
Requisitos (cont.)
Requisitos funcionais:
– Cadastro, alteração e exclusão de
clientes e vendedores.
– Controle de acesso por senha.
– Controle de vendas diárias por vendedor.
– Entre outros.
Campus de
Ponta Grossa - Paraná
4
Requisitos (cont.)
Requisitos não-funcionais (de qualidade):
–
–
–
–
–
–
–
Usabilidade
Manutenibilidade
Confiabilidade
Desempenho
Portabilidade
Reusabilidade
Segurança
Campus de
Ponta Grossa - Paraná
5
Arquiteturas
Arquiteturas que serão apresentadas:
–
–
–
–
–
–
Pipes e filtros
Camadas
Objetos
Quadro-negro
Cliente-servidor
Aplicações distribuídas
Campus de
Ponta Grossa - Paraná
6
Pipes e Filtros
Saída de um programa (componente de sistema) é
a entrada de outro programa.
Exemplo 1:
Programa
“Quem”
Programa
“Organizar”
Exemplo 2:
# prog1 | prog2
Exemplo 3:
Compiladores.
Desempenho e portabilidade.
Baixa manutenibilidade.
Campus de
Ponta Grossa - Paraná
Programa
“Mostrar”
7
Camadas
Separar tarefas (responsabilidades).
Exemplo 1:
Padrões de arquitetura em camadas:
Two-tier, multiple-tier, etc.
Exemplo 2:
MVC:
Manutenibilidade, portabilidade e reusabilidade.
Baixo desempenho.
Campus de
Ponta Grossa - Paraná
8
Objetos
Atribuir características (atributos) e atividades
(métodos) à mesma entidade.
Projetos orientados a objetos geralmente fazem uso da
arquitetura em camadas.
Exemplo:
Linguagens orientadas a objetos (Java, C++, etc.).
Manutenibilidade.
Perde em desempenho.
Campus de
Ponta Grossa - Paraná
9
Quadro-negro
Fonte de dados central.
Vários sistemas com acesso a mesma base de
dados.
Sistema 3
Sistema 1
Quadro-negro
Sistema 4
Sistema 2
Campus de
Ponta Grossa - Paraná
10
Cliente-Servidor
Processamento pode ser no cliente (“Cliente Gordo”),
ou no servidor (“cliente magro”).
Pode ou não existir uma terceira camada para fonte de
dados.
Quanto mais dividido, maior a manutenibilidade e
reusabilidade do sistema e seus componentes.
Baixo desempenho.
Campus de
Ponta Grossa - Paraná
11
Aplicações Distribuídas
Cliente-servidor
Distribuir processamento.
Terminais “burros”.
Servidores específicos para cada tarefa.
Linguagem deve suportar.
Campus de
Ponta Grossa - Paraná
12
Referencias
Mendes, A. Arquitetura de Software:
Desenvolvimento orientado para
arquitetura. Ed Campus, 2002.
Bass, L. Clements, P. Kazman, R. Software
Architecture in Practice. Segunda Edição.
Addison Wesley Professional. 2003.
Campus de
Ponta Grossa - Paraná
13
Download

Arquitetura de Software