@ -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}
|
|
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 29 KiB |
@ -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}
|
|
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}}
|
|
||||||
}
|
|
||||||
|
|
Before Width: | Height: | Size: 176 KiB |
Before Width: | Height: | Size: 16 KiB |
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>
|
|
@ -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}
|
|
||||||
|
|
@ -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}
|
|
Before Width: | Height: | Size: 39 KiB |
@ -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}
|
|
@ -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"
|
|
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 29 KiB |