Você está na página 1de 16

GERADOR DE APLICAES WEB BASEADO EM UMA LINGUAGEM DE

PADRES DEFINIDA EM XML


GENERATOR WEB APPLICATION BASED ON A PATTERN LANGUAGE
DEFINED IN XML
Prof. Me Anderson Pazin a.pazin@gmail.com
RESUMO
Linguagens de padres definem um domnio de forma a facilitar a modelagem
de aplicaes por desenvolvedores menos experientes. Com o uso de uma
linguagem de padres pode-se definir uma arquitetura genrica que permita
automatizar o processo de desenvolvimento de novas aplicaes por meio de
frameworks ou geradores de aplicaes. Essa arquitetura pode ser definida por meio
de uma linguagem de modelagem de aplicaes(LMA), utilizando os conceitos de
linha de produtos de software. A LMA permite definir uma aplicao fazendo
especificaes em alto nvel. Dentro desse contexto, este artigo tem como objetivo
apresentar um gerador de aplicaes baseadas na Web para um domnio de clnicas
de reabilitao fsica que permite instanciar aplicaes usando uma LMA definida
com base em uma linguagem de padres.
Palavras-chave: Linguagem de Padres. Linhas de Produto de Software. Gerador de
Aplicaes. Reuso de Software. Linguagem de Modelagem da Aplicao.
ABSTRACT
Patterns language define a domain aiming at facilitating modeling of
applications by less experienced developers. With the use of a patterns language its
possible to define a generic architecture that allows for automating the development
process of new applications using frameworks or applications generator. This
architecture was defined by an Application Modeling Language (AML), assist the
software products line concepts. The AML allows the definition in high level
specification of application. This paper presents a Web based systems applications
generator for domain of physical rehabilitation clinic that use an AML defined based
on a pattern language.
Keywords: Pattern Language. Software Product-Line. Application Genarators.
Software Reuse. Application Modeling Language

INTRODUO
Durante o processo de desenvolvimento de software, o reuso uma das
atividades mais realizadas pelo engenheiro de software, sendo que na maioria das
vezes consiste de repetidas operaes de cortar/colar/modificar. Quanto mais
Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

292

adaptaes so necessrias, maior a possibilidade de se ter um produto final com


baixa qualidade, uma vez que essas adaptaes manuais favorecem a possveis
inseres de erros (FRANCA, 2000). Esses erros podem ser minimizados com a
automatizao das operaes envolvidas no reuso. Pela automatizao, as
atividades de desenvolvimento de software so realizadas por meio de
especificaes, indicando de forma menos complexa, o que deve ser feito em uma
aplicao.
Geradores de aplicaes so ferramentas de software que conseguem
automatizar parte de um processo rotineiro da atividade de desenvolvimento de
software, acelerando o processo de implementao e transformando especificaes
de alto nvel em produtos da aplicao. Podem ser considerados como compiladores
para uma linguagem de um domnio especfico (SMARAGDAKIS & BATORY,1998).
Essa linguagem pode ser elaborada a partir da anlise de domnio e, por exemplo,
ser representada por meio de uma linguagem de padres.
Outra forma para representar uma linguagem de domnio usando uma
Linguagem de Modelagem da Aplicao (LMA, originalmente AML Application
Modeling Language) enfatizando que as especificaes nelas escritas devem
representar modelos. O gerador de aplicaes criado dessa forma analisa as
especificaes escritas nessa LMA para a partir da gerar o produto final (WEISS &
LAI, 1999).
Este trabalho apresenta um gerador de aplicaes WEB para o domnio de
clnicas de reabilitao que foi desenvolvido com base na linguagem de padres
para Sistemas de Gerenciamento de Clnicas de reabilitao, denominada SiGCli
(PAZIN, 2004) . O gerador, em sua interface, apresenta uma LMA desenvolvida com
base na SiGCli para que o gerador especifique as aplicaes em uma linguagem de
muito alto nvel. As aplicaes so sistemas baseados na Web, escritas em Java e
com arquitetura em trs camadas.
Este artigo est organizado da seguinte maneira: a seo 1 trata dos
trabalhos relacionados que auxiliaram na definio desse gerador; a seo 2
apresenta o projeto do gerador. Na seo 3, a arquitetura do gerador e a estrutura
das aplicaes por ele geradas so mostradas; na seo 4, um exemplo de uso do
gerador ilustrado e por fim as consideraes finais sobre o trabalho.
Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

