\documentclass{beamer}

\usepackage{graphicx}

\mode<presentation>

\usepackage[portuguese]{babel}
\usepackage{pifont}
\usepackage{xspace}
\usepackage{graphicx}
\usepackage{algorithm}
\usepackage{algorithmic}

\title{M\'{a}quinas de Estado Finitas}
\author{Fernando Magno Quint\~{a}o Pereira}
\date{\today}

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\section{Level 1}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 1}
Projete um algoritmo para controlar uma roleta. Por exemplo, a roleta de uma
esta\c{c}\~{a}o de Metr\^{o}.
\begin{itemize}
\item Quais eventos devem ser tratados?
\item Alguns eventos acontecem somente depois que outros houverem acontecido.
Algum exemplo?
\item Este algoritmo tem um in\'{i}cio, um meio e um fim, como a maior parte dos
algoritmos?
\item Qual a melhor forma de descrever este algoritmo?
\end{itemize}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Uma M\'{a}quina de Estados}
\begin{center}
\includegraphics[width=\linewidth]{images/uml_fsm_1}
\end{center}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 2}
\begin{enumerate}
\item Quais estados est\~{a}o sendo representados?
\item Quais eventos s\~{a}o tratados pela m\'{a}quina de estados anterior?
\item Que a\c{c}\~{o}es s\~{a}o desencadeadas por cada um destes eventos?
\end{enumerate}
\begin{itemize}
\item H\'{a} algum evento que n\~{a}o est\'{a} sendo tratado por esta
m\'{a}quina de estados?
\item Qual \'{e} o estado inicial? Como isto est\'{a} indicado?
\end{itemize}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Eventos anormais}
\begin{center}
\includegraphics[width=\linewidth]{images/uml_fsm_2}
\end{center}
\begin{itemize}
\item O que esta a\c{c}\~{a}o \texttt{Thankyou} faz realmente?
\item Algo que poderia ser melhorado neste projeto?
\end{itemize}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 3}
Como implementar a m\'{a}quina de estados abaixo?
\begin{center}
\includegraphics[width=\linewidth]{images/uml_fsm_2}
\end{center}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 3 -- Ainda...}
A m\'{a}quina deveria passar os seguintes testes:
\begin{center}
\includegraphics[width=\linewidth]{images/turnstileTests}
\end{center}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 4}
Caso algu\'{e}m tente arrombar a roleta, ent\~{a}o, em vez dela permaneder no
estado \texttt{Locked}, alguma a\c{c}\~{a}o deveria ser tomada.
Estenda a m\'{a}quina de estados de modo a lidar melhor com tal
situa\c{c}\~{a}o.
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Tentativa de arrombamento}
\begin{center}
\includegraphics[width=\linewidth]{images/uml_fsm_3}
\end{center}
Qual a diferen\c{c}a entre os eventos \texttt{Reset} e \texttt{Ready}?
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 5}
\'{E} conveniente que o nosso sistema possua um modo de diagn\'{o}stico, isto
\'{e}, um modo de opera\c{c}\~{a}o em que um t\'{e}cnico conseguisse testar
cada uma das fun\c{c}\~{o}es da roleta.
\begin{enumerate}
\item Que eventos precisam ser testados?
\item Que estados existiriam no modo de testes?
\item Como seriam os eventos de teste? Em outras palavras, como poder\'{i}amos
representar estes testes?
\item Como entrar\'{i}amos no modo de diagn\'{o}sticos?
\item E como sair\'{i}amos dele?
\end{enumerate}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Modo de diagn\'{o}stico}
\begin{center}
\includegraphics[scale=0.6]{images/uml_fsm_4}
\end{center}
\end{frame}

\end{document}
