/MDS_Material/03 - Ciclos de vida de software/modelo_ciclo_vida.tex

https://github.com/fga-eps-mds/A-Disciplina · LaTeX · 216 lines · 177 code · 30 blank · 9 comment · 0 complexity · f5ed167e14ee4b5d9527daa184be5531 MD5 · raw file

  1. \section{Crise de Software}
  2. \begin{frame}
  3. \frametitle{Crise de Software}
  4. \begin{itemize}
  5. \item Termo utilizado nos anos 1970
  6. %\pause
  7. \item Expressava as dificuldades do desenvolvimento de software frente ao
  8. \begin{itemize}
  9. \item rápido crescimento da demanda por software
  10. %\pause
  11. \item complexidade dos problemas a serem resolvidos
  12. %\pause
  13. \item inexistência de técnicas estabelecidas para o desenvolvimento de sistemas que funcionassem adequadamente
  14. \end{itemize}
  15. \end{itemize}
  16. \end{frame}
  17. \begin{frame}[fragile]
  18. \frametitle{Crise de Software \\ Exemplo - Código Quake III Arena}
  19. \begin{itemize}
  20. \item Implementação da raiz quadrada inversa
  21. \end{itemize}
  22. \begin{lstlisting}
  23. float Q_rsqrt( float number)
  24. {
  25. int i;
  26. float x2, y;
  27. const float threehalfs = 1.5F;
  28. x2 = number * 0.5F;
  29. y = number;
  30. i = * ( int * ) &y; // evil floating point bit level hacking
  31. i = 0x5f3759df - ( i >> 1 ); // what the f***?
  32. y = * ( float * ) &i;
  33. y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
  34. return y;
  35. }
  36. \end{lstlisting}
  37. \end{frame}
  38. \begin{frame}
  39. \frametitle{Resposta à Crise de Software}
  40. \begin{block}{Processo de Software}
  41. Abordagem sistemática, disciplinada e possível de
  42. ser medida para o desenvolvimento, operação e manutenção do software
  43. \end{block}
  44. \end{frame}
  45. \begin{frame}
  46. \frametitle{Processo de Software}
  47. \begin{block}{}
  48. Consiste em uma série de atividades, práticas, eventos, ferramentas e
  49. métodos que garantem, técnica e administrativamente que o software
  50. pode ser desenvolvido com qualidade e de maneira \textbf{organizada, disciplinada
  51. e previsível}
  52. \end{block}
  53. \end{frame}
  54. \begin{frame}
  55. \frametitle{Processo de Software}
  56. \frametitle{Fases do Processo de Software}
  57. \begin{figure}
  58. \includegraphics[width = \textwidth]{figs/fig20.png}
  59. \end{figure}
  60. \end{frame}
  61. \begin{frame}
  62. \frametitle{Requisitos}
  63. \begin{block}{}
  64. É o processo para estabelecer quais são as necessidades dos \textit{stakeholders} que devem ser solucionados pelo software
  65. \end{block}
  66. \begin{figure}
  67. \includegraphics[width = 0.5\textwidth]{figs/fig22.png}
  68. \end{figure}
  69. \end{frame}
  70. \begin{frame}
  71. \frametitle{Projeto (Design)}
  72. \begin{itemize}
  73. \item Atividades de projeto:
  74. \begin{itemize}
  75. \item Projeto da Arquitetura
  76. \item Especificação abstrata
  77. \item Projeto de Interface
  78. \item Projeto do Componente
  79. \item Estrutura de dados
  80. \item Projeto de Arquitetura
  81. \end{itemize}
  82. \end{itemize}
  83. \end{frame}
  84. \begin{frame}
  85. \frametitle{Projeto (Design)}
  86. \begin{itemize}
  87. \item Produtos do Projeto:
  88. \begin{itemize}
  89. \item Estrutura do Sistema
  90. \item Especificação de software
  91. \item Especificação de Interface
  92. \item Especificação do Componente
  93. \item Especificação da Estrutura de dados
  94. \item Especificação do Algoritmo
  95. \end{itemize}
  96. \end{itemize}
  97. \end{frame}
  98. \begin{frame}
  99. \frametitle{Implementação}
  100. \begin{itemize}
  101. \item Quatro pilares:
  102. \begin{itemize}
  103. \item Redução da Complexidade
  104. \item Antecipar diversidade
  105. \item Estruturar para validação
  106. \item Uso de padrões (interno/externo)
  107. \end{itemize}
  108. \end{itemize}
  109. \end{frame}
  110. \begin{frame}
  111. \frametitle{Verificação e Validação}
  112. \begin{itemize}
  113. \item \textbf{Validação}: construimos o sistema correto?
  114. \item \textbf{Verificação}: construimos o sistema corretamente?
  115. \end{itemize}
  116. \begin{figure}
  117. \includegraphics[width = 0.9\textwidth]{figs/fig23.png}
  118. \end{figure}
  119. \end{frame}
  120. \begin{frame}
  121. \frametitle{Manutenção}
  122. \begin{figure}
  123. \includegraphics[width =\textwidth]{figs/fig24.png}
  124. \end{figure}
  125. \end{frame}
  126. \begin{frame}
  127. \frametitle{Processo de Software}
  128. \begin{block}{Problema}
  129. Uma das \textbf{maiores dificuldades} encontradas pelas empresas
  130. de software é o \textbf{gerenciamento} de seus \textbf{processos de software}
  131. \end{block}
  132. \begin{block}{Solução}
  133. \textbf{Modelos de Processo de Software}
  134. \end{block}
  135. \end{frame}
  136. \section{Modelo de Processo}
  137. \begin{frame}
  138. \frametitle{Modelo de Processo}
  139. \begin{itemize}
  140. \item Escolhido de acordo com a natureza da aplicação e as características do projeto
  141. %\pause
  142. \item Corresponde ao que usualmente se chama de Ciclo de Vida (ISO 9000/3)
  143. %\pause
  144. \item vários de modelos de processo de software propostos
  145. \end{itemize}
  146. \end{frame}
  147. \begin{frame}
  148. \frametitle{Modelo de Processo}
  149. \begin{figure}
  150. \includegraphics[width = \textwidth]{figs/fig21.png}
  151. \end{figure}
  152. \end{frame}
  153. \begin{frame}
  154. \frametitle{Modelos de Processo de Software}
  155. \begin{itemize}
  156. \item O Modelo Sequencial Linear
  157. \begin{itemize}
  158. \item também chamado Modelo Cascata ou Ciclo de Vida Classico
  159. \end{itemize}
  160. %\pause
  161. \item O Paradigma de Prototipação
  162. %\pause
  163. \item O Modelo RAD (Rapid Application Development)
  164. %\pause
  165. \item Modelos Evolutivos de Processo de Software
  166. \begin{itemize}
  167. \item O Modelo Incremental
  168. \item O Modelo Espiral
  169. \item O Modelo de Montagem de Componentes
  170. \end{itemize}
  171. \end{itemize}
  172. \end{frame}
  173. \begin{frame}
  174. \frametitle{Modelos de Processo de Software}
  175. \begin{figure}
  176. \includegraphics[width = \textwidth]{figs/fig19.png}
  177. \end{figure}
  178. \end{frame}
  179. \section{Bibliografia}
  180. \begin{frame}
  181. \frametitle{Bibliografia Sugerida}
  182. \begin{itemize}
  183. \item "Construindo Software como Serviço (SaaS): Uma Abordagem Ágil Usando Computação em Nuvem" - Introdução
  184. \end{itemize}
  185. \end{frame}
  186. %