excluindo arquivos antigos

master
Alinson S. Xavier 17 years ago
parent 875b6dbb91
commit 9eae5fe4c7

Binary file not shown.

@ -1,223 +0,0 @@
\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{Projeto da Aplicação}}
\author{
\vspace{5em} \\
\small{Adriano Tavares} \\
\small{Álinson Santos} \\
\small{André Castro} \\
\small{Luís Henrique} \\
\small{Rafael Barbosa}
}
\date{5 de Junho de 2007}
\begin{document}
\maketitle
\pagebreak
\tableofcontents
\pagebreak
% ============
% Apresentação
% ============
\section{Apresentação}
O Wiki UFC é um sistema online colaborativo onde os alunos podem compartilhar informações sobre as
disciplinas que estão cursando. Cada disciplina possui um espaço próprio, contendo um Wiki (para
receber notas de aulas), mural de mensagens (para os alunos serem notificados sobre algum evento),
calendário (contendo datas de provas, trabalhos, etc) e um repositório de arquivos (contendo provas
passadas, listas de exercicios, etc).
Neste documento, descreveremos os detalhes técnicos do sistema, incluindo informações sobre a
arquitetura utilizada, e as classes implementadas.
% ===========
% Arquitetura
% ===========
\section{Arquitetura}
O Sistema está sendo desenvolvido sobre Ruby on Rails, um framework web livre escrito na linguagem
de programação Ruby. Rails utiliza o padrão arquitetural Model-View-Controller, que, resumidamente,
separa os dados armazenados (model) da interface com o usuário (view) utilizando um componente
intermediário que implementa as regras de negócio (controller).
A seguir, iremos apresentar as classes pertencentes ao Model e ao Controller.
Vale ressaltar que o Rails possui um componente para mapeamento objeto-relacional, conhecido como
Active Record. Cada classe do Model possui uma relação no banco de dados, e cada atributo da classe
se traduz em um atributo da relação.
% =====
% Model
% =====
\section{Classes Model}
\subsection{User}
Classe que representa cada usuário do sistema. Possui informações tais como login, nome, senha,
email, e permissões de acesso.
\subsection{Course}
Classe que representa uma disciplina. Contém algumas informações básicas, como nome e descrição.
Cada objeto Course possui uma coleção de páginas wiki (WikiPage), arquivos anexos (Attachment),
mensagens (Message) e eventos (Event), além da lista de alunos inscritos na disciplina.
\subsection{Event}
Classe que modela cada evento, ou atividade, presente no calendário de uma disciplina. As
informações disponíveis são título do evento, descrição, e data.
\subsection{Attachment}
Classe que modela os arquivos anexos, tais como provas e listas de exercício. Cada Attachment possui
nome, tamanho, data de modificação, tipo, e outras informações adicionais.
No banco de dados, só são armazenados meta-dados sobre os anexos. Os arquivos em sí estão
gravados no sistema de arquivos convencional do servidor, e podem ser acessados a partir de um
endereço web.
\subsection{Message}
Classe que modela as mensagens. Cada mensagem possui título, conteúdo, destinatário, remetente, e um
tipo, que pode ser Private, Shoutbox ou Event:
\begin{description}
\item[Private Message] No Wiki UFC, um usuário pode mandar mensagens diretamente para outros
usuários. Estas mensagens possuem o tipo Private Message.
\item[Shoutbox Message] Praticamente toda página do Wiki UFC possui um Shoutbox, para permitir
que os usuários possam conversar em tempo real através do site. Cada mensagem enviada a algum
Shoutbox possui o tipo Shoubox Message. O destinatário é o id da disciplina.
\item[Event Message] Além do calendário, outra forma de comunicação do Wiki UFC é o mural de
mensagens, onde os alunos podem enviar pequenos comunicados para a página da disciplina,
informando eventos como aulas extra, ou ausência do professor, por exemplo. Estas mensagens
possuem o tipo Event Message. O destinatário é o id da disciplina.
\end{description}
\subsection{WikiPage e WikiVersion}
Classes que modelam as páginas wiki. Cada página é representada por um objeto WikiVersion, e cada
versão de uma página, por um WikiVersion. Sempre que um usuário faz alguma modificação no conteúdo
de um wiki, um novo WikiVersion é criado e anexado ao WikiPage correspondente. Os WikiVersions
antigos sempre estão disponíveis para consulta, se o usuário desejar.
Os objetos WikiVersion, além de possuírem informações como data de criação e conteúdo, também
possuem métodos para converter a sintaxe do wiki em HTML.
\subsection{Diagrama de Model}
\includegraphics[width=150truemm]{classes-model.pdf}
\pagebreak
% ==========
% Controller
% ==========
\section{Classes Controller}
Cada controller, no Ruby on Rails, implementa um conjunto de ações. Por padrão, essas ações são:
\begin{description}
\item[index] Indica a página principal do Controller
\item[list] Exibe todos os elementos cadastrados
\item[show] Mostra os detalhes de um dos elementos
\item[new] Mostra o formulário para a criação de um novo objeto
\item[create] Insere o objeto no banco de dados
\item[edit] Mostra o formulário para a edição de um objeto
\item[update] Atualiza o objeto no banco de dados
\item[destroy] Deleta um elemento do Model
\end{description}
Para simplificação, os métodos CRUD mencionados acima não serão repetidos para as classes a
seguir, uma vez que possuem comportamento semelhante.
\subsection{UserController}
Controller responsável por gerenciar os usuários. Isso inclui fazer logon e logoff, cadastrar novas
contas, alterar preferências e ressetar senhas, caso necessário.
\begin{description}
\item[signup] Método pelo qual o usuário irá se cadastrar no sistema
\item[login] Método pelo qual o usuário irá se autenticar no sistema
\item[logout] Método pelo qual o usuário irá encerrar sua sessão
\item[forgot\_password] Método a ser utilizado caso o usuário tenha perdido sua senha, enviando uma nova por email
\end{description}
\subsection{MessageController}
Controller responsável pelo envio de mensagens. Usa a estrutura padrão de Controller do Rails.
\subsection{WikiController}
Controller responsável pelas operações sobre o wiki, que incluem edição, criação de novas páginas e
consulta de históricos.
\subsection{CoursesController}
Controller responsável pelo gerenciamento de disciplina. Usa a estrutura padrão de Controller do
Rails.
\subsection{EventsController}
Controller responsável pelo manutenção de eventos no calendário. Usa a estrutura padrão de
Controller do Rails.
\subsection{AttachmentsController}
Controller responsável pelo gerenciamento de arquivos anexos a páginas. Usa a estrutura padrão de
Controller do Rails.
\subsection{Diagrama de Controller}
\includegraphics[width=150truemm]{classes-controller.pdf}
\pagebreak
% =====================
% Diagrama de Seqüencia
% =====================
\section{Diagramas de Seqüência}
\subsection{User}
\includegraphics[width=150truemm]{seq_user.png}
\subsection{Attachment}
\includegraphics[width=130truemm]{seq_attachment.png}
\subsection{Message}
\includegraphics[width=130truemm]{seq_message.png}
\subsection{Course}
\includegraphics[width=130truemm]{seq_course.png}
\subsection{Event}
\includegraphics[width=130truemm]{seq_event.png}
\subsection{Wiki}
\includegraphics[width=150truemm]{seq_wiki.png}
\end{document}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

