Escolar Documentos
Profissional Documentos
Cultura Documentos
Arquitetura de Software
? Este curso baseado no livro Software Architecture in Practice, de Len Bass, Paul Clements and Rick Kazman. Addison-Wesley, 1998.
Bibliografia
? Software Architecture in Practice. Len Bass, Paul Clements and Rick Kazman. Addison-Wesley, 1998. ? Software Architecture: Perspectives on an Emerging Discipline. Mary Shaw and David Garlan. Prentice-Hall, 1996.
Contedo
?O que Arquitetura de Software?
? Arquitetura versus Design
Arquitetura de Software
a estrutura, ou as estruturas, do sistema composta por: ?Seus componentes de software; ?As propriedades externamente visveis destes componentes; ?Os relacionamentos entre estes
? Dependem da natureza dos componentes
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Componentes so Abstraes
?Objetos? Processos? Processadores? Bibliotecas? Bases de Dados? Produtos Comerciais? ?So OMITIDAS as informaes sobre componentes que NO so pertinentes s interaes entre eles ?Detalhes privados dos componentes NO pertencem arquitetura
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
? Arquitetura
? Considera um maior escopo de requisitos
? confiabilidade, baixo custo, modificabilidade, segurana, turnover de pessoal, time-to-market ? horizonte de tempo que extrapola a vida de um sistema em particular
Vises Arquiteturais
Estrutura de Mdulos
? Unidades so atribuies de tarefas, associadas a especificaes de interfaces, cdigo, planos de teste ? Se ligam pela relao -sub-mdulo, compartilhasegredos-com ? So usadas para alocao de recursos, planejamento e estruturao do desenvolvimento, encapsulamento, controle de configurao
Mdulo A Importa Mdulo C
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Sub-Mdulo Mdulo B
Processo B
Compete com
Processo C
Estrutura Fsica
? Mapeamento do software no hardware ? Unidades so processadores ? Se ligam atravs da relao comunica-se com ? Permitem avaliao de performance, disponibilidade e segurana
Processador Processador Processador
Bridge
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estrutura de Usos
? Unidades so procedimentos ou mdulos ? Se ligam atravs da relao necessitam-da-presenade ? Facilitam a construo de sub-conjuntos de desenvolvimento
Mdulo A Usa
Mdulo C
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estrutura de Chamadas
? Unidades so programas ou sub-procedimentos ? Interagem pela relao chama ou invoca-comparmetros ? Permite rastrear o fluxo de execuo de um programa e eliminao de gargalos
Fluxo de Dados
? Unidades so programas ou mdulos ? Ligam-se atravs da relao pode-enviar-dados-para ? til para rastrear requisitos funcionais
Fluxo de Controle
? Unidades so programas, mdulos ou estados do sistema ? Ligam-se pela relao se-tornam-ativos-aps ? til para verificar o comportamento funcional do sistema e temporizao ? Pode ser idntico estrutura de chamada quando o controle se d exclusivamente pela invocao
Programa A Ativa Programa C
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estrutura de Classes
? Unidades so objetos e classes. ? As relaes so herda-de, -uma-instncia-de ? Facilitam o projeto de sistemas orientados a objetos
Client imp
Abstraction operation()
Implementor operationImp()
RefinedAbstraction
Relacionamentos
Arquitetura de Referncia
Arquitetura de Software
Arquitetura de Sistema
Estilos Arquiteturais
?Descrio dos tipos de componentes ?Padres de
? Controle de execuo ? Transferncia de dados
Modelo de Referncia
?Diviso de funcionalidade em partes, juntamente com o fluxo de dados entre estas ?Caractersticas de domnios amadurecidos ?Compiladores, DBMS, WWW, j2ee, etc
Arquitetura de Referncia
Modelo de referncia mapeado em:
? Componentes de software (os quais iro cooperativamente implementar a funcionalidade definida no modelo de referncia) ? Fluxos de dados entre os componentes
Arquitetura de sistema
o que est sendo executado
? Processos ? Processadores
? CPU ? Memria
? Configurao atual da rede (backbone, routers, bridges, etc) ? Mapeamento de processos para servidores
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
? Componentes Independentes
? Processos comunicantes
? Cliente/Servidor
? Chamada e retorno
? Programa principal e subrotinas ? Remote Procedure Call ? Orientado a objetos/TAD ? Camadas
? Sistemas de eventos
? Invocao Implcita
? Centrado em Dados
? Repositrio ? Blackboard
? Mquina virtual
? Interpretador