723-2382-1-PB

20
GERAヌテO DO MODELO PSM EM UMA FERRAMENTA DE CモDIGO ABERTO PARA UM SISTEMA HELP DESK PSM MODEL GENERATION USING OPEN SOURCE TOOL FOR HELP DESK SYSTEM Alison Roger Hajo Weber 1 ; Cesar Augusto Januario 2 ; Simone Nasser Matos 3 1 Universidade Tecnológica Federal do Paraná – UTFPR – Ponta Grossa – Brasil Universidade Estadual de Ponta Grossa - UEPG – Ponta Grossa – Brasil [email protected] 2 Universidade Tecnológica Federal do Paraná – UTFPR – Ponta Grossa – Brasil [email protected] 3 Universidade Tecnológica Federal do Paraná – UTFPR – Ponta Grossa – Brasil [email protected] Resumo As empresas de desenvolvimento de software possuem dificuldade em criar projetos para plataforma diferentes. Desta forma, este trabalho estudou o Modelo Dirigido a Arquitetura (MDA) e aplicou-o na elaboração de um sistema Help Desk.Os outros modelos que compõem a arquitetura MDA foram elaborados utilizando ferramentas gratuitas tais como: Acceleo e Eclipse, as quais facilitaram a geração do sistema Help Desk. O uso destas ferramentas forneceu uma maior produtividade em termos de modelagem, geração de código, facilidade de manutenção, agregando interoperabilidade, portabilidade e reusabilidade por meio da separação dos modelos gerados. Além disso, permite que o modelo abstrato possa ser gerado para diferentes plataformas de desenvolvimento. Palavras-chave: modelo dirigido a arquitetura (MDA); help desk; modelos; PHP. 1. Introdução As empresas de desenvolvimento de software buscam por metodologias de construção mais práticas, simples e otimizadas, com o objetivo de caracterizar o software como um produto que possa ser produzido em escala. Mas, os riscos de tempo de desenvolvimento, requisitos e plataformas variadas dificultam esse processo. As arquiteturas têm desempenhado um papel fundamental para se obter sucesso nos projetos de software. Por meio delas, consegue-se uma melhor estruturação na produção de sistemas mais ágeis e robustos, possibilitando uma engenharia detalhada e consistente no gerenciamento do projeto. Universidade Tecnológica Federal do Paraná - UTFPR Campus Ponta Grossa - Paraná - Brasil ISSN 1808-0448 / v. 06, n. 04: p. 153-172, 2010 D.O.I.: 10.3895/S1808-04482010000400008 Revista Gestão Industrial

description

Help

