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



Documentos relacionados
Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net.

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

APLICAÇÃO DE SCRUM NO DESENVOLVIMENTO DE SISTEMAS PARA O PROGRAMA DE MONITORAMENTO DO CLIMA ESPACIAL (INPE) - ESTUDO DE CASO. André A.

Metodologias Ágeis. Gerenciando e Desenvolvendo Projetos de forma eficiente. Gabriel Verta Rafael Reimberg Vinicius Quaiato

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

sendo bastante acessível e compreendido pelos usuários que o utilizarem.

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Política Gestão de Configuração e Mudança

Porque estudar Gestão de Projetos?

PLANEJAMENTO ESTRATÉGICO

TechProf Documento de Arquitetura

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

Com metodologias de desenvolvimento

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB

Introdução ao Processo Unificado (PU)

3. Fase de Planejamento dos Ciclos de Construção do Software

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

Sistema Datachk. Plano de Projeto. Versão <1.0> Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

MDMS-ANAC. Metodologia de Desenvolvimento e Manutenção de Sistemas da ANAC. Superintendência de Tecnologia da Informação - STI

ADMINISTRAÇÃO E SERVIÇOS DE REDE

POLÍTICA DE GESTÃO DE RISCO - PGR

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Padrões de Interação com o Usuário

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Leslier Soares Corrêa Estácio de Sá / Facitec Abril/Maio 2015

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

UFG - Instituto de Informática

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Projeto 914 BRA PRODOC-MTC/UNESCO DOCUMENTO TÉCNICO Nº 03

Introdução a Banco de Dados Aula 03. Prof. Silvestri

O Processo Unificado

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB

MINISTÉRIO DA JUSTIÇA SECRETARIA DE ASSUNTOS LEGISLATIVOS - EDITAL PROCESSO SELETIVO SIMPLIFICADO 11/2014

Gerenciamento de integração de projeto

3 Gerenciamento de Projetos

PROJETOS, PARCERIAS E ARRANJOS INOVATIVOS: o caso do Núcleo de Documentação da Universidade Federal Fluminense

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

VIGDENGUE - SISTEMA DE APOIO AO ACOMPANHAMENTO E VIGILÂNCIA DE CASOS NOTIFICADOS DE DENGUE

Desenvolve Minas. Modelo de Excelência da Gestão

7 Mudanças Realizadas

Backsite Serviços On-line

1 Introdução. Componentes Usuários. Provedor de Serviços. Figura 1.1 Ambiente de oferecimento de serviços

Memórias de Tradução: auxiliando o humano a traduzir

Resumo artigo Agile Modeling- Overview

Manual de Procedimentos para Desenvolvimento de Softwares

Uma plataforma livre para padronização do desenvolvimento de sistemas no Governo Federal

Concurso da Prefeitura São Paulo. Curso Gestão de Processos, Projetos e Tecnologia da Informação. Tema: Gestão de Projetos - Conceitos Básicos

ISO/IEC 12207: Gerência de Configuração

Sistemas Distribuídos (DCC/UFRJ)

UNIVERSIDADE ESTADUAL DE GOIÁS PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO COORDENAÇÃO DE PROJETOS E PUBLICAÇÕES. Política Editorial de Periódicos da UEG

2 Engenharia de Software

Qualidade de Software

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2 Objetivos e benefícios de um Sistema de Informação

Ouvir o cliente e reconhecer o problema: ingredientes essenciais à gestão de projetos

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Experiência de contratação de empresa de contagem de Pontos de Função para auxílio na gestão de contrato administrativo

Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos

Análise e Projeto de Software

Processos Técnicos - Aulas 4 e 5

CHAMADA PÚBLICA SIMPLIFICADA Nº 02/2014 SELEÇÃO DE PROFISSIONAIS PARA O PROJETO

NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO

Agenda Semântica. Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo

PROJETO CEMEA. Um trabalho educacional

Texto para Coluna do NRE-POLI na Revista Construção e Mercado Pini Dezembro 2013

PROCESSOS DE CRIAÇÃO DE APLICATIVOS

3 Qualidade de Software

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

ENGENHARIA DE SOFTWARE I

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

Investigação sobre o uso do ambiente Moodle pelos professores de uma instituição de ensino superior pública

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO BACHARELADO

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel

