Introdução
Este documento contém o plano de trabalho para desenvolvimento do projeto
Sistema FBES, que tem como produto o Sistema Nacional de Informações em Economia
Solidária. Esse texto apresenta:
- Metologia de Trabalho proposta pela Colivre;
- Requisitos funcionais levantados junto ao Fórum Brasileiro de Economia Solidária (FBES), que identificam as funcionalidades que devem estar presentes no produto desenvolvido (link);
- Demais informações técnicas relevantes para o projeto
Metodologia de trabalho
Como metodologia de desenvolvimento, a Colivre propõe um modelo ágil. O
restante desta sessão fornece definições sobre o tema e propõe uma metodologia
de trabalho para a execução do projeto.
Referências sobre desenvolvimento ágil:
Para a descrição da metodologia, usaremos os seguintes conceitos:
- Estória de Usuário: unidade básica de requisitos da aplicação. Uma estória de usuário descreve, do ponto de vista do usuário, uma interação dele com a aplicação.
- Iteração: processo que implementa uma ou mais estórias de usuário na aplicação, resultando numa versão funcional da aplicação.
- Versão: uma versão funcional da aplicação, produto de uma iteração.
Dessa forma, a metodologia proposta para desenvolvimento do projeto é a seguinte:
- será desenvolvido um levantamento inicial de necessidades (este documento), descrevendo em termos gerais a arquitetura da aplicação e o modelo de dados de alto nível. Com base nos requisitos apresentados, é indicada uma listagem de estórias de usuário a serem implementadas na aplicação.
- com base nesse documento, o FBES e a Colivre acordarão um planejamento de (versões) a serem preparadas.
- cada iteração terá como produto final uma versão do sistema com novas funcionalidades implementadas, e se dará com realização sequencial das seguintes atividades:
| Atividade | Atores envolvidos | Produto final |
| Reunião de planejamento | Colivre e FBES | lista de estórias de usuários a serem implementadas para a próxima versão + detalhamento das estórias de usuário selecionadas |
| implementação e testes das funcionalidades selecionadas para a versão seguinte. | Colivre | aplicação disponível para testes das estórias de usuários selecionadas. |
| testes de aceitação | FBES | Parecer favorável (i.e. "estou satisfeito com a implementação") ou listagem de correções a serem feitas |
A utilização desta metodologia traz as seguintes vantagens:
- feedback rápido sobre as funcionalidades desenvolvidas a cada iteração
- possibilidade de replanejamento no decorrer do projeto, já que a cada iteração é feito uma reunião de planejamento.
Requisitos Funcionais: Estórias de Usuário (Informações iniciais)
Esta parte toda foi transferida para outra página, que serve para usuários/as não técnicas, ou seja, que não estarão interessadas em aspectos mais técnicos do sistema:
SistemaFBES
Modelagem inicial
A Colivre está fechando um contrato com a Fundação
Ynternet.Org para o desenvolvimento de uma plataforma web, de
caráter global, denominada Multypass. O Multypass é voltado para articulação
social de comunidades de várias partes do mundo, e se estruturará ao redor de
dois conceitos fundamentais:
- perfil: a presença on-line de um indivíduo ou organização, ao qual podem ser associados conteúdos diversos.
- comunidade virtual: um conjunto de perfis relacionados, com uma política definida para criação de novos perfis. Pode ser visto também como um site hospedado na plataforma.
Durante a negociação com a Fundação Ynternet.Org, a Colivre identificou que
vários dos requisitos para a plataforma Multypass eram muito parecidos com
requisitos para o Projeto Anhenteguá. Tecnicamente, a Colivre avalia que será
benéfico para ambos os projetos ter uma infra-estrutura comum, pois os diversos
requisitos funcionais são comuns entre os projetos. Filosoficamente, a
cooperação no desenvolvimento de uma plataforma livre se encaixa perfeitamente
no perfil da Fundação Ynternet.Org e do Fórum Brasileiro de Economia Solidária.
A Colivre tem plena consciência de que, apesar de terem diversos requisitos em
comum, os projetos têm peculiaridades que os fazem únicos. Desta forma,
gostaríamos de salientar que:
- apesar de usar em grande parte código comum, os ambientes de produção de ambos os projetos serão completamente independentes;
- os requisitos não comuns serão implementados prevendo a manutenção da interoperabilidade e a consistência da base de código.
Para o projeto Anhenteguá, sugerimos -- baseado na concepção de comunidades
virtuais e perfis -- considerar o sistema de articulação on-line dos
empreendimentos da Economia Solidária como uma
comunidade virtual, e cada
indivíduo ou organização como um
perfil. Essa decisão deixa aberta a
possibilidade, por exemplo, de agregar a eventual integração com outros
movimentos sociais (Conversê, por exemplo), fazendo delas outras comunidades
virtuais que podem ou não estar hospedadas no mesmo servidor.
O diagrama de classes a seguir ilustra como pretendemos estruturar esses dados
mais centrais:
A tabela a seguir fornece detalhes sobre as classes representadas na figura.
Gestão de conteúdo
Especificamente, as seguintes características de sistema de gestão de conteúdo
estão previstas para o Anhenteguá:
- Blog
- Notícias
- Fórum
- Agenda
Analisando mais proximamente, blog, notícias ou fórum representam simplesmente
artigos que podem ter comentários ou não. A caracterização de Blog, Notícias ou
fórum dependerá apenas de como os usuários escolherem usar os artigos e como os
usuários resolverem exibí-los.
A funcionalidade de agenda compartilhada será desenvolvida usando componentes
livres disponíveis. Para os artigos escritos, serão disponibilizados
feeds RSS.
A tabela a seguir apresenta detalhes sobre as classes apresentadas.
Catálogo de Produtos e Serviços
O sistema fornecerá aos usuários a possibilidade deles indicarem a produção e o consumo de produtos e serviços. O diagrama de classes a seguir indica a modelagem desta informação no projeto.
A tabela a seguir descreve as classes apresentadas no diagrama.
Relacionamentos
O diagrama de classes a seguir modela os relacionamentos explícitos presentes no sistema.
Uma breve descrição das novas classes presentes aqui:
Requisitos Não-Funcionais
Para referência, reproduzimos a seguir os requisitos não-funcionais elencados
no Termo de Referência, anexo II da Carta-Convite:
Serão seguidos os padrões da
W3C? (XHTML, CSS, etc).
Segurança
A plataforma Ruby on Rails fornece uma abstração de Banco de dados
chamada ActiveRecord, que retira a necessidade de criação manual de
consultas SQL, evitando erros no programa que possibilitem ataques
conhecidos como
SQL injection, onde um usuário mal-intencionado
utiliza sequências especiais nos campos de entrada para realizar
operações não permitidas na base de dados. Mesmo nos casos em que se faz
necessária a criação explícita de consultas SQL, o ActiveRecord fornece
uma interface padrão para inclusão de parâmetros devidamente codificados
para evitar
SQL injection.
GNU/GPL
A Colivre sempre licencia produtos de seus contratos sob a GPL,
colocando essa condição explicitamente em seus contratos (inclusive com
instituições particulares). Essa é uma condição para que nós prestemos
serviços de desenvolvimento.
Linguagem e modelo estruturados e comentados
A Colivre fará o desenvolimento utilizando Ruby on Rails, conforme
especificado no item correspondente do Termo de Referência.
Flexibilidade e maleabilidade
O sistema será desenvolvido com o máximo possível de modularização, permitido
a inclusão ou remoção de funcionalidades, assim como a personalização de
determinadas partes do sistema.
Geo-referenciamento
Para esse requisito, pretendemos utilizar um dos seguinte plugins da
plataforma Ruby on Rails, ou, a depender das condições de fornecimento
dos dados pelos Correios, uma combinação deles:
Interfaces administrativas back-end e front-end
Tais interfaces serão desenvolvidas utilizando-se da estrutrura MVC
fornecida pelo Rails, contemplando
modelos das informações necessárias
que conterão todas as regras de validação e garantia de consistência, e
a interface de acesso a eles será fornecida através de
controladores e
visões. Cada interface de admistração possuirá as funconalidades
especificadas no Termo de Referência.
Solução enquanto plataforma para ficar aberto a outros fins
Tudo que for específico do Sistema Virtual de Integração Nacional dos
Atores da Economia Solidária no sistema será parametrizável, de forma
que o sistema poderá tanto ser usado por outras redes através de uma
outra instalação do mesmo, ou mesmo utilizando-se da mesma instalação a
ser mantida pelo FBES.
Traduzível (i18n)
Todas as aplicações web desenvolvidas pela Colivre com Ruby on Rails têm
total suporte a internacionalização. Para isso, é utilizada a biblioteca
Ruby-GetText (
http://rubyforge.org/projects/gettext/), que inclui uma
extensão que fornece suporte completo à plataforma Ruby on Rails.
Elaborar e Aprovar o termo de uso e conduta do sistema.
O FBES deverá elaborar a aprovar o termo de uso e conduta do sistema, que cada
usuário deverá aceitar para uso do sistema, e por consequência todos os
empreendimentos deverão seguir. Esse termo balisará o trabalho da Colivre nesse
projeto, e é um elemento fundamental para garantir que os objetivos do projeto
sejam alcançados.
Cronograma
De acordo com a metodologia proposta para o desenvolvimento, o cronograma
de atividades acompanhará a preparação de versões da aplicação.
| |
2007 |
2008 |
| Versão |
Jun |
Jul |
Ago |
Set |
Out |
Nov |
Dez |
Jan |
Fev |
Mar |
| 0.1.0 |
|
X |
X |
X |
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0.2.0 |
|
|
|
|
|
X |
X |
X |
X |
X |
X |
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0.3.0 |
|
|
|
|
|
|
|
|
|
|
|
|
X |
X |
X |
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0.4.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
X |
X |
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0.5.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
X |
X |
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0.6.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
X |
X |
X |
|
|
|
|
|
|
|
|
|
|
|
|
| 1.0.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
X |
X |
X |
X |
X |
X |
X |
|
|
|
|
| implantação |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
X |
X |
X |
O planejamento preliminar de estórias de usuário e versões é o seguinte:
- Versão 0.1.0: usuários e infra-estrutura inicial
- proposta inicial de identidade visual (veja descrição abaixo)
- [admin] ativar/desativar funcionalidades (módulos)
- [admin] gerenciar tags
- [admin] gerenciar usuários
- [navegação] visualizar página de usuária individual
- [usuarios] cadastramento de um usuário
- [usuarios] conectar no sistema
- Versão 0.2.0: empreendimentos
- [buscas] buscar empreendimentos por nome ou tags
- [empreendimento] ativar conta do empreendimento
- [empreendimento] cadastrar empreendimento no sistema
- [empreendimento] configurar/gerenciar a conta do empreendimento
- [empreendimento] informações iniciais sobre empreendimentos
- [navegação] visualizar página com informações sobre as entidades/redes de garantia/validação de EESs
- [navegação] visualizar página de empreendimento solidário
- [validação] aprovar/rejeitar empreendimento que manifestou interesse em entrar no sistema
- [validação] gerenciar informações sobre a entidade/rede
- Versão 0.3.0: produtos/serviços (versão alfa)
- [buscas] buscar produtos/serviços, EESs que oferecem, ou EESs e usuários que consomem determinado produto/serviço
- [empreendimento] gerenciar produtos/serviços (oferta e consumo)
- [navegação] visualizar um artigo/notícia
- [usuarios] adicionar "empreendimentos favoritos" (ou "empreendimentos dos quais costumo comprar produtos ou contratar serviços")
- [usuarios] gerenciar produtos ou serviços que consome
- Versão 0.4.0: CMS
- [cms] escrever uma notícia, tópico de debate ou artigo
- [cms] escrever um comentário
- [cms] fornecer feed RSS de um determinado perfil
- [cms] gerenciar documentos (inserir, modificar, removar)
- [cms] gerenciar eventos (inserir, modificar, remover)
- [cms] gerenciar imagens - galeria (inserir, modificar, remover)
- [buscas] visualizar e consultar a seção de classificados pessoais
- [usuarios] gerenciar ofertas nos classificados pessoais
- Versão 0.5.0: amigos e personalização de perfis
- [empreendimento] configurar/gerenciar a página inicial do empreendimento (interface)
- [empreendimento] gerenciar integrantes
- [usuarios] adicionar amigos
- [usuarios] configurar/gerenciar a sua página inicial (interface)
- [usuarios] gerenciar lista de amigos e de empreendimentos favoritos
- Versão 0.6.0: comunidades
- [buscas] buscar usuários ou comunidades por nome ou tags
- [comunidades] configurar/gerenciar/sair de comunidade
- [comunidades] criar nova comunidade
- [comunidades] entrar numa comunidade
- [navegação] visualizar página inicial de comunidade
- Versão 1.0.0: recortes (versão final)
- [admin] gerenciar quais recortes existem
- [buscas] fazer busca geral (varrer o site: o termo "conteúdo" é vasto, e envolve também a busca de comunidades)
- [buscas] visualizar a central de buscas Sistema FBES
- [buscas] visualizar caixinha rápida de buscas
- [compras] efetuar compra ou fazer pedido
- [controle social] fazer denúncia
- [navegação] visualizar mapa de tags
- [navegação] visualizar, navegar e fazer buscas em um recorte específico
- [recorte] configurar recorte
- [recorte] gerenciar conteúdos "institucionais" do recorte
- [recorte] gerenciar usuários integrantes do recorte
- [recorte] informações iniciais sobre recortes
Algumas notas:
- Ao lançamento de cada versão, a mesma será disponibilizada para testes por potenciais usuários (atores da economia solidária em geral), de forma que teremos feedback continuamente durante o processo de desenvolvimento. Desta forma, estamos assumindo que o processo de testes é contínio.
- A documentação, tanto manuais quanto ajuda de contexto, serão desenvolvidas durante as estórias correspondentes. Desta forma, a documentação é desenvolvida ao mesmo tempo que a funcionalidade correspondente: a documentação faz parte da implementação de uma estória de usuário.
- A fase de implantação corresponde à implantação final no servidor onde a aplicação será disponibilizada, seguida de monitoramento inicial do uso, correção de eventuais erros detectados e adaptações que se façam necessárias.
Recomendação de plataforma de hardware para hospedagem do sistema
Para obtençao de melhores resultados, sugerimos a seguinte configuração
de hardware para o servidor onde
- hardware
- arquitetura i386, amd64, ia64, com clock de pelo menos 3GHz
- 1GB de memória RAM, ou mais.
- 320GB de espaço de armazenamento, ou mais.
- software
- sistema operacional Debian GNU/Linux em sua versão estável.
- uso exclusivo para hospedagem do sistema.
- acesso total de administração para os técnicos responsáveis.
- instalações de rede
- link internet de alta velocidade, e.g. 100mbps (cem mega-bits por segundo)
- possibilidade de expansão para um cluster com outros servidores na mesma localidade com uma rede local entre eles, caso no futuro tenhamos um aumento de escala que justifique essa escolha.
Salvador/BA, ____ de ________________ de _______.
Antonio Terceiro — líder da equipe de desenvolvimento
APROVADO POR:
Daniel Tygel — Secretário Executivo do FBES