You are here: Noosfero>Dev>DocumentItem?>LevantamentoDeRequisitosDoAnhetegua (22 Oct 2007, DanielTygel) EditAttach

LevantamentoDeRequisitosDoAnhetegua: Sistema FBES: Estórias de usuário e cronograma de versões

Type: DocumentItem? Feature:   Tags:  
ScheduledFor: N/A Assigned to:   Sites:  
Priority:   Status: % finished: 100%  

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:

Sistema FBES

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:

vico-users.png

A tabela a seguir fornece detalhes sobre as classes representadas na figura.

Classe Descrição relacionamentos
User usuários da aplicação um usuário possui um perfil, que é o seu perfil pessoal. Ele tem acesso total a ao seu perfil.
Além disso, ele pode ter permissões relacionadas a outros perfis, que podem ser perfis de empreendimentos de que o usuário faz parte, ou mesmo de outros usuários.
Profile Um perfil é algo como a "Home page" de um usuário ou de um empreendimento, que irá conter todas as informações relativas ao usuário/empreendimento. Um perfil está dentro de uma comunidade virtual.
Um perfil pode opcionalmente ser acessível através de um ou vários domínios.
VirtualCommunity representa um conjunto de perfis relacionados. No caso do projeto Sistema FBES, haverá apenas uma comunidade que é o sistema on-line de integração nacional dos empreendimentos da Economia Solidária. uma comunidade virtual deve ser acessível por pelo menos um domínio.
Domain um nome de domínio, como colivre.coop.br, ou fbes.org.br. N/A
Permission representa o tipo de permissão de acesso um usuário pode ter com relação a um determinado perfil.  

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.

cms.png

A tabela a seguir apresenta detalhes sobre as classes apresentadas.

Classe Descrição relacionamentos
Article representa um texto escrito por 1 ou mais usuários, e publicado em uma ou mais perfis aos quais o autor inicial tenha permissão.  
Comment representa comentários relacionado a um artigo. um comentário, além de estar associado a um artigo, também pode ser uma reposta a um outro comentário.
Schedule um compromisso agendado  
ScheduleParticipation representa o fato da participação de uma pessoa num compromisso  

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.

production-consumption.png

A tabela a seguir descreve as classes apresentadas no diagrama.

Classe Descrição relacionamentos
Production uma representação genérica de "produto ou serviço" uma produção é consumida por vários perfis (pessoas ou empreendimentos), e produzida por empreendimentos
Enterprise um empreendimento de Economia Solidária; é um tipo especial de perfil. De acordo com a concepção do sistema, apenas empreendimentos podem oferecer produtos/serviços. um empreendimento pode fornecer 0 ou mais produtos/serviços
Product Produto  
Service Serviço  

Relacionamentos

O diagrama de classes a seguir modela os relacionamentos explícitos presentes no sistema.

relationships.png

Uma breve descrição das novas classes presentes aqui:

Classe Descrição relacionamentos
UserProfile Representa os perfis dos usuários "pessoas físicas" do sistema. possui 0 ou mais amigos; participa de 0 ou mais comunidades de interesse; consome de 0 ou mais empreendimentos; faz 0 ou mais ofertas pessoais;
PersonalOffer uma oferta pessoal: uma entrada nos classificados pessoais.  
InterestCommunity comunidades de interesse, similar ao conceito de comunidade do Orkut TM .  

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

Add comment
You need to login to be able to comment.
 

ActionItemForm edit

Title Sistema FBES: Estórias de usuário e cronograma de versões
ActionItemType? DocumentItem?
ScheduledFor? N/A
Topic attachments
I Attachment Action Size Date Who Comment
pdfpdf anhetegua-plano-de-trabalho.pdf manage 258.2 K 20 Jun 2007 - 17:12 AntonioTerceiro r23
txttxt anotacoes-anhetegua-fundir.txt manage 1.2 K 21 May 2007 - 21:19 AntonioTerceiro anotações - fundir com o tópico
elsedia cms.dia manage 2.1 K 16 May 2007 - 22:31 AntonioTerceiro class diagram: CMS (dia diagram)
pngpng cms.png manage 14.3 K 16 May 2007 - 22:33 AntonioTerceiro class diagram: CMS (PNG)
elsedia production-consumption.dia manage 1.8 K 21 May 2007 - 18:24 AntonioTerceiro class diagram: production-consumption (dia diagram)
pngpng production-consumption.png manage 8.5 K 21 May 2007 - 18:25 AntonioTerceiro class diagram: production-consumption (PNG image)
elsedia relationships.dia manage 1.7 K 28 May 2007 - 17:58 AntonioTerceiro arquivo do Dia
pngpng relationships.png manage 9.7 K 28 May 2007 - 18:13 AntonioTerceiro class diagram: relationships (PNG image)
elsedia vico-users.dia manage 1.9 K 16 May 2007 - 20:09 AntonioTerceiro class diagram: Virtual Communities, Users and Profiles (dia file)
pngpng vico-users.png manage 12.6 K 16 May 2007 - 20:10 AntonioTerceiro class diagram: Virtual Communities, Users and Profiles (PNG)
Topic revision: r34 - 22 Oct 2007 - 15:46:15 - DanielTygel
Anhetegua.LevantamentoDeRequisitosDoAnhetegua moved from AnheteguaMultypass.LevantamentoDeRequisitosDoAnhetegua on 11 Jul 2007 - 18:27 by AntonioTerceiro

irc Talk with Devs Now!

 
Translations: English
Search on Docs:
   
ActionItem Search:

Copyright © 2007-2014 by the Noosfero contributors
Colivre - Cooperativa de Tecnologias Livres