Você está na página 1de 86

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

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 — BR
Membro Orientador

___________________________________________________
Prof. Dr. xxxxxxxxxxxxxxxxxxxxxxxxx
UFES — Universidade Federal do Estado do Espírito Santo — BR
Membro Titular

___________________________________________________
Prof. Dr. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
UFES — Universidade Federal do Estado do Espírito Santo — BR
Membro 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

Ilustração 1: Página Inicial do Digg................................................................................17


Ilustração 2: Página Inicial do Overmundo.....................................................................19
Ilustração 3: Componentes identificados e seus relacionamentos...................................25
Ilustração 4: Diagrama de Casos de Uso de Controle de Usuários.................................26
Ilustração 5: Diagrama de Casos de Uso de Controle de Notícias..................................31
Ilustração 6: Diagrama de Pacotes..................................................................................37
Ilustração 7: Diagrama de classes do pacote Controle de Usuários................................38
Ilustração 8: Diagrama de classes do pacote Controle de Notícias.................................39
Ilustração 9: Módulos do Sistema...................................................................................44
Ilustração 10: Arquitetura de Camadas do Sistema.........................................................45
Ilustração 11: Modelo de Persistência de Controle Usuários..........................................46
Ilustração 12: Modelo de Persistência de Controle Notícias...........................................48
Ilustração 13: Aplicação de Controle Usuários...............................................................49
Ilustração 14: Aplicação de Controle Notícias................................................................51
Ilustração 15: Diagrama de Seqüência para o caso de uso Autenticar Usuário...............53
Ilustração 16: Diagrama de Seqüência para o caso de uso Solicitar Senha.....................54
Ilustração 17: Diagrama de Seqüência para o caso de uso Cadastrar Usuário................54
Ilustração 18: Diagrama de Seqüência para o caso de Uso Editar Perfil........................55
Ilustração 19: Diagrama de Seqüência para o caso de uso Adicionar Amigo.................56
Ilustração 20: Diagrama de Seqüência para o caso de uso Remover Usuário.................57
Ilustração 21: Diagrama de Seqüência para o caso de uso Pesquisar Conteúdo por Autor.58
Ilustração 22: Diagrama de Seqüência para o caso de uso Pesquisar Conteúdo por Tema.59
Ilustração 23: Diagrama de Seqüência para o caso de uso Votar em Notícia..................60
Ilustração 24: Diagrama de Seqüência para o caso de uso Publicar Notícia...................61
Ilustração 25: Diagrama de Seqüência para o caso de uso Comentar Notícia................62
Ilustração 26: Diagrama de Seqüência para o caso de uso Denunciar Notícia...............63
Ilustração 27: Diagrama de Seqüência para o caso de uso Visualizar Notícias de Amigos......64
Ilustração 28: Diagrama de estados para o mapa de navegação geral do Siwep para um
Internauta.........................................................................................................................65
Ilustração 29: Diagrama de estados para o mapa de navegação geral do Siwep para um
Usuário............................................................................................................................66
Ilustração 30: Página Inicial do Siwep para um Internauta.............................................67
Ilustração 31: Página de Login do Usuário no Siwep.....................................................68
Ilustração 32: Tela da página SobreNos.aspx..................................................................69
Ilustração 33: Formulário de Registro de um novo Usuário...........................................70
Ilustração 34: Formulário de Recuperação de Senha......................................................71
Ilustração 35: Página Inicial do Siwep para um Usuário................................................72
Ilustração 36: Formulário de Alteração dos dados de um Usuário..................................73
Ilustração 37: Tela da página ExibirNoticia.aspx............................................................74
Ilustração 38: Formulário de Publicação de Notícia.......................................................75
Ilustração 39: Tela da página ExibirColaboradores.aspx................................................76
Ilustração 40: Tela da página ExibirAmigos.aspx...........................................................77
Ilustração 41: Tela da página ExibirNoticiasAmigo.aspx...............................................78
Ilustração 42: Monodevelop............................................................................................80
Ilustraçã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ósito


Mono Tecnologia multiplataforma que Suporte a outras tecnologias
dá suporte ao desenvolvimento usadas no SIWEP
de aplicações .NET

C sharp 2.0 Linguagem de programação Implementação dos códigos


orientada a objetos
ASP .NET 2.0 Componente do .NET, também Implementação de páginas
Implementado pelo mono Web
DB4O Banco de dados Orientado a Armazenar dados de objetos
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 do


OhmyNews International. Porto Alegre: UFRGS, 2006. Dissertação (Mestrado em
Comunicaçã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; Jornalismo


Participativo 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 sociedade


urbana e industrial. São Paulo: Alfa-Omega, 1978. 194 p.
MIELNICZUK, Luciana. "Sistematizando alguns conhecimentos sobre jornalismo na
Web". 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 da
Comunicaçã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/>.

Você também pode gostar