RESUMO EXECUTIVO RELATÓRIO FINAL DO PROJETO

Competências organizacionais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Especificação Técnica Sistema ABS TEM+

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

EGC Gestão Estratégica da Tecnologia da Informação

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

NÚCLEO DE APOIO ESPECIALIZADO EM PROGRAMAÇÃO. Lucas Schwendler; Darlei Feix; Andreia Sias Rodrigues

Anexo I Formulário para Proposta

As Capacitações dos Profissionais de TI e as novas habilidades exigidas pelo Mercado.

Simplificamos e aceleramos sua transformação digital.

Demoiselle Framework. Palestrante: Flávio Gomes da Silva Lisboa JUN/2009

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Transcrição:

Projeto SIAC 2.0: Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC) André Luís Monteiro P. dos Santos 1, Fernando Cezar Borges 1, Leandro Ferreira 1, Mário Jorge Pereira 1, Mauricio Cesar S. da Purificação 1 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 especificação do projeto de desenvolvimento do Sistema de Informações Acadêmicas (SIAC) da Universidade Federal da Bahia (UFBA) utilizando o framework Demoiselle. São confrontados os prós e contras na adoção deste framework de integração no desenvolvimento de aplicações e sistemas em uma Instituição Federal de Ensino Superior. 1. Introdução Atualmente a Universidade Federal da Bahia (UFBA) utiliza o Sistema de Informações Acadêmicas (SIAC) para gerenciar os processos que ocorrem durante a execução da agenda acadêmica. Há mais de 10 anos, o SIAC, que é essencial para o funcionamento da Universidade, vem sofrendo manutenções corretivas e adaptativas. A grande quantidade de alterações aliada a um processo de desenvolvimento pouco definido e uma arquitetura cliente-servidor com regras espalhadas entre o banco de dados e a aplicação, criaram um ambiente ideal para um alto custo de manutenção. Nesta situação, surge a opção de se reestruturar o sistema dentro de uma nova arquitetura que seja mais flexível, definindo em paralelo um processo que permita um desenvolvimento mais ágil e uma manutenção e documentação menos onerosas. Para isto, boas práticas devem ser aplicadas, sempre visando um alinhamento junto às diretrizes do Governo Federal relativas à adoção de soluções baseadas em software livre 1. Este artigo encontra-se organizado da seguinte forma: Na seção 2 é detalhado o contexto no qual o atual sistema acadêmico da UFBA se situa. Na seção 3 é apresentado de forma sucinta o framework Demoiselle detalhando inclusive uma arquitetura geral para a construção de sistemas que venham a utililizar tal framework. Na seção 4 é apresentada a definição dos processos envolvidos para disponibilizar a solução desenvolvida pela equipe da UFBA para o sistema acadêmico. Na seção 5 é apresentado os resultados do trabalho sobre o modelo proposto e na Seção 6 são apresentados os trabalhos futuros referentes a esta proposta. 1 http://www.softwarelivre.gov.br/

