\documentclass[11pt]{article}
\usepackage[portuguese]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{lmodern}
\usepackage{graphicx}

\setlength{\parskip}{2ex}
\def\aspa{\textquotesingle}

\setlength{\pdfpagewidth}{210truemm}
\setlength{\pdfpageheight}{297truemm}
\pdfadjustspacing=1

\topmargin -0.6in
\textheight 250truemm

\title{\vspace{8em} \huge{Wiki UFC} \\ \vspace{0.1em} \small{Especificação de Requisitos}}
\author{
	\vspace{5em} \\
	\small{Adriano Tavares} \\
	\small{Álinson Santos}  \\
	\small{André Castro}    \\
	\small{Luís Henrique}   \\
	\small{Rafael Barbosa}
}
\date{\today}

\begin{document}

\maketitle
\pagebreak

\tableofcontents
\pagebreak

\section{Introdução}
\subsection{Propósito do documento de requisitos}

O presente documento tem por objetivo mostrar uma descrição geral do produto, e, em seguida, especificar os requisitos de usuário e de sistema, funcionais e não funcionais. Sabendo do conjunto diversificado de usuários que podem ter acesso a este documento, procuramos utilizar uma linguagem de alto nível, embora, em certas ocasiões, o uso de alguns termos técnicos é necessário.

\subsection{Escopo do produto}

Sistema online colaborativo, na forma de wiki, onde os alunos poderão compartilhar informações sobre as disciplinas do curso. Cada disciplina terá uma página no Wiki; um repositório, onde os alunos poderão disponibilizar arquivos relacionados; um mural, para divulgação de notícias; e um calendário, que conterá datas de provas e trabalhos.

Sendo um sistema voltado para o aluno, não serão implementados sistemas de entrega de trabalhos, aulas e avaliações em tempo real, nem qualquer outro recurso semelhante encontrado em softwares de e-learning.

\subsection{Visão geral do restante do documento}

Em seguida, temos uma descrição mais detalhada do produto, incluindo seus requisitos.

Na seção 2, fornecemos uma descrição geral do sistema, contendo: descrição do produto (seção 2.1), de forma a melhor apresentar o contexto de aplicação em que se inserem os requisitos descritos no presente documento; e perfil do usuário (seção 2.2), esclarecendo a que tipo de usuário o sistema é destinado.

Na seção 3, é apresentada uma descrição dos requisitos, tanto funcionais (seção 3.2) quanto não funcionais (seção 3.3), além de diagramas de caso de uso (seção 3.1).

\section{Descrição Geral}
\subsection{Descrição do produto}

O Wiki UFC é uma aplicação com a finalidade de centralizar informações relacionadas às disciplinas do curso.

A idéia inicial do sistema surgiu quando se percebeu certas desvantagens do processo atual que os alunos utilizam para se comunicar. O material didático é muitas vezes segmentado em diferentes meios de comunicação e um esforço por parte do estudante é exigido para estar atualizado com a disciplina. O Wiki UFC tem o objetivo de diminuir este esforço, fornecendo um ambiente centralizado para compartilhamento de informações. Para cada disciplina, teremos:

\begin{itemize}
    \item Um espaço wiki
    \item Um mural para expor avisos
    \item Um calendário com os principais eventos da disciplina
    \item Um repositório para disponibilizar arquivos relacionados
\end{itemize}

\subsection{Perfil do usuário}

Sendo o sistema desenvolvido voltado para o gerenciamento de informações relacionadas às disciplinas acadêmicas, o público principal do sistema são estudantes, particularmente universitários.

\section{Requisitos específicos}
\subsection{Diagrama de Caso de Uso}
\includegraphics[width=1.20\textwidth]{usecase.png}

Cada caso de uso mostrado acima é melhor descrito na próxima seção do documento.

\subsection{Requisitos Funcionais}

\subsubsection{Módulo Wiki}
\textbf{Visualizar página}
\\

Nome:

      Visualizar página

Sumário:

      O usuário visualizará o conteúdo de uma página do wiki.

Ator Primário:

      Aluno. 

Fluxo Principal:

      Usuário navega até a página da disciplina na qual ele está interessado, consulta a lista de páginas wiki disponíveis, e clica sobre o título da página desejada. 

\textbf{Editar página}
\\

Nome:

      Editar página

Sumário:

      O usuário modificará o conteúdo de uma página do wiki. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      Usuário navega até a página wiki desejada, e clica no link 'Editar'. Uma tela é exibida, onde o usuário poderá digitar o novo texto da página. O usuário então clica em 'Salvar'. 

Pós-Condições:

      A página wiki editada pelo usuário ficará com o novo texto digitado pelo usuário. A versão anterior estará disponível no link 'Histórico'. 

\textbf{Criar página}
\\

Nome:

      Criar página 

Sumário:

      O usuário criará uma nova página wiki. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário navegará até a página da disciplina desejada e clicará no link correspondente à opção 'Nova Página'. Uma tela irá aparecer, e o usuário poderá digitar o conteúdo da nova página. Depois, o usuário clicará em 'Salvar'. 

Pós-Condições:

      A página recém criada será incorporada à lista de páginas wiki da disciplina, e poderá ser lida e editada por outros alunos. 

\textbf{Excluir página}
\\

Nome:

      Excluir página. 

Sumário:

      O usuário excluirá uma página do wiki. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário navegará até a página wiki desejada, clicará em 'Editar' e, na nova tela que surgir, escolherá a opção 'Excluir página'. 

Pós-Condições:

      Após confirmar a exclusão, a página será excluída, e não será mais acessível a outros alunos. 

\subsubsection{Módulo Repositório}
\textbf{Visualizar arquivo}
\\