@ -1,402 +0,0 @@
\documentclass[11pt]{beamer}
\usetheme{Oxygen}
\usepackage{xcolor}
\usepackage{thumbpdf}
\usepackage{wasysym}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage{graphicx}
\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps,pgfshade}
\usepackage{verbatim}
%\useoutertheme{shadow}
\setbeamertemplate{sections/subsections in toc}[sections numbered]
\setbeamersize{text margin left=10mm}
\setbeamersize{text margin right=8mm}
\definecolor{laranja}{HTML}{cc0000}
\definecolor{azul}{HTML}{003366}
%\setbeamercolor{alerted text}{fg=azul}
%\setbeamercolor{structure}{fg=azul}
%\setbeamercolor{palette primary}{fg=laranja}
%\setbeamercolor{palette secondary}{fg=laranja!75!black}
%\setbeamercolor{palette tertiary}{fg=laranja!50!black}
%\setbeamercolor{palette quaternary}{fg=black}
\def\gap{\vspace{0.1in}}
\def\Gap{\vspace{0.25in}}
\pdfinfo {
/Title (Wiki UFC)
/Creator (TeX)
/Author (Álinson Santos,
André Castro,
Adriano Freitas,
Luis Henrique,
Rafael Barbosa)
}
\title{\textbf{Wiki UFC}}
\subtitle{Apresentação da Aplicação}
\date{28 de junho de 2007}
\author[Álinson, André, Adriano, Bustamante, Rafael]{\small{
Álinson Santos \\
André Castro \\
Adriano Freitas \\
Luis Henrique \\
Rafael Barbosa
}}
\begin{document}
% Capa
% ==============================================================================
\section*{}
\frame{
\titlepage
\thispagestyle{empty}
}
\begin{frame}
\frametitle{Índice}
%\framesubtitle{Visão geral}
\tableofcontents[subsectionstyle=hide]
\end{frame}
\AtBeginSection[] {
\frame<handout:0> {
\frametitle{Índice}
%\framesubtitle{\insertsection}
\tableofcontents[currentsection,subsectionstyle=show/show/hide]
}
}
%\AtBeginSubsection[] {
% \frame<handout:0> {
% \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide]
% }
%}
\newcommand<>{\highlighton}[1]{%
\alt#2{\structure{#1}}{{#1}}
}
% Introdução
% ==============================================================================
\section{Introdução}
% Problema atual e solucao proposta
% -------------------------------------------------------------------------
\subsection{Problema atual}
\begin{frame}
\frametitle{Problema atual}
Hoje em dia, os alunos do nosso curso não possuem uma maneira eficiente
de trocar informações sobre as disciplinas que estão cursando.
\gap
\begin{itemize}
\item Cada disciplina possui sua própria lista de emails
\item Não existe um calendário oficial no qual os estudantes possam
confiar
\item É dificil compartilhar material como notas de aulas e listas
de exercícios
\item É díficil obter o material utilizado nos semestres anteriores
\end{itemize}
\end{frame}
% Objetivos
% -------------------------------------------------------------------------
\subsection{Solução proposta}
\begin{frame}
\frametitle{Solução proposta}
Uma aplicação \textsc{WEB} colaborativa onde os alunos poderão
compartilhar informações sobre as disciplinas que estão cursando.
\Gap
Objetivos:
\begin{itemize}
\item Permitir a colaboração descentralizada de alunos para o curso
\item Facilitar a divulgação do conhecimento
\item Tornar a vida do estudante mais organizada
\end{itemize}
\end{frame}
% Soluções alternativas
% -------------------------------------------------------------------------
\subsection{Soluções alternativas}
\begin{frame}
\frametitle{Soluções alternativas}
\begin{block}{WebAdmin}
Sistema criado por Windson Viana para facilitar a manutenção de
páginas pelos professores do curso de Computação. Em funcionamento
no site \texttt{http://disciplinas.lia.ufc.br}
\end{block}
\gap
\begin{block}{Moodle}
Moodle é um Software Livre de E-Learning, desenvolvido para
facilitar a criação de cursos online não presencias. Possui recursos
avançados, como fóruns, blogs, wikis, chats, e quizzes.
\end{block}
\end{frame}
% Metodologia
% ==============================================================================
\section{Metodologia}
\begin{frame}
\frametitle{Scrum}
Scrum é um método ágil, criado em 1993, para permitir
que o desenvolvimento rápido de aplicações. Atualmente é utilizado
em empresas como Google, Yahoo, Eletronic Arts, Philips e Nokia.
\Gap
Como funciona?
\begin{itemize}
\item Manutenção de um \alert{backlog}, com as tarefas pendentes
\item Desenvolvimento segmentado em ciclos, chamados de \alert{sprints}
\item Reuniões periódicas, ao final de cada sprint
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Scrum}
\framesubtitle{Backlog}
\includegraphics[width=110mm]{backlog.png}
\end{frame}
\begin{frame}
\frametitle{Scrum}
\framesubtitle{Sprints e Reuniões}
No nosso projeto,
\begin{itemize}
\item Cada sprint durava uma semana
\item As reuniões eram realizadas segundas feiras, às 16h
\end{itemize}
\gap
Em cada reunião:
\begin{itemize}
\item Discutíamos o que havia sido implementado no sprint anterior
\item Discutíamos o que não havia sido implementado, por algum
motivo..
\item Colocávamos novos itens no backlog
\item Definiamos que tarefas cada um realizaria durante o próximo
sprint
\end{itemize}
\end{frame}
% Tecnologias
% ==============================================================================
\section{Tecnologias}
% Ruby
% --------------------------------------------------------------------------
\subsection{Linguagem Ruby}
\begin{frame}
\frametitle{Linguagem Ruby}
Ruby é uma linguagem de programação orientada a objetos, criada por
Yukihiro Matsumoto em 1995. Implementação oficial licenciada sob a GPL.
\gap
\begin{itemize}
\item Sintaxe simples e legível
\item Completamente orientada a objetos
\item Herança múltipla avançada, através de Mixins
\item Introspecção, reflexão e meta-programação
\item Garbage collector
\end{itemize}
\end{frame}
% Ruby on Rails
% --------------------------------------------------------------------------
\subsection{Ruby on Rails}
\begin{frame}
\frametitle{Ruby on Rails}
Ruby on Rails é um framework para o desenvolvimento aplicações web, que
segue os principios \emph{Don't Repeat Yourself (DRY)} e
\emph{Convention over Configuration}.
\gap
\begin{columns}[c]
\column{1.0in}
\begin{center}
\includegraphics[width=0.60 in]{rails.png}
\end{center}
\column{5.5in}
\begin{itemize}
\item Arquitetura Model-View-Controller
\item Mapeamento objeto-relacional
\item Scaffolds, Generators e Migrations
\item Suporte nativo a testes automatizados
\item Integração com Ajax e Webservices
\item Servidor web incluso!
\end{itemize}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Ruby on Rails}
\framesubtitle{A arquitetura MVC}
\begin{description}
\item Arquitetura para desenvolvimento que trabalha com três partes:
\item[Model] Dados armazenados da aplicação
\item[View] Seção visível ao usuário, e com a qual ele interage
\item[Controller] Interface entre Model e View, que estabelece as regras de negócio.
\end{description}
\end{frame}
%
% \begin{frame}
% \frametitle{Rails é ágil!}
% \begin{itemize}
% \item Para um desenvolvimento ágil...
% \item ... é necessária uma "linguagem ágil"\vspace{2mm}
% \item Rails é ágil!\vspace{4mm}
% \item Com Rails, é possível fazer um blog em 15 minutos: \\ http://www.rubyonrails.org/screencasts
% \end{itemize}
% \framesubtitle{Um blog em 15 minutos}
% \end{frame}
% Subversion e Trac
% --------------------------------------------------------------------------
\subsection{Subversion e Trac}
\begin{frame}
\frametitle{Subversion e Trac}
Subversion é um software open source para controle de versões.
\begin{itemize}
\item O código fonte é armazenado em um servidor web
\item Cada programador pode ler e modificar os arquivos remotamente
\item As versões antigas dos arquivos estão sempre disponíveis para
consulta.
\end{itemize}
\gap
Trac é uma aplicação web para gerenciamento de projetos e bugtracking,
com integração a Subversion.
\end{frame}
% Aplicação
% ==============================================================================
\section{Aplicação}
% Funcionalidades
% --------------------------------------------------------------------------
\subsection{Funcionalidades}
\begin{frame}
\frametitle{Funcionalidades}
Entre as funcionalidades implementadas estão:
\gap
\begin{itemize}
\item Um \textsc{Wiki} para conter as notas de aula
\item Um calendário, para receber datas de provas e entregas de
trabalho
\item Um repositório de arquivos, onde serão armazenadas listas de
exercícios, e provas antigas
\item Um mural, para postagem de notícias sobre a disciplina
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Funcionalidades}
\framesubtitle{Adicionais}
E, além das funcionalidades básicas:
\gap
\begin{itemize}
\item Wiki com suporte a sintaxe Markdown e controle de versões,
\item Calendário com exportação nos formatos iCalendar e RSS,
\item Shoutbox, que permite a comunicação rápida entre os usuários,
\item Página pessoal, que integra as informações sobre as disciplinas cursadas pelo
aluno,
\item Site personalizável.
\end{itemize}
\end{frame}
% Demonstração
% --------------------------------------------------------------------------
\subsection{Demonstração}
\begin{frame}
\frametitle{Wiki UFC}
\begin{center}\alert{Demonstração...}\end{center}
\end{frame}
% Conclusão
% ==============================================================================
\section{Conclusão}
% Dificuldades Encontradas
% --------------------------------------------------------------------------
\subsection{Dificuldades Encontradas}
\begin{frame}
\frametitle{Dificuldades encontradas}
As maiores dificuldades para realizar o projeto foram:
\gap
\begin{itemize}
\item Estudar a linguagem Ruby
\item Aprender a utilizar os recursos do framework Ruby on Rails
\item Conseguir tempo para programar, já que nós estamos cursando,
pelo menos, quatro outras disciplinas
\item Sincronizar o nosso método ágil com relatórios tradicionais da
disciplina
\end{itemize}
\end{frame}
% Pontos Positivos
% --------------------------------------------------------------------------
\subsection{Pontos Positivos}
\begin{frame}
\frametitle{Pontos positivos}
Sobre o projeto em geral:
\begin{itemize}
\item A equipe aprendeu a utilizar muitas tecnologias novas
\item Aplicamos alguns conceitos da disciplina na prática
\end{itemize}
\gap
Sobre o método Scrum:
\begin{itemize}
\item Reuniões semanais: não ficou tudo pro fim!
\item Backlog: Sabíamos exatamente o que ainda faltava ser feito
\end{itemize}
\end{frame}
% Perspectivas
% --------------------------------------------------------------------------
\subsection{Perspectivas}
\begin{frame}
\frametitle{Perspectivas}
Para o futuro, planejamos:
\gap
\begin{itemize}
\item Implementar alguns itens que, por falta de tempo, não puderam
ser inclusos no projeto original.
\item Colocar em funcionamento, para os alunos puderem usar de
verdade.
\item Abrir como um projeto Open Source.
\end{itemize}
\end{frame}
% Perguntas?
% ==============================================================================
\begin{frame}
\frametitle{Fim!}
\begin{center}\huge{\alert{Perguntas?}}\end{center}
\end{frame}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

