16
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 – a.[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

Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. [email protected] RESUMO

Embed Size (px)

Citation preview

Page 1: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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

Page 2: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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.

Page 3: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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

Page 4: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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.

Page 5: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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)

Page 6: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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.

Page 7: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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)

Page 8: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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

Page 9: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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

Page 10: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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> ...

Page 11: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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

Page 12: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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.

Page 13: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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;

Page 14: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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

Page 15: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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

Page 16: Gerador de aplicacoes Web baseado em uma linguagem de ... · GERADOR DE APLICAÇÕES WEB BASEADO EM UMA LINGUAGEM DE ... Prof. Me Anderson Pazin – a. pazin@gmail.com RESUMO

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.