Arquiteturas de Software
Joao Batista do Espirito Santo Neto
1
Departamento de Sistemas e Computacao Instituto Federal Goiano - Campus Rio Verde
Av. Sul Goiania - Km 1, s/n - Zona Ruaral, Ro Verde - GO, 75901-970
1. Introducao
Arquiteturas de software e patterns tem auxiliado na concepcao e evolucao de sistemas
de software. Um sistema de software pode ser desenvolvido a partir da descricao de sua
arquitetura, a qual define, dentre outros elementos, componentes e conectores.
A forma de interacao entre os elementos de uma arquitetura, bem como o projeto
e/ou estrutura empregados em cada um deles, podem ser reaproveitados atraves do uso
de patterns. Um pattern descreve determinado problema, recorrente no desenvolvimento
de software, e sua respectiva solucao. Isso permite ao desenvolvedor a reutilizacao de
solucoes, seja no contexto da arquitetura, projeto ou implementacao do sistema.
O design pattern Architecture Configurator, apresentado neste trabalho, concentra-
se em quatro princpios basicos: (i) encadeamento de conectores e compo- nentes; (ii)
interceptacao de requisicoes; (iii) manipulacao de requisicoes; e (iv) en- caminhamento
de requisicoes. A solucao descrita pelo design pattern serve de base a implementacao de
configuracoes arquiteturais.
O restante deste trabalho esta estruturado como se segue. A secao 2 aborda con-
ceitos basicos de arquitetura de software e patterns. A secao 3 apresentada a descricao
detalhada do design pattern Architecture Configurator. Por fim, na secao 4, sao apresen-
tadas as conclusoes do trabalho realizado, alem das perspectivas de trabalhos futuros.
3.1. Nome
Architecture Configurator
3.2. Contexto
A arquitetura de uma aplicacao envolve componentes e um ou mais conectores. Os com-
ponentes interagem uns com os outros, requerendo e/ou fornecendo servicos, e os conec-
tores intermediam essa interacao. Um componente, neste contexto, refere-se a um pro-
cesso, objeto, procedure, ou qualquer pedaco de codigo ou dados identificavel.
3.3. Exemplo
Como exemplo consideremos uma possvel arquitetura para a aplicacao Produtor-
Consumidor com buffer limitado (PCB) apresentada na figura 1. Ela e composta de tres
componentes (Produtor, Consumidor e Buffer) e um conector (Guarda). Os componentes
interagem, requerendo ou fornecendo algum tipo de servico, e possuem, cada um, sua
funcionalidade intrnseca (requisitos funcionais): o Produtor produz itens requerendo o
servico especfico para armazenar itens no Buffer (put); o Buffer armazena/recupera
itens fornecendo os respectivos servicos (put / get); o Consumidor consome itens
requerendo o servico especfico para retirar itens do Buffer (get).
3.4. Problema
A composicao de uma aplicacao parte do estabelecimento dos componentes envolvidos
e das suas interacoes. A definicao d e u m s istema e m t ermos d os c omponentes e das
interacoes entre estes componentes e chamada Arquitetura de um Sistema de Software
[Shaw et al. 1996], a qual e descrita atraves de uma ADL. O arquiteto, ao utilizar uma
ADL, seleciona e especifica os componentes do sistema e os c onectores. Este processo e
chamado Programacao da Configuracao, ou simplesmente, Configuracao.
Uma vez descrita a arquitetura, sua configuracao deve ser implementada, ou seja,
o mecanismo que concretiza a troca de mensagens (requisicoes e respostas) entre as
instancias de componentes e conectores deve ser estabelecido, conforme definido pela
configuracao arquitetural.
3.5. Solucao
4. Conclusao
Este artigo apresentou a proposta de um design pattern destinado a organizar, no nvel de
implementacao, os elementos basicos de uma arquitetura componentes, conectores e
portas de acordo com a programacao da configuracao arquitetural.
O design pattern Architecture Configurator foi concebido partindo-se da
observacao de padroes de recorrencia existentes na implementacao da configuracao ar-
quitetural e dos conectores de um sistema de software. Ele permite a implementacao
de componentes e conectores coesos quanto as suas respectivas funcionalidades e fraca-
mente acoplados quanto ao relacionamento, tornando-os independentes uns dos outros.
Suas propriedades e caractersticas apresentam-no como um suporte basico a partir do
qual pode-se realizar a implementacao de configurac oes arquiteturais.
Como trabalho futuro, pode-se destacar a investigacao de linguagens de patterns
existentes, as quais o Architecture Configurator poderia ser i ntegrado. Este pattern pode
contribuir, com seu enfoque arquitetural, no processo de desenvolvimento do sistema
de software de mesmo domnio de problema da linguagem de patterns a qual o mesmo
pertence.
Referencias
Abowd, G., Allen, R., and Garlan, D. (1993). Using style to understand descriptions of
software architecture. In Proceedings of the 1st ACM SIGSOFT Symposium on Foun-
dations of Software Engineering, SIGSOFT 93, pages 920, New York, NY, USA.
ACM.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M., Sommerlad, P., and
Stal, M. (1996). Pattern-oriented software architecture, volume 1: A system of pat-
terns. John Wiley and Sons.
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1994). Design patterns: elements
of reusable object-oriented software. Pearson Education.
Loques, O., Leite, J., Lobosco, M., and Sztajnberg, A. (1999). Integrating meta-level
programming and configuration programming. In Proceedings of the 1st Workshop on
Object-Oriented Reflection and Software Engineering (OORaSE99), pages 137151.
Citeseer.
Monroe, R. T., Kompanek, A. J., Melton, R., and Garlan, D. (1996). Stylized architecture,
design patterns, and objects.
Shaw, M., DeLine, R., and Zelesnik, G. (1996). Abstractions and implementations for
architectural connections. In Configurable Distributed Systems, 1996. Proceedings.,
Third International Conference on, pages 210. IEEE.
Shaw, M. and Garlan, D. (1996). Software architecture: perspectives on an emerging
discipline, volume 1. Prentice Hall Englewood Cliffs.