Você está na página 1de 33

Arquitetura de Software Parte 1/3 Introduo*

Jorge H. C. Fernandes Junho de 1999

Arquitetura de Software
? Este curso baseado no livro Software Architecture in Practice, de Len Bass, Paul Clements and Rick Kazman. Addison-Wesley, 1998.

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

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.

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Contedo
?O que Arquitetura de Software?
? Arquitetura versus Design

?Vises Arquiteturais ?Estilos, Modelos e Arquiteturas de Software


? Estilos Arquiteturais ? Indicaes de Uso de Estilos Arquiteturais
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

O que Arquitetura de Software?

Arquitetura de Software

(de um Programa ou Sistema Computacional)

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)

Propriedades Externamente Visveis


Dependem da abstrao que se est observando, como:
? Mtodos que prov (objetos, classes); ? Caractersticas de desempenho (processador, rede); ? Tratamento de erros (mdulos); ? Uso de recursos compartilhados (funes); ? etc.
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Arquitetura versus Design

Arquitetura versus Design


? Design
? Objetiva a realizao do sistema como uma entidade funcional ? Faz parte do software life-cycle ? Resulta dos requisitos tcnicos que o sistema deve satisfazer.

? 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

? Representa a organizao que a co-produz


Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Todo Sistema de Software Possui uma Arquitetura


?Que pode no ser conhecida pelos usurios do sistema, pelos responsveis pela sua operao ?O comportamento externo de cada componente parte integrante da arquitetura

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Arquitetura de Software: Primeiras Decises de Projeto


?Restringe a implementao ?Direciona estrutura organizacional ?Inibe e estimula atributos de qualidade do sistema ?Permitem predies sobre qualidade dos sistemas ?Facilita anlise e gerncia de mudanas ?Auxilia prototipagem evolucionria
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Vises Arquiteturais

Sistemas possuem mais de uma Estrutura


?Diversos pontos de vista
? Times e sub-times de programao ? Processos e sincronizaes ? Mdulos e processos ? Subdiviso e sincronizao ? Desenvolvimento versus runtime

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Vises (ou estruturas) Arquiteturais mais Comuns


? Estrutura de Mdulos ? Estrutura Lgica ou Conceitual ? Estrutura de Processo ou de Coordenao ? Estrutura Fsica ? Estrutura de Usos Unidade Relao ? Estrutura de Chamadas ? Fluxo de Dados Relao Unidade ? Fluxo de Controle Relao Unidade ? Estrutura de Classes
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

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

Estrutura Lgica ou Conceitual


? Abstrao dos requisitos funcionais de um sistema ? Unidades so funes ? Se interligam atravs da relao compartilham-dadoscom ? Facilitam compreenso do espao de problemas ? Modelos de referncia em geral so estruturas lgicas
Funo A Compartilha dados funo C
Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Compartilha dados Funo B

Estrutura de Processo ou de Coordenao


? Trata de aspectos dinmicos de um sistema em execuo ? As unidades so processos ou threads ? Se ligam atravs de relaes sincronizam-com, nopodem-executar-sem, no-podem-executar-com, e outras relaes tratando de sincronizao e concorrncia ? Permitem anlise de escalonamento e de desempenho
Processo A
Depende Sincroniza

Processo B
Compete com

Processo C

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

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

Usa Mdulo B 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

Programa A Invoca (parmetros) Programa C

Invoca (parmetros) Programa B Invoca (parmetros)

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Fluxo de Dados
? Unidades so programas ou mdulos ? Ligam-se atravs da relao pode-enviar-dados-para ? til para rastrear requisitos funcionais

Mdulo A Dados Mdulo C

Dados Mdulo B Dados

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

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)

Ativa Mdulo B Precede

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()

imp.operationImpl(); ConcreteImplementorA operationImp() ConcreteImplementorB operationImp()

RefinedAbstraction

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Estilos, Modelos e Arquiteturas

Conceitos usados em Arquitetura e Design


?Estilos Arquiteturais ?Modelos de Referncia ?Arquiteturas de Referncia ?Arquitetura de Software ?Arquitetura de Sistema

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Relacionamentos

Modelo de Referncia Estilo Arquitetural

Arquitetura de Referncia

Arquitetura de Software

Arquitetura de Sistema

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Estilos Arquiteturais
?Descrio dos tipos de componentes ?Padres de
? Controle de execuo ? Transferncia de dados

?Restries sobre uma arquitetura


? cliente-servidor, pipes-e-filtros, camadas, etc

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

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

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

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

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

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)

Estilos Arquiteturais mais Comuns (Mary Shaw, 96)


? Data flow
? Batch ? Pipes e filtros

? 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

Copyright 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)

Arquitetura de Software Parte 1/3 - Introduo

Jorge H. C. Fernandes Junho de 1999

Você também pode gostar