293

TRABALHOS RELACIONADOS
Uma linguagem de padres uma coleo de padres organizados, que se

apoiam, para transformar requisitos e restries numa arquitetura (COPLEIN, 1998)


Os padres que a constituem devem abranger todos os aspectos importantes de um
determinado domnio e pelo menos um padro deve estar disponvel para cada
aspecto da construo e implementao de um sistema de software. Ela auxilia na
diviso de problemas gerais com solues complexas em problemas menores e
relacionados, de forma a facilitar a soluo. Em uma linguagem de padres cada
padro pode ser usado de forma isolada ou com alguns padres relacionados dessa
linguagem. Assim, um nico padro considerado til mesmo se a linguagem no
for aplicada na sua totalidade.
A linguagem de padres para Gesto de Recursos de Negcio (GRN),
proposta por Braga (1998 e 1999), tem objetivo de auxiliar desenvolvedores menos
experientes na elaborao de aplicaes que tratam de gesto de recursos de
negcios. Ela composta por quinze padres, agrupados de acordo com o seu
propsito. O primeiro grupo, Identificar o Recurso de Negcio, constitudo de trs
padres que tratam da identificao e possvel qualificao, quantificao e
armazenagem dos recursos gerenciados pelo negcio. O segundo grupo,
Transaes de Negcio, trata dos padres relacionados manipulao dos recursos
de negcio pelo sistema, sendo composto de sete padres. O terceiro grupo,
Detalhes da Transao de Negcio, possui cinco padres que cuidam de detalhes
das transaes efetuadas com o recurso.
Braga e Masiero (2002) definem um processo para a construo de
frameworks com base em linguagens de padres. A partir da linguagem GRN
elaborou-se um framework, denominado GREN, definido em linguagem SmallTalk,
que permite criar aplicaes no domnio de sistemas de gesto de recursos de
negcios. Para facilitar a instanciao de aplicaes usando o framework, foi
desenvolvido um Wizard para esse propsito, denominado GREN-Wizard. Assim,
para a instanciao uma aplicao o desenvolvedor precisa apenas conhecer a
linguagem de padres GRN sem se preocupar com detalhes da programao
SmallTalk.
A partir do processo utilizado para a construo da linguagem de padres
Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

294

GRN, R (2002) elaborou uma linguagem de padres para Leilo Virtual,


