\documentclass[10pt,a4paper]{article}
\usepackage[galician]{babel}
\usepackage[utf8]{inputenc}
\usepackage[dvips,final]{epsfig}
\author{Esteban Paz Freire}
\title{Análise de requisitos do sitema de software do Keniata}

\begin{document}
\maketitle
\tableofcontents

\section{Funcionalidades}
O programa consiste en automatizar as tarefas de xestión de ligas de football.\\

As tarefas a automatizar son as seguintes:
\begin{enumerate}
	\item Xestión de resultados.
	\item Xestión de xogadores.
	\item Xestión de sancións.
	\item Creación de calendario.
\end{enumerate}

\subsection{Configuración dunha liga}
\begin{itemize}
	\item Divisións.
	\item Lugares de xogo.
	\item Equipos de cada liga e división.
	\item Xogadores deses equipos.
	\item Horarios de partidos.
	\item Duración dun partido.
	\item Tipo e prezo das sancións.
	\item Límite de xogadores por equipo.
	\item Límite de altas e baixas por tempada dun xogador.
	\item Prazos de altas e baixas.
\end{itemize}

\section{Interface}
O idioma empregado na interface será o castelán, non obstante será facilmente traducíbel ou incrementable a variedade de idiomas en posibles versións futuras.

\section{Acesibilidade}
Existirán tres tipos de acesos:
\begin{description}
	\item{Administradores da liga} Terán aceso ás fichas dos xogadores, ós equipos, ós resultados, ós árbitros e ás opcións da liga.
	\item{Árbitros} Podrán modificar soamente os resultados dos partidos que ten asinados e soamente durante un periodo de tempo dende a data do partido.
	\item{Visitantes anónimos} Non podrán modificar nada, soamente podrán observar algunha información, diferentes listados e estadísticas da liga.
\end{description}
Véxase \ref{fig:casos_de_uso}.
\begin{figure} [hp]
\begin{center}
\includegraphics [width = \textwidth, height = \textheight] {casos_de_uso}
\caption{Diagrama de casos de uso}
\label{fig:casos_de_uso}
\end{center}
\end{figure}

\section{Base de datos}
\subsection{Diagrama Entidade-Relación}
Véxase \ref{fig:ER}.
\begin{figure} [hp]
\begin{center}
\includegraphics [angle = 90, width = \textwidth, height = \textheight] {db_schema}
\caption{Entidad-Relación}
\label{fig:ER}
\end{center}
\end{figure}

\subsection{Diccionario de datos}
As relacións entre as tablas da base de datos non son descritas aquí, soamente son descritos os atributos propios de cada táboa.

\subsubsection{Liga (league)}
\paragraph{- Nome da liga}
\begin{description}
	\item[Abreviatura:] name-lgue.
	\item[Dominio:] Nome da liga. Por exemplo ``Xunqueira Beach''.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Linguaxe libre.
	\item[Lingua:] Lingua do documento.
	\item[Controis de validación:] Non pode quedar valeiro.
\end{description}

\subsubsection{División (division)}
\paragraph{- Nome da división}
\begin{description}
	\item[Abreviatura:] name-dvsn.
	\item[Dominio:] Nome da división. Por exemplo ``1ª Primeira División''.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Linguaxe libre.
	\item[Lingua:] Lingua do documento.
	\item[Controis de validación:] Non pode quedar valeiro.
\end{description}

\subsubsection{Tempada (season)}
\paragraph{- Nome da tempada}
\begin{description}
	\item[Abreviatura:] name-ssn.
	\item[Dominio:] Nome da tempada. Por exemplo ``Tempada 2007-2008''.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Linguaxe libre.
	\item[Lingua:] Lingua do documento.
	\item[Controis de validación:] Non pode quedar valeiro.
\end{description}
\paragraph{- Data de inicio da tempada}
\begin{description}
	\item[Abreviatura:] date-start-ssn.
	\item[Dominio:] Data de inicio da tempada.
	\item[Tipo:] Data.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Data.
	\item[Lingua:] Data.
	\item[Controis de validación:] Non pode quedar valeiro. Ten que ser anterior á data de fin.
\end{description}
\paragraph{- Data de fin da tempada}
\begin{description}
	\item[Abreviatura:] date-end-ssn.
	\item[Dominio:] Data de fin da tempada.
	\item[Tipo:] Data.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Data.
	\item[Lingua:] Data.
	\item[Controis de validación:] Non pode quedar valeiro. Ten que ser posterior á data de fin.
\end{description}

