Your SlideShare is downloading. ×
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)

503

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
503
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ¸˜ Projeto SIAC 2.0: Uma aplicacao do framework Demoiselle ¸˜ para o desenvolvimento de Sistema de Informacoes Acadˆ micas da UFBA (SIAC) e Andr´ Lu´s Monteiro P. dos Santos1 , Fernando Cezar Borges1 , Leandro Ferreira1 , e ı M´ rio Jorge Pereira1 , Mauricio Cesar S. da Purificacao1 a ¸˜ 1 Centro de Processamento de Dados – Universidade Federal da Bahia (UFBA) 40.170.110 – Salvador – BA – Brasil {andremp,fercez,mariojp,mauricioc}@ufba.br, leandrofla@gmail.com Abstract. This paper presents the design specification for the development of the Academic Information System (SIAC) of the Federal University of Bahia (UFBA) using the Demoiselle framework. The pros and cons are compared in adopting this integration framework for developing applications and systems in a Federal Institution of Higher Education. Resumo. Este artigo apresenta a especificacao do projeto de desenvolvimento ¸˜ do Sistema de Informacoes Acadˆ micas (SIAC) da Universidade Federal da ¸˜ e Bahia (UFBA) utilizando o framework Demoiselle. S˜ o confrontados os pr´ s a o e contras na adocao deste framework de integracao no desenvolvimento de ¸˜ ¸˜ aplicacoes e sistemas em uma Instituicao Federal de Ensino Superior. ¸˜ ¸˜ ¸˜1. IntroducaoAtualmente a Universidade Federal da Bahia (UFBA) utiliza o Sistema de Informacoes ¸˜Acadˆ micas (SIAC) para gerenciar os processos que ocorrem durante a execucao da e ¸˜ e a ´agenda acadˆ mica. H´ mais de 10 anos, o SIAC, que e essencial para o funcionamento da ¸˜Universidade, vem sofrendo manutencoes corretivas e adaptativas. A grande quantidade ¸˜de alteracoes aliada a um processo de desenvolvimento pouco definido e uma arquitetura ¸˜cliente-servidor com regras espalhadas entre o banco de dados e a aplicacao, criaram um ¸˜ambiente ideal para um alto custo de manutencao. ¸˜ ¸˜ Nesta situacao, surge a opcao de se reestruturar o sistema dentro de uma novaarquitetura que seja mais flex´vel, definindo em paralelo um processo que permita um ı ´ ¸˜ ¸˜desenvolvimento mais agil e uma manutencao e documentacao menos onerosas. Para isto, `boas pr´ ticas devem ser aplicadas, sempre visando um alinhamento junto as diretrizes do aGoverno Federal relativas a adocao de solucoes baseadas em software livre 1 . ` ¸˜ ¸˜ ¸˜ ´ Este artigo encontra-se organizado da seguinte forma: Na secao 2 e detalhado o ¸˜ ´contexto no qual o atual sistema acadˆ mico da UFBA se situa. Na secao 3 e apresentado ede forma sucinta o framework Demoiselle detalhando inclusive uma arquitetura geral para ¸˜ ¸˜ ´a construcao de sistemas que venham a utililizar tal framework. Na secao 4 e apresentada a ¸˜ ¸˜definicao dos processos envolvidos para disponibilizar a solucao desenvolvida pela equipe ¸˜ ´da UFBA para o sistema acadˆ mico. Na secao 5 e apresentado os resultados do trabalho e ¸˜sobre o modelo proposto e na Secao 6 s˜ o apresentados os trabalhos futuros referentes a aesta proposta. 1 http://www.softwarelivre.gov.br/
  • 2. 2. Contexto ¸˜O SIAC atualmente conta com uma equipe de 13 pessoas entre funcion´ rios da instituicao, atercerizados e bolsistas. Com uma arquitetura predominantemente cliente-servidor desen-volvida em Power Buider (vers˜ o 7.0) 2 e SQLServer (2000), o SIAC sofre com proble- amas cl´ ssicos e recorrentes em equipes de desenvolvimento de software que s˜ o: falta de a a ¸˜documentacao, rotatividade da equipe, regras de neg´ cio espalhadas nos componentes da oarquitetura, falta de testes automatizados, entre outros fatores que aumentam o custo de ¸˜ ¸˜ `manutencao e de documentacao. Apesar das dificuldades, ele ainda atende as necessi- ¸˜dades da instituicao ao gerenciar a agenda acadˆ mica da mesma. e ` ¸˜ ´ O principal problema referente a documentacao e que h´ pouca informacao a ¸˜confi´ vel dispon´vel, sendo que parte desta encontra-se defasada em decorrˆ ncia das cons- a ı e ¸˜ ¸˜tantes modificacoes nas solucoes adotadas sem o devido registro no modelo. Aliado a isto, ¸˜h´ a rotatividade da equipe, a qual agrava a situacao, de modo que um problema pode ser aresolvido de diversas maneiras por pessoas diferentes. As regras de neg´ cio vigentes no SIAC est˜ o implementadas tanto nos m´ dulos o a ocliente quanto no servidor, de maneira que existe mais de um ponto de acesso para ¸˜ ¸˜alteracoes nas regras e a modificacao em apenas um ponto pode n˜ o corrigir o problema a ¸˜ou gerar novos problemas. Esta situacao se agrava com a ausˆ ncia de testes automatiza- e ¸˜dos, unit´ rios, de integracao ou funcionais, os quais ao serem executados, denunciariam aimediatamente os poss´veis problemas gerados ou n˜ o resolvidos. Normalmente os testes ı as˜ o feitos pelos pr´ prios desenvolvedores sem nenhum processo automatizado. a o3. Trabalhos RelacionadosComo trabalho relacionado ao que este artigo descreve, pode ser citado o SAGU - Sis-tema Aberto de Gest˜ o Unificada3 . Este sistema, feito em PHP se destaca pela utilizacao a ¸˜de tecnologias de software livre al´ m do pr´ prio PHP, como tamb´ m o framework de e o edesenvolvimento Miolo e o banco de dados PostgreSQL. O SAGU permite, inclusive a ¸˜ ¸˜habilitacao de m´ dulos de forma independente, nos casos em que a instituicao deseja o ¸˜utilizar apenas parte da solucao desenvolvida.4. Framework DemoiselleO framework Demoiselle 4 surgiu da necessidade de criacao de um produto que possibi- ¸˜ ¸˜ ¸˜litasse o reuso de estruturas pr´ -existentes, que facilitasse a manutencao das aplicacoes e e ¸˜que permitisse a padronizacao dos c´ digos nos processos de desenvolvimento de software o ` s demandas do Governo Federal.livre para atender a Como framework integrador, o Demoiselle constitui-se de uma camada de alton´vel denominada Framework Arquitetural, que estabelece interfaces padronizadas para ı ¸˜serem usadas pelas aplicacoes. Nas camadas inferiores encontram-se os frameworks de ¸˜ ¸˜base e de fundacao, amplamente utilizados pelo mercado, e para a aplicacao, as mudancas ¸de infraestrutura s˜ o completamente transparentes. A ferramenta foi constru´da sob a ıas premissas de ser extens´vel, f´ cil de usar, est´ vel, configur´ vel, confi´ vel e ter sua ı a a a a ¸˜documentacao publicada. 2 http://www.sybase.com.br/products/modelingdevelopment/powerbuilder 3 http://www.solis.org.br/projetos/sagu 4 http://www.frameworkdemoiselle.gov.br/
  • 3. O desenvolvimento orientado a componentes com ciclo de vida independente do ¸˜framework arquitetural permite que as aplicacoes n˜ o fiquem dependentes dos m´ dulos, a oque podem ser constru´dos colaborativamente [Tiboni et al. 2009]. ı Figura 1. Arquitetura do Demoiselle Framework [Tiboni et al. 2009]. ´ O modelo arquitetural do Demoiselle e apresentado na Figura 1. Os componentesna verdade n˜ o fazem parte do framework arquitetural, pois possuem um ciclo de vida a a e o ¸˜independente. Por este fato, eles n˜ o geram dependˆ ncia obrigat´ ria nas aplicacoes uti-lizadoras e podem ser constru´dos colaborativamente. A arquitetura de referˆ ncia pro- ı e ´posta para o Demoiselle e baseada em camadas. Al´ m das camadas cl´ ssicas do modelo MVC (Modelo, Vis˜ o e Controlador), e a a ¸˜ ¸˜elas se distinguem como camadas de persistˆ ncia, transacao, seguranca, injecao de de- e ¸pendˆ ncia e mensagem [Tiboni et al. 2009]. e4.1. M´ dulos o • Core: Conjunto de especificacoes que d˜ o base estrutural ao framework possibi- ¸˜ a ¸˜ ¸˜ ¸˜ litando padronizacao, extens˜ o e integracao entre as camadas das aplicacoes nele a baseadas; • Persistence: Realiza a integracao do sistema com outros sistemas gerenciadores ¸˜ de bancos de dados garantindo eficiˆ ncia para recuperar, armazenar e tratar e ¸˜ informacoes; • Util: Cont´ m componentes utilit´ rios que facilitam o trabalho de outras funciona- e a lidades do framework e seus m´ dulos l´ gicos; o o • View: Cont´ m implementacoes de componentes espec´ficos de interface com e ¸˜ ı 5 ¸˜ usu´ rio baseados na especificacao JSF ; a • Web: Implementacao do m´ dulo l´ gico Core para aplicacoes Web (J2EE) 6 , ¸˜ o o ¸˜ e a ¸˜ provˆ utilit´ rios comuns de aplicacoes web que facilitam tratamento de sess˜ eso ¸˜ de usu´ rio e suas requisicoes. a 5 http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html 6 http://java.sun.com/j2ee/overview.html
  • 4. 4.2. ContextosEnquanto os m´ dulos dentro da arquitetura podem ser vistos como camadas verticais, oexistem camadas transversais, que s˜ o os contextos. Os contextos referem-se a carac- a ¸˜ ¸˜ter´sticas cuja operacao transcende as camadas verticais, como transacoes, troca de men- ı ¸ ¸˜sagens, seguranca da aplicacao e aspectos que devem ser injetados no c´ digo. A Figura o ¸˜2 ilustra o relacionamento do contexto com a implementacao de MVC do Demoiselle[Tiboni et al. 2009]. Figura 2. : Camadas Verticais e Transversais do Demoiselle [Tiboni et al. 2009].4.3. Desenvolvimento Baseado em Componentes o ¸˜Os m´ dulos citados na secao 4.1 constituem o n´ cleo do framework. A ele podem ser uacoplados componentes desenvolvidos por terceiros, desde que usem a interface definida ¸˜pelo Demoiselle. Para tanto, a adocao de padr˜ es se mostra necess´ ria, tanto para per- o a ¸˜mitir a manutencao quanto para promover o reuso. Os mesmos n˜ o devem mudar (com afacilidade), embora exista a necessidade de inovar, e isto geralmente provoca a quebra depadr˜ es. o Dessa forma, o Demoiselle Framework faz uso de interfaces de classe em seu ¸˜ ¸˜n´ cleo, as quais ditam o padr˜ o de codificacao para as aplicacoes. Por outro lado, a u apossibilidade de criar componentes e conect´ -los ao Demoiselle d´ ao desenvolvedor uma a a ¸˜grande liberdade, pois ele pode criar qualquer funcionalidade para uma aplicacao que useo framework, inclusive uma vers˜ o alternativa de uma funcionalidade j´ existente. a a
  • 5. Os componentes possuem ciclo de vida independente, n˜ o geram dependˆ ncia a e o ¸˜obrigat´ ria nas aplicacoes geradas e podem ser constru´dos de forma colaborativa. A fa- ı ¸˜cilidade de acoplar e desacoplar componentes, aliada com a padronizacao permite superarum problema do software desenvolvido em comunidade: o prazo de entrega. ¸˜ A componentizacao permite que um usu´ rio crie e utilize uma nova funcionali- adade para o framework sem ter de esperar que a mesma seja aprovada e incorporada pelacomunidade. Uma vez que isso ocorra, ele pode trocar sua vers˜ o pessoal por aquela atestada e melhorada pela comunidade [Tiboni et al. 2009].5. Projeto SIAC 2.0 ¸˜ ¸˜ ¸˜A reestruturacao do SIAC comecou com a selecao e adocao de ferramentas que apoiassem ¸o processo formalizando pr´ ticas que j´ existiam, criassem um ambiente de desenvolvi- a a ¸˜mento mais padronizado e produtivo. Entre os crit´ rios para selecao, o fato do software eestar sob uma das licencas de software livre contou positivamente. Para o gerenciamento ¸do projeto selecionamos e adotamos a ferramenta RedMine 7 . Ainda assim, sentimos a necessidade de aplicar um metodologia de desenvolvi-mento para o SIAC 2.0 de modo a potencializar o trabalho realizado pela equipe e melho- ´ ´rar o ritmo de trabalho existente. O projeto e desenvolvido utilizando a metodologia agilSCRUM [Schwaber 2004] com algumas pr´ ticas de XP [Beck and Andres 2004]: TDD a ¸˜[Beck 2002], programacao em par, planing poker, baby steps, refactoring, design simples, ¸˜propriedade coletiva do c´ digo e padr˜ es de codificacao. O ciclo de desenvolvimento e o o ´ ¸˜baseado em sprints (iteracoes) de 15 dias, seguindo todas as pr´ ticas do SCRUM como as areuni˜ es di´ rias, reviews, retrospectivas e reuni˜ es de planejamento. o a o ¸˜ ¸˜ Para o desenvolvimento da solucao, o framework de integracao Demoiselle foi ¸˜selecionado e adotado. Esta escolha visa a padronizacao e produtividade, al´ m de facilitar e ¸˜ ´a integracao dos sistemas. A finalidade desta escolha e que, a partir de um framework e ¸˜de uma arquitetura de referˆ ncia, um conjunto de requisitos gere uma aplicacao que possa eser mantida por qualquer um que conheca os dois primeiros [Tiboni et al. 2009]. ¸ Para o SIAC 2.0 foi adotada a arquitetura de referˆ ncia em camadas e o padr˜ o e aMVC sugerido pelo framework Demoiselle. Os componentes do Demoiselle uteis ao ´ a `projeto est˜ o sendo incorporados a medida que s˜ o necess´ rios. A Figura 3 descreve a acomo se encontra a arquitetura do sistema atualmente.6. ResultadosAtualmente o projeto encontra-se em sua terceira sprint, o que permitiu o amadurecimentoem torno da tecnologia e da metodologia utilizada. A equipe conseguiu adequar-se bem as´pr´ ticas do SCRUM e XP e a mudanca de paradigma de desenvolvimento devido a adocao a ¸ ¸˜ ´de uma metodologia agil. Pode-se afirmar que o n´vel de compromisso e motivacao da ı ¸˜equipe aumentaram bastante a partir da mudanca de metodologia utilizada. Os pequenos ¸ e ı ¸˜ciclos de desenvolvimento tˆ m contribu´do bastante na avaliacao das funcionalidades e na ¸˜validacao da primeira vers˜ o do sistema, que tem como escopo o portal de docentes da aUFBA. 7 http://www.redmine.org/
  • 6. Figura 3. Arquitetura SIAC 2.0 Al´ m disso, o uso do RedMine tem permitido organizar o trabalho realizado a par- e ¸˜ ¸˜tir da definicao da lista de funcionalidades e o acompanhamento da realizacao de tarefaspor cada membro da equipe. O mesmo tem se constitu´do como um espaco importante ı ¸ ¸˜para o compartilhamento de arquivos e documentos diversos que tenham relacao com oprojeto.7. Cen´ rios Futuros a ´Uma das propostas da equipe e que o SIAC 2.0 possa ser lancado como software p´ blico ¸ ude modo que o mesmo possa ter seu desenvolvimento compartilhado e de forma colabo-rativa. Outros projetos incluem o lancamento de uma vers˜ o para dispositivos m´ veis e a ¸ a o ¸˜componentizacao do sistema, de modo que qualquer pessoa possa facilmente desenvolverm´ dulos e integr´ -los ao sistema. o aReferˆ ncias eBeck, K. (2002). Test Driven Development: By Example. Addison-Wesley Professional.Beck, K. and Andres, C. (2004). Extreme Programming Explained: Embrace Change. Addison-Wesley Professional.Schwaber, K. (2004). Agile Project Management with Scrum. Microsoft Press.Tiboni, A. C., da Silva Lisboa, F. G., and Mota, L. C. (2009). Uma plataforma livre ¸˜ para padronizacao do desenvolvimento de sistemas no governo federal. In Anais do ¸˜ Col´ quio Colibri. Sociedade Brasileira de Computacao. o

×