%%% $Id: interaction.tex,v 1.3 2008-04-10 08:25:13 pmrsa Exp $
%%% $Author: pmrsa $

\section{Descrição Geral da Interface}
\label{sec:interaction}

Nesta secção descrevem-se alguns aspectos gerais da interface de
utilizador. A interacção com a ferramenta organiza-se em duas
perspectivas, a perspectiva 'Planning' e a perspectiva de 'Java' ou
'Java EE' (dependendo do tipo de projectos).

A perspectiva 'Planning' tem como objectivo suportar as operações de
criação de histórias e tarefas, bem como o seu planeamento. Na
perspectiva de Java, já existente, apenas se acrescenta a vista 'Task
List' que contém as tarefas a implementar pelo utilizador em sessão.

A perspectiva 'Planning' é composta pelas seguintes vistas:
'Planning', 'Task List', e 'Task Repositories'.

\subsection{Vista Projects}
\label{sec:vista-projects}

A vista 'Projects' mostra os vários projectos (apenas um no contexto
de ES) a que o utilizador que está em sessão está associado. Não
havendo repositório configurado esta vista não tem nada para mostrar,
e não permite criar nada.

Um projecto estará associado a um utilizador, (e consequentemente
visível na vista Projects), se esse utilizador for membro de pelo
menos uma das equipas do projecto. Nesta vista considera-se que os
projectos são compostos por equipas, as equipas por releases, e as
releases por iterações.

Na parte superior da vista estão os projectos e os seus sub-elementos
até ao nível da iteração, na parte inferior estarão as histórias e
tarefas associadas ao elemento seleccionado na parte superior.

\subsection{Vista Task List}
\label{sec:vista-task-list}

A vista 'Task List' mostra as tarefas para o utilizador em sessão. As
tarefas presentes nesta vista, ou foram criadas pelo utilizador em
sessão, ou foram importadas do servidor através de uma Query. O
mecanismo de Queries, e os restantes detalhes de utilização desta
vista serão detalhados mais à frente.

\subsection{Editores}
\label{sec:editors}

Além das vistas descritas, a ferramenta disponibiliza um editor para
cada um dos principais elementos utilizados, nomeadamente: projectos,
equipas, releases, iterações, histórias, e tarefas. Estes editores têm
vários aspectos comuns que serão aqui descritos. A figura
\ref{fig:editor-example} mostra um exemplo de editor de uma iteração.

\begin{figure}[!h]
  \centering
  \includegraphics[width=.9\textwidth]{images/common}
  \caption{Exemplo de um editor na ferramenta Agile}
  \label{fig:editor-example}
\end{figure}

Neste exemplo foram identificadas e numeradas as funcionalidades que
são comuns. Segue-se uma descrição de cada uma:
\begin{itemize}
\item[1)] Toolbar: Nesta barra de ferramentas existe um conjunto de
  operações comuns e algumas específicas do tipo de editor aberto. As
  comuns são:
  \begin{itemize}
  \item Delete - permite apagar o elemento e todos os elementos
    dependentes. O conceito de 'dependente' é bastante intuitivo, na
    prática considera-se que todos elementos abaixo na árvore da vista
    'Projects', são dependentes. Se por exemplo se apagar uma equipa,
    as suas releases e iterações serão também apagadas (mas não os
    membros, ou as histórias)\footnote{Se uma release/iteração tiver
      histórias estas deixam de estar associadas à release/iteração,
      mas mantêm a sua ligação ao projecto}. Além disto, falta referir
    que nenhum elemento pode ser apagado se já tiver sido iniciado, ou
    seja, uma tarefa na qual já tenha sido reportado trabalho, não
    pode ser apagada.
  \item Save - grava as alterações no servidor, esta operação é
    equivalente à acção global de 'Save' de um editor que por omissão
    está associada ao 'ctrl+s'.
  \item Para além destas duas acções existem acções de criação de
    sub-elementos, nomeadamente, no editor de projectos a toolbar
    permite a criação de histórias e equipas, no editor de equipas
    permite-se a criação de releases, no editor de releases permite-se
    a criação de iterações e assim sucessivamente.
  \end{itemize}
\item[2)] Nome: Aqui pode-se editar o nome do elemento, o nome deve
  ser único para elementos do mesmo tipo e no contexto em que está
  inserido. Permite-se, por exemplo, que duas iterações de releases
  diferentes tenham o mesmo nome.
\item[3)] Owner: O owner é a pessoa responsável pelo elemento, e a
  única com permissões para o apagar.
\item[4)] Esta área apresenta informação não editável sobre o
  elemento. Comum a todos existe um ID único, uma data de criação e a
  data da última modificação. Para as tarefas existe também o estado e
  a prioridade.
\item[5)] Path: Aqui são mostrados um conjunto de links que permites
  abrir os editores dos elementos ao qual o item pertence.
\item[6)] Description: A descrição é um texto livre que descreve o
  elemento, no caso da história este campo é especialmente relevante
  porque é aqui que se descreve a funcionalidade a implementar.
\item[7)] Comments: Esta secção é um pequeno e rudimentar fórum de
  discussão associado ao elemento. No caso de histórias e tarefas pode
  ser um importante elemento de comunicação entre os elementos da
  equipa.
\end{itemize}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "manual"
%%% End: 