denominada LV, para o desenvolvimento de sistemas para gesto de vendas por
intermdio de leiles virtuais. Ela uma extenso da GRN, pois trata de um tipo de
transao no coberto por ela. A partir da LV e do processo definido por Braga e
Masiero (2002) foi elaborado o Framework Qd+ (R, 2002) que permite instanciar
aplicaes para o domnio de Leiles Virtuais.
Franca e Staa (2001) propem um processo evolutivo para a construo de
geradores de aplicao (ou geradores de artefatos). O aperfeioamento do produto
gerado ocorre em ciclos sucessivos, sendo que a cada nova verso do produto, o
gerador de aplicaes se torna mais completo e genrico. Os autores comparam
esses geradores de aplicaes com frameworks, considerando as semelhanas
existentes entre eles. Em um framework existem partes fixas (frozen-spots), que no
so alteradas durante a instanciao de uma aplicao, e partes variveis (hotspots), que devem ser alteradas durante a instanciao de uma aplicao, por
conterem caractersticas especficas dessa. Em um gerador de aplicaes existem
as partes que so comuns (fixas) para todas as aplicaes, que so denominadas
similaridades e existem as partes que so especficas para cada aplicao, que so
denominadas variabilidades.
Os conceitos de similaridades e variabilidades so encontrados em linhas de
produto de software. Visam criao de um conjunto de produtos de software com
caractersticas similares, por meio da definio de uma infraestrutura comum aos
itens que compem os produtos e da parametrizao das diferenas entre eles
(GIMENES & TRAVASSOS, 2002). A LMA possibilita documentar a parametrizao
das diferenas entre os produtos a serem gerados, criando uma infraestrutura para a
linha de produtos de software que seja capaz de analisar e gerar diferentes produtos
por meio de uma especificao da LMA. Assim, tanto frameworks quanto geradores
de aplicaes podem ser usados como tecnologias que permitem a adaptao do
produto final de acordo com as caractersticas especficas (WEISS & LAI, 1999) .
A elaborao da linguagem de padres para o domnio de gerenciamento de
clnicas de reabilitao (SiGCli) e o gerador de aplicaes proposto para esse
domnio, apresentados na seo seguinte, tiveram por base os trabalhos e assuntos
discutidos nesta seo.
Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

295

DESENVOLVIMENTO DO GERADOR DE APLICAES

Grupo 1: Informaes Bsicas

Identificar Pacientes (1)

Definir Servios (2)


Grupo 2: Atendimentos

Grupo 3: Controle de Transaes


Financeiras
Controlar Faturamento (9)

Processar Guias (4)

Realizar Vendas (3)

Agendar Atendimentos (5)

Realizar Compras (8)

Realizar
Acompanhamento (7)

Identificar Atendentes (6)

Fonte: PAZIN et.al., 2004

Figura 1. Grafo do fluxo de aplicao dos padres da SiGCli.


A primeira atividade para criar um gerador de aplicaes analisar qual
domnio ele abranger. Neste trabalho, especificamente, o domnio de Sistemas de
Gerenciamento de Clnicas de reabilitao fsica (SiGCli) tratado. Esse domnio
expresso em uma linguagem de padres denominada SiGCli (PAZIN et. al, 2004)
A Figura 1 mostra o grafo de fluxo de aplicao dos padres da SiGCli. Ela
constituda de 9 padres, mas em uma aplicao nem todos precisam ser utilizados.
Os

padres

Identificar

Pacientes(1)

Definir

Servios(2),

devem

ser

obrigatoriamente aplicados em todos os sistemas. Em seguida, pode-se optar por


Realizar

Vendas(3)

ou

Processar

Guias(4),

seguido

do

padro

Agendar

Atendimentos(5). Aps realizado o agendamento dos atendimentos deve-se


Identificar Atendente(6) e/ou Realizar Acompanhamento(7). Tanto o padro 3 quanto
o padro 4 possibilitam a aplicao do padro Controlar Faturamento(9), sendo que
o padro 3 ainda pode ter um padro intermedirio ao 9, que o padro Realizar
Compras(8).
2.1

Especificao da LMA
Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

296

Uma Linguagem de Modelagem da Aplicao (LMA) visa documentar a


parametrizao das diferenas entre os produtos que sero gerados em uma linha
de produto de software, possibilitando a criao uma infraestrutura capaz de analisar
e gerar diferentes produtos (WEISS & LAI, 1999). A linguagem de padres SiGCli foi
usada para definir uma LMA que representasse as possveis variaes de
instanciao de clnicas usando essa linguagem (PAZIN, 2004). Essas variaes
devem ser explicitadas na LMA para que uma aplicao possa ser gerada
corretamente, conforme os seus requisitos. Para a elaborao da LMA foram usadas
a seguintes diretrizes:
1) padres aplicados sem variao (similaridade): para a LMA utiliza-se
somente o nome do padro da linguagem de padres..
2) padres aplicados com variao (variabilidade): Duas caractersticas
devem ser analisadas:
2.1)