Transcript of 723-2382-1-PB

  • GERAO DO MODELO PSM EM UMA FERRAMENTA DE CDIGOABERTO PARA UM SISTEMA HELP DESK

    PSM MODEL GENERATION USING OPEN SOURCE TOOL FOR HELPDESK SYSTEM

    Alison Roger Hajo Weber1; Cesar Augusto Januario2; Simone Nasser Matos31Universidade Tecnolgica Federal do Paran UTFPR Ponta Grossa Brasil

    Universidade Estadual de Ponta Grossa - UEPG Ponta Grossa [email protected]

    2Universidade Tecnolgica Federal do Paran UTFPR Ponta Grossa [email protected]

    3Universidade Tecnolgica Federal do Paran UTFPR Ponta Grossa [email protected]

    ResumoAs empresas de desenvolvimento de software possuem dificuldade em criar projetos paraplataforma diferentes. Desta forma, este trabalho estudou o Modelo Dirigido a Arquitetura (MDA)e aplicou-o na elaborao de um sistema Help Desk.Os outros modelos que compem a arquiteturaMDA foram elaborados utilizando ferramentas gratuitas tais como: Acceleo e Eclipse, as quaisfacilitaram a gerao do sistema Help Desk. O uso destas ferramentas forneceu uma maiorprodutividade em termos de modelagem, gerao de cdigo, facilidade de manuteno, agregandointeroperabilidade, portabilidade e reusabilidade por meio da separao dos modelos gerados.Alm disso, permite que o modelo abstrato possa ser gerado para diferentes plataformas dedesenvolvimento.Palavras-chave: modelo dirigido a arquitetura (MDA); help desk; modelos; PHP.

    1. IntroduoAs empresas de desenvolvimento de software buscam por metodologias de construo mais

    prticas, simples e otimizadas, com o objetivo de caracterizar o software como um produto quepossa ser produzido em escala. Mas, os riscos de tempo de desenvolvimento, requisitos eplataformas variadas dificultam esse processo.

    As arquiteturas tm desempenhado um papel fundamental para se obter sucesso nos projetosde software. Por meio delas, consegue-se uma melhor estruturao na produo de sistemas maisgeis e robustos, possibilitando uma engenharia detalhada e consistente no gerenciamento doprojeto.

    Universidade Tecnolgica Federal do Paran - UTFPRCampus Ponta Grossa - Paran - Brasil

    ISSN 1808-0448 / v. 06, n. 04: p. 153-172, 2010D.O.I.: 10.3895/S1808-04482010000400008

    Revista Gesto Industrial

  • Revista Gesto Industrial154

    Dessa forma, a OMG criou uma arquitetura orientada a modelos que possuem em suaessncia a construo de sistema em que sua base est na criao do modelo abstrato de sistema, noqual as especificaes podem ser implementadas em vrias plataformas orientadas a objetos (OMG,2010).

    A perspectiva que esta arquitetura proporciona aos desenvolvedores que praticamente todoo cdigo fonte gerado por meio de transformaes do modelo PIM (Platform Independent Model)para o modelo PSM (Platform Specific Model) (OMG, 2003, p 13).

    Este artigo relata a gerao do modelo PSM no desenvolvimento de um Sistema Help Desk,elaborado e gerado por meio da ferramenta Acceleo (ACCELEO, 2010).

    Por meio da ferramenta foi possvel aumentar a produtividade do desenvolvimento dosistema Help Desk, pois gerou uma quantidade de cdigos em que as alteraes foram mnimas.

    2. Arquitetura MDA

    As primeiras propostas de desenvolvimento de software usando a arquitetura MDA (ModelDriven Architecture) surgiram no final da dcada de 1990, incio de 2000 (MDA GUIDE, 2010).

    Esta abordagem de projeto de software oferece uma definio de aplicao baseada emmodelos, permitindo uma flexibilidade em longo prazo. Desta forma, mostra-se como o melhorcaminho para o desenvolvimento de sistemas baseados em linguagens orientadas a objetos, vistoque a implementao pode se integrar a diversas plataformas, o que proporciona ao modelo maisflexibilidade (OMG, 2003, p. 12).

    Esta abordagem de construo de projetos de software orientada a modelos e abstraes dedomnios distintos busca a melhor anlise e consequentemente propicia uma produtividade maior,maximizando uma integrao mais compatvel entre os sistemas.

    Portanto, a proposta desta arquitetura prev a idia de separar a especificao das operaesdo sistema, alterando desde detalhes do canal de comunicao do sistema at as capacidades de suaplataforma.

    A MDA um padro que pode ser considerado um framework aberto criado e mantido pelaOMG (Object Management Group) (VERNER, PUIA, 2004, p. 17). A OMG tem como principalfoco o desenvolvimento da excelncia tecnolgica, comercialmente vivel e independente dasespecificaes proprietrias para indstria de software.

    Suas principais diretrizes so fundamentadas num conjunto de boas prticas e designaesque consistem nas especificaes de modelos, centrados em arquiteturas de software (SILVA, 2008,p. 1).

  • Revista Gesto Industrial155

    A MDA prope que os artefatos gerados possam ser usados na gerao de programas,scripts de banco, documentao de usurio e de software, ou seja, qualquer elemento que faa partedo processo de desenvolvimento de um sistema.

    A principal caracterstica do MDA pela OMG propiciar produtividade com qualidade aossoftwares, agregando interoperabilidade, portabilidade e reusabilidade por meio da separao domodelo gerado da plataforma a ser usada, rastreando qualquer um dos requisitos. Fornece tambm agarantia necessria ao modelo atravs da documentao gerada, dando um suporte mais apuradopara manutenes futuras dos artefatos produzidos durante o desenvolvimento, na fase deimplementao do software.

    Mas, o fundamento mais importante deste tipo de arquitetura a criao de um modelo desistema, dentro de um domnio especfico, no qual sua independncia permite ser uma refernciapara qualquer tipo de plataforma ou linguagem, preservando as caractersticas do modelo inicial,adequando-se o modelo a linguagem preterida.

    A perspectiva que esta arquitetura proporciona aos desenvolvedores que praticamente todoo cdigo fonte gerado por meio de transformaes do modelo PIM (Platform Independent Model)para o modelo PSM (Platform Specific Model) (OMG, 2003, p 13).

    O centro da arquitetura, ilustrado na figura 1, baseado nos padres de modelagem daOMG: UML (Unified Modeling Language), MOF (Meta Object Facility) e CWM (CommonWarehouse MetaModel). Alm disso, tem-se duas camadas que completam esta arquitetura. Aprimeira representa a plataforma que o alvo deste framework e a segunda relaciona-se aosservios que devem existir independentes da plataforma adotada.

    Figura 1- Arquitetura MDA

    Fonte: OMG (2003)

  • Revista Gesto Industrial156

    Um modelo de sistema descreve e especifica a abstrao de um problema atravs de textos,linguagens de modelagem ou linguagem natural. Eles tambm so vises simplificadas econtextualizadas do mundo real, como por exemplo, uma planta de uma casa ou de uma instalaohidrulica e eltrica. Os diagramas e fluxogramas so modelos de um sistema em que so utilizadosem grande escala pela engenharia de software.

    Na arquitetura MDA existem trs modelos na qual so criados a concepo, anlise etransformao de um sistema. Os modelos so descritos a seguir.

    2.1. Modelo CIM

    Sua base o entendimento do sistema, em que a anlise possibilita uma viso computacionalcom uma perspectiva independente, no visualizando detalhes estruturais do sistema, mas sim odomnio onde o modelo ser empregado. O objetivo gerar uma viso unificada para analistas edesenvolvedores, com o foco nos requisitos pertinentes para o sistema atender o domnio (OMG,2003, p. 15).

    2.2. Modelo PIM

    O PIM uma viso de modelo independente de plataforma baseado em uma anlise de altonvel, representando somente funcionalidades e comportamentos do sistema. Neste caso, a abstraodo sistema atinge um grau de mquina virtual neutra abrangendo todos os componentes e serviosrelacionados ao modelo, tais como: comunicao, nomes, programao, preservando suaindependncia de plataforma, em relao s sintaxes utilizadas para implementao das diferenteslinguagens, sendo a modelagem baseada somente nas especificaes do sistema (OMG, 2003, p.16).

    2.3. Modelo PSM

    Com a possibilidade de mapear o PIM se pode gerar o modelo PSM. Este compreender atransformao do modelo abstrato em codificado, se ajustando aos detalhes que definem como osistema se desenvolver na plataforma especificada.

    O modelo especifica tambm os requisitos pertinentes conexo e o uso dos elementos daplataforma junto ao seu aplicativo, permitindo a visualizao da tecnologia de implementaoutilizada (OMG, 2003, p. 17).

    Desse modo, o modelo representa a unificao do modelo abstrato com a plataforma que foiescolhida.

  • Revista Gesto Industrial157

    2.3.1. Ferramentas de transformao

    A ferramenta utilizada neste artigo foi a Acceleo que funciona como um plugin da IDEEclipse (ECLIPSE, 2010; ACCELEO, 2010). Esta ferramenta, open source de modelagem,atualmente uma das mais utilizadas para a gerao de modelos MDA. As vantagens principaisoferecidas por esta ferramenta so: alto poder de customizao, interoperabilidade, fcilaprendizado, direcionamento as principais tecnologias existentes no mercado, entre outras.

    3. Gerao do Modelo PSM usando a ferramenta Acceleo

    Para exemplificao da arquitetura MDA, este artigo traz o desenvolvimento de um softwarepara controles de centros de suporte conhecidos como Help Desk. Este atender s principaiscaractersticas desses centros, no qual ser possvel controlar chamadas, solues, clientes, entreoutros. Para se chegar construo do modelo PSM deste software deve-se antes passar pelosmodelos CIM e PIM, descritos brevemente a seguir.

    3.1. Modelos CIM e PIM

    No modelo CIM o foco a abstrao do domnio, nesse caso, um Sistema Help Desk cujoobjetivo oferecer s empresas um software que controle o servio de apoio e suporte para aspessoas, tecnologias e processos computacionais (COHEN, 2008).

    Os processos de atendimento ao cliente se do atravs de trs canais de comunicao: viatelefone (usurio e atendente), via portal de atendimento (usurio x aplicao web), e correioeletrnico (usurio x e-mail). Os tipos de canais de comunicao esto ilustrados na Figura 2.

  • Revista Gesto Industrial158

    Figura 2 - Fluxo de trabalho geral do Help Desk proposto

    Fonte: Autoria Prpria

    As pessoas envolvidas no fluxo de trabalho do sistema de Help Desk so: cliente, atendentee analista de suporte. O cliente pode contatar o suporte por telefone ou e-mail, em que umfuncionrio o atender, com um perfil de solucionador, ouvindo o problema do usurio e tentandoresolv-lo.

    Caso o problema no possa ser resolvido em um primeiro contato efetuada uma anlisepara verificar se existe a necessidade de criao de um ticket de atendimento, que um documentovirtual onde so registradas todas as informaes do chamado. O ticket tem um cabealho contendoos dados do cliente e os do problema. O corpo do ticket composto por uma descrio quecorresponde s interaes entre o atendente e o usurio, tentando solucionar o problema.

    Caso o cliente queira consultar ou interagir com seu ticket, ele poder acessar o portal naweb. Ainda pelo portal o cliente poder criar um ticket de atendimento que seguir o mesmo padrodos criados pelos atendentes. A nica diferena no processo a anlise, que ser feita depois dacriao do registro do ticket, ou seja, o analista de suporte ir verificar se esse registro criado pelocliente mesmo necessrio.

    Quando um ticket finalizado, ou seja, o problema foi solucionado, o analista de suportepoder adicionar a informao deste ticket em uma base de conhecimento com o objetivo deesclarecer dvidas aos clientes. Essa base de conhecimento poder ser consultada tanto pelosatendentes como pelos clientes atravs do portal.

  • Revista Gesto Industrial159

    Como citado anteriormente, existem trs tipos bsicos de atendimento nesse domnio,atravs de telefone, e-mail ou do portal, que basicamente iro resultar no mesmo atendimento.

    Aps o estudo do domnio, iniciou-se a construo do modelo PIM, que consiste naidentificao de todos os atributos, mtodos, generalizaes e composies necessrias para que omodelo abstrato possa ser implementado.

    Dessa forma, o modelo pode deixar visvel as especificaes que sero utilizadas pelosistema. O modelo PIM criado para o sistema Help Desk est ilustrado na Figura 3.

    As classes Cliente e Atendente representam os dois usurios de um sistema Help Desk.Estes possuem atributos e mtodos comuns, desta forma criou-se uma generalizao, denominadade Fsica. A classe Fisica instancia um objeto da classe Login, que far o controle e validao dosusurios que acessam o sistema.

    Como o Help Desk pode atender clientes fsicos e empresas, contextualizou-se esteselementos do mundo real atravs das classes Fisica e Juridica e como estas possuemcomportamentos e caractersticas comuns criou-se a classe Pessoa. A classe Pessoa tambm serelaciona com classe Cep identificando os endereos de qualquer tipo de cliente.

    A classe Classificacao contm as prioridades e os tipos de servio que o Help Desk ofereceaos clientes, diferenciando o atendimento. Por exemplo, um hospital que possui um aplicativo queno pode parar porque usado no tratamento intensivo de vrios pacientes, estes tipos de chamadotem prioridade em relao aos outros.

    Figura 3 - Modelo PIM Help Desk

    Fonte: Autoria Prpria

  • Revista Gesto Industrial160

    As classes Cargo e Departamento tm como tipo de relacionamento uma composio, almde estarem ligadas com classe Cliente no modelo. Elas so responsveis por identificar e registrar asorigens dos chamados.

    No fluxo atendimento via portal o atendente pode criar um ticket de atendimento,paralelamente, o cliente tambm pode fazer esta ao via web, desta forma, estes requisitos forammodelados na classe Ticket, que o centro do modelo ou ncleo do sistema. Os mtodos e atributosde Ticket, bem como seus relacionamentos so responsveis pela especificao e registro doschamados atravs das relaes com as classes SubCategoria e Categoria, as quais classificam asdescries dos equipamentos que esto com defeito. Por exemplo, um incidente com ADSL umacategoria, e o problema identificado tal como: modem queimado uma subcategoria.

    A classe Ticket contm ainda os registros dos incidentes, deste modo, a cada interao como ticket tanto registrado pelo cliente ou pelo atendente, poder haver uma consulta posteriormentepelos atendentes de nvel superior.

    A classe TempoDeResoluo resolve o problema do controle de tempo que os incidenteslevam para serem resolvidos com intuito de melhorar o servio de suporte prestado aos clientes.Esta classe se relaciona com a classe SubCategoria.

    A classe Acompanhamento foi modelada para gerenciar o andamento e os ltimos registrosdos tickets abertos e finalizados, possuindo uma relacionamento com as classes Ticket, Fisica eEmail.

    A classe Email ser usada para enviar um e-mail para o cliente avisando que o ticket foifinalizado e esclarecendo como o problema foi resolvido. A classe Solucao foi modelada paraatender ao requisito de solues prontas e alimentar a base de conhecimento do Help Desk. Almdisso, registra as solues encontradas nas interaes feitas na classe Ticket.

    Neste artigo, no ser detalhado como foi a elaborao tanto do modelo CIM quanto doPIM, pois o foco o modelo PSM, descrito a seguir.

    3.2. Modelo PSM

    Gerar o modelo PSM a ltima fase da arquitetura MDA, pois nesse momento que se devevalidar o modelo PIM, ilustrado na Figura 3.

    O projeto do PSM formado pela pasta do modelo, o qual composto por dois arquivos. Oprimeiro o modelHelpDesk.uml que contm o modelo PSM e ser utilizado para a gerao decdigo-fonte.

    O outro arquivo o modelHelpDesk.umlclass que o PSM, representado pelo diagrama declasse (estes arquivos esto ilustrados posteriormente na Figura 3).

  • Revista Gesto Industrial161

    Para criar o diagrama de classe (arquivo.umlclass) necessrio que o arquivomodelHelpDesk.uml(arquivo.uml) j esteja definido.

    Qualquer alterao que ocorra em um arquivo, ir tambm afetar o outro, mas ressalta-seque o arquivo que realmente gera o esqueleto da aplicao o modelHelpDesk.uml.

    Nesta etapa, iniciou-se a operao de mapeamento e marcao do modelo PIM (mostrado naFigura 3). Esse mapeamento o processo de importao dos esteretipos de entidades, dados,interface e diversos componentes fundamentais para a realizao da gerao dos cdigos fontes pelaferramenta, garantindo a transformao do modelo em sua totalidade ou parcialmente, dependendode sua plataforma. Neste artigo os cdigos gerados para a plataforma PHP.

    A importao de componentes que ser viabilizada pela prpria Acceleo, utilizarpathmap, mostrado na Figura 4. So em sua existncia as referncias para os arquivos .uml, talcomo pathmap://ACCELEO_PROFILES/Acceleo.UI.profile.uml, neste caso, representando ostipos de dados de interface grfica pertinentes para a transformao.

    Figura 4 - Mapeamento do modelo

    Fonte: Autoria Prpria

    Caso no se tenha a existncia do dado requisitado pelo modelo abstrato, ou a importaono seja possvel, o desenvolvedor poder criar o dado dentro do modelo, como ilustrado na Figura4 na criao de DATE e TIME na raiz do pacote Help Desk. Esses dados funcionaro semnenhum problema aps a transformao em um exemplo de criao.

    No diagrama modelhelpdesk.umlclass, visualizado ao lado direito da Figura 5, possvelclassificar as classes com o seus esteretipos pressionando o boto direito do mouse e selecionandoo esteretipo desejado. Mas para realizar a gerao do cdigo necessrio tambm criar umareferncia para gerao na UML. Para isso, abre-se o arquivo modelHelpDesk.uml e insere-se umcomponente chamado EAnnotation.

  • Revista Gesto Industrial162

    Figura 5 - Mapeamento e marcao

    Fonte: Autoria Prpria

    Por meio desta propriedade, coloca-se uma referncia para o pacote Acceleo Business e apropriedade source para http://www.eclipse.org/uml2/2.0.0/UML, conforme mostra a Figura 5, ena sequncia para a finalizao da marcao para as classes, fundamental executar a validaodeste modelo mostrado na Figura 6.

    Figura 6 - Validao do modelo

    Fonte: Autoria Prpria

  • Revista Gesto Industrial163

    Para isto, sobre qualquer item do modelo e escolhe-se a opo Validate. Desta forma, aferramenta realiza a validao para os itens que esto selecionados.

    3.2.1. Transformao e gerao de cdigos-fonte

    A prxima operao a gerao do cdigo. Nesta etapa, necessrio criar um ModuleLauncher dentro do projeto, visualizado na Figura 7.

    Figura 7 - Criao do module Launcher

    Fonte: Autoria Prpria

    A prxima etapa selecionar o mdulo da ferramenta Acceleo, que ir ser utilizado paragerar o cdigo fonte, conforme mostrado na Figura 8.

    Figura 8 - Seleo do mdulo de gerao

    Fonte: Autoria Prpria

  • Revista Gesto Industrial164

    Logo aps, a ltima etapa da criao deste arquivo a seleo de entradas e sadas domodelo. Para o mdulo PHP so exigidos os campos ilustrados na Figura 9.

    Figura 9 - Seleo de entradas e sadas para o Module Launcher

    Fonte: Autoria Prpria

    Essas opes ilustradas anteriormente representam: Input UML model: Selecionar o modelo de entrada, o modelo PIM. Source Code output folder: Pasta na qual ser gerado o cdigo fonte da aplicao. Web content output folder: Pasta na qual sero inseridos os controles de navegao da

    aplicao (controles, vises, e outros). Database scripts: Pasta na qual sero gerados os scripts de banco de dados. Error log: Arquivo criado que conter os erros encontrados durante a gerao.Ao terminar o processo, o arquivo transformao.chain foi criado e a transformao do

    modelo poder ser iniciada por meio da gerao de cdigos.

    3.2.1.1. Gerao de cdigos

    A partir do modelo gerado na UML 2.0, a ferramenta Acceleo, utilizando seu gerador para aplataforma PHP, resultou em uma aplicao utilizando PEAR (PEAR, 2010) e SMARTY(SMARTY, 2008).

    O PEAR (PHP Extension and Aplication Repository) uma plataforma e um sistema dedistribuio para a codificao de componentes em PHP. As vantagens na utilizao do projetoPEAR so: os sistemas de distribuio de cdigo e a gerncia de pacotes aliados a um padro para aescrita de cdigo em PHP. Os pacotes PEAR existem para executar muitas funes, como deautenticao, controle de erros, caching, acesso a base de dados, criptografia, configurao, HTML,

  • Revista Gesto Industrial165

    Web Services e XML (PEAR, 2010).O SMARTY conhecido como uma classe de templates, na qual ele busca separar a interface

    da lgica de programao e possui o objetivo de aumentar a qualidade de qualquer aplicao emPHP. Foram constatadas as vantagens de um melhor desempenho de execuo baixando o overheadde template, compilando apenas uma vez. Contm tambm um modo de cache embutido, que criafunes prprias, ou seja, extensvel (SMARTY, 2008).

    3.2.1.2. Descrio dos cdigos-fonte e da transformao

    Durante a gerao de cdigo pela ferramenta foram criadas vrias pastas, entre elas a: db -que contm todos os scripts de banco de dados no arquivo createTable.sql -, a model - contm omodelo UML -, e a src - possuiu todos os cdigos fontes do projeto. A src est dividida emvrias subpastas que possuem as seguintes funcionalidades:

    common: Ficam os arquivos que possuem mtodos, importaes, configuraes,variveis, e outros, que sejam comuns a todo projeto.

    dao: Contm as classes que fazem a comunicao com o banco de dados. entity: Localizam-se as entidades do modelo. navigation: Possuem os arquivos de navegao do software, por exemplo, as vises e as

    classes de controles que fazem a comunicao de todo o software. test: Encontram-se os arquivos de testes para o modelo. Esta no foi explorada neste

    artigo.Alm das pastas, a ferramenta gerou o arquivo erros.txt que possui os erros que

    aconteceram na gerao do cdigo. Esses erros podem compreender entre algum campo que noesteja com sua tipagem correta, associaes incorretas, esteretipos invlidos ou qualquer outro erroque possa acontecer no modelo.

    A transformao do mdulo do Acceleo na gerao para PHP5 fica estruturado com ascamadas de DAO (Data Access Object), Business Objects e Apresentao.

    A partir do modelo, o gerador utiliza as classes para gerar a aplicao. Essa identificaoprocura por dois tipos de esteretipos: os de Entidade, que permitem a gerao dos negcios naparte da aplicao (Entity), e os de Tela, que permitem a gerao da parte de apresentao daaplicao (Screen).

    Os arquivos gerados a partir dos esteretipos de Entidade foram: Parte dos scripts de criao do banco de dados. Classes DAO (na pasta dao). Classes de Entidade (na pasta entity) .

  • Revista Gesto Industrial166

    EntityFactory classes que permitem criar instncias das entidades SMARTY template que permite exibir o objeto de negocio (na pasta navegacao/view).Os esteretipos de Tela criados foram: Parte do arquivo de ndice. Controladores de classes (na pasta navegacao/controler). SMARTY template (na pasta navegacao/view).Outros arquivos gerados pelo mdulo de gerao para PHP do Acceleo foram: Arquivo de importao de todas as dependncias necessrias (common/common.php5) Configurao de classes (common/config.php5) Arquivo incluindo instrues para criao de sequncias de banco de dados

    (common/dbsequ.php5) Inteface para classe entidade (entity/IEntity.php5) Entidade de classe abstrata (entity/Entity.php5)

    4. Resultados da transformao

    A primeira etapa foi criar o banco de dados, sendo que o MySQL (2010) foi o adotado para osistema Help Desk. A ferramenta Acceleo gerou parte deste script de banco de dados, composta portodas as tabelas e relacionamentos que existiam no modelo. Esse script estava correto, a nicaalterao antes de sua importao para o MYSQL foi remover o atributo VERSION, o qual no foiimplementado neste trabalho.

    A segunda etapa realizada foi a configurao do projeto atravs do arquivohelpdesk/common/config.php5, ilustrado na Figura 10, no qual foi configurado o banco de dados,controle default e as configuraes do SMARTY.

  • Revista Gesto Industrial167

    Figura 9 - Configurao do projeto

    Fonte: Autoria Prpria

    Para exemplificar a gerao do cdigo e a implementao do software utiliza-se a ClasseCargo a qual possui um relacionamento com a Classe Departamento, como ilustrado na Figura 3.

    As tabelas do sistema que possuem uma chave primria, formada por um atributo inteiro eincremental, so controladas pelo cdigo fonte. Para isso, no banco, devem existir tabelas auxiliarespara salvar o nmero do ltimo registro inserido na tabela que ela corresponde. Essas tabelasauxiliares so criadas com o mesmo nome de sua respectiva classe, adicionando no fim destas asletras _seq. Mas para criar as tabelas auxiliares o arquivo helpdesk/common/dbsequ.php5 deveser executado atravs do navegador.

    Tendo que a classe Cargo foi classificada como um tipo de esteretipo de Entidade tem-seas seguintes sadas:

    Script de banco de dados: Tabela de cargos, com uma chave estrangeira da tabela dedepartamentos com a qual possua uma composio. O script gerado est ilustrado naFigura 11.

    Figura 11 - Script de Banco de dados

    Fonte: Autoria Prpria

  • Revista Gesto Industrial168

    Classe Dao: Esta classe responsvel pelo acesso a base de dados e est localizada napasta (helpdesk\dao\negocio\pear\CargoDao.php5. A Figura 12 mostra um trecho decdigo desta classe responsvel pela insero no banco de dados.

    Figura 12 - Classe CargoDao.php5

    Fonte: Autoria Prpria

    Classe Entity: Esta classe a Cargo, que possui os atributos, mtodos, sets e gets e estlocalizada na pasta (helpdesk\entity\negocio\Cargo.php5).

    Classe Factory: A Classe Factory responsvel pela criao do objeto cargo tendo neleos atributos da classe Entity.

    Alm desses arquivos mencionados, h tambm vrios outros que compe este projeto,como por exemplo, arquivos de captura de erros, as Classes de Interface, Classe Entity, Conexo debanco de dados, entre outros.

    Neste ponto do projeto a ferramenta conseguiu gerar 100% da parte de negcios daaplicao. Como descrito na seo anterior, a parte de viso deste projeto foi gerada no modelo doframework SMARTY. Os arquivos de interface ficam todos situados dentro da pasta navigation, naqual h um arquivo chamado ndex.php5, que controla as chamadas das pginas, ou seja, anavegao.

    A template est localizada no arquivo main-template.xml, com uma estrutura HTML, quepossui tags para importaes de outros arquivos dentro dele. O resultado da transformao pode servisualizado na Figura 13.

  • Revista Gesto Industrial169

    Figura 13 - Viso Cargo do sistema Help Desk

    Fonte: Autoria prpria

    Nesta seo ilustrou-se a gerao de cdigo para a classe Cargo desde a parte de scritp debanco de dados at a gerao da camada viso, ilustrada na Figura 13. O processo realizado com aclasse Cargo se repetiu para as demais classes que formavam o sistema, ilustradas na Figura 3.

    Constatou-se que o resultado obtido com a utilizao da MDA foi muito bom, onde se ganhaem produtividade na implementao do software, principalmente na parte de negcios da aplicao.J a parte de viso e controle foi onde se teve insero e alterao de cdigo por se tratar de algoespecfico e que com certeza mudar dependendo da aplicao.

    A ferramenta Acceleo tambm mostrou grande eficincia na gerao do modelo PSM deforma incremental, ou seja, construir o software por partes ou incrementando novas funcionalidadesao modelo, garantindo a integridade do que j foi desenvolvido.

    A MDA prove que o modelo PIM dever estar correto antes de ser transformado para omodelo PSM, mas se acontecer do modelo PIM ser alterado depois da gerao do cdigo fonte eocorrer uma nova gerao, a ferramenta se porta de maneira muito interessante, ou seja, ela nosobrescreve os arquivos j gerados, mas, salva o arquivo antigo com um nome diferente,acrescentando ao seu fim a extenso .lost.

    5. Concluso

    Este artigo mostrou a construo do modelo PSM utilizando a arquitetura MDA nodesenvolvimento de um sistema Help Desk.

  • Revista Gesto Industrial170

    Para uma produtividade maior no uso da MDA, foi utilizada uma ferramenta prpria paraeste tipo de arquitetura denominada Acceleo. Por meio desta ferramenta, pode-se verificar que aquantidade de cdigos que deve ser escrito em determinadas situaes mnima, comoexemplificado para a classe Cargo, em que para consultar cargos a quantidade de linhasprogramadas foram trs. Alm disso, todo o cdigo gerado possuiu um padro de comentrio o qualfacilita a manuteno do sistema.

    O uso da MDA permite produzir artefatos que promovam a rastreabilidade, a reduoconsidervel de falhas humanas na implementao e a integridade da documentao. Como trabalhofuturo pode-se utilizar o modelo PIM e transform-lo para outra plataforma, alm disso pode-seutilizar indicadores para medir a qualidade de cdigo gerado.

    AbstractThe software development corporations have difficulty in creating designs for different platforms. Thus, this studyinvestigated the Model Driven Architecture (MDA) and applied it to design a Help Desk system. The systemrequirements model was created with the workflow technology. The other models that comprise the MDA architecturewere developed using free tools such as Acceleo and Eclipse, which facilitated the generation of Help Desk system. Theuse of these tools provided a higher yield in terms of modeling and code generation, maintainability, incrementinteroperability, portability and reusability through the separation of the generated models. Besides it allows the modelwill be generated for different development platforms.Key-words:Model Driven Architecture (MDA); Help Desk; Model; PHP.

    RefernciasACCELEO. Disponvel em: . Acesso em: 20 mar 2010.COHEN, R. Implantao de Help Desk e Service Desk. So Paulo: Novatec Editora Ltda, 2008.ECLIPSE. Disponvel em: Acesso em: 24 mar 2010.MDA GUIDE. Disponvel em: . Acesso em: 25fev 2010.MYSQL. Disponvel em: http://wb.mysql.com. Acesso em 03 mai 2010.OMG. Model Driven Architecture. Disponvel em: . Acesso em: 11mar 2010.PEAR. Disponvel em: . Acesso em: 02 mai 2010.SMARTY. Disponvel em: . Acesso em: 01 mai 2010.SILVA, J. B.; SAMPAIO, M.; PEZIN, J. Usando Ontologias na construo de Modelos MDA(Model-Driven-Archteture). Universidade Salvador (UNIFACS) Salvador, BA, Brasil. 2008.VERNER, A. C.; PUIA, H. S. Melhoramento no desenvolvimento de software com a utilizaodo MDA. Santa Catarina, 2004. 40 f.

  • Revista Gesto Industrial171

    Dados dos autores:

    Nome completo: Alison Roger Hajo WeberFiliao institucional: Universidade Tecnolgica Federal do Paran Campus Ponta GrossaUniversidade Estadual de Ponta GrossaDepartamento: COINFFuno ou cargo ocupado: Estudante de Graduao (UTFPR) e Mestrado (UEPG)Endereo completo para correspondncia (bairro, cidade, estado, pas e CEP):Av. Monteiro Lobato, km 4, s/nSanta MnicaPonta GrossaBrasil84010-500Telefones para contato: (42) 99248797e-mail: [email protected]

    Nome completo: Cesar Augusto JanuarioFiliao institucional: Universidade Tecnolgica Federal do Paran Campus Ponta GrossaDepartamento: COINFFuno ou cargo ocupado: Estudante de GraduaoEndereo completo para correspondncia (bairro, cidade, estado, pas e CEP):Av. Monteiro Lobato, km 4, s/nSanta MnicaPonta GrossaBrasil84010-500Telefones para contato: (42) 30287815e-mail: [email protected]

    Nome completo: Simone Nasser MatosFiliao institucional: Universidade Tecnolgica Federal do Paran Campus Ponta GrossaDepartamento: COINFFuno ou cargo ocupado: ProfessoraEndereo completo para correspondncia (bairro, cidade, estado, pas e CEP):Av. Monteiro Lobato, km 4, s/nSanta MnicaPonta GrossaBrasil84010-500

  • Revista Gesto Industrial172

    Telefones para contato: (42) 3220-4827e-mail: [email protected]

    Recebido para publicao em: 26/10/2010Aceito para publicao em: 02/12/2010