Universidade Federal do Espírito Santo Departamento de Informática Graduação em Ciência da Computação Cleverton Lopes Silva SIWEP - Sistema de Webjornalismo Participativo
Universidade Federal do Espírito SantoDepartamento de Informática
Graduação em Ciência da Computação
Cleverton Lopes Silva
SIWEP - Sistema de Webjornalismo Participativo
Vitória
2007
Cleverton Lopes Silva
SIWEP - Sistema de Webjornalismo Participativo
Monografia apresentada à Universidade Federal do Espírito Santo como requisito parcial para obtenção do título de Bacharel em Ciência da Computação, na área de concentração de Sistemas de Informação, sob orientação do professor Dr. Orivaldo de Lira Tavares.
Vitória
2007
Cleverton Lopes Silva
SIWEP - Sistema de Webjornalismo Participativo
COMISSÃO EXAMINADORA
___________________________________________________Prof. Dr. Orivaldo de Lira Tavares UFES — Universidade Federal do Estado do Espírito Santo — BRMembro Orientador
___________________________________________________Prof. Dr. xxxxxxxxxxxxxxxxxxxxxxxxxUFES — Universidade Federal do Estado do Espírito Santo — BRMembro Titular
___________________________________________________Prof. Dr. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxUFES — Universidade Federal do Estado do Espírito Santo — BRMembro Titular
Vitória - ES, ___ de _______________ de 2007
Agradeço primeiramente a Deus, por ter me iluminado e ter me concedido saúde e inteligência, possibilitando a conclusão deste importantíssimo trabalho para a minha vida pessoal e profissional.
Em seguida, aos meus pais Welington e Cléa, minhas irmãs Julia e Klenda e a minha noiva Deborah, que sempre me deram força e estímulo nos momentos mais difíceis. Por fim, agradeço ao professor Orivaldo, por ter me dado a oportunidade de realizar este trabalho, e ao mestrando Eduardo Monteiro, que foi um companheiro de verdade sempre à disposição para ajudar.
RESUMO
Com a evolução da Internet e de sua utilização, aumentou-se o número de usuários e paralelamente a quantidade de informação disponível. Com este crescimento apareceram alguns problemas, o mais grave deles sendo justamente a questão da desorganização e excesso de informação. Por exemplo, seria preciso um exército de pessoas para vasculhar entre os milhões de notícias disponíveis na Internet e organizá-las de modo que os “leitores virtuais” tenham sempre notícias atualizadas e que vão ao encontro de seus interesses. A idéia do Siwep é exatamente esta, ter um site de notícias alimentado por usuários, agrupando milhares de pessoas que busca, envia e escreve notícias sobre tudo que acontece na Internet e no mundo.
Essa é a idéia do chamado “jornalismo participativo”. Nele, um cidadão comum, mesmo sem conhecimento de técnicas jornalísticas, pode participar da produção de notícias, criando seus próprios textos e opiniões. Como qualquer pessoa pode contribuir com esta produção e divulgação de notícias, e em geral não se está preso a um poder centralizador e a interesses comerciais, cria-se, assim, um espaço aberto à pluralidade de opiniões sobre os mais diversos assuntos.
É muito fácil começar a usar o Siwep. Quando você visita a página inicial do site, lá estão as notícias mais populares do momento. Elas foram selecionadas por um número suficiente de usuários para aparecerem em posição de destaque no site. Esta seleção é feita através das manifestações de usuários cadastrados no sistema, que através de seus votos, demonstram que por algum motivo, gostaram destas notícias. Além disso, temos que ressaltar que, a fim de manter o site com notícias mais atualizadas possíveis, a data da postagem da notícia, além do voto é claro, é um fator que pesa na hora de selecionar as notícias que estarão na página principal do sistema.
ABSTRACT
SUMÁRIO
Lista de Figuras............................................................................................................8
Lista de Tabelas..........................................................................................................10
1 Introdução............................................................................................................11
1.1 Objetivo.........................................................................................................13
1.2 Motivação.....................................................................................................14
1.3 Metodologia.................................................................................................14
1.4 Estrutura da Monografia...........................................................................15
2 Tecnologia Aplicada e Trabalhos Correlatos.............................................17
2.1 Digg................................................................................................................17
2.2 Overmundo...................................................................................................19
2.3 DB4o...............................................................................................................20
2.4 .NET................................................................................................................21
2.5 Mono..............................................................................................................21
3 Especificação de Requisitos...........................................................................23
3.1 Descrição do Mini-Mundo........................................................................23
3.2 Requisitos Iniciais......................................................................................25
3.3 Modelos de Casos de Uso.......................................................................25
3.3.1 Controle de Usuários..................................................................................263.3.2 Controle de Notícias....................................................................................31
4 Análise do Sistema............................................................................................37
4.1 Modelo de Classes.....................................................................................37
4.1.1 Diagrama de Pacotes..................................................................................374.2 Diagrama de Classes.................................................................................38
4.2.1 Controle de Usuários..................................................................................384.2.2 Controle de Notícias....................................................................................39
4.3 Dicionário de Dados..................................................................................39
4.3.1 Pacote Controle de Usuários....................................................................404.3.2 Pacote Controle de Notícias.....................................................................40
5 Projeto do Sistema.............................................................................................43
5.1 Tecnologias Escolhidas e Arquitetura.................................................43
5.2 Camada de Domínio...................................................................................45
5.3 Camada de Persistência...........................................................................45
5.3.1 Componente Controle Usuários..............................................................475.3.2 Componente Controle Notícias................................................................47
5.4 Camada de Aplicação................................................................................48
5.4.1 Componente Controle Usuários..............................................................495.4.2 Componente Controle Notícias................................................................49
5.5 Camada de Controle..................................................................................51
5.5.1 Componente Controle Usuários..............................................................525.5.2 Componente Controle Notícias................................................................57
5.6 Camada de Visão........................................................................................64
5.6.1 Mapa de Navegação....................................................................................645.6.2 Principais Telas do Sistema......................................................................66
6 Implantação e Implementação........................................................................79
6.1 Implementação............................................................................................79
6.1.1 Monodevelop.................................................................................................796.1.2 Assemblies....................................................................................................806.1.3 Master Pages.................................................................................................816.1.4 Nomenclatura................................................................................................81
6.2 Implantação..................................................................................................82
7 Considerações Finais........................................................................................83
7.1 Conclusões..................................................................................................83
Referências Bibliográficas.......................................................................................85
Lista de Figuras
Ilustração 1: Página Inicial do Digg.....................................................................................18Ilustração 2: Página Inicial do Overmundo........................................................................20Ilustração 3: Componentes identificados e seus relacionamentos................................26Ilustração 4: Diagrama de Casos de Uso de Controle de Usuários..............................27Ilustração 5: Diagrama de Casos de Uso de Controle de Notícias...............................32Ilustração 6: Diagrama de Pacotes.....................................................................................37Ilustração 7: Diagrama de classes do pacote Controle de Usuários.............................38Ilustração 8: Diagrama de classes do pacote Controle de Notícias..............................39Ilustração 9: Módulos do Sistema.......................................................................................44Ilustração 10: Arquitetura de Camadas do Sistema.........................................................45Ilustração 11: Modelo de Persistência de Controle Usuários.........................................46Ilustração 12: Modelo de Persistência de Controle Notícias..........................................48Ilustração 13: Aplicação de Controle Usuários.................................................................49Ilustração 14: Aplicação de Controle Notícias...................................................................51Ilustração 15: Diagrama de Seqüência para o caso de uso Autenticar Usuário.........53Ilustração 16: Diagrama de Seqüência para o caso de uso Solicitar Senha...............54Ilustração 17: Diagrama de Seqüência para o caso de uso Cadastrar Usuário..........54Ilustração 18: Diagrama de Seqüência para o caso de Uso Editar Perfil.....................55Ilustração 19: Diagrama de Seqüência para o caso de uso Adicionar Amigo.............56Ilustração 20: Diagrama de Seqüência para o caso de uso Remover Usuário...........57Ilustração 21: Diagrama de Seqüência para o caso de uso Pesquisar Conteúdo por Autor.........................................................................................................................................58Ilustração 22: Diagrama de Seqüência para o caso de uso Pesquisar Conteúdo por Tema........................................................................................................................................59Ilustração 23: Diagrama de Seqüência para o caso de uso Votar em Notícia............60Ilustração 24: Diagrama de Seqüência para o caso de uso Publicar Notícia..............61Ilustração 25: Diagrama de Seqüência para o caso de uso Comentar Notícia...........62Ilustração 26: Diagrama de Seqüência para o caso de uso Denunciar Notícia..........63Ilustração 27: Diagrama de Seqüência para o caso de uso Visualizar Notícias de Amigos.....................................................................................................................................64Ilustração 28: Diagrama de estados para o mapa de navegação geral do Siwep para um Internauta..........................................................................................................................65Ilustração 29: Diagrama de estados para o mapa de navegação geral do Siwep para um Usuário..............................................................................................................................66Ilustração 30: Página Inicial do Siwep para um Internauta.............................................67Ilustração 31: Página de Login do Usuário no Siwep......................................................68Ilustração 32: Tela da página SobreNos.aspx..................................................................69Ilustração 33: Formulário de Registro de um novo Usuário............................................70Ilustração 34: Formulário de Recuperação de Senha.....................................................71Ilustração 35: Página Inicial do Siwep para um Usuário.................................................72Ilustração 36: Formulário de Alteração dos dados de um Usuário................................73Ilustração 37: Tela da página ExibirNoticia.aspx..............................................................74Ilustração 38: Formulário de Publicação de Notícia.........................................................75Ilustração 39: Tela da página ExibirColaboradores.aspx................................................76Ilustração 40: Tela da página ExibirAmigos.aspx.............................................................77
Ilustração 41: Tela da página ExibirNoticiasAmigo.aspx.................................................78Ilustração 42: Monodevelop.................................................................................................80Ilustração 43: Hierarquia de dependências dos assemblies utilizados no Siwep.......81
Lista de Tabelas
Tabela 1: Tecnologias utilizadas.........................................................................................43
1 Introdução
[...] A partir da idéia de cultura da liberdade, inaugurada nos anos 70 com o avanço das tecnologias de informação, a sociedade passou a experimentar a libertação de muitas práticas sociais. A heterogeneidade de visões e o aumento do nível de complexidade no processamento de informações levam-nos a entender o mundo como “multicultural e interdependente”, onde a liberdade de multiplicar e reproduzir conhecimentos são diretamente proporcionais à força agregativa dos povos (BRAMBILLA, 2006).
A nova estrutura de comunicação representada nos suportes digitais, como a
internet, representa alterações culturais cruciais, tendo como uma das mais
importantes características aquelas relacionadas à forma como se torna possível a
participação dos usuários - em decorrência da interatividade – na disseminação de
informações na rede.
Estamos falando do potencial de liberdade de imprensa que a Internet traz à
sociedade. Trata-se de uma profunda alteração em relação ao sistema dos meios de
comunicação de massa tradicionais. Pelas diferenças tecnológicas, as redes
cibernéticas podem enviar e receber textos, sons e imagens de qualquer lugar no
mundo que tenha conexão à Internet.
Com a difusão da rede mundial de computadores (Internet), a partir da
década de 90, tivemos o surgimento do chamado webjornalismo, que utiliza a Web
como suporte tecnológico. “Durante seus pouco mais de dez anos de existência, os
veículos noticiosos para a Web, ou webjornais, passaram por pelo menos três
gerações ou etapas de desenvolvimento” (SILVA JR., 2001; MIELNICZUK, 2003).
[...] A primeira geração é a da transposição do modelo impresso para as redes digitais. As notícias seguem o padrão de texto e diagramação do jornal tradicional, agregando poucos recursos para interação com o leitor, em geral apenas e-mail e um menu de navegação, mas também fóruns e enquetes. Na segunda geração, alguns elementos específicos da Web passam a ser agregados à notícia on-line, embora esta continue seguindo o padrão de texto da edição impressa. Porém, passa-se a oferecer recursos de hipermídia, listas de últimas notícias e matérias relacionadas, bem como material exclusivo para a versão on-line. Já na terceira geração as publicações on-line incorporaram a hipermídia à produção do texto, aprofundando a hipertextualidade e a multimodalidade permitidas pela convergência das mídias digitais. Passam a ser levada em conta a possibilidade de distribuição do conteúdo para outras plataformas, como telefones celulares e handhelds. Ao mesmo tempo, a notícia ganha
interconexão para além do material de apoio e menus de navegação (PRIMO e TRÄSEL, 2006).
A terceira geração, que é a que vivemos atualmente, traz a idéia do chamado
“jornalismo participativo”. Nele, um cidadão comum, sem conhecimento das técnicas
jornalísticas, pode participar da produção de notícias, criando seus próprios textos e
opiniões. Como qualquer pessoa pode contribuir com esta produção e divulgação de
notícias, e em geral não se está preso a um poder centralizador e a interesses
comerciais, cria-se, assim, um espaço aberto à pluralidade de opiniões sobre os
mais diversos assuntos.
Para que essa prática se concretize, é indispensável a contribuição das
ferramentas tecnológicas. Assim, o cidadão pode participar através de diversos
meios, como envio de e-mails, mensagens de celular, fotos, entre outros. Uma das
formas de participação possível é o webjornalismo participativo, no qual os sites da
web disponibilizam espaços para que os internautas interajam na produção de
notícias. Assim, atinge-se um nível bem maior de liberdade de expressão, com
relação à que se pode atingir na mídia tradicional.
O projeto SIWEP trabalha exatamente em cima disto, em construir um
ambiente, uma ferramenta para que “produtores” e “receptores” (a idéia é
exatamente fazer desaparecer essas duas figuras, pois todos podem exercer tanto a
atividade de produzir notícias como lê-las), interajam na divulgação e produção de
notícias.
1.1 Objetivo
O Objetivo principal do SIWEP é fornecer um ambiente colaborativo que
permita a qualquer usuário uma participação mais efetiva na construção e
disseminação de informações na Internet, fazendo com que este usuário expresse
suas opiniões e defenda seus pontos de vista sem se preocupar com qualquer tipo
de censura ou repressão.
Neste ambiente, o usuário poderá enviar notícias por meio de várias formas:
texto, links, vídeos, áudios ou até mesmo uma combinação destes. Depois de
enviada, a notícia ficará disponível por um determinado período de tempo para que
outros usuários possam votar e comentar a respeito. Caso consiga uma boa
quantidade de votos, essa notícia poderá ser promovida para a página principal do
site. Esse processo é dinamicamente e periodicamente executado, à medida que
novas notícias são enviadas ou votadas.
1.2 Motivação
No mundo atual não se justifica negar a importância da internet no processo
de universalização dos serviços de informação e comunicação. Inserido neste
contexto está o webjornalismo participativo, que tem recebido atenção positiva nos
meios acadêmicos e sobretudo no ciberespaço.
A idéia deste ambiente é que as intervenções do público são capazes de
adicionar diferentes perspectivas a determinado material jornalístico, tornando-o
mais plural – embora não necessariamente melhor sob critérios profissionais –, o
que pode contribuir para o debate de idéias em uma sociedade democrática. Isto
ocorre porque o cidadão, ao criar um texto particular, explicita no mesmo a sua
opinião em relação a determinado assunto, fazendo com que o debate de idéias seja
ricamente ampliado e diversificado, em sua grande maioria sem manobras
publicitárias ou políticas.
A motivação a este tipo de ferramenta não poderia ser outro: o de possibilitar
às pessoas tornarem-se usuários ativos, emissores de conteúdos, de maneira
ilimitada e sem controle, fazendo valer a tão falada “liberdade de expressão”.
1.3 Metodologia
O processo de desenvolvimento do software passou pelas atividades que,
segundo Pressman [PRESSMAN, 2006], compõem a base para a prática da
engenharia de software. São elas: comunicação, planejamento, modelagem,
construção e implantação.
Comunicação e planejamento foram as atividades que levantaram os
requisitos do sistema, cuja descrição foi feita na íntegra no capítulo 3.
Atividade de modelagem foi realizada com a análise de sistema orientado a
objetos, descrito no capítulo 4 e a engenharia de projeto descrita no capítulo 5.
Construção e implantação consistem respectivamente na geração do código e
na configuração de softwares auxiliares e de hardware para o funcionamento correto
do sistema. Ambos estão descritos no capítulo 6.
1.4 Estrutura da Monografia
Este trabalho está organizado em 7 capítulos. Alem deste capítulo, a
Introdução, existem ainda os capítulos descritos a seguir:
Capítulo 2 – Tecnologia Aplicada e Trabalhos Correlatos - dedicado à
apresentação de algumas ferramentas utilizadas no projeto e alguns trabalhos de
cunho semelhante.
Capítulo 3 – Especificação de Requisitos - apresenta a descrição e a
especificação dos requisitos do sistema, destacando suas principais funcionalidades
e restrições.
Capítulo 4 – Análise do Sistema – dedicado à apresentação de modelos que
descrevem a informação, função e comportamento do sistema, facilitando o
entendimento do projeto como um todo.
Capítulo 5 – Projeto do Sistema – dedicado à apresentação de detalhes sobre
as estruturas de dados, arquitetura, interfaces e componentes do software
necessários para implementar o sistema.
Capítulo 6 – Implantação e Implementação – apresenta os requerimentos
necessários para que o sistema funcione satisfatoriamente e o modo como foi
efetuada a implementação do SIWEP.
Capítulo 7 – Considerações Finais – apresenta as conclusões observadas
sobre o trabalho desenvolvido, discute perspectivas futuras de inserção de novas
funcionalidades ao SIWEP, além de efetuar uma avaliação do aprendizado
adquirido.
2 Tecnologia Aplicada e Trabalhos Correlatos
Este capítulo visa apresentar as tecnologias utilizadas neste trabalho e alguns
projetos semelhantes ao mesmo.
2.1 Digg
[...] Espécie de símbolo da chamada web participativa, o Digg, é um sistema de webjornalismo participativo que é inteiramente editado por sua comunidade de usuários registrados – no caso do Digg, essa comunidade é composta por nada menos que 1 milhão de pessoas (BRAMATTI, 2007).
O Digg surgiu dentro dos principais conceitos da Web 2.0 - a segunda
geração da web, cuja tendência reforça o conceito de troca de informações e
colaboração dos internautas na elaboração do conteúdo de sites e de serviços
virtuais. Vale ressaltar que tanto o Digg quanto o SIWEP se utilizam de softwares
Open Source.
A imensa comunidade Digg é formada por usuários que fazem múltiplas
tarefas. As pessoas enviam notícias coletadas em blogs, sites profissionais de
notícias e postagens na Internet. Essas notícias entram na fila do Digg. Os revisores
casuais buscam coisas interessantes na fila e fazem um "digg", o que significa que
clicam em um botão para avisar ao Digg.com que acham aquela notícia
interessante. Quando um artigo recebe Diggs suficientes (e atende a uma série de
requisitos), ele aparece na página principal. Existem revisores realmente dedicados
que passam horas vasculhando as filas para promover boas notícias e excluir as
ruins (que eventualmente serão removidas do site). Essas pessoas realmente
decidem o que aparece na página principal e fazem com que milhares de pessoas
clique na notícia.
O grande pilar para tanto sucesso do Digg são os seus leitores, que geram
uma boa renda de anúncios para o site e dão trabalho para as pessoas que enviam
e revisam notícias.
A ilustração 1 abaixo mostra um exemplo de página inicial do Digg.
Ilustração 1: Página Inicial do Digg.
As principais diferenças notadas entre o SIWEP e o Digg são:
No Digg, o único meio de postagem de notícias é através de links. Já
no SIWEP, além desta forma, o usuário também pode submeter uma
notícia em forma de texto;
No Digg, como já foi dito, os revisores tem o “poder” de promover
boas notícias e excluir as ruins que estiverem na fila. Enquanto que no
Siwep, a única forma de promoção das notícias é através do voto de
seus usuários;
O Digg só suporta postagem de notícias que tenham seus conteúdos
na língua inglesa. No SIWEP, como é um projeto brasileiro,
obviamente as notícias devem estar na língua portuguesa;
O Digg, por ser bem mais robusto, possui várias funcionalidades a
mais que o SIWEP. Uma destas funcionalidades é a de bloquear
usuário, onde se o usuário não gostar das publicações ou comentários
de um outro usuário, este pode ser bloqueado pelo primeiro. Se um
usuário for bloqueado por muitas pessoas, ele pode ser banido do
site.
2.2 Overmundo
O Overmundo, assim como o SIWEP, é um site colaborativo onde é possível
que qualquer um crie conteúdo para o mesmo, desde que seja referente a temas
relacionados à cultura brasileira. O projeto é o primeiro incentivador de peso da
cultura brasileira através do meio online. Além disso, o projeto foi viabilizado através
dos incentivos fiscais oferecidos pelo Programa Nacional de Apoio à Cultura / Lei
Federal de Incentivo à Cultura (Lei Rouanet), do Ministério da Cultura. O
patrocinador do projeto é a Petrobrás.
No Overmundo, toda colaboração postada fica 48 horas numa “fila de edição”,
onde estará sujeito à avaliação e receberá as sugestões dos outros usuários.
Passadas estas 48 horas, a contribuição vai para a “sala de votação”. Nesta sala,
os usuários vão poder votar dizendo que gostaram da contribuição. Cada voto
confere “Overpontos” para o seu conteúdo. Uma vez atingido número mínimo de
“Overpontos”, sua contribuição é publicada no Overmundo. Fazendo um paralelo
com o SIWEP, podemos notar que enquanto no Overmundo toda colaboração tem
que passar por toda essa “aprovação”, no SIWEP toda contribuição é publicada, e
que o resultado de sua avaliação é se ela receberá ou não uma boa quantidade de
votos que lhe garanta uma posição de destaque no sistema, atingindo a página
principal do mesmo.
A ilustração 2 abaixo mostra um exemplo de página inicial do Overmundo.
Ilustração 2: Página Inicial do Overmundo
2.3 DB4o
”Db4o é um banco de dados orientado a objetos open source que possibilita
aos desenvolvedores Java e .Net reduzir o tempo e o custo de desenvolvimento e
alcançar níveis de performance melhores do que dos bancos
relacionais”[PATERSON, 2006].
Segundo informações coletadas no site oficial, db4o já passou da marca de
250.000 downloads. Ele já foi instalado com sucesso em empresas do ramo de
transporte, rede, ciências naturais, industrial, consumo, aplicações corporativas e
muitos outros ramos. Usuários e consumidores do db4o estão em mais de 168
países, da Albânia ao Zimbábue, e uma variedade de líderes como Boeing, Bosch,
BMW e Hertz e uma variada faixa de empresas iniciantes altamente inovadoras.
A escolha de db4o para o desenvolvimento do SIWEP resultou numa grande
redução no tempo de desenvolvimento, e a performance obtida nos acessos aos
dados foi considerada bastante satisfatória. O único ponto negativo importante a ser
ressaltado são as limitações existentes na atual versão do banco de dados db4o
com relação ao mecanismo de paginação.
2.4 .NET
[...] Microsoft .NET é uma iniciativa da Microsoft em que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações. Todo e qualquer código gerado para .NET pode ser executado em qualquer dispositivo ou plataforma que possua um framework: a "Plataforma .NET" (.NET Framework). Com idéia semelhante à plataforma Java, o programador deixa de escrever código para um sistema ou dispositivo específico, e passa a escrever para a plataforma .NET (WIKIPEDIA, 2007).
Esta plataforma permite a execução, construção e desenvolvimento de Web
Services e Aplicações Web de forma integrada e unificada. Por estes motivos e com
o intuito de facilitar o desenvolvimento, a implementação do SIWEP foi efetuada com
o auxílio da tecnologia .NET.
2.5 Mono
”Mono é uma tecnologia Open Source patrocinada pela Novell que provê
suporte para se desenvolver e executar aplicações .NET, tanto em terminais como
em servidores nas plataformas Linux, Solaris, Mac OS X, Windows e Unix” [ICAZA,
2006].
O projeto, criado em 2001, tem o objetivo de permitir que os desenvolvedores
criem aplicações .NET que rodem sobre o Windows ou qualquer plataforma
suportada pelo Mono, incluindo GNU/Linux e Unix. Ele é liderado pela Ximian, a
empresa de Software Livre co-fundada por Miguel de Icaza, que levou o desktop
GNOME a um grande sucesso.
A implementação do SIWEP foi feita na linguagem C sharp 2.01, e compilada
por um compilador chamado gmcs.
1 C Sharp é uma linguagem de programação orientada a objetos criada pela Microsoft, faz parte da sua plataforma .Net. A companhia baseou C Sharp na linguagens C++ e Java.
3 Especificação de Requisitos
O objetivo da Especificação de Requisitos é transmitir uma idéia global e
genérica do projeto a ser desenvolvido segundo a visão dos usuários. Ela é
elaborada justamente para compreender a real necessidade dos usuários e suas
expectativas, fazendo com que estes desejos sejam atendidos da melhor
maneira possível.
Para o SIWEP, esta atividade foi desenvolvida usando a técnica de
modelagem de casos de uso e, portanto, este documento apresenta os diagramas
de caso de uso gerados, bem como as descrições dos atores e dos casos de usos
identificados nesses diagramas. Na seção 3.2, uma breve descrição do domínio do
problema é feita.
3.1 Descrição do Mini-Mundo
Deseja-se construir um sistema de webjornalismo participativo em que não
haja fronteira entre leitores e escritores, ou seja, o sujeito que lê pode ser o mesmo
que escreve. Deve haver um mecanismo que permita aos próprios usuários
avaliarem as notícias, classificando assim o nível de destaque de cada uma delas.
A partir do momento que se cadastra e se autentica no ambiente, o internauta
passa a ser um usuário do sistema. Este usuário pode, a partir de então, editar o seu
perfil, adicionar amigos, visualizar, publicar, votar, comentar e denunciar notícias.
Uma notícia deve estar associada a um autor, usuário do sistema, e também
a um tema. Além disso, ela deve conter um título e o próprio texto da notícia, que
pode ser postado através de links.
Cada notícia tem uma “classificação”, representada pelo número de pontos
que esta possui. Esses pontos são incrementados pelos próprios usuários, que ao
lerem a notícia, podem se interessar pelo assunto e aumentar a pontuação da
notícia. Além disso, aquelas que possuem mais pontos e são mais recentes (para
garantir um determinado rodízio e atualização das notícias) ganham destaque e são
promovidas para a página principal do sistema. Com isso, tem-se uma filtragem
social das notícias postadas no site. Vale lembrar que cada usuário só pode votar
apenas uma vez em cada notícia, mas pode votar em quantas notícias quiser.
Por outro lado, ao usuário é permitido efetuar denúncias sobre determinadas
notícias que julga serem inadequadas para o bom uso do ambiente.
As denúncias são classificadas ou agrupadas em vários tipos, como, por exemplo,
spam, inadequada, duplicada e viola direitos autorais. È importante ressaltar que ao
receber uma determinada quantidade de denúncias, a notícia pode ser excluída,
assim como o usuário que a postou.
O usuário, assim como a notícia, recebe uma “classificação” ordenada pelo
número total de votos recebidos por todas as suas colaborações. Com isso, ao
postar uma notícia, além de ter seu nome associado à mesma, ele também ganha
os votos inerentes a esta notícia. Esta classificação é interessante e estimulante,
pois uma boa colocação nela garante ao usuário além de reconhecimento e status,
uma valiosa publicidade.
Ao usuário também é permitido adicionar amigos. O interesse em querer fazer
novas amizades no ambiente vem do fato de que, com isso, o usuário cria uma
relação com as notícias postadas por este amigo, ou seja, a cada nova postagem
deste amigo, o usuário recebe uma mensagem informativa sobre a mesma,
mantendo o usuário a par de todas as colaborações provenientes de seus amigos.
Além disso, o usuário pode, a qualquer momento, visualizar quaisquer notícias
postadas por seus “amigos”. O principal motivo da inserção desta funcionalidade
vem do fato de que já foi provado que os usuários tendem a gostar de notícias
publicadas por seus amigos, e também das notícias que seus amigos lêem e
gostem.
O ambiente proposto apresenta também uma área administrativa responsável
pelo gerenciamento do sistema. Nela, o administrador possui recursos que o
permite:
Remover usuários;
Cadastrar ou inserir novos temas.
3.2 Requisitos Iniciais
Tomando por base o contexto do sistema, foram identificados os seguintes
requisitos funcionais para o SIWEP:
• O sistema deve controlar os usuários do sistema. Devem ser providas
funcionalidades de edição de perfil de usuário, cadastro e autenticação de usuário
no sistema, reenvio de senhas e exclusão de usuários pelo administrador;
• O sistema deve permitir ao usuário adicionar amigos. Devem ser fornecidas
funcionalidades de acompanhamento das notícias em que este amigo é o autor;
• O sistema deve controlar as notícias. Devem ser providas funcionalidades
de visualização, publicação, comentário, denúncia e votação de notícias;
• O sistema deve permitir ao usuário e ao internauta a ação de pesquisar
conteúdo. Devem ser fornecidas opções de pesquisa sobre determinado assunto.
• O sistema deve permitir ao administrador a ação de cadastrar novos temas.
3.3 Modelos de Casos de Uso
Modelos de casos de uso são diagramas da UML que indicam quais
funcionalidades cada ator do sistema tem acesso. A identificação dos casos de uso
do SIWEP foi feita através de observações do Overmundo, e de proveitosas
discussões realizadas com o mestrando Eduardo Monteiro.
Com o objetivo de deixar a especificação de requisitos e a análise do sistema
mais clara, ele foi dividido em dois componentes, como mostra a ilustração 3 abaixo:
Ilustração 3: Componentes identificados e seus relacionamentos.
Controle de Usuários: envolve toda funcionalidade relacionada com o
controle dos usuários, abrangendo desde autenticação, cadastro e
remoção de usuário até edição do perfil do mesmo.
Controle de Notícias: envolve toda funcionalidade relacionada com o
controle das notícias, abrangendo desde a publicação, votação,
denúncia e comentário de notícias até o cadastro de temas, função
esta que só pode ser executada pelo administrador.
3.3.1 Controle de Usuários
A ilustração 4 mostra o diagrama de casos de uso referente ao controle de
usuários, e uma descrição detalhada de cada caso de uso identificado é
apresentada a seguir.
Ilustração 4: Diagrama de Casos de Uso de Controle de Usuários.
Caso de Uso Autenticar Usuário
Descrição: Este caso de uso é responsável por autenticar os usuários
cadastrados no sistema.
Curso Normal: O internauta informa o login e a senha, e envia para o
sistema. O sistema checa as informações e redireciona o navegador para a página
principal.
Cursos Alternativos: O internauta informa login e a senha, o sistema checa
o banco de dados e conclui que não há um login com a senha informada. O sistema
então informa uma mensagem de erro ao internauta e pede que o mesmo forneça
um login e senha que sejam válidos.
Classes: Internauta, Usuário;
Restrições de Integridade: Nenhuma restrição de integridade.
Caso de Uso Cadastrar Usuário
Descrição: Este caso de uso é o responsável pela inclusão de um novo
usuário.
Curso Normal: O internauta informa seus dados, incluindo nome, e-mail e
uma senha, e submete ao sistema. O sistema valida os dados e exibe uma tela de
confirmação. Logo após, as informações são registradas.
Cursos alternativos:
Dados inválidos: o sistema informa o erro e pede que o
responsável pelo cadastramento do usuário informe dados que
sejam válidos.
Não preenchimento de algum dos dados obrigatórios: o
sistema informa o erro e pede que o responsável preencha todos
os dados obrigatórios.
E-mail e/ou login já cadastrados: o sistema informa o erro e
pede que o responsável pelo cadastramento informe um e-mail
e/ou login que não estejam cadastrados no sistema.
Classes: Internauta, Usuário;
Restrições de Integridade: Nenhuma restrição de integridade.
Caso de Uso Solicitar Senha
Descrição: Por meio deste caso de uso, um usuário que tenha esquecido sua
senha, pode solicitar o envio da mesma ao seu e-mail.
Curso Normal: O usuário solicita o envio de senha ao clicar em um link
rotulado de solicitar senha, informa o e-mail cadastrado no sistema, submete esta
informação ao servidor. O sistema envia a senha para o e-mail informado.
Cursos alternativos: O e-mail informado pelo usuário não existe no banco de
dados do sistema. O sistema então emite uma mensagem de erro e pede que o
usuário informe um e-mail cadastrado.
Classes: Usuário;
Restrições de Integridade: Nenhuma restrição de integridade.
Caso de Uso Editar Perfil
Descrição: Por meio deste caso de uso, o usuário pode editar/alterar seus
dados cadastrais.
Curso Normal: O sistema exibe os dados do usuário e o usuário pode então
alterá-los. Os novos dados são validados e é exibida uma tela de confirmação. Logo
após, as alterações são registradas.
Cursos alternativos:
Dados inválidos: o sistema informa o erro e pede que o usuário
informe dados válidos.
Classes: Usuário;
Restrições de Integridade: O usuário não pode alterar seu e-mail e/ou login.
Caso de Uso Efetuar Logout
Descrição: Este caso de uso é o responsável pela operação de logout do
sistema.
Curso Normal: O usuário solicita ao sistema o logout. Este valida a operação
e efetua o logout.
Cursos alternativos: Nenhum curso alternativo.
Classes: Usuário;
Restrições de Integridade: Nenhuma restrição de integridade.
Caso de Uso Adicionar Amigo
Descrição: Por meio deste caso de uso, o usuário pode adicionar um amigo,
também usuário do sistema. É importante ressaltar que este relacionamento de
amizade não é reflexivo.
Curso Normal: O sistema exibe todos os usuários do sistema. O usuário clica
no link rotulado do nome do futuro amigo, o sistema exibe os dados deste futuro
amigo e o usuário clica em um link rotulado de adicionar amigo. È exibida uma tela
de confirmação e é validada a operação.
Cursos Alternativos: Nenhum curso alternativo.
Classes: Usuário;
Restrições de Integridade: o sistema não permite adicionar um mesmo
amigo duas vezes a um mesmo usuário.
Caso de Uso Remover Usuário
Descrição: Por meio deste caso de uso, o administrador do sistema pode
remover algum usuário que não esteja com o comportamento adequado no
ambiente.
Curso Normal: O administrador seleciona o usuário que pretende excluir e
clica no link rotulado de remover usuário. O sistema valida a operação e exibe uma
tela de confirmação da exclusão.
Cursos alternativos: Nenhum curso alternativo.
Classes: Administrador, Usuário;
Restrições de Integridade: Não é permitida a remoção de um usuário que
também seja administrador.
3.3.2 Controle de Notícias
A ilustração 5 mostra o diagrama de casos de uso referente ao controle de
notícias, e uma descrição detalhada de cada caso de uso identificado é apresentada
a seguir.
Ilustração 5: Diagrama de Casos de Uso de Controle de Notícias.
Caso de Uso Pesquisar Conteúdo
Descrição: Este caso de uso permite aos usuários e internautas buscarem
notícias por autor ou tema.
Curso Normal: O usuário ou o internauta, a partir da página inicial do
sistema, seleciona um critério de pesquisa (autor ou tema), informa o que deseja
buscar e clica no link rotulado de pesquisar. O sistema retorna todas as notícias que
tenham alguma relação com o critério informado.
Cursos alternativos: Nenhum curso alternativo.
Classes: Internauta, Usuário, Notícia;
Restrições de Integridade: Nenhuma restrição de integridade.
Caso de Uso Votar em Notícia
Descrição: Por meio deste caso de uso, o usuário pode manifestar a sua
opinião votando nas notícias que mais lhe agradam. É uma forma de demonstrar
que gostou da notícia.
Curso Normal: O usuário, ao ler as notícias postadas, clica no link rotulado
de votar daquelas de que ele mais gostou. O sistema então, incrementa tanto a
pontuação destas notícias quanto a dos usuários que as postaram.
Cursos alternativos: Nenhum curso alternativo.
Classes: Usuário, Notícia;
Restrições de Integridade: Um usuário não pode votar duas vezes na
mesma notícia.
Caso de Uso Publicar Notícia
Descrição: Este caso de uso permite aos usuários publicarem novas notícias,
associando-as a um determinado tema. Esta publicação pode ser efetuada de duas
maneiras: em forma de texto ou links.
Curso Normal: O usuário, a partir da página inicial do sistema, clica no link
rotulado de publicar notícia. O sistema redireciona o navegador para uma página
apropriada para o envio de notícias. O usuário informa os dados da notícia, incluindo
título, descrição do texto e link, seleciona um tema relacionado com a notícia e
submete ao sistema. O sistema valida os dados e exibe uma tela de confirmação.
Logo após, as informações são registradas.
Cursos alternativos:
Dados inválidos: o sistema informa o erro e pede que o
responsável pela publicação da notícia informe dados válidos.
Não preenchimento de algum dos dados obrigatórios: o
sistema informa o erro e pede que o responsável preencha todos
os dados obrigatórios.
Classes: Usuário, Notícia, Tema;
Restrições de Integridade: Não pode ter duas notícias com o mesmo título.
Caso de Uso Comentar Notícia
Descrição: Este caso de uso permite aos usuários emitirem suas opiniões a
respeito de determinadas notícias postadas no site.
Curso Normal: O usuário, a partir da página inicial do sistema e na notícia
escolhida, clica no link rotulado de comentar notícia. O sistema redireciona o
navegador para uma página apropriada para o comentário de notícias. O usuário
emite sua opinião, através da descrição de um pequeno texto e submete ao sistema.
Logo após, as informações são registradas.
Cursos alternativos: Nenhum curso alternativo.
Classes: Usuário, Notícia, Comentário;
Restrições de Integridade: O comentário não pode possuir mais de 1.000
caracteres.
Caso de Uso Denunciar Notícia
Descrição: Este caso de uso permite aos usuários denunciarem notícias que
julgam serem inadequadas para o bom uso do ambiente.
Curso Normal: O usuário, a partir da página inicial do sistema e na notícia
escolhida, clica no link rotulado de denunciar notícia. O sistema redireciona o
navegador para uma página apropriada. O usuário escolhe o tipo de denúncia que
se enquadra a notícia e submete ao sistema. Logo após, as informações são
registradas.
Cursos alternativos: Nenhum curso alternativo.
Classes: Usuário, Notícia, TipoDenúncia;
Restrições de Integridade: Um usuário não pode denunciar duas vezes,
pelo mesmo motivo, a mesma notícia.
Caso de Uso Visualizar Notícias de Amigos
Descrição: Este caso de uso permite aos usuários visualizarem as
colaborações postadas por seus amigos no sistema.
Curso Normal: O usuário, a partir da página principal do sistema, clica no link
rotulado visualizar amigos. O sistema redireciona o navegador para uma página
onde são exibidos todos os amigos do usuário. O usuário seleciona o amigo
desejado e com isso, as notícias postadas deste amigo são exibidas. A partir deste
momento, o usuário pode visualizar qualquer notícia do seu amigo apenas clicando
no link da mesma.
Cursos alternativos: Nenhum curso alternativo.
Classes: Usuário, Notícia;
Restrições de Integridade: Nenhuma restrição de integridade.
Caso de Uso Cadastrar Tema
Descrição: Por meio deste caso de uso, o administrador do sistema pode
cadastrar novas categorias de temas.
Curso Normal: O administrador clica no link rotulado de cadastrar tema. O
sistema redireciona o navegador para a página de inclusão de novos temas ao
ambiente. O administrador informa os seguintes dados ao sistema: nome e
descrição. O sistema valida a operação e exibe uma tela de confirmação. Logo após,
as informações são registradas.
Cursos alternativos:
Tema já cadastrado: o sistema informa o erro e pede que o
administrador informe um tema que não esteja cadastrado no
sistema.
Não preenchimento de algum dos dados obrigatórios: o
sistema informa o erro e pede que o responsável preencha todos
os dados obrigatórios.
Classes: Administrador, Tema;
Restrições de Integridade: Nenhuma restrição de integridade.
4 Análise do Sistema
O Objetivo da modelagem de análise é desenvolver modelos que descrevam
a informação, função e comportamento do sistema, facilitando o entendimento do
projeto como um todo. Para isto usa-se uma combinação de formas textuais e
diagramas para descrever os requisitos do sistema. Este capítulo contém uma
modelagem de análise para o SIWEP.
4.1 Modelo de Classes
A modelagem de classes descreve o problema representado pelo sistema a
ser desenvolvido, sem considerar características da solução a ser utilizada. A
modelagem envolve a identificação de classes, atributos, associações e operações,
bem como o agrupamento de classes em subsistemas ou pacotes. A seguir, são
apresentados os resultados da análise, no que tange aos aspectos de informação
basicamente.
4.1.1 Diagrama de Pacotes
O propósito de um diagrama de pacotes é prover uma visão de nível mais alto
do sistema, mostrando sua decomposição em subsistemas. O ponto de partida para
essa decomposição é o domínio do problema e, portanto, a decomposição utilizada
no modelo de casos de uso foi transposta para o modelo de classes, como mostra a
ilustração 6.
Ilustração 6: Diagrama de Pacotes.
Este diagrama mostra a dependência principal entre os subsistemas,
indicando que o pacote Controle de Notícias solicita serviços do pacote Controle
de Usuários para poder cumprir suas responsabilidades.
A seguir, são apresentados os diagramas de classes para cada um desses
pacotes.
4.2 Diagrama de Classes
O diagrama de classes é o diagrama mais importante da documentação. Nele
podemos encontrar informações sobre métodos, atributos, nome das funções e
como serão integradas. Além disso, ele é considerado estático, já que a estrutura
descrita é sempre válida em qualquer ponto do ciclo de vida do sistema.
A seguir, serão apresentados os diagramas de classes para os pacotes
controle de usuários e controle de notícias.
4.2.1 Controle de Usuários
Este pacote contém as classes que efetuam o controle dos usuários, como
mostra a ilustração 7:
Ilustração 7: Diagrama de classes do pacote Controle de Usuários.
4.2.2 Controle de Notícias
Este pacote contém as classes responsáveis pelo controle das notícias, como
mostra a ilustração 8:
Ilustração 8: Diagrama de classes do pacote Controle de Notícias.
4.3 Dicionário de Dados
O Dicionário de dados descreve detalhadamente as classes identificadas no
sistema e os dados armazenados por elas.
4.3.1 Pacote Controle de Usuários
Internauta: representa todos os usuários da Internet que não são
cadastrados no sistema.
Usuário: representa todos os usuários cadastrados no sistema. As
informações armazenadas pelos objetos desta classe são:
- nome: nome completo do usuário.
- e-mail: e-mail do usuário. Funciona também como login para se
autenticar no sistema.
- senha: senha do usuário para se autenticar no sistema.
- dataCadastro: data do cadastro do cliente no sistema.
Administrador: representa os administradores do ambiente.
4.3.2 Pacote Controle de Notícias
Tema: representa as classes nas quais as notícias podem ser
agrupadas. As informações armazenadas pelos objetos desta classe
são:
- nome: nome do Tema (Ex.: Tecnologia, Política, Entretenimento,
Economia).
- descricao: breve descrição do tema representado.
Voto: representa os votos dos usuários em determinadas notícias. As
informações armazenadas pelos objetos desta classe são:
- data: data que foi efetuado o voto.
Notícia: representa todas as notícias postadas no sistema. As
informações armazenadas pelos objetos desta classe são:
- titulo: título da notícia. Representa uma “janela” para o assunto da
mesma.
- descricao: corpo da notícia.
- data: data em que a notícia foi postada.
- link: link que direciona para o endereço virtual da notícia. (Opcional)
Comentário: representa os comentários associados à determinada
notícia. As informações armazenadas pelos objetos desta classe são:
- descricao: descrição do comentário.
- data: data que foi efetuado o comentário.
Denúncia: representa as denúncias efetuadas por usuários sobre
determinadas notícias. As informações armazenadas pelos objetos
desta classe são:
- data: data que foi efetuado a denúncia.
TipoDenúncia: representa as categorias de denúncias suportadas pelo
ambiente. As informações armazenadas pelos objetos desta classe
são:
- nome: nome do tipo de denúncia. (Ex.: Spam, Inadequada, Viola
Direitos Autorais, Duplicada).
5 Projeto do Sistema
Segundo Pressman (2006), ”[...] O projeto deve criar uma representação ou
modelo do software, mas diferente do modelo de análise (que enfoca a descrição
dos dados, função e comportamento requeridos), o modelo de projeto deve fornecer
detalhe sobre as estruturas de dados, arquitetura, interfaces e componentes do
software necessários para implementar o sistema [...]”.
[...] O projeto se encarrega de transformar os resultados da Análise de Requisitos em um documento ou conjunto de documentos capazes de serem interpretados diretamente pelo programador. Para atingir este objetivo, o projetista deve mapear as estruturas e funcionalidades identificadas na análise de requisitos dentro do contexto e das restrições da arquitetura, de forma a tornar possível a construção do software (WIKIPEDIA, 2007).
Este capítulo contém a especificação de projeto para o SIWEP. O
desenvolvimento deste software segue o processo de software para sistemas
orientados a objeto para a Web.
5.1 Tecnologias Escolhidas e Arquitetura
Tecnologia Descrição PropósitoMono Tecnologia multiplataforma que
dá suporte ao desenvolvimento de aplicações .NET
Suporte a outras tecnologias usadas no SIWEP
C sharp 2.0 Linguagem de programação orientada a objetos
Implementação dos códigos
ASP .NET 2.0 Componente do .NET, também Implementado pelo mono
Implementação de páginasWeb
DB4O Banco de dados Orientado a Objetos
Armazenar dados de objetos persistentes
Tabela 1: Tecnologias utilizadas
A tabela 1 mostra as tecnologias selecionadas para implementar o sistema.
Os critérios utilizados na escolha de cada uma delas consideraram alguns bons
exemplos de utilização das mesmas, a facilidade de utilizá-las, a confiabilidade e
segurança destas tecnologias, além é claro o tempo disponível para o
desenvolvimento do software.
Ilustração 9: Módulos do Sistema.
A ilustração 9 mostra a divisão do sistema em módulos. A divisão foi feita,
primeiramente, com relação à divisão em subsistemas da Especificação de
Requisitos e à divisão em pacotes da Especificação de Análise. Em segundo lugar,
foi feita uma nova divisão referente à arquitetura de camadas definida pela
metodologia utilizada, sendo que a forma de relacionamento entre as camadas pode
ser observada na ilustração 10. As setas indicam uma relação de dependência da
camada de onde elas partem, para com as camadas de destino.
Uma discussão detalhada sobre as responsabilidades de cada camada e
como cada uma foi projetada é apresentada nas seções que se seguem. Todos os
diagramas seguem a linguagem de modelagem definida pela metodologia adotada e
são comentados apenas quando há algo realmente importante a ser destacado.
Ilustração 10: Arquitetura de Camadas do Sistema.
5.2 Camada de Domínio
A camada de domínio é aquela onde estão localizadas as classes que fazem
parte do domínio do problema, ou seja, classes correspondentes a objetos que
fazem parte da descrição do problema. Estas classes existem independentemente
da tecnologia que vai ser empregada para armazenar os dados ou para implementar
a interface com o usuário.
Não foi necessária a criação de um diagrama de classes para cada
componente, devido ao baixo número de classes de cada componente, e do sistema
como um todo. Limitamos-nos então a apresentar os componentes aos quais cada
classe pertence, sendo que o diagrama de classes do sistema como um todo é o
mesmo apresentado na análise do sistema.
• Controle Usuários: Usuário, Administrador, Internauta.
• Controle Notícias: Comentário, Denúncia, Notícia, Tema, TipoDenúncia,
Voto.
5.3 Camada de Persistência
Esta camada contém as classes dos objetos responsáveis pela persistência
dos dados em banco de dados db4o.
Uma observação importante é que foi necessário desenvolver um mecanismo
para garantir a integridade do banco de dados, já que o db4o não o faz
automaticamente, como fazem os tradicionais bancos relacionais. A medida adotada
foi desenvolver métodos que checam se cada operação de persistência viola a
integridade dos dados.
Todas as classes desta camada herdam de uma classe chamada DAO, que
implementa os métodos Salvar, Excluir e RecuperarTodos.
Uma operação bastante comum entre as classes de persistência é a de
recuperar um objeto baseado em sua chave primária, geralmente nomeado de
RecuperarPorID.
Ilustração 11: Modelo de Persistência de Controle Usuários.
5.3.1 Componente Controle Usuários
O modelo de persistência para o componente “Controle Usuários” é mostrado
na ilustração 11.
A classe UsuarioDAO é responsável por realizar todas as operações de
manipulação com banco de dados, que envolvam os objetos da classe Usuário.
Antes de salvar qualquer usuário, o método CanBeSaved checa se já existe algum
outro usuário com o mesmo valor no atributo e-mail. Caso não exista, o usuário
poderá ser salvo no sistema. Isso garante a inexistência de dois usuários com o
mesmo e-mail, e mais, que apenas o e-mail seja suficiente para identificar um
Usuário.
5.3.2 Componente Controle Notícias
O modelo de persistência para o componente ”Controle Notícias” é mostrado
na ilustração 12 a seguir.
As classes ComentarioDAO, DenunciaDAO, NoticiaDAO, TemaDAO e
VotoDAO são responsáveis por realizar todas as operações de manipulação com o
banco de dados, que envolvam os objetos das classes Comentário, Denúncia,
Notícia, Tema e Voto. O método CanBeSaved dessas classes procede de maneira
análoga ao método de mesmo nome da classe UsuarioDAO, diferenciando-se pelos
parâmetros.
Ilustração 12: Modelo de Persistência de Controle Notícias.
Na classe NoticiaDAO, o método RecuperarPorTema recupera todas as
Notícias referentes a um determinado Tema, assim como RecuperarPorAutor busca
as Notícias de um determinado Autor e RecuperarPorID recupera a Notícia que
possui um determinado Título. Já o método RecuperarMaisPontuadas recupera as
Notícias mais bem pontuadas naquele momento.
Na classe TemaDAO, o método RecuperarPorID recupera o Tema que possui
aquele nome dado como parâmetro.
5.4 Camada de Aplicação
A camada de aplicação reúne as classes que implementam a lógica de
negócio descrita nos casos de uso. Os diagramas desta seção apresentam as
classes desta camada e suas dependências em relação a classes da camada de
persistência.
5.4.1 Componente Controle Usuários
O modelo de aplicação para o componente ”Controle Usuários” é mostrado na
ilustração 13.
A classe AplControleUsuario implementa todos os métodos necessários para
os casos de uso que envolvem os objetos da classe Usuário. São eles: Autenticar
Usuário, Cadastrar Usuário, Editar Perfil, Recuperar Todos Usuários, Solicitar
Senha, Adicionar Amigo e Remover Usuário.
Ilustração 13: Aplicação de Controle Usuários.
5.4.2 Componente Controle Notícias
O modelo de aplicação para o componente “Controle Notícias” é mostrado
na ilustração 14.
A classe AplControleNotícias implementa todos os métodos necessários para
os casos de uso que envolvem os objetos das classes Comentário, Denúncia,
Noticia, Tema e Voto. São eles: Pesquisar Conteúdo, Votar em Notícia, Publicar
Notícia, Comentar Notícia, Denunciar Notícia, Visualizar Notícias de Amigos e
Cadastrar Tema.
Ilustração 14: Aplicação de Controle Notícias.
5.5 Camada de Controle
A principal função das classes desta camada é a de trocar mensagens com
as classes da camada de aplicação de acordo com os eventos disparados por ações
dos atores do sistema pela camada de Visão. Modelos de Controle apóiam no
entendimento de como essas classes se relacionam com outras da camada de
aplicação.
Antes de apresentar os modelos, é importante saber que em ASP.NET, cada
página pode ter uma classe, que herda de uma classe chamada System.Web.Page,
que fornece operações de servidor dinâmicas sobre elas. No SIWEP, estas serão as
classes de Controle.
Outro recurso utilizado cujo entendimento é importante para o leitor, são as
variáveis de Sessão. Elas são utilizadas simplesmente para guardar valores e
passá-los de uma página para outra.
5.5.1 Componente Controle Usuários
A seguir, são apresentados diagramas de seqüência mostrando o fluxo
normal de troca de mensagens entre as classes envolvidas para realizar cada caso
de uso deste componente.
Caso de Uso Autenticar Usuário
A ilustração 15 abaixo mostra o funcionamento normal de uma realização do
caso de uso Autenticar Usuário, que inicia na página Default.aspx, onde existe um
formulário de autenticação, contendo os campos de texto para que o usuário informe
o e-mail de login e a senha. Depois da execução deste caso de uso, uma variável de
Sessão rotulada emailUsr será salva com o valor do e-mail do usuário e outra
rotulada nomeUsr será salva com o valor do nome do usuário.
Ilustração 15: Diagrama de Seqüência para o caso de uso Autenticar Usuário.
Caso de Uso Solicitar Senha
A ilustração 16 abaixo mostra o funcionamento normal de uma realização do
caso de uso Solicitar Senha, que inicia na página RecuperarSenha.aspx, onde há
um formulário de cadastro, contendo o campo de texto para que o usuário informe o
e-mail de login.
Ilustração 16: Diagrama de Seqüência para o caso de uso Solicitar Senha.
Caso de Uso Cadastrar Usuário
A ilustração 17 abaixo mostra o funcionamento normal de uma realização do
caso de uso Cadastrar Usuário, que inicia na página Cadastro.aspx, onde existe um
formulário de cadastro, contendo os campos de texto para que o usuário informe o
e-mail de login, nome e a senha.
Ilustração 17: Diagrama de Seqüência para o caso de uso Cadastrar Usuário.
Caso de Uso Editar Perfil
A ilustração 18 abaixo mostra o funcionamento normal de uma realização do
caso de uso Editar Perfil, que inicia na página EditarPerfil.aspx, onde há um
formulário de edição de dados do usuário, contendo os campos de texto preenchidos
com os valores atuais para que o usuário altere o nome ou a senha, uma vez que o
e-mail de login não é possível alterar.
Ilustração 18: Diagrama de Seqüência para o caso de Uso Editar Perfil.
Caso de Uso Adicionar Amigo
A ilustração 19 abaixo mostra o funcionamento normal de uma realização do
caso de uso Adicionar Amigo, que inicia na página ExibirColaboradores.aspx, onde
há uma lista de todos os colaboradores do sistema. O usuário pode então adicionar
qualquer um desses colaboradores como “amigo”, selecionando o botão rotulado de
“adicionar amigo” logo abaixo dos mesmos.
Ilustração 19: Diagrama de Seqüência para o caso de uso Adicionar Amigo.
Caso de Uso Remover Usuário
A ilustração 20 mostra o funcionamento normal de uma realização do caso de
uso Remover Usuário, que se inicia na página ExibirColaboradores.aspx, onde há
uma lista de todos os colaboradores do sistema.
O administrador (único que possui a permissão para executar este caso de
uso) pode então remover qualquer um desses colaboradores (desde que também
não seja administrador), selecionando o botão rotulado de “remover usuario”.
Ilustração 20: Diagrama de Seqüência para o caso de uso Remover Usuário.
5.5.2 Componente Controle Notícias
A seguir, são apresentados diagramas de seqüência mostrando o fluxo
normal de troca de mensagens entre as classes envolvidas para realizar cada caso
de uso deste componente.
Caso de Uso Pesquisar Conteúdo
Este caso de uso, com o intuito de dar mais opção de pesquisa ao usuário, foi
dividido em dois: Pesquisar Conteúdo por Autor e Pesquisar Conteúdo por Tema.
Por Autor
A ilustração 21 abaixo mostra o funcionamento normal de uma realização do
caso de uso Pesquisar Conteúdo por Autor, que se inicia na página Home.aspx,
onde há uma lista de todos os autores do sistema.
O internauta pode então selecionar qualquer um desses autores, clicando no
nome do mesmo e as notícias postadas por ele serão exibidas.
Ilustração 21: Diagrama de Seqüência para o caso de uso Pesquisar Conteúdo por Autor.
Por Tema
A ilustração 22 abaixo mostra o funcionamento normal de uma realização do
caso de uso Pesquisar Conteúdo por Tema, que se inicia na página Home.aspx,
onde há uma lista de todos os temas cadastrados no sistema.
O internauta pode então selecionar qualquer um desses temas, clicando no
nome do mesmo e as notícias relacionadas a ele serão exibidas.
Ilustração 22: Diagrama de Seqüência para o caso de uso Pesquisar Conteúdo por Tema.
Caso de Uso Votar em Notícia
A ilustração 23 abaixo mostra o funcionamento normal de uma realização do
caso de uso Votar em Noticia, que inicia na página Home.aspx, onde há uma lista
das notícias postadas.
O usuário pode então votar (apenas um voto por notícia) em qualquer uma
dessas notícias, selecionando o botão rotulado de “votar”.
Ilustração 23: Diagrama de Seqüência para o caso de uso Votar em Notícia.
Caso de Uso Publicar Notícia
A ilustração 24 abaixo mostra o funcionamento normal de uma realização do
caso de uso Publicar Notícia, que inicia na página PublicarNoticia.aspx, onde existe
um formulário de publicação, contendo os campos de texto para que o usuário
informe o título da notícia(obrigatório), descrição, link(opcional) e a categoria da
mesma.
Depois disso, a fim de confirmar a publicação, o usuário seleciona o botão
rotulado de “enviar notícia”.
Ilustração 24: Diagrama de Seqüência para o caso de uso Publicar Notícia.
Caso de Uso Comentar Notícia
A ilustração 25 abaixo mostra o funcionamento normal de uma realização do
caso de uso Comentar Notícia, que inicia na página ExibirNoticia.aspx, onde é
exibida a notícia completa que o usuário selecionou.
Nesta página são exibidos também todos os comentários referentes àquela
notícia, bem como um formulário de comentário, contendo o campo de texto para
que o usuário esboce a sua opinião sobre a notícia. Depois disso, a fim de confirmar
o comentário, o usuário seleciona o botão rotulado de “comentar”.
Ilustração 25: Diagrama de Seqüência para o caso de uso Comentar Notícia.
Caso de Uso Denunciar Notícia
A ilustração 26 abaixo mostra o funcionamento normal de uma realização do
caso de uso Denunciar Notícia, que inicia na página Home.aspx, onde há uma lista
das notícias postadas.
O usuário pode então denunciar as notícias que julgue serem inadequadas ao
ambiente, selecionando uma ou mais causas motivadoras da denúncia. Os tipos de
denúncias que o usuário pode selecionar são: Duplicada, Spam e Inadequada.
Ilustração 26: Diagrama de Seqüência para o caso de uso Denunciar Notícia.
Caso de Uso Visualizar Notícias de Amigos
A ilustração 27 abaixo mostra o funcionamento normal de uma realização do
caso de uso Visualizar Notícias de Amigos, que inicia na página Home.aspx, onde
há um botão rotulado de “visualizar amigos”.
Ao clicar neste botão, o sistema redireciona o navegador para uma página
onde são exibidos todos os amigos do usuário. O usuário seleciona o amigo
desejado e com isso, as notícias postadas deste amigo são exibidas. A partir deste
momento, o usuário pode visualizar qualquer notícia do seu amigo apenas clicando
no link da mesma.
Ilustração 27: Diagrama de Seqüência para o caso de uso Visualizar Notícias de Amigos.
5.6 Camada de Visão
Esta camada contém as páginas usadas pelos requisitos funcionais e não
funcionais identificados.
5.6.1 Mapa de Navegação
O mapa de navegação fornece uma visualização do caminho - composto por
páginas – que se segue para cada funcionalidade do sistema. A transição de uma
página para outra pode ocorrer devido ao curso de algum caso de uso, ou
simplesmente através de uma hiperligação2.
A ilustração 28 abaixo mostra um diagrama de estados representando o mapa
de navegação geral do Siwep para um internauta, ou seja, um autor que não esteja
autenticado no sistema.
2É uma referência num documento em hipertexto a outro documento ou a outro recurso.
Ilustração 28: Diagrama de estados para o mapa de navegação geral do Siwep para um Internauta.
A ilustração 29 abaixo mostra um diagrama de estados representando o mapa
de navegação geral do Siwep para um usuário do sistema, ou seja, um autor que já
esteja autenticado no sistema.
Ilustração 29: Diagrama de estados para o mapa de navegação geral do Siwep para um Usuário.
5.6.2 Principais Telas do Sistema
A maior preocupação durante a atividade do desenvolvimento das páginas foi
a usabilidade do sistema, sendo que os aspectos estéticos não tiveram muita
atenção.
Default.aspx
A página inicial do sistema. Através dela, um internauta pode visualizar parte
das notícias, filtrá-las por autor ou tema e prosseguir para as páginas de login,
sobreNos, cadastro de novo usuário ou de exibição da notícia completa.
O internauta, além de visualizar parte das notícias então, tem as opções de se
autenticar, de se registrar, visualizar a notícia completa ou ir à página sobreNos
(onde que se tem um breve resumo do que seria o Siwep). Essas quatro opções são
através de hiperlinks, ou seja, ao clicar em qualquer uma destas opções,
automaticamente o navegador é redirecionado para uma página apropriada para a
execução da tarefa selecionada.
Ilustração 30: Página Inicial do Siwep para um Internauta.
Login.aspx
Através desta página, um internauta pode se autenticar no sistema, voltar à
página inicial e prosseguir para as páginas de recuperar senha ou de cadastro de
novo usuário.
Quando o internauta preenche o formulário de autenticação, e clica no botão
entrar, antes de processar os dados, o sistema checa se todos os campos foram
preenchidos, e se o e-mail digitado realmente está no formato padrão de um e-mail.
O internauta, além de se autenticar, tem as opções de se registrar, recuperar
senha ou voltar à página inicial do sistema. Essas três opções são através de
hiperlinks, ou seja, ao clicar em qualquer uma destas opções, automaticamente o
navegador é redirecionado para uma página apropriada para a execução da tarefa
selecionada.
Ilustração 31: Página de Login do Usuário no Siwep.
SobreNos.aspx
Através desta página, um internauta ou usuário podem ler um breve resumo
do que seria o Siwep, voltar à página inicial e prosseguir para as páginas de login ou
cadastro de novo usuário.
Ilustração 32: Tela da página SobreNos.aspx.
Cadastro.aspx
Através desta página, um internauta pode se cadastrar no sistema, voltar à
página inicial do mesmo ou prosseguir para a página de login.
Quando o internauta preenche o formulário de cadastramento, e clica no
botão cadastrar, antes de processar os dados, o sistema checa se todos os campos
foram preenchidos, e se o e-mail digitado realmente está no formato padrão de um
e-mail.
O internauta, além de se cadastrar, tem a opção de voltar à página inicial do
sistema ou prosseguir para a página de login. Essas duas opções são através de
hiperlink, ou seja, o usuário ao clicá-lo, faz com que o navegador seja
automaticamente redirecionado para a página inicial do sistema.
Ilustração 33: Formulário de Registro de um novo Usuário.
RecuperarSenha.aspx
Através desta página, um internauta pode recuperar a senha esquecida, voltar
à página inicial ou prosseguir para as páginas de login e de cadastro de novo
usuário.
Quando o internauta preenche o formulário com o seu e-mail, e clica no botão
enviar, antes de processar os dados, o sistema checa se o e-mail fornecido
realmente está no formato padrão de um e-mail.
O internauta, além de relembrar a senha, tem as opções de se autenticar, de
se registrar ou voltar à página inicial do sistema. Essas três opções são através de
hiperlinks, ou seja, ao clicar em qualquer uma destas opções, automaticamente o
navegador é redirecionado para uma página apropriada para a execução da tarefa
selecionada.
Ilustração 34: Formulário de Recuperação de Senha.
Home.aspx
Através desta página, um usuário do sistema pode visualizar parte das
notícias postadas, filtrá-las por determinado autor ou tema, votar nas notícias ou
prosseguir para as páginas de edição de perfil, publicação de notícias, exibição dos
colaboradores e amigos do Siwep ou a de exibição completa da notícia.
Quando o usuário seleciona um autor ou tema dentre os listados, o sistema
busca e exibe as notícias deste autor ou tema. Além disso, o usuário tem as opções
de editar perfil, publicar notícia, exibir amigos, exibir todos colaboradores, votar nas
notícias desejadas e visualizar a notícia por completo. Todas essas opções são
através de hiperlinks, ou seja, ao clicar em qualquer uma destas opções,
automaticamente o navegador é redirecionado para uma página apropriada para a
execução da tarefa selecionada.
Ilustração 35: Página Inicial do Siwep para um Usuário.
EditarPerfil.aspx
Através desta página, um usuário pode editar/alterar seus dados no sistema
ou voltar à Home do mesmo.
Quando o usuário preenche os seus dados e clica no botão salvar alterações,
antes de processar os dados, o sistema checa se todos os campos foram
preenchidos.
O usuário, além de editar seus dados, tem a opção de voltar à Home do
sistema. Isto se dá através de hiperlink, ou seja, o usuário ao clicá-lo, faz com que o
navegador seja automaticamente redirecionado para a página inicial do sistema.
Ilustração 36: Formulário de Alteração dos dados de um Usuário.
ExibirNoticia.aspx
Através desta página, um usuário pode visualizar a notícia por completo,
efetuar comentários a respeito da mesma, voltar à página inicial do sistema ou
prosseguir para a página de editar perfil.
Quando o usuário preenche o campo atribuído ao comentário, e clica no
botão comentar, o sistema adiciona este comentário à lista de comentários inerentes
à notícia em questão.
O usuário, além de comentar e visualizar a notícia tem as opções de voltar à
página inicial do sistema ou prosseguir para a página de editar perfil. Essas opções
são através de hiperlinks, ou seja, o usuário ao clicá-lo, faz com que o navegador
seja automaticamente redirecionado para a página inicial do sistema.
Ilustração 37: Tela da página ExibirNoticia.aspx.
PublicarNoticia.aspx
Através desta página, um usuário pode publicar notícias, voltar à Home do
sistema ou prosseguir para a página de editar perfil.
Quando o usuário preenche os dados, e clica no botão enviar notícia, antes
de processar os dados, o sistema checa se todos os campos obrigatórios foram
preenchidos, e também que, se a notícia contiver algum link, que este esteja no
formato padrão de um endereço web.
O usuário, além de publicar notícia, tem a opção de voltar à Home do sistema
ou prosseguir para a página de editar perfil. Essas opções são disponibilizadas
através de hiperlinks, ou seja, o usuário ao clicá-lo, faz com que o navegador seja
automaticamente redirecionado para a página inicial do sistema.
Ilustração 38: Formulário de Publicação de Notícia.
ExibirColaboradores.aspx
Através desta página, um usuário pode visualizar todos os colaboradores do
sistema, adicioná-los como amigo, voltar à Home do sistema ou prosseguir para a
página de editar perfil.
Quando o usuário clica no link rotulado de “adicionar como amigo”, o sistema
checa antes se o mesmo já não é amigo do usuário ou se é ele mesmo se
adicionando como amigo. Vencida estas barreiras, o colaborador relacionado ao link
clicado é adicionado como amigo do usuário logado.
O usuário, além disso, tem a opção de voltar à Home do sistema ou
prosseguir para a página de editar perfil. Essas opções se dão através de hiperlinks,
ou seja, o usuário ao clicá-lo, faz com que o navegador seja automaticamente
redirecionado para a página inicial do sistema.
Ilustração 39: Tela da página ExibirColaboradores.aspx.
ExibirAmigos.aspx
Através desta página, um usuário pode visualizar todos os seus amigos, voltar
à Home do sistema ou prosseguir para as páginas de editar perfil e exibir notícias de
amigo.
Quando o usuário clica no link rotulado de Exibir Notícias do Amigo de um
determinado amigo, o navegador é direcionado para á página ExibirNotíciasAmigo,
onde são exibidas todas as notícias postadas por aquele amigo.
Ilustração 40: Tela da página ExibirAmigos.aspx.
ExibirNoticiasAmigo.aspx
Através desta página, um usuário pode visualizar todas as notícias postadas
por um determinado amigo, votar nelas, voltar à Home do sistema ou prosseguir
para as páginas de editar perfil e exibir notícia completa.
Quando o usuário clica no link rotulado de >mais... de uma determinado
notícia, o navegador é direcionado para á página ExibirNoticia, onde a notícia
selecionada é exibida por completo.
Ilustração 41: Tela da página ExibirNoticiasAmigo.aspx.
6 Implantação e Implementação
A etapa de projeto nos fornece um documento a ser seguido para
implementar um sistema, de modo que a implementação é considerada satisfatória
desde que cumpra tudo o que estiver descrito no documento de projeto. Já a
implantação descreve os requerimentos necessários para que o sistema funcione
satisfatoriamente. Este capítulo apresenta os aspectos mais relevantes tanto da
implementação quanto da implantação do Siwep.
6.1 Implementação
A implementação do Siwep foi feita com o documento de projeto em mãos e
tudo foi cumprido. Seguem os aspectos mais relevantes da implementação e as
tecnologias utilizadas para desenvolver o projeto.
6.1.1 Monodevelop
Para desenvolver o Siwep, a ferramenta Monodevelop v0.16 foi usada para
realizar as compilações, para escrever o código de maneira mais eficiente utilizando
o recurso de autocompletar, e para organizar os arquivos fonte. Monodevelop é uma
ferramenta livre.
Ilustração 42: Monodevelop.
6.1.2 Assemblies
Assemblies são arquivos compilados do .NET. São análogos as DLL‘s do
Windows. A compilação do Siwep gera um assembly contendo as camadas de
domínio, aplicação e persistência, que foi chamando de Siwep.Core. Este assembly
é referenciado por outro assembly, que contém as camadas de Controle e de Visão,
chamado de Siwep.Web. Este assembly é compilado somente quando do primeiro
acesso ao site do Siwep. Além disso, também há o assembly do db4o, que é
referenciado pelo Siwep.Core.
Esta organização de assemblies possibilita que a interface possa ser
completamente trocada sem maiores problemas, visto que a lógica de acesso a
dados e a lógica de negócio está separada da lógica de apresentação.
6.1.3 Master Pages
“Master Page é um recurso criado para o Asp.net 2.0 para facilitar/padronizar
a criação de projetos web. Este recurso foi criado para facilitar a vida do
desenvolvedor na hora da criação e da manutenção de um sistema web. O Master
Page na verdade é um recurso onde se é criado uma página padrão e a mesma é
utilizada em todas as outras páginas do projeto. Com isso o desenvolvedor
padroniza a página principal (como uma Template) e a herda para todas as outras
páginas, sem que seja preciso usar códigos duplicados ou criar UserControls.
Quando se altera um código na página padrão, todas as outras serão alteradas.”
[João Norberto, 2005].
Ilustração 43: Hierarquia de dependências dos assemblies utilizados no Siwep.
6.1.4 Nomenclatura
O padrão de nomenclatura utilizado na escrita dos códigos foi a recomendada
pelo manual do C sharp, ou seja, pascal case para nomes de classes, métodos e
propriedades, e camel case para nomes de atributos e variáveis locais.
6.2 Implantação
A implantação do Siwep é relativamente simples, e pode ser feita de várias
maneiras. Basta ter uma máquina Desktop com conexão com a Internet. Uma das
formas de implantação é instalar o Sistema Operacional Linux nesta máquina, baixar
o framework MONO no site http://go-mono.com e instalá-lo, baixar o servidor web
APACHE no site http://apache.org e instalá-lo, baixar um assembly chamado
modmono no site http://gomono.com, e editar as configurações do apache para
considerar a pasta onde estão as páginas no Siwep, e para utilizar o arquivo
modmono, que dá suporte a compilação de páginas ASP.NET. Feito isso, basta dar
um ”start” no APACHE, e o Siwep poderá ser acessado por qualquer um que tiver
acesso a este servidor.
Não se espera uma utilização intensa do Siwep, principalmente no primeiro
ano de lançamento do próprio, e, portanto não haverá muitos acessos e o servidor
não precisará de uma conexão muito rápida, de modo que uma banda de 1 mb já
garantirá um bom funcionamento para o Siwep.
7 Considerações Finais
Neste capítulo são apresentadas conclusões observadas sobre o trabalho
desenvolvido, são discutidas perspectivas futuras de inserção de novas
funcionalidades ao SIWEP, além de se efetuar uma avaliação do aprendizado
adquirido.
7.1 Conclusões
Com a chegada da nova era do jornalismo, o chamado webjornalismo
participativo, o cidadão comum, o leigo sem os conhecimentos técnicos da prática
jornalística, tem a interessante opção de participar da produção de notícias, criando
seus próprios textos e opiniões. Isto é fantástico, pois não ficamos mais presos a um
pensamento centralizador do jornalismo mais tradicional, conseguindo com isso
informações mais condizentes com a realidade vivida.
Como os requisitos levantados para um sistema de webjornalismo
participativo, que o Siwep se propõe a ser, foram cumpridos quase na sua
totalidade, então podemos dizer que o projeto Siwep foi um sucesso, ainda que o
mesmo ainda não tenha passado por testes de aceitação.
Este trabalho possibilitou o enriquecimento e adicionou o saber em diversos
assuntos, dentre eles: (i) linguagem de programação ASP.NET; (ii) utilização de
diversos frameworks que permitiram desenvolver o protótipo de uma forma rápida e
fácil; (iii) aprendizado sobre jornalismo open source; (iv) uso de camadas de
persistências; (v) ferramentas de desenvolvimento e (vi) especificação, analise e
projeto de sistemas utilizando as notações da UML.
Além disso, é importante destacar que este trabalho foi uma oportunidade de
consolidar conceitos vistos durante o curso de graduação em Ciência da
Computação, com ênfase em Sistemas de Informação, oferecido pela Universidade
Federal do Espírito Santo.
Perspectivas Futuras
Como trabalhos futuros relacionados ao tema exposto, podem ser
destacados:
Inserir um mecanismo eficiente de paginação, com o objetivo de
facilitar a busca de notícias, colaboradores e amigos no Siwep. Essa
característica também é visualmente interessante, pois deixa o sistema
mais organizado e menos confuso. Não foi possível a implementação
deste recurso devido às limitações existentes na atual versão do banco
de dados db4o;
Incluir a funcionalidade denunciar notícia no Siwep. Essa
funcionalidade foi citada ao longo do projeto deste sistema, mas
infelizmente não foi possível efetivamente implementá-la, pois o tempo
não foi suficiente para a execução desta tarefa;
Possibilitar ao usuário, além de acompanhar as notícias postadas por
seus amigos, a opção de acompanhar os votos e comentários dos
mesmos.
Referências Bibliográficas
BRAMBILLA, A. M.. A reconfiguração do jornalismo através do modelo open source.Sessões do imaginário, 2005.
BRAMBILLA, A. M.. Jornalismo open source em busca de credibilidade. In: Intercom 2005 – XXVIII CONGRESSO BRASILEIRO INTERDISCIPLINAR DE CIÊNCIAS DA COMUNICAÇÃO, 09, 2005, Rio de Janeiro. Anais… Rio de Janeiro, 2005.
BRAMBILLA, A. M.. Jornalismo Open Source: discussão e experimentação doOhmyNews International. Porto Alegre: UFRGS, 2006. Dissertação (Mestrado emComunicação e Informação), Faculdade de Biblioteconomia e Comunicação, UFRGS, 2006.
C# STATION: C# Tutorial. Disponível em: <http://www.csharp-station.com/Tutorial.aspx>.
CANAVILHAS, João Messias. Webjornalismo. Considerações gerais sobre jornalismo na web. Biblioteca Online de Ciências da Comunicação, 2001.
DIGG: All News, Vídeos, & Images. Disponível em: <http://www.digg.com/>.
FALBO, Ricardo de Almeida; SOUZA, Vítor Estêvão Silva. An Agile Approach for Web Systems Engineering. WebMedia, Poços de Caldas, Minas Gerais - Brazil,December 5–7, 2005.
FONSECA, Virginia Pradelina da Silveira; LINDEMANN, Cristiane; JornalismoParticipativo na Internet: repensando algumas questões técnicas e teóricas. Trabalho apresentado ao Grupo de Trabalho “Estudos de Jornalismo”, XVI Encontro da Compós, UTP, Curitiba, PR, 2007.
HOWSTUFFWORKS: Como funciona o Digg.com. Disponível em: <http://informatica.hsw.uol.com.br/website-digg.htm>.Acesso em 11 set. 2007
ICAZA, Miguel de. Site oficial do Mono. Disponível em: <http://gomono.com>.Acesso em 31 out. 2007.
MACORATTI, J.C.. Modelando sistemas com UML. Disponível em: <http://www.macoratti.net/net_uml2.htm>.Acesso em 22 out. 2007.
MEDIAWIKI: Wiki do Código Overmundo. Disponível em: <http://www.movimento.cc/wikicodigo/index.php?title=P%C3%A1gina_principal>. Acesso em 06 nov. 2007.
MEDINA, Cremilda de Araújo. Notícia: um produto à venda: jornalismo na sociedadeurbana e industrial. São Paulo: Alfa-Omega, 1978. 194 p.
MIELNICZUK, Luciana. "Sistematizando alguns conhecimentos sobre jornalismo naWeb". In: MACHADO, Elias, PALACIOS, Marcos. Modelos de jornalismo digital.Salvador: Calandra, 2003.
MOURA, Catarina. O jornalismo na era Slashdot. 2002.
NOGUEIRA, Luís Carlos. Slashdot: comunidade de palavra. Biblioteca Online de Ciências da Comunicação, 2002.
OVERMUNDO. Disponível em: <http://www.overmundo.com.br/>.
PRESSMAN, Roger S.. Engenharia de Software, McGraw-Hill, São Paulo, 2006.
PATERSON, Jim. The Definitive Guide to db4o, Apress, Nova Iorque, 2006.
PERUZZO, C. M. K.. WebJornalismo: do Hipertexto e da Interatividade ao Cidadão Jornalista; Disponível em: <http://www.versoereverso.unisinos.br/index.php?e=1&s=9&a=3>.Acesso em 17 set. 2007.
PRIMO, A.; TRÄSEL Marcelo Ruschel. Webjornalismo participativo e a produção aberta de notícias. In: VIII Congresso Latino-americano de Pesquisadores daComunicação, 2006, São Leopoldo. Anais, 2006.
SOUSA, R. Digg.com: Revolução Editorial ?, 2006. Disponível em: <http://www.imasters.com.br/artigo/4769/javascript/diggcom_revolucao_editorial/>.Acesso em 13 set. 2007.
UFRGS: Universidade Federal do Rio Grande do Sul. Portal de Webjornalismo Participativo. Disponível em: <http://www6.ufrgs.br/limc/participativo/interna_links2.htm>.
WIKIPEDIA, a enciclopédia livre. Disponível em: <http://pt.wikipedia.org/wiki/>.