A variao controlada pelo desenvolvedor: nesse caso identifica-

se a variao atribuindo-lhe um nome que ser usado na LMA. Cabe ao


desenvolvedor optar ou no pelo uso de tal variao, podendo ela ser
exclusiva (nica variabilidade no padro) ou mltipla (pode-se usar mais
que uma variabilidade para o mesmo padro).
2.2)

A variao controlada pela instanciao: nesse caso, ela

resultante da aplicao de outros padres e os diferentes tipos de


instanciaes de aplicaes devem ser gerenciados a partir dos padres
escolhidos anteriormente pelo desenvolvedor.
O Quadro 1 apresenta os padres da SiGCli e as variabilidades (Nome e
Descrio) identificadas quando as diretrizes apresentadas anteriormente para a
elaborao da LMA foram aplicadas. Quando no existir variabilidade a coluna
Nome apresenta a sentena No possui e a coluna Descrio tem um trao
diagonal. Quando a variabilidade no for controlada pelo desenvolvedor a coluna
Nome apresenta a sentena No possui e a coluna Descrio apresenta a
variabilidade que deve ser controlada pelo gerador. A Figura 2 exibe a LMA de
acordo com o apresentado no Quadro 1.

Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

297

Padro

1
2

Identificar Pacientes
Definir Servios

Realizar Vendas

Processar Guias

Agendar
Atendimentos

Identificar Atendente

Realizar
Acompanhamento

8
9

Realizar Compras
Controlar Faturamento

Nome Variabilidade
Nome
Descrio
No possui
Com
Tipo 1. Uma clnica no precisa especificar os
Servio
servios prestados de forma detalhada
Com Produto
1. Uma clnica realiza a comercializao
de
servios,
mas
nem
sempre
comercializa produtos
No possui
1. Caso o padro Controlar Faturamento
tenha sido aplicado, deve-se acrescentar
alguns atributos e mtodos relacionados
ao valor da Guia e dos atendimentos
No possui
1. O agendamento de sesses pode ser
efetuado por meio de uma guia ou de
uma venda.
Com Atributos 1. Quando for necessrio armazenar
Atendentes
informaes sobre o ganho e a
especialidade do atendente.
Tipo Avaliao 1. Cada clnica possui avaliaes
especficas, conforme os tratamentos que
Educao
Fsica
realizam, com atributos especficos. Por
exemplo, os atributos analisados em uma
avaliao ortopdica para uma clnica de
fisioterapia so diferentes dos atributos
Tipo Avaliao avaliados para uma clnica de educao
fsica.
Fisioterapia
2. Cada avaliao pode possuir um
conjunto de fatores que so variantes. Por
Tipo Avaliao exemplo, em uma avaliao o uso de
medicamentos deve ser considerado; em
Terapia
Ocupacional
outra alguns testes especiais devem ser
realizados
para
a
concluso
do
tratamento.
Esses
fatores
so
(concluso)
considerados como Itens da Avaliao.
No possui
No possui
1. Depende da aplicao dos padres
Realizar Vendas, Processar Guias,
Identificar Atendentes e Realizar Compras
para definir quais classes devem ser
usadas para o sistema

Fonte: Elaborado pelo autor

Quadro 1- Variabilidades identificadas entre os padres da SiGCli.

Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

298

Identificar Pacientes;
2
Definir Servios;
Com tipos servios
2
Realizar Vendas;
Com Produtos
3
Processar Guias;
3
Agendar Atendimentos;
2
Identificar Atendentes;
Com Atributos Atendentes
2
Realizar Acompanhamentos
Avaliao Educao Fsica;
Avaliao Fisioterapia;
Avaliao Terapia Ocupacional;
1
Realizar Compras;
3
Controlar Faturamento;

