título do resumo - Eventos da Unicentro

Propaganda
APLICAÇÃO DE PADRÕES DE PROJETO EM UM MODELO DE
CONTROLE HOLÔNICO
Venyton Nathan Leandro Izidoro (DECOMP/UNICENTRO), Marcos Antonio
Quináia (Orientador), e-mail: [email protected], [email protected].
Universidade Estadual do Centro-Oeste/Setor de Ciências Exatas
Palavras-chave: Padrões de Projeto, Observer, Controle Holônico.
Resumo:
O projeto visa testar a aplicação do padrão de projeto Observer em uma
arquitetura de controle de fabricação, constituída de um Modelo de Controle
Holônico, quem tem o objetivo de tornar ágeis os sistemas modernos de
produção industrial. Para demonstrar o funcionamento do padrão na
arquitetura holônica, um simulador construído em JAVA é apresentado.
Introdução
A utilização de padrões foi apresentada por Christopher Alexander e outros
no contexto de arquitetura de prédios e cidades. “Cada padrão descreve um
problema que ocorre repetidamente de novo e de novo em nosso ambiente,
e então descreve a parte central da solução para aquele problema de uma
forma que você pode usar esta solução um milhão de vezes, sem nunca
implementá-la duas vezes da mesma forma”, [1].
A idéia principal da manufatura holônica é fazer uso das boas
propriedades dos sistemas holônicos no contexto de manufatura,
desenvolvendo uma classe de sistemas chamada Holonic Manufacturing
System (Sistema de Manufatura Holônico) ou HMS.
A arquitetura compreende um “Modelo de Controle Holônico”, que
utiliza a inteligência artificial para a organização ágil da manufatura e
produção. O padrão Observer foi aplicado no “mecanismo de notificação” da
arquitetura proposta. Para testar a aplicação do padrão, foi desenvolvido um
simulador em Java que demonstra o funcionamento do Observer no
mecanismo.
Materiais e Métodos
O padrão Observer
A utilização de padrões de projeto visa o aproveitamento de soluções
prontas para problemas comuns no projeto de software. O uso dessas
Anais da SIEPE – Semana de Integração Ensino, Pesquisa e Extensão
26 a 30 de outubro de 2009
soluções acarreta na economia com custos de projeto e tempo de
desenvolvimento, e é recomendado em quaisquer tipos de projetos, não
necessariamente de software. Essas técnicas de engenharia,
profundamente estudadas e testadas, garantem que os projetos cumpram
seus requisitos, [4].
Cada padrão de projeto deve possuir pelo menos quatro elementos
básicos: Nome, Problema, Solução e Consequências, [2].
O padrão Observer tem como objetivo manter a constante atualização
e consistência entre objetos relacionados. “Observer é um padrão de projeto
que tem intenção de definir uma dependência um-para-muitos entre objetos,
de maneira que quando um objeto muda de estado, todos os seus
dependentes são notificados e atualizados automaticamente”, [2].
No padrão Observer existe uma interface Subject ou Observable, que
deve conter os métodos para registrar, remover e notificar o observador.
Também existem as interfaces de observador, que contam com um único
método abstrato que é o de “atualizar”. Ambos possuem classes concretas
que implementam essas interfaces, uma para o Subject e outra para o
observador.
Aplicação do padrão na arquitetura.
Em [3] é proposto um mecanismo de notificação (Figura 1), baseado na
colaboração entre entidades desacopladas. Para o mecanismo funcionar
corretamente, deve ocorrer atualização imediata e automática dos subholons da camada posterior à camada onde uma alteração ocorreu. Assim,
os sub-holons devem possuir uma conexão com um objeto Observer que irá
notificá-los quando uma atualização for necessária.
Figura 1 – Mecanismo de notificação [3].
As classes ObsevableAtributo, ObsevablePremissa, ObsevableCondição, ObsevableRegra, ObsevableAção, ObsevableInstigação, ObsevableMétodo e ObsevableRecurso são classes Singleton (pode existir apenas
Anais da SIEPE – Semana de Integração Ensino, Pesquisa e Extensão
26 a 30 de outubro de 2009
uma instância de cada) que estendem a classe Observable que possui
implementação pronta em Java.
As interfaces Atributo, Premissa, Condição, Regra, Ação, Instigação,
Método e Recurso implementam a Classe Observer. Cada uma dessas
interfaces deve “observar” a classe Observable da camada anterior e
quando esta sofre uma alteração, atualizar o Observable da mesma
camada. O diagrama da aplicação pode ser visto na Figura 2.
Figura 2 – Diagrama de classes da aplicação.
O simulador
O simulador foi desenvolvido em Java, já que um paradigma orientado a
objetos é necessário e, como visto anteriormente, esta linguagem já possui o
padrão Observer pré-implementado, bastando importar as classes Observer
e Observable da biblioteca “java.util” para o sistema simulador e implementar
as devidas interfaces.
A tela principal do simulador contém um conjunto de botões que são
usados para criar novos observadores. Os observadores (Atributo, Premissa,
Regra, Ação, etc.) são representados por pequenas telas com um nome
(tipo de sub-holon), um valor numérico e um botão para notificar as
Anais da SIEPE – Semana de Integração Ensino, Pesquisa e Extensão
26 a 30 de outubro de 2009
entidades das camadas posteriores, provando assim a aplicabilidade do
padrão no mecanismo de notificação.
Resultados e Discussão
A aplicação do padrão mostrou-se eficiente quando aplicada ao mecanismo
de notificação da arquitetura, o que foi observado nas simulações
executadas no software simulador.
Utilizando de boas práticas de programação no paradigma orientado a
objetos, outra vantagem da aplicação do Observer é a facilidade de sua
implementação na linguagem Java, visto que a mesma possui o padrão
parcialmente pronto em suas bibliotecas. Ficando assim, a critério do
programador, somente o domínio da aplicação e a definição das entidades
observáveis e observadoras.
Conclusões
O padrão Observer demonstrou garantir a atualização instantânea das
entidades de forma rápida e precisa, proporcionando à arquitetura de
controle holônico a eficiência necessária aos seus propósitos.
Com o êxito do simulador concluiu-se que o Observer é adequado
para esta aplicação, por proporcionar uma solução para o problema, por ser
prático, de fácil implementação e eficiente.
Referências
Alexander, C., Ishkawa, S., Silverstein, M., Lacobson, M., FiksdahlKing, I. e Angel, S. (1977) “A Pattern Language” - Oxford University
Press, New York.
Gamma, E., Helm, R., Johnson, R. e Vlissides, J. (1994) “Padrões de
Projeto: Soluções reutilizáveis de software orientado a objeto”.
Simão, J. M. (2005) "A contribution to the development of a hms
simulation tool and proposition of a meta-model for holonic control" –
CEFET-PR.
Sommerville, I. (2003) “Engenharia de Software” 6. ed. São Paulo:
Pearson Addison Wesley.
Anais da SIEPE – Semana de Integração Ensino, Pesquisa e Extensão
26 a 30 de outubro de 2009
Download