@ -1,72 +0,0 @@
\usetheme{Rochester}
\RequirePackage{pgf}
\pgfdeclareimage[width=1.0\paperwidth]{wiki-header}{wiki-header}
\setbeamertemplate{blocks}[rounded][shadow=false]
\setbeamercovered{transparent}
\beamer@headheight=0.13\paperwidth
\definecolor{oxygenorange}{HTML}{003377}
\definecolor{oxygengray}{HTML}{222222}
\definecolor{oxygenlightgray}{HTML}{ffffff}
\definecolor{oxygenblue}{HTML}{003377}
\setbeamercolor*{Title bar}{fg=white}
\setbeamercolor*{Location bar}{fg=oxygenorange,bg=oxygenlightgray}
\setbeamercolor*{frametitle}{parent=Title bar}
\setbeamercolor*{block title}{bg=white,fg=oxygenblue}
\setbeamercolor*{block body}{bg=white,fg=oxygengray}
\setbeamercolor*{normal text}{bg=white,fg=oxygengray}
\setbeamercolor*{section in head/foot}{bg=oxygenblue,fg=white}
\setbeamercolor{alerted text}{fg=oxygenblue}
\usecolortheme[named=oxygenorange]{structure}
\setbeamerfont{section in head/foot}{size=\tiny,series=\normalfont}
\setbeamerfont{frametitle}{size=\Large}
\setbeamertemplate{items}[circle]
%\setbeamertemplate{headline}
\setbeamertemplate{frametitle}
{
\vskip-0.25\beamer@headheight
\vskip-\baselineskip
\vskip-0.3cm
\hskip0.1cm\usebeamerfont*{frametitle}\insertframetitle
%\vskip0.1em
\hskip0.4cm\usebeamerfont*{framesubtitle}\insertframesubtitle
%\vskip 0.5cm
}
\setbeamertemplate{headline}
{
\pgfuseimage{wiki-header}
\vskip -1.5cm
\linethickness{0pt}
\framelatex{
\begin{beamercolorbox}[wd=\paperwidth,ht=0.3\beamer@headheight]{Title bar}
\usebeamerfont{section in head/foot}%
\insertsectionnavigationhorizontal{.1\textwidth}{\hskip 6.5cm}{}%
\end{beamercolorbox}}
\framelatex{
\begin{beamercolorbox}[wd=\paperwidth,ht=0.7\beamer@headheight]{Title bar}
\end{beamercolorbox}
}
}
\setbeamertemplate{footline}
{
\linethickness{0pt}
\framelatex{
\begin{beamercolorbox}[leftskip=.3cm,wd=\paperwidth,ht=0.3\beamer@headheight,sep=0.1cm]{Location bar}
\usebeamerfont{section in head/foot}%
\insertshortauthor~|~\insertshorttitle
\hfill
\insertframenumber/\inserttotalframenumber
\end{beamercolorbox}}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

@ -1,84 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="" company="" webLink="" view-date="2007-03-12" view-index="0" gantt-divider-location="316" resource-divider-location="301" version="2.0">
<description/>
<view zooming-state="default:6"/>
<!-- -->
<calendars>
<day-types>
<day-type id="0"/>
<day-type id="1"/>
<calendar id="1" name="default">
<default-week sun="1" mon="0" tue="0" wed="0" thu="0" fri="0" sat="1"/>
<overriden-day-types/>
<days/>
</calendar>
</day-types>
</calendars>
<tasks color="#8cb6ce">
<taskproperties>
<taskproperty id="tpd0" name="type" type="default" valuetype="icon"/>
<taskproperty id="tpd1" name="priority" type="default" valuetype="icon"/>
<taskproperty id="tpd2" name="info" type="default" valuetype="icon"/>
<taskproperty id="tpd3" name="name" type="default" valuetype="text"/>
<taskproperty id="tpd4" name="begindate" type="default" valuetype="date"/>
<taskproperty id="tpd5" name="enddate" type="default" valuetype="date"/>
<taskproperty id="tpd6" name="duration" type="default" valuetype="int"/>
<taskproperty id="tpd7" name="completion" type="default" valuetype="int"/>
<taskproperty id="tpd8" name="coordinator" type="default" valuetype="text"/>
<taskproperty id="tpd9" name="predecessorsr" type="default" valuetype="text"/>
</taskproperties>
<task id="20" name="Cronograma" color="#8cb6ce" meeting="false" start="2007-04-10" duration="5" complete="0" priority="1" expand="true">
<task id="0" name="Diagrama de Barras" color="#8cb6ce" meeting="false" start="2007-04-10" duration="5" complete="0" priority="2" expand="true"/>
<task id="1" name="Rede de Atividades" color="#8cb6ce" meeting="false" start="2007-04-10" duration="5" complete="0" priority="1" expand="true"/>
</task>
<task id="15" name="Entrega - Diagrama de Barras e Rede de Atividades" color="#8cb6ce" meeting="false" start="2007-04-16" duration="1" complete="0" priority="1" expand="true"/>
<task id="21" name="Engenharia de Requisitos" color="#8cb6ce" meeting="false" start="2007-04-19" duration="20" complete="0" priority="1" expand="true">
<task id="2" name="Estudo de Viabilidade" color="#8cb6ce" shape="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" meeting="false" start="2007-04-19" duration="10" complete="0" priority="1" expand="true"/>
<task id="16" name="Entrega - Estudo de Viabilidade" color="#8cb6ce" meeting="false" start="2007-05-02" duration="1" complete="0" priority="1" expand="true"/>
<task id="3" name="Especificação de Requisitos" color="#8cb6ce" meeting="false" start="2007-05-01" duration="12" complete="0" priority="1" expand="true"/>
<task id="17" name="Entrega - Especificação de Requisitos" color="#8cb6ce" meeting="false" start="2007-05-16" duration="1" complete="0" priority="1" expand="true"/>
</task>
<task id="4" name="Projeto da Aplicação" color="#8cb6ce" meeting="false" start="2007-05-17" duration="5" complete="0" priority="1" expand="true"/>
<task id="18" name="Entrega - Projeto de Aplicação" color="#8cb6ce" meeting="false" start="2007-05-23" duration="1" complete="0" priority="1" expand="true"/>
<task id="8" name="Treinamento" color="#8cb6ce" meeting="false" start="2007-04-17" duration="10" complete="0" priority="1" expand="true"/>
<task id="13" name="Implementação e Testes" color="#8cb6ce" meeting="false" start="2007-05-01" duration="40" complete="0" priority="1" expand="true">
<task id="9" name="Protótipo" color="#8cb6ce" meeting="false" start="2007-05-01" duration="10" complete="0" priority="1" expand="true"/>
<task id="10" name="Requisítos Essenciais" color="#8cb6ce" meeting="false" start="2007-05-15" duration="10" complete="0" priority="1" expand="true"/>
<task id="11" name="Requisítos Opcionais" color="#8cb6ce" meeting="false" start="2007-05-29" duration="10" complete="0" priority="1" expand="true"/>
<task id="12" name="Testes e Ajustes" color="#8cb6ce" meeting="false" start="2007-06-12" duration="10" complete="0" priority="1" expand="true"/>
<task id="19" name="Entrega - Projeto Final" color="#8cb6ce" meeting="false" start="2007-06-25" duration="1" complete="0" priority="1" expand="true"/>
</task>
<task id="23" name="Sprints" color="#8cb6ce" meeting="false" start="2007-05-01" duration="40" complete="0" priority="1" expand="true">
<task id="22" name="Sprint1" color="#8cb6ce" meeting="false" start="2007-05-01" duration="5" complete="0" priority="1" expand="true"/>
<task id="31" name="Entrega - Sprint1/ Definição - Sprint2" color="#8cb6ce" meeting="false" start="2007-05-07" duration="1" complete="0" priority="1" expand="true"/>
<task id="24" name="Sprint2" color="#8cb6ce" meeting="false" start="2007-05-08" duration="5" complete="0" priority="1" expand="true"/>
<task id="32" name="Entrega - Sprint2/ Definição - Sprint3" color="#8cb6ce" meeting="false" start="2007-05-14" duration="1" complete="0" priority="1" expand="true"/>
<task id="25" name="Sprint3" color="#8cb6ce" meeting="false" start="2007-05-15" duration="5" complete="0" priority="1" expand="true"/>
<task id="33" name="Entrega - Sprint3/ Definição - Sprint4" color="#8cb6ce" meeting="false" start="2007-05-21" duration="1" complete="0" priority="1" expand="true"/>
<task id="26" name="Sprint4" color="#8cb6ce" meeting="false" start="2007-05-22" duration="5" complete="0" priority="1" expand="true"/>
<task id="34" name="Entrega - Sprint4/ Definição - Sprint5" color="#8cb6ce" meeting="false" start="2007-05-28" duration="1" complete="0" priority="1" expand="true"/>
<task id="27" name="Sprint5" color="#8cb6ce" meeting="false" start="2007-05-29" duration="5" complete="0" priority="1" expand="true"/>
<task id="35" name="Entrega - Sprint5/ Definição - Sprint6" color="#8cb6ce" meeting="false" start="2007-06-04" duration="1" complete="0" priority="1" expand="true"/>
<task id="28" name="Sprint6" color="#8cb6ce" meeting="false" start="2007-06-05" duration="5" complete="0" priority="1" expand="true"/>
<task id="36" name="Entrega - Sprint6/ Definição - Sprint7" color="#8cb6ce" meeting="false" start="2007-06-11" duration="1" complete="0" priority="1" expand="true"/>
<task id="29" name="Sprint7" color="#8cb6ce" meeting="false" start="2007-06-12" duration="5" complete="0" priority="1" expand="true"/>
<task id="37" name="Entrega - Sprint7/ Definição - Sprint8" color="#8cb6ce" meeting="false" start="2007-06-18" duration="1" complete="0" priority="1" expand="true"/>
<task id="30" name="Sprint8" color="#8cb6ce" meeting="false" start="2007-06-19" duration="5" complete="0" priority="1" expand="true"/>
<task id="38" name="Entrega - Sprint8 " color="#8cb6ce" meeting="false" start="2007-06-25" duration="1" complete="0" priority="1" expand="true"/>
</task>
</tasks>
<resources>
<resource id="0" name="Adriano" function="Default:1" contacts="" phone=""/>
</resources>
<allocations/>
<vacations>
<vacation start="2007-04-15" end="2007-04-30" resourceid="0"/>
</vacations>
<taskdisplaycolumns>
<displaycolumn property-id="tpd3" order="0" width="107"/>
<displaycolumn property-id="tpd4" order="1" width="60"/>
<displaycolumn property-id="tpd5" order="2" width="58"/>
</taskdisplaycolumns>
<previous/>
<roles roleset-name="Default"/>
</project>

Binary file not shown.

@ -1,251 +0,0 @@
\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{Estudo de Viabilidade}}
\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
% ===================
% Título da Aplicação
% ===================
\section{Título da Aplicação}
Wiki UFC
% ======================
% Descrição da Aplicação
% ======================
\section{Descrição da Aplicação}
Sistema online colaborativo onde os alunos poderão compartilhar informações sobre
as disciplinas que estão cursando. Cada disciplina terá um espaço próprio, contendo
um Wiki (para receber notas de aulas), mural de mensagens (para os alunos serem
notificados sobre algum evento), calendário (contendo datas de provas, trabalhos, etc)
e um repositório de arquivos (contendo provas passadas, listas de exercícios, etc).
% =====================
% Objetivo da Aplicação
% =====================
\section{Objetivo da Aplicação}
Permitir que os alunos tenham acesso rápido e organizado a todo o material
disponibilizado pelos professores durante as aulas (incluindo listas de exercícios e
notas de aulas), e que se mantenham atualizados sobre quaisquer eventos da
disciplina.
% =============
% Justificativa
% =============
\section{Justificativa}
Atualmente, não há um local próprio para os alunos lerem e publicarem informações
sobre as disciplinas que estão cursando. Como conseqüência, muitos meios diferentes
são utilizados, como listas de emails, páginas web, ou, na maioria dos casos, o diálogo
boca-a-boca. O problema dessa abordagem é que, para o aluno, é muito difícil se
manter atualizado. Ele precisa acompanhar, constantemente, cada um desses meios,
ou corre o risco de perder alguma mensagem.
Para o material disponibilizado pelo professor, o problema é ainda maior: para
conseguir as notas de aula ou listas de exercícios de uma disciplina, geralmente o
aluno precisa tomar emprestado o material de um colega e pagar por fotocópias de
baixa qualidade, que serão descartadas ao término do semestre. Para conseguir
material de semestres passados, então, o processo é ainda mais complexo, se não
impossível, na maioria dos casos.
% ================
% Solução Proposta
% ================
\section{Solução Proposta}
O desenvolvimento de um sistema online onde os alunos possam ler e publicar
informações livremente, utilizando Ruby on Rails, um framework para
desenvolvimento Web na linguagem de programação interpretada Ruby.
% =====================
% Delimitação do Escopo
% ====================
\section{Delimitação do Escopo}
\subsection{O que será feito?}
Estão previstos quatro módulos principais
\begin{description}
\item[Wiki] Uma área textual livre editável por qualquer usuário do sistema, para conter as notas de aula de cada disciplina;
\item[Mural] Uma área para postagem de notícias sobre as disciplinas;
\item[Calendário] Para receber datas de provas e entregas de trabalhos;
\item[Repositório] Uma área para receber arquivos adicionais, tais como listas de exercícios e provas passadas.
\end{description}
\subsection{O que não será feito?}
Sendo um sistema voltado para o aluno, e não para o professor, não há planos sobre
implementar sistemas de entrega de trabalhos, aulas e avaliações online em tempo
real, nem qualquer recurso semelhante encontrado em outros softwares de e-learning.
% ==================
% Produtos Esperados
% ==================
\section{ Benefícios Esperados}
Entre os principais benefícios esperados estão:
\begin{description}
\item[Centralização]
As informações sobre todas as disciplinas estarão juntas em um local, então, para os alunos, será
mais fácil verificar em quais delas há novidades.
\item[Atualização]
Como qualquer aluno poderá publicar informações, é provável que o conteúdo esteja sempre bem
atualizado. Qualquer desatualização poderá ser rapidamente corrigida.
\item[Descentralização]
Para os alunos, o processo de publicação será descentralizado: ninguém será unicamente
responsável por manter o conteúdo no ar.
\end{description}
% ========
% Produtos
% ========
\section{Produtos}
\subsection{Produtos Intermediários}
A documentação completa do sistema, ou seja:
\begin{itemize}
\item Diagrama de barras e rede de atividades
\item Estudo de viabilidade
\item Especificação de requisitos
\item Projeto da aplicação
\end{itemize}
\subsection{Produto Final}
O sistema anteriormente descrito, com código-fonte e executável.
% ============
% Público Alvo
% ============
\section{Público Alvo}
O público alvo, a priori, são os alunos do curso de graduação do curso de Computação,
UFC. Posteriormente, este este público pode ser expandido para englobar tanto os
alunos de pós-graduação, quanto os alunos de outros cursos da UFC.
% ==========
% Restrições
% ==========
\section{Restrições}
As restrições podem ser divididas em dois grupos:
\subsection{Restrições de Projeto}
\begin{description}
\item[Prazo] A entrega do sistema deve ser efetuada até o dia 26 de junho de 2007.
\item[Marcos] Alguns marcos pré-estabelecidos pelo cliente devem ser seguidos.
\item[Equipe] A equipe será composta por no máximo cinco pessoas
\item[Público Alvo] O sistema será focado para atender as necessidades dos alunos.
\end{description}
\subsection{Restrições Técnicas}
\begin{description}
\item[Linguagem] A priori, a aplicação poderia apenas ser desenvolvida utilizando as linguagens Java ou PHP. Porém, foi negociado com o cliente o desenvolvimento utilizando a linguagem Ruby.
\item[Requisitos da Aplicação] O usuário necessitará de um browser recente com conexão à Internet.
\end{description}
% ============
% Alternativas
% ============
\section{Alternativas}
Como alternativa a algumas restrições e recursos requeridos temos:
\begin{itemize}
\item A negociação com cliente permitiu o desenvolvimento do sistema utilizando outra linguagem de programação, Ruby.
\item Os programadores utilizarão seus computadores pessoais, da universidade ou de LAN houses para fins de desenvolvimento.
\end{itemize}
% ===================
% Recursos Requeridos
% ===================
\section{Recursos Requeridos}
A aplicação será desenvolvida em plataforma web, utilizando o framework Ruby on
Rails. Os desenvolvedores necessitarão de computadores conectados a Internet para
desenvolvimento e upload/download das versões do sistema. Para os usuários, o único
software necessário será um browser recente, com conexão à Internet. Do lado do
servidor, a aplicação executará em um servidor web com suporte a Ruby, e em um
banco de dados qualquer.
Quanto aos recursos humanos, a equipe dispõe de cinco integrantes, sendo todos
desenvolvedores e um também gerente de projeto.
% ======
% Riscos
% ======
\section{Riscos}
\includegraphics[width=1.30\textwidth]{riscos.pdf}\\
% ==================
% Modelo de Processo
% ==================
\section{Modelo de Processo}
Para o desenvolvimento, será adotado a metodologia ágil Scrum.
\begin{itemize}
\item Um backlog será criado para manter a lista de tarefas pendentes do projeto;
\item Semanalmente, haverá uma reunião, na qual a equipe escolherá alguns itens do backlog para implementar durante o sprint;
\item Ao final de cada sprint, uma nova reunião será feita, onde cada participante irá apresentar trabalho que desenvolveu ao longo da semana.
\end{itemize}
\end{document}

Binary file not shown.

@ -1,439 +0,0 @@
\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}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,46 +0,0 @@
\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{Rede de Atividades e Diagrama de Barras}}
\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{Rede de Atividades}
\includegraphics[width=1.10\textwidth]{ActivityDiagram.pdf}
\pagebreak
\section{Diagrama de Barras}
\includegraphics[width=1.20\textwidth]{diagramaBarra.pdf}
\pagebreak
\end{document}

Binary file not shown.

@ -1,7 +0,0 @@
#!/bin/sh
src_code=$1
obj_name=`echo $1 | cut -d . -f 1`
echo "Gerando $obj_name"
jpeg2ps $src_code > $obj_name.eps
epstopdf $obj_name.eps
echo "Terminado"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.