Legenda:
123-

Padres aplicados sem variao


Variao controlada pelo desenvolvedor
Variao controlada pela instanciao

Fonte: Elaborado pelo Autor

Figura 2. LMA definida para a linguagem de padres SiGCli.


3

ARQUITETURA DO GERADOR E DAS APLICAES GERADAS


O Gerador de Aplicaes Web para Sistemas de Gesto de Clnicas de

Reabilitao (GAwCRE), apresentado na Figura 3. Ele usa as definies da


linguagem de padres e da LMA armazenadas em XML e gera:

A interface para que o desenvolvedor instancie sua aplicao: o


gerador l as definies do arquivo XML e apresenta o conjunto de
padres e variantes para que o desenvolvedor escolha o que ser utilizado
para instanciar as novas aplicaes. Essas informaes so apresentadas
conforme a definio da LMA e, sempre que uma opo da LMA for
escolhida, essa gravada em um banco de dados constituindo um
conjunto de informaes que pode ser recuperado na fase de gerao da
aplicao. Esse mdulo denominado Instanciador da LMA;

Os scripts para a criao da base de dados: as informaes da


aplicao armazenadas no banco de dados, conforme a especificao da
LMA,so comparadas com as definies do arquivo XML para que sejam
criados as tabelas, as chaves e os relacionamentos que satisfazem os
requisitos da aplicao. Esse o mdulo denominado como Gerador de
Script SQL;

As classes Java que sero os Beans da aplicao: as informaes da

Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

299

aplicao armazenadas no banco de dados, conforme a especificao da


LMA, so comparadas com as definies do arquivo XML para que sejam
criadas as classes e as associaes que satisfazem os requisitos da
aplicao. Os mtodos mais simples como os de atribuio (set) ou os de
recuperao (get) so gerados dinamicamente. J os mtodos que tratam
de funcionalidades especficas de cada classe, devem estar definidos no
arquivo XML. Esse o mdulo denominado Gerador das Classes Java

;As interfaces JSP da aplicao: as informaes da aplicao


armazenadas no banco de dados, conforme a especificao da LMA, so
comparadas com as definies do arquivo XML para que sejam criados os
tipos de interfaces. Aps a criao dessas interfaces elas devem ser
disponibilizadas em um servidor WEB que seja capaz de interpretar o
cdigo JSP. Esse o mdulo denominado Gerador das Interfaces JSP.

Segundo Franca & Staa (2001), artefato qualquer item criado como parte da
definio, manuteno, ou utilizao de um processo de software, podendo ou no
ser entregues a um cliente ou usurio final. Por essa definio todos os produtos
gerados pelo gerador, desde os scripts de criao do banco de dados at a aplicao
final podem ser considerados artefatos.
Os artefatos so criados com base na definio dos gabaritos (templates) prexistentes no gerador que so definidos aps a anlise dos pontos variveis e
similares de um produto desejado. Para que a linguagem Java possa ter acesso e
manipular as informaes existentes em um arquivo XML, utiliza-se de um padro da
W3C (World Wide Web Consortium) denominado DOM (Document Object Model) que
possibilita a navegao entre as tags do arquivo XML. Dessa forma, basta substituir
os pontos variveis do produto a ser gerado pelos valores definidos na tag XML para
que o produto desejado seja gerado

Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

300

...
<padrao numero="2" nome="Definir Servios">
<classe nome="Servico" interface="1">
<atributo> codigoId </atributo>
<atributo> descrio </atributo>
<atributo>valor</atributo>
<atributo>situacao</atributo>
<associacao>tpservico</associacao>
</classe>
<variante nome="Com tipo servio">
<classe nome="Tipo_Servico">
<atributo> codigoId </atributo>
<atributo> descrio</atributo>
</classe>
</variante>
</padrao>
...

Documento XML

L as definies
XML- SiGCli

...

