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