2. Contexto O SIAC atualmente conta com uma equipe de 13 pessoas entre funcionários da instituição, tercerizados e bolsistas. Com uma arquitetura predominantemente cliente-servidor desenvolvida em Power Buider (versão 7.0) 2 e SQLServer (2000), o SIAC sofre com problemas clássicos e recorrentes em equipes de desenvolvimento de software que são: falta de documentação, rotatividade da equipe, regras de negócio espalhadas nos componentes da arquitetura, falta de testes automatizados, entre outros fatores que aumentam o custo de manutenção e de documentação. Apesar das dificuldades, ele ainda atende às necessidades da instituição ao gerenciar a agenda acadêmica da mesma. O principal problema referente à documentação é que há pouca informação confiável disponível, sendo que parte desta encontra-se defasada em decorrência das constantes modificações nas soluções adotadas sem o devido registro no modelo. Aliado a isto, há a rotatividade da equipe, a qual agrava a situação, de modo que um problema pode ser resolvido de diversas maneiras por pessoas diferentes. As regras de negócio vigentes no SIAC estão implementadas tanto nos módulos cliente quanto no servidor, de maneira que existe mais de um ponto de acesso para alterações nas regras e a modificação em apenas um ponto pode não corrigir o problema ou gerar novos problemas. Esta situação se agrava com a ausência de testes automatizados, unitários, de integração ou funcionais, os quais ao serem executados, denunciariam imediatamente os possíveis problemas gerados ou não resolvidos. Normalmente os testes são feitos pelos próprios desenvolvedores sem nenhum processo automatizado. 3. Trabalhos Relacionados Como trabalho relacionado ao que este artigo descreve, pode ser citado o SAGU - Sistema Aberto de Gestão Unificada 3. Este sistema, feito em PHP se destaca pela utilização de tecnologias de software livre além do próprio PHP, como também o framework de desenvolvimento Miolo e o banco de dados PostgreSQL. O SAGU permite, inclusive a habilitação de módulos de forma independente, nos casos em que a instituição deseja utilizar apenas parte da solução desenvolvida. 4. Framework Demoiselle O framework Demoiselle 4 surgiu da necessidade de criação de um produto que possibilitasse o reuso de estruturas pré-existentes, que facilitasse a manutenção das aplicações e que permitisse a padronização dos códigos nos processos de desenvolvimento de software livre para atender às demandas do Governo Federal. Como framework integrador, o Demoiselle constitui-se de uma camada de alto nível denominada Framework Arquitetural, que estabelece interfaces padronizadas para serem usadas pelas aplicações. Nas camadas inferiores encontram-se os frameworks de base e de fundação, amplamente utilizados pelo mercado, e para a aplicação, as mudanças de infraestrutura são completamente transparentes. A ferramenta foi construída sob as premissas de ser extensível, fácil de usar, estável, configurável, confiável e ter sua documentação publicada. 2 http://www.sybase.com.br/products/modelingdevelopment/powerbuilder 3 http://www.solis.org.br/projetos/sagu 4 http://www.frameworkdemoiselle.gov.br/

O desenvolvimento orientado a componentes com ciclo de vida independente do framework arquitetural permite que as aplicações não fiquem dependentes dos módulos, que podem ser construídos colaborativamente [Tiboni et al. 2009]. Figura 1. Arquitetura do Demoiselle Framework [Tiboni et al. 2009]. O modelo arquitetural do Demoiselle é apresentado na Figura 1. Os componentes na verdade não fazem parte do framework arquitetural, pois possuem um ciclo de vida independente. Por este fato, eles não geram dependência obrigatória nas aplicações utilizadoras e podem ser construídos colaborativamente. A arquitetura de referência proposta para o Demoiselle é baseada em camadas. Além das camadas clássicas do modelo MVC (Modelo, Visão e Controlador), elas se distinguem como camadas de persistência, transação, segurança, injeção de dependência e mensagem [Tiboni et al. 2009]. 4.1. Módulos Core: Conjunto de especificações que dão base estrutural ao framework possibilitando padronização, extensão e integração entre as camadas das aplicações nele baseadas; Persistence: Realiza a integração do sistema com outros sistemas gerenciadores de bancos de dados garantindo eficiência para recuperar, armazenar e tratar informações; Util: Contém componentes utilitários que facilitam o trabalho de outras funcionalidades do framework e seus módulos lógicos; View: Contém implementações de componentes específicos de interface com usuário baseados na especificação JSF 5 ; Web: Implementação do módulo lógico Core para aplicações Web (J2EE) 6, provê utilitários comuns de aplicações web que facilitam tratamento de sessões de usuário e suas requisições. 5 http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html 6 http://java.sun.com/j2ee/overview.html

4.2. Contextos Enquanto os módulos dentro da arquitetura podem ser vistos como camadas verticais, existem camadas transversais, que são os contextos. Os contextos referem-se a características cuja operação transcende as camadas verticais, como transações, troca de mensagens, segurança da aplicação e aspectos que devem ser injetados no código. A Figura 2 ilustra o relacionamento do contexto com a implementação 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 Os módulos citados na seção 4.1 constituem o núcleo do framework. A ele podem ser acoplados componentes desenvolvidos por terceiros, desde que usem a interface definida pelo Demoiselle. Para tanto, a adoção de padrões se mostra necessária, tanto para permitir a manutenção quanto para promover o reuso. Os mesmos não devem mudar (com facilidade), embora exista a necessidade de inovar, e isto geralmente provoca a quebra de padrões. Dessa forma, o Demoiselle Framework faz uso de interfaces de classe em seu núcleo, as quais ditam o padrão de codificação para as aplicações. Por outro lado, a possibilidade de criar componentes e conectá-los ao Demoiselle dá ao desenvolvedor uma grande liberdade, pois ele pode criar qualquer funcionalidade para uma aplicação que use o framework, inclusive uma versão alternativa de uma funcionalidade já existente.