CREATE TABLE SERVICO (


CODIGOID NUMBER(4) NULL,
DESCRICAO VARCHAR2(25) NULL);
...
ALTER TABLE SERVICO
MODIFY CODIGOID NUMBER(4) NOT
NULL;
...

Script de criao da Base de Dados

Gerador de scripts
SQL
Gerador GAwCRe

Interface

Gabaritos de
Cdigo

Instanciador da LMA
(Gerador de aplicaes)
Armazena e recupera
os dados das
especificaes LMA
para cada aplicao

package ClinicaFisio;
...
public class Servico
implements PersistentObject {
...
// Atributos da classe
Gerador das Classes
private int codigoId;
Java
private String descricao;
...
public Servico(){
...
}
Gerador de Interfaces
...
Web
}

Classes Java

Especificao
LMA para uma
Aplicao
Base de Dados
do Gerador

Bibliotecas

Interface Web

Fonte: Elaborado pelo Autor.

Figura 3. Esquema de funcionamento do gerador GAwCRe e os artefatos por ele


gerado.
3.1

Arquitetura do Gerador
A Figura 4 exibe o modelo de classes (em alto nvel) do gerador de aplicao

de Sistemas de Gesto de Clnicas. A classe FrameGerador responsvel por


definir a interface com o desenvolvedor por meio de um objeto do tipo frame,
construdo dinamicamente com base nas informaes existentes no arquivo XML
Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

301

sobre a especificao da LMA.


As classes Gerador e XMLManager (Figura 4) importam as bibliotecas
responsveis pela manipulao do arquivo XML, a interface DOM. Todas as
informaes sobre os padres aplicados so armazenadas em um banco de dados
relacional utilizando o padro Persistence Layer (YODER et.al,1998), que tambm
usado para persistncia dos dados das aplicaes geradas pelo gerador. Para a
gerao dos artefatos da aplicao tem-se: o gerador de cdigo Java, representado
pela classe GeradorCodigo; o gerador de scripts SQL, representado pela classe
GeradorSQL, e o gerador de interfaces com o usurio, representada pela classe
GeradorJSP, que so mdulos independentes do gerador facilitando assim a
gerao de partes da aplicao. As classes AplPadrao e AplVariante representam os
padres e as variantes aplicadas, respectivamente, para cada aplicao instanciada
pelo gerador.

Persistence
Layer

Aplicao

1..*

AplPadrao

0..*

AplVariante

0..*

Gerador

FrameGerador
r

XMLManager

Parser
DOM

GeradorJSP

GeradorCodigo

GeradorSQL

Fonte: Elaborado pelo Autor

Figura 4. Modelo de classes do GAwCRe.


3.2

Arquitetura das Aplicaes Geradas


A Figura 5 apresenta a arquitetura das aplicaes geradas pelo gerador que

so sistemas em trs camadas. A cada solicitao do usurio as pginas so


geradas pela camada de aplicao e apresentadas ao usurio por meio de um
Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

302

browser. Sempre que o usurio necessita armazenar ou recuperar informaes no


sistema, a solicitao feita na camada de apresentao passada para a camada
de aplicao que se comunica com a camada de persistncia com o objetivo de
realizar as operaes solicitadas.
Camada de Apresentao

Camada de Aplicao
Arquivos
JSP

Beans
Aplicao

Camada de Persistncia
Persitence
Layer

Banco de
dados

Contm todas as classes de interface e a nica


camada visvel aos usurios. Faz a interface das
solicitaes do usurio com a camada de aplicao

responsvel pela lgica do negcio, o que inclui


algoritmos e regras procedimentais, e define o
comportamento do sistema.

responsvel pela lgica de manipulao de dados e


de conexo com o SGBD e responsvel pelo
armazenamento fsico dos objetos.

Fonte: Elaborado pelo Autor

Figura 4. Arquitetura da aplicao gerada pelo GAwCRe.

EXEMPLO DE USO

