Gerador de aplicacoes Web baseado em uma

Transcrição

Gerador de aplicacoes Web baseado em uma
GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE
PADRÕES DEFINIDA EM XML
GENERATOR WEB APPLICATION BASED ON A PATTERN LANGUAGE
DEFINED IN XML
Prof. Me Anderson Pazin – [email protected]
RESUMO
Linguagens de padrões definem um domínio de forma a facilitar a modelagem
de aplicações por desenvolvedores menos experientes. Com o uso de uma
linguagem de padrões pode-se definir uma arquitetura genérica que permita
automatizar o processo de desenvolvimento de novas aplicações por meio de
frameworks ou geradores de aplicações. Essa arquitetura pode ser definida por meio
de uma linguagem de modelagem de aplicações(LMA), utilizando os conceitos de
linha de produtos de software. A LMA permite definir uma aplicação fazendo
especificações em alto nível. Dentro desse contexto, este artigo tem como objetivo
apresentar um gerador de aplicações baseadas na Web para um domínio de clínicas
de reabilitação física que permite instanciar aplicações usando uma LMA definida
com base em uma linguagem de padrões.
Palavras-chave: Linguagem de Padrões. Linhas de Produto de Software. Gerador de
Aplicações. Reuso de Software. Linguagem de Modelagem da Aplicação.
ABSTRACT
Patterns language define a domain aiming at facilitating modeling of
applications by less experienced developers. With the use of a patterns language it’s
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
INTRODUÇÃO
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 operações de “cortar/colar/modificar”. Quanto mais
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
292
adaptações são necessárias, maior é a possibilidade de se ter um produto final com
baixa qualidade, uma vez que essas adaptações manuais favorecem a possíveis
inserções de erros (FRANCA, 2000). Esses erros podem ser minimizados com a
automatização das operações envolvidas no reuso. Pela automatização, as
atividades de desenvolvimento de software são realizadas por meio de
especificações, indicando de forma menos complexa, o que deve ser feito em uma
aplicação.
Geradores de aplicações são ferramentas de software que conseguem
automatizar parte de um processo rotineiro da atividade de desenvolvimento de
software, acelerando o processo de implementação e transformando especificações
de alto nível em produtos da aplicação. Podem ser considerados como compiladores
para uma linguagem de um domínio específico (SMARAGDAKIS & BATORY,1998).
Essa linguagem pode ser elaborada a partir da análise de domínio e, por exemplo,
ser representada por meio de uma linguagem de padrões.
Outra forma para representar uma linguagem de domínio é usando uma
Linguagem de Modelagem da Aplicação (LMA, originalmente AML – Application
Modeling Language) enfatizando que as especificações nelas escritas devem
representar modelos. O gerador de aplicações criado dessa forma analisa as
especificações escritas nessa LMA para a partir daí gerar o produto final (WEISS &
LAI, 1999).
Este trabalho apresenta um gerador de aplicações WEB para o domínio de
clínicas de reabilitação que foi desenvolvido com base na linguagem de padrões
para Sistemas de Gerenciamento de Clínicas de reabilitação, denominada SiGCli
(PAZIN, 2004) . O gerador, em sua interface, apresenta uma LMA desenvolvida com
base na SiGCli para que o gerador especifique as aplicações em uma linguagem de
muito alto nível. As aplicações são sistemas baseados na Web, escritas em Java e
com arquitetura em três camadas.
Este artigo está organizado da seguinte maneira: a seção 1 trata dos
trabalhos relacionados que auxiliaram na definição desse gerador; a seção 2
apresenta o projeto do gerador. Na seção 3, a arquitetura do gerador e a estrutura
das aplicações por ele geradas são mostradas; na seção 4, um exemplo de uso do
gerador é ilustrado e por fim as considerações finais sobre o trabalho.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
293
1
TRABALHOS RELACIONADOS
Uma linguagem de padrões é uma coleção de padrões organizados, que se
apoiam, para transformar requisitos e restrições numa arquitetura (COPLEIN, 1998)
Os padrões que a constituem devem abranger todos os aspectos importantes de um
determinado domínio e pelo menos um padrão deve estar disponível para cada
aspecto da construção e implementação de um sistema de software. Ela auxilia na
divisão de problemas gerais com soluções complexas em problemas menores e
relacionados, de forma a facilitar a solução. Em uma linguagem de padrões cada
padrão pode ser usado de forma isolada ou com alguns padrões relacionados dessa
linguagem. Assim, um único padrão é considerado útil mesmo se a linguagem não
for aplicada na sua totalidade.
A linguagem de padrões para Gestão de Recursos de Negócio (GRN),
proposta por Braga (1998 e 1999), tem objetivo de auxiliar desenvolvedores menos
experientes na elaboração de aplicações que tratam de gestão de recursos de
negócios. Ela é composta por quinze padrões, agrupados de acordo com o seu
propósito. O primeiro grupo, Identificar o Recurso de Negócio, é constituído de três
padrões que tratam da identificação e possível qualificação, quantificação e
armazenagem dos recursos gerenciados pelo negócio. O segundo grupo,
Transações de Negócio, trata dos padrões relacionados à manipulação dos recursos
de negócio pelo sistema, sendo composto de sete padrões. O terceiro grupo,
Detalhes da Transação de Negócio, possui cinco padrões que cuidam de detalhes
das transações efetuadas com o recurso.
Braga e Masiero (2002) definem um processo para a construção de
frameworks com base em linguagens de padrões. A partir da linguagem GRN
elaborou-se um framework, denominado GREN, definido em linguagem SmallTalk,
que permite criar aplicações no domínio de sistemas de gestão de recursos de
negócios. Para facilitar a instanciação de aplicações usando o framework, foi
desenvolvido um Wizard para esse propósito, denominado GREN-Wizard. Assim,
para a instanciação uma aplicação o desenvolvedor precisa apenas conhecer a
linguagem de padrões GRN sem se preocupar com detalhes da programação
SmallTalk.
A partir do processo utilizado para a construção da linguagem de padrões
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
294
GRN, Ré (2002) elaborou uma linguagem de padrões para Leilão Virtual,
denominada LV, para o desenvolvimento de sistemas para gestão de vendas por
intermédio de leilões virtuais. Ela é uma extensão da GRN, pois trata de um tipo de
transação não 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
aplicações para o domínio de Leilões Virtuais.
Franca e Staa (2001) propõem um processo evolutivo para a construção de
geradores de aplicação (ou geradores de artefatos). O aperfeiçoamento do produto
gerado ocorre em ciclos sucessivos, sendo que a cada nova versão do produto, o
gerador de aplicações se torna mais completo e genérico. Os autores comparam
esses geradores de aplicações com frameworks, considerando as semelhanças
existentes entre eles. Em um framework existem partes fixas (frozen-spots), que não
são alteradas durante a instanciação de uma aplicação, e partes variáveis (hotspots), que devem ser alteradas durante a instanciação de uma aplicação, por
conterem características específicas dessa. Em um gerador de aplicações existem
as partes que são comuns (fixas) para todas as aplicações, que são denominadas
similaridades e existem as partes que são específicas para cada aplicação, que são
denominadas variabilidades.
Os conceitos de similaridades e variabilidades são encontrados em linhas de
produto de software. Visam à criação de um conjunto de produtos de software com
características similares, por meio da definição de uma infraestrutura comum aos
itens que compõem os produtos e da parametrização das diferenças entre eles
(GIMENES & TRAVASSOS, 2002). A LMA possibilita documentar a parametrização
das diferenças 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 especificação da LMA. Assim, tanto frameworks quanto geradores
de aplicações podem ser usados como tecnologias que permitem a adaptação do
produto final de acordo com as características específicas (WEISS & LAI, 1999) .
A elaboração da linguagem de padrões para o domínio de gerenciamento de
clínicas de reabilitação (SiGCli) e o gerador de aplicações proposto para esse
domínio, apresentados na seção seguinte, tiveram por base os trabalhos e assuntos
discutidos nesta seção.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
295
2
DESENVOLVIMENTO DO GERADOR DE APLICAÇÕES
Grupo 1: Informações Básicas
Identificar Pacientes (1)
Definir Serviços (2)
Grupo 2: Atendimentos
Grupo 3: Controle de Transações
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 aplicação dos padrões da SiGCli.
A primeira atividade para criar um gerador de aplicações é analisar qual
domínio ele abrangerá. Neste trabalho, especificamente, o domínio de Sistemas de
Gerenciamento de Clínicas de reabilitação física (SiGCli) é tratado. Esse domínio é
expresso em uma linguagem de padrões denominada SiGCli (PAZIN et. al, 2004)
A Figura 1 mostra o grafo de fluxo de aplicação dos padrões da SiGCli. Ela é
constituída de 9 padrões, mas em uma aplicação nem todos precisam ser utilizados.
Os
padrões
Identificar
Pacientes(1)
e
Definir
Serviços(2),
devem
ser
obrigatoriamente aplicados em todos os sistemas. Em seguida, pode-se optar por
Realizar
Vendas(3)
ou
Processar
Guias(4),
seguido
do
padrão
Agendar
Atendimentos(5). Após realizado o agendamento dos atendimentos deve-se
Identificar Atendente(6) e/ou Realizar Acompanhamento(7). Tanto o padrão 3 quanto
o padrão 4 possibilitam a aplicação do padrão Controlar Faturamento(9), sendo que
o padrão 3 ainda pode ter um padrão intermediário ao 9, que é o padrão Realizar
Compras(8).
2.1
Especificação da LMA
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
296
Uma Linguagem de Modelagem da Aplicação (LMA) visa documentar a
parametrização das diferenças entre os produtos que serão gerados em uma linha
de produto de software, possibilitando a criação uma infraestrutura capaz de analisar
e gerar diferentes produtos (WEISS & LAI, 1999). A linguagem de padrões SiGCli foi
usada para definir uma LMA que representasse as possíveis variações de
instanciação de clínicas usando essa linguagem (PAZIN, 2004). Essas variações
devem ser explicitadas na LMA para que uma aplicação possa ser gerada
corretamente, conforme os seus requisitos. Para a elaboração da LMA foram usadas
a seguintes diretrizes:
1) padrões aplicados sem variação (similaridade): para a LMA utiliza-se
somente o nome do padrão da linguagem de padrões..
2) padrões aplicados com variação (variabilidade): Duas características
devem ser analisadas:
2.1)
A variação é controlada pelo desenvolvedor: nesse caso identifica-
se a variação atribuindo-lhe um nome que será usado na LMA. Cabe ao
desenvolvedor optar ou não pelo uso de tal variação, podendo ela ser
exclusiva (única variabilidade no padrão) ou múltipla (pode-se usar mais
que uma variabilidade para o mesmo padrão).
2.2)
A variação é controlada pela instanciação: nesse caso, ela é
resultante da aplicação de outros padrões e os diferentes tipos de
instanciações de aplicações devem ser gerenciados a partir dos padrões
escolhidos anteriormente pelo desenvolvedor.
O Quadro 1 apresenta os padrões da SiGCli e as variabilidades (Nome e
Descrição) identificadas quando as diretrizes apresentadas anteriormente para a
elaboração da LMA foram aplicadas. Quando não existir variabilidade a coluna
Nome apresenta a sentença “Não possui” e a coluna Descrição tem um traço
diagonal. Quando a variabilidade não for controlada pelo desenvolvedor a coluna
Nome apresenta a sentença “Não possui” e a coluna Descrição apresenta a
variabilidade que deve ser controlada pelo gerador. A Figura 2 exibe a LMA de
acordo com o apresentado no Quadro 1.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
297
Nº
Padrão
1
2
Identificar Pacientes
Definir Serviços
3
Realizar Vendas
4
Processar Guias
5
Agendar
Atendimentos
6
Identificar Atendente
7
Realizar
Acompanhamento
8
9
Realizar Compras
Controlar Faturamento
Nome Variabilidade
Nome
Descrição
Não possui
Com
Tipo 1. Uma clínica não precisa especificar os
Serviço
serviços prestados de forma detalhada
Com Produto
1. Uma clínica realiza a comercialização
de
serviços,
mas
nem
sempre
comercializa produtos
Não possui
1. Caso o padrão Controlar Faturamento
tenha sido aplicado, deve-se acrescentar
alguns atributos e métodos relacionados
ao valor da Guia e dos atendimentos
Não possui
1. O agendamento de sessões pode ser
efetuado por meio de uma guia ou de
uma venda.
Com Atributos 1. Quando for necessário armazenar
Atendentes
informações sobre o ganho e a
especialidade do atendente.
Tipo Avaliação 1. Cada clínica possui avaliações
específicas, conforme os tratamentos que
Educação
Física
realizam, com atributos específicos. Por
exemplo, os atributos analisados em uma
avaliação ortopédica para uma clínica de
fisioterapia são diferentes dos atributos
Tipo Avaliação avaliados para uma clínica de educação
física.
Fisioterapia
2. Cada avaliação pode possuir um
conjunto de fatores que são variantes. Por
Tipo Avaliação exemplo, em uma avaliação o uso de
medicamentos deve ser considerado; em
Terapia
Ocupacional
outra alguns testes especiais devem ser
realizados
para
a
conclusão
do
tratamento.
Esses
fatores
são
(conclusão)
considerados como Itens da Avaliação.
Não possui
Não possui
1. Depende da aplicação dos padrões
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 padrões da SiGCli.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
298
1
Identificar Pacientes;
2
Definir Serviços;
Com tipos serviços
2
Realizar Vendas;
Com Produtos
3
Processar Guias;
3
Agendar Atendimentos;
2
Identificar Atendentes;
Com Atributos Atendentes
2
Realizar Acompanhamentos
Avaliação Educação Física;
Avaliação Fisioterapia;
Avaliação Terapia Ocupacional;
1
Realizar Compras;
3
Controlar Faturamento;
Legenda:
123-
Padrões aplicados sem variação
Variação controlada pelo desenvolvedor
Variação controlada pela instanciação
Fonte: Elaborado pelo Autor
Figura 2. LMA definida para a linguagem de padrões SiGCli.
3
ARQUITETURA DO GERADOR E DAS APLICAÇÕES GERADAS
O Gerador de Aplicações Web para Sistemas de Gestão de Clínicas de
Reabilitação (GAwCRE), é apresentado na Figura 3. Ele usa as definições da
linguagem de padrões e da LMA armazenadas em XML e gera:
•
A interface para que o desenvolvedor instancie sua aplicação: o
gerador lê as definições do arquivo XML e apresenta o conjunto de
padrões e variantes para que o desenvolvedor escolha o que será utilizado
para instanciar as novas aplicações. Essas informações são apresentadas
conforme a definição da LMA e, sempre que uma opção da LMA for
escolhida, essa é gravada em um banco de dados constituindo um
conjunto de informações que pode ser recuperado na fase de geração da
aplicação. Esse módulo é denominado Instanciador da LMA;
•
Os scripts para a criação da base de dados: as informações da
aplicação armazenadas no banco de dados, conforme a especificação da
LMA,são comparadas com as definições do arquivo XML para que sejam
criados as tabelas, as chaves e os relacionamentos que satisfazem os
requisitos da aplicação. Esse é o módulo denominado como Gerador de
Script SQL;
•
As classes Java que serão os Beans da aplicação: as informações da
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
299
aplicação armazenadas no banco de dados, conforme a especificação da
LMA, são comparadas com as definições do arquivo XML para que sejam
criadas as classes e as associações que satisfazem os requisitos da
aplicação. Os métodos mais simples como os de atribuição (set) ou os de
recuperação (get) são gerados dinamicamente. Já os métodos que tratam
de funcionalidades específicas de cada classe, devem estar definidos no
arquivo XML. Esse é o módulo denominado Gerador das Classes Java
•
;As interfaces JSP da aplicação: as informações da aplicação
armazenadas no banco de dados, conforme a especificação da LMA, são
comparadas com as definições do arquivo XML para que sejam criados os
tipos de interfaces. Após a criação dessas interfaces elas devem ser
disponibilizadas em um servidor WEB que seja capaz de interpretar o
código JSP. Esse é o módulo denominado Gerador das Interfaces JSP.
Segundo Franca & Staa (2001), artefato é qualquer item criado como parte da
definição, manutenção, ou utilização de um processo de software, podendo ou não
ser entregues a um cliente ou usuário final. Por essa definição todos os produtos
gerados pelo gerador, desde os scripts de criação do banco de dados até a aplicação
final podem ser considerados artefatos.
Os artefatos são criados com base na definição dos gabaritos (templates) préexistentes no gerador que são definidos após a análise dos pontos variáveis e
similares de um produto desejado. Para que a linguagem Java possa ter acesso e
manipular as informações existentes em um arquivo XML, utiliza-se de um padrão da
W3C (World Wide Web Consortium) denominado DOM (Document Object Model) que
possibilita a navegação entre as tags do arquivo XML. Dessa forma, basta substituir
os pontos variáveis do produto a ser gerado pelos valores definidos na tag XML para
que o produto desejado seja gerado
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
300
...
<padrao numero="2" nome="Definir Serviços">
<classe nome="Servico" interface="1">
<atributo> codigoId </atributo>
<atributo> descrição </atributo>
<atributo>valor</atributo>
<atributo>situacao</atributo>
<associacao>tpservico</associacao>
</classe>
<variante nome="Com tipo serviço">
<classe nome="Tipo_Servico">
<atributo> codigoId </atributo>
<atributo> descrição</atributo>
</classe>
</variante>
</padrao>
...
Documento XML
Lê as definições
XML- SiGCli
...
CREATE TABLE SERVICO (
CODIGOID NUMBER(4) NULL,
DESCRICAO VARCHAR2(25) NULL);
...
ALTER TABLE SERVICO
MODIFY CODIGOID NUMBER(4) NOT
NULL;
...
Script de criação da Base de Dados
Gerador de scripts
SQL
Gerador GAwCRe
Interface
Gabaritos de
Código
Instanciador da LMA
(Gerador de aplicações)
Armazena e recupera
os dados das
especificações LMA
para cada aplicação
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
Especificação
LMA para uma
Aplicação
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 nível) do gerador de aplicação
de Sistemas de Gestão de Clínicas. A classe FrameGerador é responsável por
definir a interface com o desenvolvedor por meio de um objeto do tipo frame,
construído dinamicamente com base nas informações existentes no arquivo XML
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
301
sobre a especificação da LMA.
As classes Gerador e XMLManager (Figura 4) importam as bibliotecas
responsáveis pela manipulação do arquivo XML, a interface DOM. Todas as
informações sobre os padrões aplicados são armazenadas em um banco de dados
relacional utilizando o padrão Persistence Layer (YODER et.al,1998), que também é
usado para persistência dos dados das aplicações geradas pelo gerador. Para a
geração dos artefatos da aplicação tem-se: o gerador de código Java, representado
pela classe GeradorCodigo; o gerador de scripts SQL, representado pela classe
GeradorSQL, e o gerador de interfaces com o usuário, representada pela classe
GeradorJSP, que são módulos independentes do gerador facilitando assim a
geração de partes da aplicação. As classes AplPadrao e AplVariante representam os
padrões e as variantes aplicadas, respectivamente, para cada aplicação instanciada
pelo gerador.
Persistence
Layer
Aplicação
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 Aplicações Geradas
A Figura 5 apresenta a arquitetura das aplicações geradas pelo gerador que
são sistemas em três camadas. A cada solicitação do usuário as páginas são
geradas pela camada de aplicação e apresentadas ao usuário por meio de um
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
302
browser. Sempre que o usuário necessita armazenar ou recuperar informações no
sistema, a solicitação feita na camada de apresentação é passada para a camada
de aplicação que se comunica com a camada de persistência com o objetivo de
realizar as operações solicitadas.
Camada de Apresentação
Camada de Aplicação
Arquivos
JSP
Beans
Aplicação
Camada de Persistência
Persitence
Layer
Banco de
dados
Contém todas as classes de interface e é a única
camada visível aos usuários. Faz a interface das
solicitações do usuário com a camada de aplicação
É responsável pela lógica do negócio, o que inclui
algoritmos e regras procedimentais, e define o
comportamento do sistema.
É responsável pela lógica de manipulação de dados e
de conexão com o SGBD e é responsável pelo
armazenamento físico dos objetos.
Fonte: Elaborado pelo Autor
Figura 4. Arquitetura da aplicação gerada pelo GAwCRe.
4
EXEMPLO DE USO
Para exemplificar a instanciação de uma aplicação usando o gerador de
aplicações da SiGCli, optou-se pela clínica de fisioterapia existente nas Faculdades
Salesianas de Lins, no Centro de Reabilitação Física Dom Bosco. Essa clínica
controla todos os atendimentos realizados em seus pacientes e o seu objetivo
principal é armazenar os acompanhamentos e avaliações realizadas pelos
atendentes. Esses atendentes são alunos do curso de Fisioterapia e devem ser
avaliados na disciplina de estágio supervisionado, existente em sua grade curricular.
Esses atendentes não são remunerados e o controle do faturamento da clínica
também não é de interesse nesse sistema. O modelo de classes do sistema é
apresentado na Figura 6, sendo resultado da aplicação dos padrões (1) Identificar
Pacientes, (2) Definir Serviços, (4) Processar Guias, (5) Agendar Atendimentos, (6)
Identificar Atendentes e (7) Realizar Acompanhamento da linguagem de padrões
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
303
SiGCli. Cada classe possui um número, no canto superior esquerdo, que define a
qual padrão ela pertence conforme a numeração definida no grafo de fluxo de
aplicação dos padrões da SiGCli (Figura 1).
(1)
(1)
Cidade
(4), (5)
Paciente
(4)
Guia
Patologia
(1)
(4)
Profissão
(6)
(5), (6), (7)
Convênio
Atendimento
Atendente
(7)
(2), (5)
Teste Especiais
Serviço
(7)
Dados Clínicos
(7)
(5)
(7)
Avaliações
Horário Atendimento
Medicamentos
(7)
(7)
Neuro Adulto
(7)
Ortopédica
(7)
Cardiologica
(7)
Neuro Infantil
Pneumologica
(7)
Diária
Fonte: Elaborado pelo Autor
Figura 5. Modelo de classes obtido após a aplicação da SiGCli..
A Figura 7 mostra a especificação da LMA, com os padrões e variantes
usados para instanciar a aplicação desejada. A instanciação da LMA no gerador
acontece por meio de seleção de checkboxs existentes na interface. Sempre que
uma opção oferecida for desejada na aplicação, deve-se selecionar a caixa.
Identificar Pacientes;
Definir Serviços;
Processar Guias;
Agendar Atendimentos;
Identificar Pacientes;
Realizar Acompanhamentos
com Avaliações de Fisioterapia;
Fonte: Elaborado pelo Autor
Figura 3. Especificação da LMA para o sistema exemplo.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
304
CONCLUSÃO
Neste trabalho é apresentado um gerador de aplicações baseado em uma
linguagem de padrões para o domínio de sistemas de gerenciamento de clínicas de
reabilitação, denominado SiGCli. Esse domínio foi definido por meio de um processo
de engenharia reversa auxiliado por apoios computacionais desenvolvidos para esse
propósito, com o intuito de facilitar a execução dessa atividade. A linguagem de
padrões SiGCli, que é a base do gerador de aplicações proposto, foi elaborada com
base nos padrões da linguagem de padrões GRN, uma vez que alguns padrões da
SiGCli são similares aos já definidos pela GRN, principalmente os que tratam da
transação de negócios. Para facilitar a geração de novas aplicações, com o uso do
gerador, foi elaborada uma Linguagem de Modelagem da Aplicação (LMA) que
permite instanciar aplicações por meio de especificações em alto nível. Portanto,
esse gerador possui como elemento diferenciador o fato de ter uma linguagem de
padrões usada para representar o domínio e especificar a LMA, bem como para
apoiar o processo de geração.
Deve-se notar que o processo apresentado é geral e pode ser reusado para
outros domínios. A estrutura do gerador permanecerá basicamente a mesma,
mudando-se a LMA e os gabaritos de código. O uso de XML para armazenar a
especificação dos padrões também facilita o reuso. O gerador apresentado define
uma família de produtos de software que é a de sistemas de gestão de clínicas de
reabilitação. Considerando as variabilidades presentes nos padrões e representadas
na LMA, é possível gerar um conjunto de aplicações diferentes.
REFERÊNCIAS
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 (PLOP’98), Washington University in St. Louis – Missouri, USA, onLine.
Disponível
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
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
305
Conference (PLoP’99), 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), Oxford–England, 2002.
BRAGA, R. T. V. Um Processo para a Construção e Instanciação de Frameworks
baseado em uma Linguagem de Padrões para um Domínio Específico. Tese de
Doutorado, ICMC/USP, São 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. 311–320, 1998
FRANCA, L. P. A Um processo para construção de geradores de artefatos. Tese
de Doutorado - Departamento de Informática - Pontifica Universidade Católica do
Rio de Janeiro, Rio de Janeiro –RJ, 2000.
FRANCA, L. P. A.; STAA, A. V. Geradores de Artefatos: Implementação e
Instanciação de Frameworks. In: Anais do XV SBES-2001- Simpósio 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 Computação - Tutoriais, 2002.
PAZIN, A. Um Gerador de Aplicações para o Domínio de Clínicas de
Reabilitação. Dissertação de Mestrado – Programa de Pós Graduação em Ciência
da Computação – Universidade Federal de São Carlos, São 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 Padrões para Programação (SugarLoafPlop), Porto das Dunas – CE,
Brasil, 2004
RÉ, R. Um processo para construção de frameworks a partir da engenharia
reversa de sistemas de informação baseados na Web: Aplicação ao domínio
dos leilões virtuais. Dissertação de Mestrado, ICMC/USP, São Carlos – SP, 2002.
SMARAGDAKIS, Y.; BATORY, D. Application Generators. Department of
Computer Sciences. The University of Texas at Austin. Artigo retirado da página
pessoal URL: http://www.cc.gatech.edu/~yannis. Último acesso em 27 de Março 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
Universitári@ - Revista Científica 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.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
307

Documentos relacionados