\documentclass{beamer}

\usepackage{pifont}
\usepackage{xspace}
\usepackage{graphicx}
\usepackage{algorithm}
\usepackage{algorithmic}

\begin{document}

\title{Princ\'{i}pios do Projeto de Classes}

\author{Fernando Magno Quint\~{a}o Pereira}

\maketitle

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 1 -- OCP}
A companhia de brinquedos \textit{Toy Inc.} precisa de um sistema para
controlar sua folha de pagamento.
Esta companhia possui tr\^{e}s categorias de funcion\'{a}rios: gerentes, vigias
e demais funcion\'{a}rios.
O sal\'{a}rio de cada tipo de funcion\'{a}rio \'{e} calculado pela seguinte
form\'{u}la:
\begin{itemize}
\item Se o funcion\'{a}rio pertence \`{a} categoria demais funcion\'{a}rio,
ent\~{a}o seu sal\'{a}rio \'{e} igual ao n\'{u}mero de horas trabalhadas
multiplicado por R\$ 12,00.
\item Se o funcion\'{a}rio pertence \`{a} categoria vigia, ent\~{a}o seu
sal\'{a}rio \'{e} igual ao n\'{u}mero de horas trabalhadas
multiplicado por R\$ 16,00 mais R\$ 80,00 vezes o fator de periculosidade.
Este \'{e} um valor entre 1.0 e 10.0.
\item Se o funcion\'{a}rio pertence \`{a} categoria gerente, ent\~{a}o seu
sal\'{a}rio \'{e} igual ao n\'{u}mero de horas trabalhadas multiplicado por
R\$ 20,00, mais R\$ 100,00 vezes o n\'{u}mero de funcion\'{a}rios
subordinados a ele.
\end{itemize}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 2 -- OCP}
A nossa companhia {\em Toy Inc.} acaba de definir um quarto tipo de
funcion\'{a}rio: trata-se do {\em funcion\'{a}rio super-produtivo}.
Este tipo de funcion\'{a}rio tamb\'{e}m recebe pela hora trabalhada, por\'{e}m
ele ganha um pouco mais: R\$ 18,00 por hora, mais uma bonifica\c{c}\~{a}o de
R\$ 80,00.
Que modifica\c{c}\~{o}es precisam ser feitas sobre o software para tratar
este novo tipo de empregado?
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 3 -- OCP}
S\~{a}o tempos de crise... {\em Toy Inc.} est\'{a} passando um aperto, e
\'{e} preciso priorizar:
Empregados super-produtivos precisam receber primeiro.
E se houver dinheiro sobrando, ent\~{a}o a empresa paga os demais
funcion\'{a}rios.
Escrever o m\'{e}todo \texttt{getLuckyList} que deve receber,
al\'{e}m da cole\c{c}\~{a}o de funcion\'{a}rios, tamb\'{e}m um total de
dinheiro que pode ser gasto em seu pagamento, e retorne a lista dos empregados
que ser\~{a}o pagos.
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 4 -- OCP}
Ser\'{a} que \'{e} poss\'{i}vel garantir o fechamento contra
ordena\c{c}\~{a}o?
Ser\'{a} que a cria\c{c}\~{a}o de um novo tipo de funcion\'{a}rio sempre
nos for\c{c}ar\'{a} a ter de modificar o m\'{e}todo que paga os
funcion\'{a}rios em ordem?
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 5 -- OCP}
Eu gostaria de contar o n\'{u}mero de guardas na folha de pagamento.
Neste caso vale a pena usar introspec\c{c}\~{a}o.
Isto contraria o princ\'{i}pio da abertura-fechamento?
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 6 -- LSP}
Utilize os dois m\'{o}dulos abaixo para implementar uma classe \texttt{Square}.
\begin{center}
\includegraphics[scale=0.85]{images/rectangle}
\end{center}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 7 -- LSP}
Como lidar com um programa deste tipo?
\begin{center}
\includegraphics[scale=0.8]{images/testRect}
\end{center}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 8 -- LSP}
Lembra-se da nossa classe \texttt{MyList} da \'{u}ltima aula?
Estenda esta classe para que ela passe a ter acesso persistente.
Isto \'{e}, ela deve sempre salvar os dados armazenados em um arquivo.
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Quest\~{a}o 9 -- LSP}
Algum problema neste programa?
\begin{center}
\includegraphics[scale=0.8]{images/LSP_TreeSet}
\end{center}
\end{frame}

\end{document}