Para exemplificar a instanciao de uma aplicao usando o gerador de


aplicaes da SiGCli, optou-se pela clnica de fisioterapia existente nas Faculdades
Salesianas de Lins, no Centro de Reabilitao Fsica Dom Bosco. Essa clnica
controla todos os atendimentos realizados em seus pacientes e o seu objetivo
principal armazenar os acompanhamentos e avaliaes realizadas pelos
atendentes. Esses atendentes so alunos do curso de Fisioterapia e devem ser
avaliados na disciplina de estgio supervisionado, existente em sua grade curricular.
Esses atendentes no so remunerados e o controle do faturamento da clnica
tambm no de interesse nesse sistema. O modelo de classes do sistema
apresentado na Figura 6, sendo resultado da aplicao dos padres (1) Identificar
Pacientes, (2) Definir Servios, (4) Processar Guias, (5) Agendar Atendimentos, (6)
Identificar Atendentes e (7) Realizar Acompanhamento da linguagem de padres
Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

303

SiGCli. Cada classe possui um nmero, no canto superior esquerdo, que define a
qual padro ela pertence conforme a numerao definida no grafo de fluxo de
aplicao dos padres da SiGCli (Figura 1).

(1)

(1)
Cidade

(4), (5)
Paciente

(4)

Guia

Patologia

(1)
(4)

Profisso

(6)

(5), (6), (7)

Convnio

Atendimento

Atendente

(7)
(2), (5)

Teste Especiais

Servio

(7)
Dados Clnicos

(7)

(5)
(7)

Avaliaes

Horrio Atendimento
Medicamentos

(7)

(7)
Neuro Adulto

(7)
Ortopdica

(7)
Cardiologica

(7)
Neuro Infantil

Pneumologica

(7)
Diria

Fonte: Elaborado pelo Autor

Figura 5. Modelo de classes obtido aps a aplicao da SiGCli..


A Figura 7 mostra a especificao da LMA, com os padres e variantes
usados para instanciar a aplicao desejada. A instanciao da LMA no gerador
acontece por meio de seleo de checkboxs existentes na interface. Sempre que
uma opo oferecida for desejada na aplicao, deve-se selecionar a caixa.
Identificar Pacientes;
Definir Servios;
Processar Guias;
Agendar Atendimentos;
Identificar Pacientes;
Realizar Acompanhamentos
com Avaliaes de Fisioterapia;
Fonte: Elaborado pelo Autor

Figura 3. Especificao da LMA para o sistema exemplo.


Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

304

CONCLUSO
Neste trabalho apresentado um gerador de aplicaes baseado em uma
linguagem de padres para o domnio de sistemas de gerenciamento de clnicas de
reabilitao, denominado SiGCli. Esse domnio foi definido por meio de um processo
de engenharia reversa auxiliado por apoios computacionais desenvolvidos para esse
propsito, com o intuito de facilitar a execuo dessa atividade. A linguagem de
padres SiGCli, que a base do gerador de aplicaes proposto, foi elaborada com
base nos padres da linguagem de padres GRN, uma vez que alguns padres da
SiGCli so similares aos j definidos pela GRN, principalmente os que tratam da
transao de negcios. Para facilitar a gerao de novas aplicaes, com o uso do
gerador, foi elaborada uma Linguagem de Modelagem da Aplicao (LMA) que
permite instanciar aplicaes por meio de especificaes em alto nvel. Portanto,
esse gerador possui como elemento diferenciador o fato de ter uma linguagem de
padres usada para representar o domnio e especificar a LMA, bem como para
apoiar o processo de gerao.
Deve-se notar que o processo apresentado geral e pode ser reusado para
outros domnios. A estrutura do gerador permanecer basicamente a mesma,
mudando-se a LMA e os gabaritos de cdigo. O uso de XML para armazenar a
especificao dos padres tambm facilita o reuso. O gerador apresentado define
uma famlia de produtos de software que a de sistemas de gesto de clnicas de
reabilitao. Considerando as variabilidades presentes nos padres e representadas
na LMA, possvel gerar um conjunto de aplicaes diferentes.
REFERNCIAS
BRAGA, R. T. V.; GERMANO, F. S. R.; MASIERO, P. C. A family of patterns for
business resource management. In: 5th Annual Conference on Pattern Languages
of Programs (PLOP98), Washington University in St. Louis Missouri, USA, onLine.
Disponvel
em
http://jerry.cs.uiuc.edu/~plop/plop98/final_submissions.
Consultado em 31/01/2003. 1998.
BRAGA, R. T. V.; GERMANO, F. S. R.; MASIERO, P. C. A pattern language for
business resource management. In: 6th Pattern Languages of Programs
Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

