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