Prof. Marcos Vinicius Fidelis
Universidade Tecnológica Federal do Paraná – Campus Ponta Grossa Universidade Estadual de Ponta Grossa
D
ESENVOLVIMENTO
DE
S
ISTEMAS
COM
R
OTEIRO
O Legado
Algumas Diretrizes do Projeto O Projeto
Framework
Grails
Alguns números do novo sistema
Outras considerações iReport Ambiente do iReport OpenReports Vitórias Novos Projetos Conclusões Dúvidas
O
LEGADO
O caso considerado neste palestra é um Sistema de Controle Acadêmico.
Como é um sistema essencial em uma universidade, postergou-se por muito tempo a construção de um novo sistema.
Entre os principais motivos estavam a complexidade
inerente do projeto, custo de modernização, falta de tempo e pessoal.
Por outro lado o custo de manutenção aumentava a cada ano pela incorporação de novos requisitos, repetição de rotinas em vários pontos do programa, miscelânea de
estilos de programação e obsolescência das ferramentas de desenvolvimento que forçava revisões detalhadas a cada alteração.
A
LGUMAS
D
IRETRIZES
DO
P
ROJETO
- I
Produtividade e Qualidade. Um das principais
diretrizes do projeto era a busca e utilização de
ferramentas de desenvolvimento que estimulassem a produtividade e garantisse a qualidade dos sistemas.
Padronizar para facilitar a manutenção. A
padronização auxilia o processo de manutenção de software, mas por outro lado é um dos grandes obstáculos a sua aceitação pela possibilidade de “engessar” a criatividade dos desenvolvedores. A Orientação a Objetos permitiu uma simplificação nos códigos construídos, é um processo obtido
A
LGUMAS
D
IRETRIZES
DO
P
ROJETO
- II
Necessidade de reduzir custos de aquisição de licenças
de software. O Comitê de Implementação de Software
Livre do Governo Federal estima que os cofres públicos economizaram mais de 370 milhões de reais em 2008. A opção pelos programas de código aberto é parte das políticas estratégicas de governo brasileiro.
Atualidade e sintonia com o mercado. Uma
universidade que possui cursos de informática dispõe de recursos humanos para auxiliar a construção de
software. Mas a baixa remuneração provoca uma alta rotatividade nas equipes. Logo, não se dispõe de muito tempo para treinamento e a utilização de tecnologias ultrapassadas desmotiva a equipe. Para contornar este problema é necessária a adoção de tecnologias ágeis de desenvolvimento com curvas de aprendizado menores.
A
LGUMAS
D
IRETRIZES
DO
P
ROJETO
- III
Disponibilidade através da web com segurança.
É cada vez maior a exigência por parte dos
usuários de que os sistemas sejam acessíveis
pela internet. O desafio é a escolha de linguagens
e ferramentas que garantam o desenvolvimento
de sistemas web seguros e protegidos de práticas
como “injeção de código externo” entre outras.
O
PROJETO
O Sistema de Gestão Acadêmica (SGA)
é o conjunto de ferramentas
desenvolvidas pelo Centro de
Processamento de Dados da
Universidade Estadual de Ponta Grossa
(UEPG) para atender todo o controle da
atividade acadêmica dos alunos dos
cursos de graduação presenciais e à
distância.
F
RAMEWORK
Um Framework pode ser definido como uma
aplicação completa que possui uma estrutura
estática e outra dinâmica para resolver um
conjunto restrito de problemas (GOVONI 1999).
Neste caso, vários problemas do cotidiano de
desenvolvimento de sistemas já estão resolvidos e
o desenvolvedor foca-se na “lógica do negócio”.
Segundo FAYAD e SCHMIDT (1997), frameworks
representam uma estrutura formada por blocos
pré-fabricados de software que os programadores
podem usar, estender ou adaptar para uma
O
QUE
É
G
RAILS
?
Framework para construção de aplicações para web a partir de
Groovy
Foi inicialmente chamado de "Groovy on Rails" até ser
renomeado para Grails, após um pedido do fundador do projeto Ruby on Rails, David Heinemeier Hansson.[1] Os trabalhos
iniciaram em julho de 2005 e a versão 0.1 foi liberada em março de 2006.
Última versão 2.0.3
Segue o padrão MVC (Model-View-Controller)
Separa a parte lógica, a parte de persistência de dados e a
C
ONCEITOS
Convention over Configuration (CoC)
Diminui o número de decisões que o desenvolvedor
precisa fazer, ganhando simplicidade sem perder a flexibilidade
Don’t Repeat Yourself
Reduz a repetição de qualquer tipo de informação
Scaffolding
Cria o esqueleto básico do CRUD –
G
RAILS
– T
ECNOLOGIAS
AGREGADAS
O Grails é composto de tecnologias integradas que utilizam o Groovy como principal agente . Groovy é uma linguagem de scripting,
dinamicamente tipada, orientada a objetos e que roda nativamente na Java Virtual Machine (JVM). Entre as tecnologias utilizadas que são open source e conhecidas no mercado estão o Hibernate, o Spring e o SiteMesh
class Curso extends HandlersAudit{
static hasMany = [curriculo:Curriculo, renovacaoCurso:RenovacaoCurso] Long id Setor setor Ta_tipo_curso tipoCurso Ta_convenio convenio String codigo String sigla String nomeAbreviado String nomeCompleto Ta_sim_nao ativo static mapping = { table 'CURSO' id column:'id_curso', generator:'identity' setor column:'id_setor' tipoCurso column:'id_ta_tipo_curso' convenio column:'id_ta_convenio' codigo column:'codigo' sigla column:'sigla' nomeAbreviado column:'nm_abreviado' nomeCompleto column:'nm_completo' ativo column:'ativo' sort 'nomeAbreviado' } static constraints = { codigo(size:0..10) sigla(size:0..10) nomeAbreviado(size:3..60) nomeCompleto(size:3..160) setor() tipoCurso() convenio() ativo() } String toString(){ "${this.codigo} - ${this.nomeAbreviado}" } }
A
LGUNS
NÚMEROS
DO
NOVO
S
ISTEMA
(
MAR
/2012)
Cadastros (CRUD-Create/Recovery/Update/Delete): 245
Relatórios: 305
Cursos: 75
Currículos: 432
Disciplinas: 4.466
Turmas: 69.799 (6.482 em 2011)
Campus (presenciais e à distância): 52
Acadêmicos: 52.038 (14.293 cursando em 2011)
Professores: 2.531 (830 ativos e utilizando o sistema em
O
UTRAS
CONSIDERAÇÕES
Funcionou muito bem com Sybase ASE
Integrado ao NetBeans
782 plugins e aumentando – autenticação, ldap,
auditoria, blogger, calendar, cloud, correios-br,
excel, facebook-connect, jasper, mail, paypal,
picasa, twitter, php, entre outros.
Netbeans + SVN resolveu o problema de
manutenção de versões
Integram o projeto o SisAcad, o Professor online,
o Acadêmico online, Sistema de Vestibular,
Sistema de Espaço Físico e Sistema de Calouro
I
R
EPORT
JasperReport
Framework java para relatórios com grande
habilidade na organização e apresentação de
conteúdo, permitindo a geração dinâmica de
relatórios em diversos formatos (pdf, html, xls,
csv e xml).
iReport
Interface gráfica para o Jasper.
É uma alternativa livre ao conhecido Cristal
O
PEN
R
EPORTS
É uma interface para relatórios web open source,
flexível, customizável e fácil de ser utilizada por
desenvolvedores e usuários. É gerenciada através do
navegador, permitindo a construção de uma biblioteca
de parâmetros para relatórios e a geração de
relatórios em diversos formatos (PDF, RTF, HTML, XLS,
CSV entre outros). Permite o planejamento e a
auditoria de relatórios com tempo, ausência de dados,
falhas ou sucesso de execução. Gerencia usuários,
grupos, relatórios, parâmetros e datasources. Suporta
parâmetros no formato Data, Texto, Lista, Consulta
(query) e Booleanos.
V
ITÓRIAS
Desmistificamos que o uso de java deixa as
aplicações lentas
Partimos de PHP para JAVA e contamos com
todos os recursos que o Java pode oferecer.
Implementação de Lógica de Negócio no
Banco de Dados (Grails e iReport são uma
camada de acesso aos dados)
Migramos um sistema legado para um sistema
100% WEB e com inúmeros novos recursos
Bom projeto de Banco de Dados se tornou
essencial
N
OVOS
P
ROJETOS
Como benefícios adicionais, a tecnologia já começou
a ser utilizada em outros sistemas da universidade:
Sistema de Pró-Egresso (Programa de Assistência ao
Egresso e ao Apenado)
o Sistema de Controle de Espaço Físico
o Sistema de Controle de Pauta de Reuniões dos Conselhos CAOE – Centro de Auxílio e Orientação ao Estudante
e em alguns novos sistemas administrativos para o Hospital
C
ONCLUSÕES
Padronização de programas Padronização de interface Menos erros
Menos manutenção Códigos mais curtos
Menos treinamento de usuários
Grails acelerou o desenvolvimento de sistema, mas
use apenas para cadastros
iReport acelerou o desenvolvimento de relatórios, use
em todas as consultas formatadas. TODAS!
R
EFERÊNCIAS
Govoni, D. (1999). Java Application Frameworks.
John Wiley & Sons.
Fayad, M. E. and Schmidt, D. C. (1997).
Object-oriented application frameworks. Commun.
ACM, 40(10):32–38.
O
NDE
BUSCAR
INFORMAÇÕES
Site Grails: http://grails.org/websites
Grails Brasil: http://www.grailsbrasil.com.br/
iReport:
http://jasperforge.org/projects/ireport