Nome:

      Visualizar arquivo. 

Sumário:

      O usuário visualizará o conteúdo de um arquivo do repositório. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário navegará até a página da disciplina desejada, consultará a lista de arquivos disponíveis no repositório, e clicará sobre o arquivo que ele deseja visualizar. 

\textbf{Enviar arquivo}
\\

Nome:

      Enviar arquivo. 

Sumário:

      O usuário enviará um novo arquivo para a página da disciplina. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário navegará até a página da disciplina desejada, clicará no link correspondente a 'Adicionar arquivo', selecionará o arquivo a ser enviado, e clicará no link 'Enviar'. 

Pós-Condições:

      O arquivo escolhido pelo usuário será enviado para o sistema, e poderá ser visualizado pelos demais alunos. 

\textbf{Excluir arquivo}
\\

Nome:

      Excluir arquivo. 

Sumário:

      O usuário excluirá um arquivo do repositório. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário navegará até a página da disciplina e escolherá o link 'Excluir arquivo' correspondente ao arquivo que ele deseja excluir. 

Pós-Condições:

      O arquivo excluído não estará mais disponível para os demais alunos. 

\subsubsection{Módulo Calendário}
\textbf{Visualizar eventos}
\\

Nome:

      Visualizar eventos. 

Sumário:

      O usuário visualizará os eventos de um calendário. Poderá clicar em certo evento para obter maiores detalhes. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário navegará até a página da disciplina desejada, onde poderá acessar o calendário da disciplina. 

\textbf{Incluir eventos}
\\

Nome:

      Incluir eventos. 

Sumário:

      O usuário incluirá novos eventos a um calendário de uma disciplina. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário navegará até a página de calendário da disciplina e escolherá o link "Novo Evento", inserindo informações como título do evento, data e descrição. 

Pós-Condições:

      O evento inserido será adicionado à lista de eventos do calendário e poderá ser visualizado e poderá ser visualizado pelos demais alunos. 

\textbf{Excluir eventos}
\\

Nome:

      Excluir eventos. 

Sumário:

      O usuário excluirá eventos de um calendário de uma disciplina. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário navegará até a página de calendário da disciplina e escolherá o link "Excluir Evento" associado ao evento que ele deseja excluir. 

Pós-Condições:

      O evento excluído será retirado da base de dados e não estará mais disposto para visualização pelos demais alunos. 

\subsubsection{Módulo Mensagens}
\textbf{Enviar mensagens para a Shoutbox}
\\

Nome:

      Enviar mensagens para a Shoutbox. 

Sumário:

      O usuário irá enviar uma mensagem por ele redigida para a Shoutbox. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário, a partir de qualquer página no Wiki, digitará uma mensagem e a enviará para o Shoutbox. 

Pós-Condições:

      A mensagem enviada será mostrada na Shoutbox para os outros usuários autenticados no sistema no momento. 

\textbf{Enviar mensagens para o Mural}
\\

Nome:

      Enviar mensagens para a Mural. 

Sumário:

      O usuário irá enviar uma mensagem por ele redigida para o Mural. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário, através do Mural de cada disciplina, digitará uma mensagem e a enviará. 

Pós-Condições:

      A mensagem será disponibilizada no Mural da disciplina, podendo ser vista por outros usuários que acessem a página da disciplina em questão. 

\textbf{Enviar mensagens para outros usuários}
\\

Nome:

      Enviar mensagens para outros usuários. 

Sumário:

      O usuário irá enviar uma mensagem por ele redigida para um outro usuário do sistema. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário digitará uma mensagem, assinalará um destinatário, também usuário do sistema, e enviará a mensagem para este usuário assinalado. 

Pós-Condições:

      A mensagem será disponibilizada ao usuário destinatário, e somente a ele, podendo ser visualizada em sua página principal. 

\textbf{Ler mensagens}
\\

Nome:

      Ler mensagens. 

Sumário:

      O usuário irá ler uma mensagem, podendo ser esta redigida por ele mesmo ou por outro usuário. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário entrará em alguma das seções que disponibilizam mensagens, e a interface do sistema formatará as mensagens arquivadas para serem visualizadas pelo usuário. 

Pós-Condições:

      Nenhuma. 

\textbf{Excluir mensagens}
\\

Nome:

      Excluir mensagens. 

Sumário:

      O usuário excluirá uma mensagem do sistema. 

Ator Primário:

      Aluno. 

Fluxo Principal:

      O usuário navegará até a seção onde está disponibilizada a mensagem e indicará a mensagem a ser apagada. 

Pós-Condições:

      A mensagem excluída não estará mais disponível para visualização pelos demais usuários. 



\subsection{Requisitos Não-Funcionais}

\subsubsection{Requisitos da Interface}

Dada a diversidade de alunos presentes na universidade, e os seus diferentes níveis de conhecimento técnico sobre a Internet, a interface do sistema precisa ser fácil de se utilizar.

\subsubsection{Restrições do Wiki}
\begin{itemize}
\item Detecção de Tags Maliciosas

Um conhecido tipo de falha de segurança em sistemas Web é o Cross-site scripting, abreviado XSS. Através de tags maliciosas inseridas no wiki, um usuário mal intencionado poderia comprometer a segurança do sistema, e expor os alunos a riscos. Assim, o wiki deve ser capaz de detectar e remover estas tags maliciosas.

\item Integridade dos Dados

Os dados fornecidos pelos usuários são de grande importância para a sobrevivência do sistema. Dessa forma, o wiki deve garantir que esses dados não sejam corrompidos. Ou seja, ele deve impedir que versões antigas da página sejam substituídas indevidamente.  
\end{itemize}

\end{document}