305

Conference (PLoP99), Monticello IL, USA, 1999


BRAGA, R. T. V.; MASIERO, P. C. A process for framework construction based on a
pattern language. In: 26th Annual International Computer Software and Applications
Conference (COMPSAC 2002), OxfordEngland, 2002.
BRAGA, R. T. V. Um Processo para a Construo e Instanciao de Frameworks
baseado em uma Linguagem de Padres para um Domnio Especfico. Tese de
Doutorado, ICMC/USP, So Carlos-SP, 2003
COPLIEN, J. O. Software design patterns: Common questions and answers in L.
Rising The Patterns Handbook: Techniques, Strategies, and Applications,
Cambridge University Press, p. 311320, 1998
FRANCA, L. P. A Um processo para construo de geradores de artefatos. Tese
de Doutorado - Departamento de Informtica - Pontifica Universidade Catlica do
Rio de Janeiro, Rio de Janeiro RJ, 2000.
FRANCA, L. P. A.; STAA, A. V. Geradores de Artefatos: Implementao e
Instanciao de Frameworks. In: Anais do XV SBES-2001- Simpsio Brasileiro de
Engenharia de Software. Rio de Janeiro. pp.302-315 , 2001
GIMENES, I. M. S.; TRAVASSOS, G. H. O enfoque de linha de produto para
desenvolvimento de software. In: Anais do XXII Congresso da Sociedade
Brasileira de Computao - Tutoriais, 2002.
PAZIN, A. Um Gerador de Aplicaes para o Domnio de Clnicas de
Reabilitao. Dissertao de Mestrado Programa de Ps Graduao em Cincia
da Computao Universidade Federal de So Carlos, So Carlos SP,
agosto/2004.
PAZIN, A., PENTEADO, R. A. D., MASIERO, P. C. SiGCli: A Pattern Language for
Rehabilitation Clinics Management. : 4 Conferencia Latino-Americana em
Linguagem de Padres para Programao (SugarLoafPlop), Porto das Dunas CE,
Brasil, 2004
R, R. Um processo para construo de frameworks a partir da engenharia
reversa de sistemas de informao baseados na Web: Aplicao ao domnio
dos leiles virtuais. Dissertao de Mestrado, ICMC/USP, So Carlos SP, 2002.
SMARAGDAKIS, Y.; BATORY, D. Application Generators. Department of
Computer Sciences. The University of Texas at Austin. Artigo retirado da pgina
pessoal URL: http://www.cc.gatech.edu/~yannis. ltimo acesso em 27 de Maro de
2011 na, 1998.
YODER, J.W.; JOHNSON, R.E.; WILSON, Q.D. - Connecting Business Objects to
Relational Databases. In: Conference on the Pattern Languages of Programs, 5,
Monticello-IL, EUA. Proceedings, 1998
Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

306

WEISS, D., LAI, C. T. R. Software Product-Line Engineering: a family-based


software development process. Ed. Addison Wesley, 1999. 426 p.

Universitri@ - Revista Cientfica do Unisalesiano Lins SP, ano 2, n.4, jul/dez de 2011

307