6.851,1k - Governo de Pernambuco

Transcrição

6.851,1k - Governo de Pernambuco
Produtividade com
Padronização em Comunidade
Como patrocinar o Demoiselle
Framework e lucrar com reuso
de software
01/09/2011
Agenda
►O que é, de onde veio e quais os
objetivos do projeto
►Breve histórico
►Características técnicas
►Números do Serpro
►Estrutura e ações da Comunidade
►Por que patrocinar?
O que é
O que é o Demoiselle Framework?
Framework livre e aberto que reutiliza
frameworks livres como Mojarra e Hibernate e
absorve experiências de frameworks utilizados
pela
empresa.
Foram implementados 2 mil pontos de função
em nove meses para gerar a versão 1.0 do
framework.
Ele reúne a experiência e o conhecimento do
Serpro em desenvolvimento Java.
A origem
Como nasceu o
Demoiselle Framework?
2007
A inspiração surgiu de uma iniciativa da
CELEPAR, o framework PINHÃO, baseado em
Struts.
Como nasceu o
Demoiselle Framework?
2007
O núcleo da arquitetura nasceu da identificação
no SIEF (Sistema Integrado de Informações
Econômico-Fiscais) de aspectos genéricos que
poderiam ser reutilizados em outros projetos.
Como nasceu o
Demoiselle Framework?
2007
A estratégia adotada para o Demoiselle foi criar
um padrão baseado em especificações Java
(JSRs) e não em produtos específicos.
O objetivo
Quais os objetivos do Demoiselle
Framework
Padronizar o desenvolvimento de sistemas
Justificativa
Padronização:
►Facilita
o
►Permite
reuso
►Facilita
suporte
de
e
absorção
conceitos
e
de
práticas
sistemas
maduras
a integração e disponibilização de serviços para
os novos sistemas
Quais os objetivos do Demoiselle
Framework
Ter independência de fornecedores
Justificativa
Independência de fornecedor significa:
►Possibilidade de trocar de produtos;
►Possibilidade de negociar contratos;
►Possibilidade de resolver o problema por conta própria.
Breve
histórico
Breve histórico
2009
2010
2011
2.1.0 2.1.1
JEE6
2.0.0
2.0.1 2.0.2
CRUD
1.2.0 1.2.1 1.2.2 1.2.3
JPA
1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5
LGPL
1.0.3 1.0.4 1.0.5 1.0.6 1.0.7
20 releases em
2 anos e meio
Evolução
Diminuição da implementação do Serpro, com
consequente diminuição de código a ser
mantido.
Demoiselle 1 (JEE 5)
Implementação Serpro
Frameworks especialistas
(Reuso)
Demoiselle 2 (JEE 6)
Implementação Serpro
Frameworks especialistas
(Reuso)
Características Técnicas
Núcleo da ideia
Framework
Padrão de Projeto
Padrão de Projeto
Padrão de Projeto
Padrão de Projeto
Padrão de Projeto
Padrão de Projeto
Padrão de Projeto
Padrão de Projeto
Padrão de Projeto
Padrão de Projeto
Padrão de Projeto
Padrão de Projeto
Núcleo da ideia
programas simples podem modelar fenômenos complexos
Stephen Wolfram
Arquitetura de Referência
O framework guia o arquiteto em suas decisões
●
View & Controller
Contexto
de
Mensagem
Contexto de
Transação
Injeção de
dependência
Contexto
de
Segurança
Business
Contexto de
Transação
Injeção de
dependencia
Contexto
de
Mensagem
Persistence
Contexto
de
Segurança
Evolução
Demoiselle 2
Demoiselle 1
Pré-requisitos
●
Apesar de o Demoiselle Framework 2.0 ser simples de usar, o
desenvolvimento de aplicações não triviais requer o conhecimento das
diversas tecnologias envolvidas na especificação Java EE, incluindo:
– Linguagem Java
– Servlets, JSP e Tag Libraries
– JavaBeans
– HTML e XML
– Contêineres e Servidores Web
Dependências
Software
Versão
Site (Download)
Java Development Kit (JDK)
6.0 openjdk.org
Apache Maven
2.2 maven.apache.org
Eclipse IDE
3.6 www.eclipse.org
m2eclipse plugin
JBoss Application Server
0.10 m2eclipse.sonatype.org
6.0 www.jboss.org
Dependências
Tenho de usar tudo
Só uso se precisar
Core
Componentes
Arquétipos
●Segurança
●Validação
●
Extensões
JPA
JSF
Vaadin Shiro
JUnit
JTA
Tenho que usar algo
SE
Extensões
●
JPA
JPA 2.0 JSR 317
–
Fábrica de EntityManager
–
Mecanismo de transação para JPA
–
Template para DAO
Extensões
●
JSF
–
Disponibiliza automaticamente as configurações necessárias
para o JSF
–
Disponibiliza templates de CRUD
JSF 2.0 JSR 314
Extensões
●
JUnit
–
Habilita testes unitários com JUnit utilizando as injeções
de dependência do framework.
Kent Beck
Extensões
●
SE
–
Permite a criação de aplicações desktop.
Extensões
●
Vaadin
–
Usa o framework Vaadin para criar uma aplicação
Web.
Extensões
●
Vaadin
Extensões
●
Shiro
–
Provê funcionalidades para utilização do Apache Shiro
como solução para autenticação e autorização de
usuários.
Extensões
●
Shiro
Extensões
●
JTA
–
Destinada à aplicações
Código da Aplicação
que usem transações.
Monitor de
Transações
JTA
Servidor de Aplicações
Monitor de
Transações
Componentes
Não estenda , plugue!
Instalação
●
●
Hoje
–
Manual (nããããããããoooooo)
–
Pacote Debian (super fácil)
–
Instalador Windows (super fácil)
Em breve
–
Instalador unificado multiplataforma
Software Livre e Aberto
Software Livre como instrumento de inovação
Inovação
Abre a possibilidade para captação de inovações
tecnológicas para o desenvolvimento de
soluções de forma não burocrática.
Inovação
Reduz custos de manutenção dos sistemas ao
padronizar a implementação.
Inovação
A estrutura de comunidade permite dividir o
custo da manutenção e evolução do framework
Números do Serpro
Novos Projetos com Demoiselle
No Serpro, entre dezembro de 2009 e dezembro de
2010,
42 projetos de software do tipo “novo
sistema”, utilizaram Demoiselle Framework em sua
construção. Isso representa 21,88% do total de
novos projetos.
Apenas 7 projetos JEE não usaram o framework.
Eles representam 4% do total de novos projetos.
O total de pontos de função implementados por
esses projetos foi de 14072,69.
Fonte:Divisão de Medição e Análise da Superintendência de Desenvolvimento do Serpro
Estrutura e ações
da Comunidade
Ambiente de desenvolvimento
Todo o ambiente de desenvolvimento do
framework está hospedado no Sourceforge, sem
custo
algum
para
a
empresa.
O Sourceforge provê repositório de dados,
controle de versão, fóruns e listas de discussão,
bugtracker, blogs, wiki e análise de tráfego.
Ambiente de desenvolvimento
Grandes projetos de software livre estão
no Sourceforge:
Filezilla
Firebird SQL
Modelo de Governança
Estatutos publicados na Wiki do Demoiselle
Components
Sample
Process
Conselho da
Comunidade
Demoiselle
Decisões Estratégicas
Conselho
Técnico do
Demoiselle
Decisões
Técnicas
Decisões
Operacionais
Infra
Framework
Tools
Documentation
Modelo de Governança
49 Subprojetos:
▶25 em Demoiselle Component
▶2 em Demoiselle Documentation
▶14 em Demoiselle Infra
▶2 em Demoiselle Process
▶2 em Demoiselle Tools
▶4 em Demoiselle Sample
Comunicação com a Comunidade
As discussões gerais ocorrem na lista de
usuários.
Discussões técnicas ocorrem nos fóruns.
Todas as notícias sobre o Demoiselle são
publicadas em um portal que integra todos os
canais
de
comunicação
do
projeto.
Além disso, as informações são replicadas no
Twitter.
Comunicação com a Comunidade
Portal
Comunicação com a Comunidade
Blog
Comunicação com a Comunidade
Bugtracker
Comunicação com a Comunidade
Fórum
Ensino a Distância
Em 2010 foi desenvolvido em conjunto com a
Uniserpro o curso a distância Demoiselle
Framework versão 1.2.
Em 2011 já foram realizadas 2 turmas externas
pela Escola Virtual Serpro e 1 interna pela Escola
Uniserpro.
Foram
capacitados
76
desenvolvedores.
Está em andamento 1 nova turma interna, com
17 alunos.
Ensino a Distância
O EAD Demoiselle foi desenvolvido com a
plataforma livre Moodle.
O curso a
deslocamento
distância evita custos com
de
alunos
e
instrutores.
Ensino a Distância
O governo do Paraguai está interessado no
curso a distância do Demoiselle Framework, já
montou turmas, e se comprometeu a traduzir o
conteúdo para espanhol.
Publicações
Artigos na revista
Mundo Java
Artigos acadêmicos
Livro 'Introdução ao Demoiselle Framework'
com 391 páginas
Citação internacional
Ed Burns
Ampla Divulgação
2009
Ampla Divulgação
Yara Senger
Ampla Divulgação
2010
Ampla Divulgação
2011
Ampla Divulgação
2011
Seminário para alunos do professor Marcos Didonet Del Fabro, do
Departamento de Informática, contribuidor do projeto Eclipse, um dos
componentes do Demoiselle Framework.
Ampla Divulgação
Visitantes
8230 visitas em 2009 (2034 de outros países)
6190 visitas em 2010 (769 de outros países)
2810 visitas em 2011 (526 de outros países)
Dados de 26/07/2011
9000
8000
7000
6000
5000
Totais
4000
3000
2000
1000
0
2009
2010
2011
Visitantes
O espelho do Demoiselle Infra na UFPR permite que a
comunidade baixe o instalador do Demoiselle para Debian.
Acessos externos, ~3759 (2010) e ~20942 (2011)
Dados de 26/07/2011
25000
20000
15000
10000
5000
0
2010
2011
Demoiselle Infra
O Demoiselle Infra disponibiliza pacotes de instalação para
Debian e Windows, atualmente.
O Demoiselle Infra atualmente está criando um DVD-Live,
para distribuição e instalação do Demoiselle off-line.
I Encontro da Comunidade (2010)
Casos de Sucesso
Agência Estadual de Tecnologia da Informação de Pernambuco
I Encontro da Comunidade (2010)
Casos de Sucesso
Termo de Referência do Processo Licitatório 024/2010
Contratações de desenvolvimento de software para o Estado de
Pernambuco começam a determinar a utilização do Demoiselle.
I Encontro da Comunidade (2010)
Casos de Sucesso
Ata de registro de preços 005/10
Ponto de Função Demoiselle R$ 205,00
I Encontro da Comunidade (2010)
Casos de Sucesso
Sistemas desenvolvidos com Demoiselle
WebRegularidade
Controle de certidões fiscais de Órgãos/Entidades
Sistema de Controle de Acesso
Sistema de Controle de Acesso Corporativo
Sistema de Controle de Testes
Ferramenta de registro dos testes de aplicações
CVI
Sistema de Controle de Viagens
I Encontro da Comunidade (2010)
Casos de Sucesso
Coordenação de Sistemas da Secretaria do Tesouro Nacional
I Encontro da Comunidade (2010)
Casos de Sucesso
Coordenação de Sistemas da Secretaria do Tesouro Nacional
Sistemas desenvolvidos com Demoiselle
Fale com a CODIN – Ouvidoria Interna
19 casos de uso; 208 pontos de função;
15 (sistema) / 700 (serviço) usuários; 5 simultâneos;
Strategía – Planejamento Estratégico
33 casos de uso; 650 pontos de função;
700 usuários; 30 simultâneos;
I Encontro da Comunidade (2010)
Casos de Sucesso
Universidade do Oeste de Santa Catarina
Sistema Bibliotecário
desenvolvido em Demoiselle
Pesquisa de Usuários
Realizada com a ferramenta LimeSurvey, foi
direcionada para a comunidade, para saber
quem estava utilizando o framework e como.
Casos de Sucesso
Pesquisa Demoiselle
“O framework já foi utilizado com sucesso em
3 sistemas que foram reescritos utilizando o
Demoiselle, e existe a expectativa de o mesmo
ser utilizado em alguns outros projetos
também.”
Usuários identificados
Contribuições
De 2009 a 2011:
▶152 bugs corrigidos
▶130 melhorias implementadas
▶52 novas funcionalidades implementadas
▶12 tarefas pontuais executadas
Contribuições
Com o desenvolvimento do Sistema de Controle de Acesso, o
componente Demoiselle Security ganhou várias melhorias.
Workshop de Reuso
Realizado em todos os polos de desenvolvimento do Serpro,
durante o ano de 2010.
O Workshop identificou componentes reutilizáveis nos projetos
que utilizaram o Demoiselle Framework e incorporou tudo o que
era genérico ao framework.
Exemplo: componente
SUPDE/DERCE, foi
Demoiselle-CRUD
de CRUD
incorporado
desenvolvido pela
como componente
O Workshop provocou o compartilhamento de soluções
reutilizáveis, evitando retrabalho e gerando economia.
Prêmios
Prêmios
Finalista do IX Prêmio Excelência em Governo Eletrônico
Participação em Eventos
Internacionais
Três vezes (2009, 2010 e 2011) selecionado para a
Conferência Iberoamericana em Sistemas, Cibernética e
Informática, promovida pelo International Institute of
Informatics and Systemics, que ocorre na cidade de
Orlando, Flórida, nos Estados Unidos.
Portal do Software Público
2º software do Serpro lançado no Portal SPB
664 membros desde 7 de junho de 2011
O que está em andamento
►Certificação Profissional
►EAD Demoiselle 2
►EAD de tecnologias relacionadas a
Demoiselle
►Internacionalização do projeto
►Proposta de reunião com
universidades
►II Encontro da Comunidade
Demoiselle
Por que patrocinar?
Vantagens de um
projeto de software livre
Processo de desenvolvimento:
►Pode agregar milhares de desenvolvedores.
►É adequado para software de infraestrutura
(como um framework).
Vantagens de um
projeto de software livre
Licenciamento:
►O software livre tem licenciamento com menor
custo.
Vantagens de um
projeto de software livre
Principal característica:
►Maior portabilidade, por estar baseado em
padrões abertos.
Vantagens de um
projeto de software livre
Ritmo de inovação:
►Gera versões estáveis em curto espaço de
tempo.
Cinco motivos para adotar
um software livre
►Custo
►Estabilidade
►Confiabilidade
►Performance
►Acesso ao código-fonte
Vantagens
Sua empresa terá melhorias implementadas nos
códigos que tornar disponíveis apenas também
contribuir na melhoria do código que os demais
membros desenvolvem.
Assim estabelece-se uma relação de auxílio
mútuo, baseada em troca de trabalho de
desenvolvimento.
Vantagens específicas para
governo
O que o distingue de outros frameworks Java
Demoiselle é um framework criado por uma
empresa de governo e tem preocupações sobre
sua arquitetura e componentes que as empresas
privadas não possuem.
Frameworks “comerciais” tendem a considerar o
público geral, cujas necessidades não são
específicas para o setor público.
Como tornar-se patrocinador?
Disponibilizando desenvolvedores.
O que o desenvolvedor
precisa fazer?
Uma destas coisas:
►Corrigir bugs
►Implementar feature requests
►Implementar improvements
►Manter um componente específico
►Criar um componente específico
►Criar uma camada de integração entre o
►Demoiselle Framework e uma IDE específica
►Criar um instalador
►Criar e manter um subprojeto
O que o desenvolvedor
precisa fazer?
Uma destas coisas:
►Redigir e editar em formato digital um livro
sobre um subprojeto ou componente
►Realizar testes de performance e entregar o
relatórios com os resultados
►Redigir artigo técnico
►Traduzir documentação para outros idiomas
►Organizar e oferecer treinamentos
►Redigir tutoriais
►Redigir manuais
Mais informações
www.frameworkdemoiselle.gov.br
Responsável pelo relacionamento com a
comunidade no Serpro:
Antonio Carlos Tiboni
[email protected]

Documentos relacionados

Guia do Usuário

Guia do Usuário Para maiores informações sobre a configuração e o modo de utilização dos pacotes de software do projeto Demoiselle Infra para Linux, acesse o site http://demoiselle.sourceforge.net/infra/

Leia mais