\subsubsection{Xornada (round)}
\paragraph{- Número de xornada}
\begin{description}
	\item[Abreviatura:] num-rnd.
	\item[Dominio:] Número da xornada. Por exemplo ``18''.
	\item[Tipo:] Numérico.
	\item[Tratamiento indexación:] Indexado.
	\item[Tratamiento documental:] Número.
	\item[Controles de validación:] Non pode quedar valeiro. Maior de 0. Secuencia.
\end{description}
\paragraph{- Data de inicio da xornada}
\begin{description}
	\item[Abreviatura:] date-start-rnd.
	\item[Dominio:] Data de inicio da xornada.
	\item[Tipo:] Data.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Data.
	\item[Lingua:] Data.
	\item[Controis de validación:] Non pode quedar valeiro. Ten que estar entre as datas da tempada. Non pode quedar no medio das datas doutra xornada. Ten que ser anterior á data de fin de xornada.
\end{description}
\paragraph{- Data de fin da xornada}
\begin{description}
	\item[Abreviatura:] date-end-rnd.
	\item[Dominio:] Data de fin da xornada.
	\item[Tipo:] Data.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Data.
	\item[Lingua:] Data.
	\item[Controis de validación:] Non pode quedar valeiro. Ten que estar entre as datas da tempada. Non pode quedar no medio das datas doutra xornada. Ten que ser posterior á data de inicio de xornada.
\end{description}

\subsubsection{Horario (schedule)}
\paragraph{- Data de inicio dun horario de xogo}
\begin{description}
	\item[Abreviatura:] date-start-schdle.
	\item[Dominio:] Data de inicio dun posíbel partido.
	\item[Tipo:] Data.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Data.
	\item[Controis de validación:] Non pode quedar valeiro. Debe estar comprendido entre as datas de inicio e fin da xornada. Ten que ser anterior á data de fin. Non pode solaparse o espazo temporal comprendido entre a data de inicio e a data de fin para un mesmo lugar.
\end{description}
\paragraph{- Data de fin dun horario de xogo}
\begin{description}
	\item[Abreviatura:] date-end-schdle.
	\item[Dominio:] Data de inicio dun posíbel partido.
	\item[Tipo:] Data.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Data.
	\item[Controis de validación:] Non pode quedar valeiro. Debe estar comprendido entre as datas de inicio e fin da xornada. Ten que ser posterior á data de inicio. Non pode solaparse o espazo temporal comprendido entre a data de inicio e a data de fin para un mesmo lugar.
\end{description}

\subsubsection{Campo de xogo (pitch)}
\paragraph{- Nome do campo}
\begin{description}
	\item[Abreviatura:] name-ptch.
	\item[Dominio:] Nome do campo de xogo. Por exemplo ``Keniata 1''.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Texto libre.
	\item[Controis de validación:] Non pode estar valeiro.
\end{description}
\paragraph{- Dirección do campo}
\begin{description}
	\item[Abreviatura:] addrss-ptch.
	\item[Dominio:] Dirección do campo de xogo.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Texto libre.
	\item[Controis de validación:] Ningún.
\end{description}
\paragraph{- Descripción do campo}
\begin{description}
	\item[Abreviatura:] descript-ptch.
	\item[Dominio:] Descripción do campo de xogo.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Texto libre.
	\item[Controis de validación:] Ningún.
\end{description}

\subsubsection{Árbitro (referee)}
\paragraph{- DNI}
\begin{description}
	\item[Abreviatura:] dni-rfree.
	\item[Dominio:] DNI do árbitro.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] 8 números e unha letra de control.
	\item[Controis de validación:] Non pode estar valeiro.
\end{description}
\paragraph{- Nome}
\begin{description}
	\item[Abreviatura:] name-rfree.
	\item[Dominio:] Nome do árbitro.
	\item[Tipo:] Alfabético.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Texto libre.
	\item[Controis de validación:] Non pode estar valeiro.
\end{description}
\paragraph{- Apelidos}
\begin{description}
	\item[Abreviatura:] surname-rfree.
	\item[Dominio:] Apelidos do árbitro.
	\item[Tipo:] Alfabético.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Texto libre.
	\item[Controis de validación:] Ningún.
\end{description}
\paragraph{- Foto}
\begin{description}
	\item[Abreviatura:] photo-rfree.
	\item[Dominio:] Foto do árbitro.
	\item[Tipo:] Datos.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Resolución tañamo carnet.
	\item[Controis de validación:] Ningún.
\end{description}
\paragraph{- Anotacións}
\begin{description}
	\item[Abreviatura:] notes-rfree.
	\item[Dominio:] Anotacións sobre o árbitro.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Ningún.
\end{description}

\subsubsection{Partido (game)}
\paragraph{- Anotacións}
\begin{description}
	\item[Abreviatura:] notes-game.
	\item[Dominio:] Típicamente as observacións da acta.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Ningún.
