gerador de aplicacoes web baseado em uma linguagem de ... · gerador de aplicaÇÕes web baseado em...
TRANSCRIPT
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
292
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
293
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
294
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
295
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 (hot-
spots), 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
296
2 DESENVOLVIMENTO DO GERADOR DE APLICAÇÕES
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
Realizar Compras (8)
Controlar Faturamento (9)
Realizar Vendas (3)
Agendar Atendimentos (5)
Realizar Acompanhamento (7)
Grupo 2: Atendimentos
Identificar Atendentes (6)
Processar Guias (4)
Grupo 3: Controle de Transações Financeiras
Identificar Pacientes (1)
Grupo 1: Informações Básicas
Definir Serviços (2)
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
297
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
298
Nome Variabilidade Nº Padrão Nome Descrição
1 Identificar Pacientes Não possui 2 Definir Serviços Com Tipo
Serviço 1. Uma clínica não precisa especificar os serviços prestados de forma detalhada
3 Realizar Vendas Com Produto 1. Uma clínica realiza a comercialização de serviços, mas nem sempre comercializa produtos
4 Processar Guias 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
5 Agendar Atendimentos
Não possui 1. O agendamento de sessões pode ser efetuado por meio de uma guia ou de uma venda.
6 Identificar Atendente Com Atributos Atendentes
1. Quando for necessário armazenar informações sobre o ganho e a especialidade do atendente.
7 Realizar Acompanhamento
Tipo Avaliação Educação Física Tipo Avaliação Fisioterapia Tipo Avaliação Terapia Ocupacional
1. Cada clínica possui avaliações específicas, conforme os tratamentos que 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 avaliados para uma clínica de educação física. 2. Cada avaliação pode possuir um conjunto de fatores que são variantes. Por exemplo, em uma avaliação o uso de medicamentos deve ser considerado; em outra alguns testes especiais devem ser realizados para a conclusão do tratamento. Esses fatores são considerados como Itens da Avaliação.
8 Realizar Compras Não possui 9 Controlar Faturamento
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.
(conclusão)
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
299
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
Identificar Pacientes; 1 Definir Serviços; 2 Com tipos serviços Realizar Vendas; 2 Com Produtos Processar Guias; 3 Agendar Atendimentos; 3 Identificar Atendentes; 2 Com Atributos Atendentes Realizar Acompanhamentos 2 Avaliação Educação Física;
Avaliação Fisioterapia; Avaliação Terapia Ocupacional;
Realizar Compras; 1 Controlar Faturamento; 3
Legenda: 1- Padrões aplicados sem variação 2- Variação controlada pelo desenvolvedor 3- Variação controlada pela instanciação
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
300
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
301
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
...
CREATE TABLE SERVICO (
CODIGOID NUMBER(4) NULL,
DESCRICAO VARCHAR2(25) NULL);
...
ALTER TABLE SERVICO
MODIFY CODIGOID NUMBER(4) NOT
NULL;
...
package ClinicaFisio;
...
public class Servico
implements PersistentObject {
...
// Atributos da classe
private int codigoId;
private String descricao;
...
public Servico(){
...
}
... }
Documento XML Script de criação da Base de Dados
Classes Java
Interface Web
Base de Dados
do Gerador
Gerador de scripts
SQL
Lê as definições
XML- SiGCli
Armazena e recupera
os dados das
especificações LMA
para cada aplicação
Instanciador da LMA
(Gerador de aplicações)
Gerador das Classes
Java
Gerador de Interfaces
Web
Especificação
LMA para uma
Aplicação
Gerador GAwCRe
Gabaritos de
Código
Bibliotecas
Interface
...
<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> ...
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
302
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.
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
FrameGerador
r
XMLManager
Persistence Layer
Aplicação
AplPadrao
AplVariante
1..* 0..*
0..*
Gerador
GeradorSQL
GeradorCodigo
GeradorJSP
Parser DOM
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
303
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.
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
Camada de Apresentação
Camada de Aplicação
Arquivos JSP
Beans Aplicação
Camada de Persistência
Banco de dados
Persitence Layer
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.
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
304
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).
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.
Fonte: Elaborado pelo Autor Figura 3. Especificação da LMA para o sistema exemplo.
Paciente
Convênio
Guia
Patologia
Serviço
Atendimento
Horário Atendimento
Atendente
Avaliações
Dados Clínicos
Teste Especiais
Cardiologica
Medicamentos
Pneumologica
Ortopédica
Neuro Infantil
Cidade
Profissão
Neuro Adulto
Diária
(1)
(1)
(1) (4), (5) (4)
(4) (5), (6), (7)
(5)
(2), (5)
(6)
(7)
(7) (7) (7) (7) (7) (7)
(7)
(7)
(7)
Identificar Pacientes;
Definir Serviços;
Processar Guias;
Agendar Atendimentos;
Identificar Pacientes;
Realizar Acompanhamentos
com Avaliações de Fisioterapia;
Universitári@ - Revista Científica do Unisalesiano – Lins – SP, ano 2, n.4, jul/dez de 2011
305
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, on-Line. 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
306
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
307
WEISS, D., LAI, C. T. R. Software Product-Line Engineering: a family-based software development process. Ed. Addison Wesley, 1999. 426 p.