107
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

SIWEP - Digg Like com Db4o

Embed Size (px)

DESCRIPTION

Trata-se de um sistema de notícias no estilo "Digg", com uma espécia de rankeamento automatico das notícias, baseado em filtragem colaborativa.O projeto foi desenvolvido utilizando as tecnologias .NET 2.0 e db4o.

Citation preview

Page 1: SIWEP - Digg Like com Db4o

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

Page 2: SIWEP - Digg Like com Db4o

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

Page 3: SIWEP - Digg Like com Db4o

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

Page 4: SIWEP - Digg Like com Db4o

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.

Page 5: SIWEP - Digg Like com Db4o

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.

Page 6: SIWEP - Digg Like com Db4o

ABSTRACT

Page 7: SIWEP - Digg Like com Db4o

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

Page 8: SIWEP - Digg Like com Db4o

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

Page 9: SIWEP - Digg Like com Db4o

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

Page 10: SIWEP - Digg Like com Db4o

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

Page 11: SIWEP - Digg Like com Db4o

Lista de Tabelas

Tabela 1: Tecnologias utilizadas.........................................................................................43

Page 12: SIWEP - Digg Like com Db4o

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

Page 13: SIWEP - Digg Like com Db4o

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

Page 14: SIWEP - Digg Like com Db4o

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.

Page 15: SIWEP - Digg Like com Db4o

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.

Page 16: SIWEP - Digg Like com Db4o

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.

Page 17: SIWEP - Digg Like com Db4o

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.

Page 18: SIWEP - Digg Like com Db4o

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;

Page 19: SIWEP - Digg Like com Db4o

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.

Page 20: SIWEP - Digg Like com Db4o

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.

Page 21: SIWEP - Digg Like com Db4o

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.

Page 22: SIWEP - Digg Like com Db4o

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.

Page 23: SIWEP - Digg Like com Db4o

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

Page 24: SIWEP - Digg Like com Db4o

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:

Page 25: SIWEP - Digg Like com Db4o

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:

Page 26: SIWEP - Digg Like com Db4o

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.

Page 27: SIWEP - Digg Like com Db4o

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.

Page 28: SIWEP - Digg Like com Db4o

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.

Page 29: SIWEP - Digg Like com Db4o

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.

Page 30: SIWEP - Digg Like com Db4o

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

Page 31: SIWEP - Digg Like com Db4o

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.

Page 32: SIWEP - Digg Like com Db4o

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

Page 33: SIWEP - Digg Like com Db4o

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

Page 34: SIWEP - Digg Like com Db4o

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.

Page 35: SIWEP - Digg Like com Db4o

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.

Page 36: SIWEP - Digg Like com Db4o

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.

Page 37: SIWEP - Digg Like com Db4o

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.

Page 38: SIWEP - Digg Like com Db4o

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.

Page 39: SIWEP - Digg Like com Db4o

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.

Page 40: SIWEP - Digg Like com Db4o

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.

Page 41: SIWEP - Digg Like com Db4o

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.

Page 42: SIWEP - Digg Like com Db4o

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).

Page 43: SIWEP - Digg Like com Db4o

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

Page 44: SIWEP - Digg Like com Db4o

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.

Page 45: SIWEP - Digg Like com Db4o

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

Page 46: SIWEP - Digg Like com Db4o

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.

Page 47: SIWEP - Digg Like com Db4o

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.

Page 48: SIWEP - Digg Like com Db4o

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

Page 49: SIWEP - Digg Like com Db4o

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

Page 50: SIWEP - Digg Like com Db4o

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.

Page 51: SIWEP - Digg Like com Db4o

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

Page 52: SIWEP - Digg Like com Db4o

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.

Page 53: SIWEP - Digg Like com Db4o

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.

Page 54: SIWEP - Digg Like com Db4o

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.

Page 55: SIWEP - Digg Like com Db4o

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.

Page 56: SIWEP - Digg Like com Db4o

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”.

Page 57: SIWEP - Digg Like com Db4o

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.

Page 58: SIWEP - Digg Like com Db4o

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.

Page 59: SIWEP - Digg Like com Db4o

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”.

Page 60: SIWEP - Digg Like com Db4o

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”.

Page 61: SIWEP - Digg Like com Db4o

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”.

Page 62: SIWEP - Digg Like com Db4o

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.

Page 63: SIWEP - Digg Like com Db4o

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.

Page 64: SIWEP - Digg Like com Db4o

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.

Page 65: SIWEP - Digg Like com Db4o

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.

Page 66: SIWEP - Digg Like com Db4o

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.

Page 67: SIWEP - Digg Like com Db4o

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

Page 68: SIWEP - Digg Like com Db4o

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.

Page 69: SIWEP - Digg Like com Db4o

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.

Page 70: SIWEP - Digg Like com Db4o

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.

Page 71: SIWEP - Digg Like com Db4o

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.

Page 72: SIWEP - Digg Like com Db4o

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.

Page 73: SIWEP - Digg Like com Db4o

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.

Page 74: SIWEP - Digg Like com Db4o

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.

Page 75: SIWEP - Digg Like com Db4o

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.

Page 76: SIWEP - Digg Like com Db4o

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.

Page 77: SIWEP - Digg Like com Db4o

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.

Page 78: SIWEP - Digg Like com Db4o

Ilustração 41: Tela da página ExibirNoticiasAmigo.aspx.

Page 79: SIWEP - Digg Like com Db4o

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.

Page 80: SIWEP - Digg Like com Db4o

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.

Page 81: SIWEP - Digg Like com Db4o

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.

Page 82: SIWEP - Digg Like com Db4o

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.

Page 83: SIWEP - Digg Like com Db4o

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.

Page 84: SIWEP - Digg Like com Db4o

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.

Page 85: SIWEP - Digg Like com Db4o

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.

Page 86: SIWEP - Digg Like com Db4o

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/>.