Os componentes possuem ciclo de vida independente, não geram dependência obrigatória nas aplicações geradas e podem ser construídos de forma colaborativa. A facilidade de acoplar e desacoplar componentes, aliada com a padronização permite superar um problema do software desenvolvido em comunidade: o prazo de entrega. A componentização permite que um usuário crie e utilize uma nova funcionalidade para o framework sem ter de esperar que a mesma seja aprovada e incorporada pela comunidade. Uma vez que isso ocorra, ele pode trocar sua versão pessoal por aquela testada e melhorada pela comunidade [Tiboni et al. 2009]. 5. Projeto SIAC 2.0 A reestruturação do SIAC começou com a seleção e adoção de ferramentas que apoiassem o processo formalizando práticas que já existiam, criassem um ambiente de desenvolvimento mais padronizado e produtivo. Entre os critérios para seleção, o fato do software estar sob uma das licenças 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 desenvolvimento para o SIAC 2.0 de modo a potencializar o trabalho realizado pela equipe e melhorar o ritmo de trabalho existente. O projeto é desenvolvido utilizando a metodologia ágil SCRUM [Schwaber 2004] com algumas práticas de XP [Beck and Andres 2004]: TDD [Beck 2002], programação em par, planing poker, baby steps, refactoring, design simples, propriedade coletiva do código e padrões de codificação. O ciclo de desenvolvimento é baseado em sprints (iterações) de 15 dias, seguindo todas as práticas do SCRUM como as reuniões diárias, reviews, retrospectivas e reuniões de planejamento. Para o desenvolvimento da solução, o framework de integração Demoiselle foi selecionado e adotado. Esta escolha visa a padronização e produtividade, além de facilitar a integração dos sistemas. A finalidade desta escolha é que, a partir de um framework e de uma arquitetura de referência, um conjunto de requisitos gere uma aplicação que possa ser mantida por qualquer um que conheça 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 MVC sugerido pelo framework Demoiselle. Os componentes do Demoiselle úteis ao projeto estão sendo incorporados à medida que são necessários. A Figura 3 descreve como se encontra a arquitetura do sistema atualmente. 6. Resultados Atualmente o projeto encontra-se em sua terceira sprint, o que permitiu o amadurecimento em torno da tecnologia e da metodologia utilizada. A equipe conseguiu adequar-se bem ás práticas do SCRUM e XP e a mudança de paradigma de desenvolvimento devido a adoção de uma metodologia ágil. Pode-se afirmar que o nível de compromisso e motivação da equipe aumentaram bastante a partir da mudança de metodologia utilizada. Os pequenos ciclos de desenvolvimento têm contribuído bastante na avaliação das funcionalidades e na validação da primeira versão do sistema, que tem como escopo o portal de docentes da UFBA. 7 http://www.redmine.org/

Figura 3. Arquitetura SIAC 2.0 Além disso, o uso do RedMine tem permitido organizar o trabalho realizado a partir da definição da lista de funcionalidades e o acompanhamento da realização de tarefas por cada membro da equipe. O mesmo tem se constituído como um espaço importante para o compartilhamento de arquivos e documentos diversos que tenham relação com o projeto. 7. Cenários Futuros Uma das propostas da equipe é que o SIAC 2.0 possa ser lançado como software público de modo que o mesmo possa ter seu desenvolvimento compartilhado e de forma colaborativa. Outros projetos incluem o lançamento de uma versão para dispositivos móveis e a componentização do sistema, de modo que qualquer pessoa possa facilmente desenvolver módulos e integrá-los ao sistema. Referências Beck, 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 padronização do desenvolvimento de sistemas no governo federal. In Anais do Colóquio Colibri. Sociedade Brasileira de Computação.