\end{description}

\subsubsection{Xogador (gamer)}
\paragraph{- DNI}
\begin{description}
	\item[Abreviatura:] dni-gmr.
	\item[Dominio:] DNI do xogador.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] 8 números e unha letra de control.
	\item[Controis de validación:] Non pode estar valeiro.
\end{description}
\paragraph{- Número de ficha}
\begin{description}
	\item[Abreviatura:] num-card-gmr.
	\item[Dominio:] Número de ficha do xogador.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] 4 números.
	\item[Controis de validación:] Non pode estar valeiro e debe ser único.
\end{description}
\paragraph{- Nome}
\begin{description}
	\item[Abreviatura:] name-gmr.
	\item[Dominio:] Nome do xogador.
	\item[Tipo:] Alfabético.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Texto libre.
	\item[Controis de validación:] Non pode estar valeiro.
\end{description}
\paragraph{- Apelidos}
\begin{description}
	\item[Abreviatura:] surname-gmr.
	\item[Dominio:] Apelidos do xogador.
	\item[Tipo:] Alfabético.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Texto libre.
	\item[Controis de validación:] Ningún.
\end{description}
\paragraph{- Foto}
\begin{description}
	\item[Abreviatura:] photo-gmr.
	\item[Dominio:] Foto do xogador.
	\item[Tipo:] Datos.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Resolución tañamo carnet.
	\item[Controis de validación:] Ningún.
\end{description}
\paragraph{- Teléfono}
\begin{description}
	\item[Abreviatura:] phone-gmr.
	\item[Dominio:] Teléfono de contacto do xogador.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Caracteres permitidos +, 0-9 e espacios. Lonxitude delimitada por un teléfono válido.
\end{description}
\paragraph{- Anotacións}
\begin{description}
	\item[Abreviatura:] notes-gmr.
	\item[Dominio:] Anotacións sobre o xogador.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Ningún.
\end{description}

\subsubsection{Equipo (team)}
\paragraph{- Nome}
\begin{description}
	\item[Abreviatura:] name-team.
	\item[Dominio:] Nome do equipo.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Único (case no sensitive).
\end{description}

\subsubsection{Tipo de sanción (sanction type)}
\paragraph{- Chave}
\begin{description}
	\item[Abreviatura:] type-snctn.
	\item[Dominio:] Chave da sanción (ex.: A1).
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Único (case no sensitive).
\end{description}
\paragraph{- Descripción (breve)}
\begin{description}
	\item[Abreviatura:] dscrptn-snctn.
	\item[Dominio:] Breve descripción.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Número de caracteres delimitado.
\end{description}
\paragraph{- Prezo}
\begin{description}
	\item[Abreviatura:] price-snctn.
	\item[Dominio:] Prezo da sanción.
	\item[Tipo:] Decimal.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Asúmese en euros.
	\item[Controis de validación:] Enteiro con dous decimais.
\end{description}
\paragraph{- Anotacións}
\begin{description}
	\item[Abreviatura:] notes-snctn.
	\item[Dominio:] Anotacións.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Número de caracteres delimitado.
\end{description}

\subsection{Datos da lóxica de negocios}
Esta entidade será empregada para gardar a configuración do programa.

\subsubsection{Configuración (configuration)}
\paragraph{- Nome}
\begin{description}
	\item[Abreviatura:] name-conf.
	\item[Dominio:] Nome da configuración.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Indexado.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Soamente a-z e _.
\end{description}
\paragraph{- Valor}
\begin{description}
	\item[Abreviatura:] vlue-conf.
	\item[Dominio:] Valor da configuración.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Tamaño delimitado.
\end{description}
\paragraph{- Anotacións}
\begin{description}
	\item[Abreviatura:] notes-conf.
	\item[Dominio:] Anotacións da configuración.
	\item[Tipo:] Alfanumérico.
	\item[Tratamento indexación:] Ningún.
	\item[Tratamento documental:] Ningún.
	\item[Controis de validación:] Tamaño delimitado.
\end{description}

\subsection{Niveis de aceso}
Esta entidade será empregada para configurar os diferentes niveis de aceso ó 


\section{Creación de calendario}
É necesario definir os horarios de xogo e lugares para cada xornada, xa que é o comité da liga o que decide que días se xogan cada xornada.

\section{TODO}
- cada tarxeta son 50 centimos de debeda para o equipo
- fichas imprimibles
- buscador de xogadores
- nome non se pode repetir
- 17 altas de equipo como maximo (poder varialo)
- historial de altas e baixas con data e tempada
- máximo 2 altas e duas baixas por tempada en data concreta
- lista sancionados
- horas distintas
- 1 - 2 - 3 divisi

\end{document}