Escolar Documentos
Profissional Documentos
Cultura Documentos
260
CGPE 8348
Framework Orientado a
Objetos Aplicado ao
Desenvolvimento do
IrrigaCerrado
ISSN 1517-5111
ISSN online 2176-5081
Junho, 2009
Empresa Brasileira de Pesquisa Agropecuria
Embrapa Cerrados
Ministrio da Agricultura, Pecuria e Abastecimento
Documentos 260
Framework Orientado
a Objetos Aplicado ao
Desenvolvimento do
IrrigaCerrado
Danilo Santos Teodoro
Ozanival Dario Dantas
Lus Gustavo Barioni
Euzebio Medrado da Silva
Daniela Henrique de Oliveira Duarte
Embrapa Cerrados
Planaltina, DF
2009
Embrapa 2009
Autores
Agradecimentos
Ao Conselho Nacional de Desenvolvimento Cientfico e Tecnolgico CNPq - Brasil pelo apoio financeiro ao projeto Economia Espacial no
Uso e Conflito da gua (Processo 555952/2006-1) do Programa de
Revitalizao da Bacia Hidrogrfica do Rio So Francisco.
Apresentao
Sumrio
Introduo.................................................................................... 9
Arquitetura................................................................................. 10
Modelo em Camadas................................................................... 11
Camada de viso.................................................................... 11
Camada de controle................................................................ 15
Camada de modelo.................................................................. 17
Framework Aplicado ao IrrigaCerrado............................................. 19
Camada de viso com o piv convencional................................. 19
Camada de controle com o piv convencional............................. 22
Camada de modelo com o piv convencional.............................. 23
Entendendo o Funcionamento das Camadas no IrrigaCerrado............ 23
Exibindo um Mdulo.................................................................... 24
Realizando uma Consulta.............................................................. 25
Persistindo uma Informao.......................................................... 26
Avaliando um Piv Convencional................................................... 27
Concluso.................................................................................. 29
Referncias................................................................................ 30
Abstract..................................................................................... 31
Framework Orientado
a Objetos Aplicado ao
Desenvolvimento do
IrrigaCerrado1
Danilo Santos Teodoro
Ozanival Dario Dantas
Lus Gustavo Barioni
Euzbio Medrado da Silva
Daniela Henrique de Oliveira Duarte
Introduo
O IrrigaCerrado um software, em desenvolvimento, que nasceu de
um projeto de pesquisa cujo objetivo avaliar e dimensionar, de forma
otimizada, o uso da gua no manejo da irrigao. Para tanto, deve
realizar as seguintes tarefas: avaliao do sistema de irrigao (seja
ele, piv convencional, piv lepa, gotejamento, asperso convencional,
asperso sob copa, etc.); avaliao do solo (utilizando tensiometria);
e manejo da irrigao (respondendo s perguntas: quando irrigar? e
quanto irrigar?).
De acordo com as tarefas descritas, o software deveria possuir uma
estrutura composta por cadastros (da propriedade, de equipamentos de
irrigao, de coletas e resultados de avaliaes, tanto da irrigao quanto
do solo, de culturas, entre outros) e por funes para realizar clculos
(rea relativa individual, rea total por grupo, lmina medida, rea
adequadamente irrigada, etc.). Adicionalmente, todas as informaes
geradas no sistema deveriam ser armazenas em um banco de dados.
Software desenvolvido na Embrapa Cerrados, para uso na irrigao, que busca responder as perguntas: quando irrigar e quanto irrigar.
1
12
Arquitetura
Para facilitar a interoperabilidade de componentes e a separao dos
mdulos (dividir para conquistar), foi adotado o modelo em camadas
(KRUCHTEN, 2003). Baseado nessa sentena, existe um princpio que
diz:
1. No conecte ou acople objetos que no so Interface do usurio
(IU) diretamente a objetos de IU. Por exemplo, no faa um objeto
de software Venda (um objeto do "domnio" no-IU) ter referncia
a um objeto janela. Por qu? Porque as janelas esto relacionadas a
uma aplicao em particular, enquanto (idealmente) os objetos nojanela podem ser reusados em novas aplicaes ou ligados a uma
nova interface.
Conjunto de classes que cooperam entre si e compem um projeto reutilizvel para uma categoria
especfica de software (GAMMA, et al., 1995).
2
Modelo em Camadas
O modelo adotado est dividido em trs camadas: Modelo, Viso e
Controlador. A grande vantagem desse tipo de modelo a possibilidade
de realizar diferentes implementaes de componentes para cada
uma das camadas, tornando-as permutveis. Com isso, consegue-se,
ao mesmo tempo, uma interface padro para basear o aplicativo e
flexibilidade para fornecer uma implementao totalmente diferenciada,
que ainda assim se encaixar com o sistema (LOBO, 2009). Daqui
para frente, essa arquitetura ser chamada apenas de MVC, de acordo
com a Fig. 1.
GUI<<
Viso<<
TfrmPadraoCadastro
<<
ICadastro
<<
<<
Controlador<<
TControladorPadraoCadastro
IConsulta
Modelo <<
Regras<<
TdtmdlPadraoCadastro
<<
<<
Camada de viso
Camada responsvel pela interface grfica, que dar acesso s
funcionalidades do sistema. Representada por um descendente de
TfrmPadraoCadastro ou at mesmo de TForm. Por padro, permite
consultar e cadastrar informaes, baseado no controlador associado.
13
14
ContratoCadastro.GravarAlteracao.
Controlador (ICadastro):
ModeloCadastro.GravarAlteracao.
Modelo (DataModule):
clntdtstCadastro.ApplyUpdates(0).
15
16
Camada de controle
Essa a camada que deve conhecer as outras, servindo como
intermediador entre viso e modelo. Representada por um descendente
de TControladorPadraoCadastro ou, at mesmo, TObject em casos
em que a implementao muito diferente do restante do projeto. Por
padro, realiza as interfaces de Consulta e Cadastro, permitindo:
Criar um novo registro.
Alterar um registro existente.
Excluir um registro.
Realizar uma consulta.
Gravar alteraes.
Cancelar alteraes.
Um controlador tem como funo:
Controlar o fluxo do sistema.
Guardar referncia e instanciar a viso e o modelo.
Encaminhar chamadas da viso ao modelo, quando necessrio.
Realizar algum cdigo que no seja relacionado nem com a
apresentao (janela e controles do usurio), nem com os dados
propriamente ditos.
Preparar o local (recipiente) onde a viso ser exibida.
Um controlador deve sempre implementar o design pattern Singleton,
para permitir uma nica instncia do controlador no sistema e facilitar
o acesso a ela (sempre deve ser acessado usando <NomeDaClasse>.
ObterInstancia.<NomeDoMtodo>, como em:
TCategoria.ObterInstancia.MostrarConsulta;
Na Fig. 5, mostra-se a hierarquia das principais classes da camada de
controle (Controlador).
17
18
Camada de modelo
Representa os dados e geralmente contm as regras de negcio que
tambm podem estar na base de dados. Os dados correntes no modelo
so visualizados atravs da viso, s vezes em forma de consulta,
s vezes em forma de cadastro, entre outros. representada por um
descendente de TdtmdlPadraoCadastro, ou at mesmo TDataModule,
quando os componentes variam muito do padro consulta &
cadastro. Por padro, implementa os seguintes servios:
Inserir registro.
Editar registro selecionado.
Excluir registro selecionado.
19
20
Gravar alterao.
Cancelar alterao.
Consultar.
A diferena desses servios com os servios do controlador que,
enquanto o modelo realiza sua implementao diretamente nos dados,
o controlador apenas encaminha as chamadas aos respectivos servios
do modelo, com algumas poucas alteraes na viso.
Na Fig. 6, mostram-se as principais classes que compem a camada de
Modelo.
Framework Aplicado ao
IrrigaCerrado
Com base no framework descrito anteriormente, o projeto IrrigaCerrado
ser implementado, utilizando como exemplo o mdulo avaliao de
piv convencional.
21
22
23
24
25
26
Exibindo um Mdulo
No diagrama da Fig. 15, so mostrados o relacionamento e a troca de
informaes entre objetos com o objetivo de consultar as propriedades
cadastradas.
27
28
29
30
Concluso
A definio de um conjunto de classes padronizadas e documentadas
que seguem um modelo consistente como o MVC traz diversos
benefcios a um projeto: padronizao; facilidade e agilidade na
manuteno; melhoria no entendimento do projeto, inclusive para novos
membros; o cdigo fica mais legvel; reutilizao de entidades; habilita
o trabalho em equipe, pois os mdulos so divididos em, no mnimo,
trs arquivos.
A partir da presente framework, podem ser desenvolvidos diversos
tipos de aplicativos que tenham as seguintes caractersticas: arquitetura
do tipo cliente x servidor; armazenamento e consulta em banco
31
32
Referncias
GAMMA, E.; JOHNSON, R.; VLISSIDES, J.; HELM, R. Design Patterns: elements of
reusable object-oriented software. 2. ed. Boston: Addison-Wesley, 1995.
KRUCHTEN, P. The Rational unified process: an introduction. Boston: Addison Wesley,
2003.
LARMAN, C. Applying UML and patterns. 2. ed. Upper Saddle River: Prentice Hall, 2002.
LOBO, E. J. R. Guia prtico de engenharia de software. So Paulo: Digerati, 2009.
Abstract
The IrrigaCerrado software is a product under development to facilitate
the irrigation users to decide the moment and the quantity of water
to apply based on soil-water measurements. Following the directions
given by the irrigation specialist, it was realized that the software
would have a structure based on information about properties,
irrigation equipments, evaluation of irrigation performance, soilwater measurements and water irrigation planning to guide irrigation
users. Furthermore, all generated information should be stored in a
database. Based on the analysis of the necessary structure to devise
the software, it was realized the occurrence of various similar entities,
which could be reorganized by using the technique of designing
patterns. This allowed to develop a framework with the objective to
establish a base for constructing software with physical architecture of
the type client-sever. In this case, the framework was subdivided into
three layers: model, which contains the data related to the business
domain; vision, graphical interface for users; and controllers, which
define the way as the interface interact with the users and how the
system must deal with the information given.
Index terms: client-server, three-layer architecture, developing
architecture.
33