PageRenderTime 106ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/Articles/OPENCERT2011/More/slide_show/slides.tex

https://github.com/regedor/Master-Thesis
LaTeX | 235 lines | 176 code | 40 blank | 19 comment | 0 complexity | 5553c604c4e868b6044b90adaf80b167 MD5 | raw file
  1. \documentclass{beamer}
  2. \usepackage{color}
  3. \usepackage{pgf}
  4. \usepackage{amsmath,amssymb,amsfonts}
  5. \usepackage[english]{babel}
  6. \usepackage[utf8]{inputenc}
  7. \usepackage{url}
  8. \usepackage{listings}
  9. \usepackage{eurosym}
  10. \usepackage{float}
  11. \usepackage{multicol}
  12. \usepackage{multirow}
  13. \usepackage{threeparttable}
  14. \newcommand{\mr}[2]{\multirow{#1}{*}{#2}}
  15. \definecolor{darkgreen}{rgb}{0,0.7,0}
  16. \definecolor{darkred}{RGB}{177,51,60}
  17. \usetheme{Warsaw}
  18. \setbeamercolor{frametitle}{bg=darkred}
  19. \setbeamercolor{block title}{bg=darkred}
  20. \setbeamercolor{title}{bg=darkred}
  21. \setbeamertemplate{headline}{}
  22. \setbeamercolor{structure}{fg=darkred}
  23. \setbeamertemplate{navigation symbols}{}
  24. \setbeamertemplate{footline}
  25. {
  26. \makebox[1\paperwidth][c] % full-width center-aligned box
  27. \makebox[1\paperwidth][r] % full-width right-aligned box
  28. {\insertframenumber{} / \inserttotalframenumber \hspace{5px}}
  29. \vspace{5px}
  30. }
  31. \setbeamertemplate{itemize items}[default]
  32. \setbeamertemplate{enumerate items}[default]
  33. \title[The Role of Best Practices in Assessing Software Quality]{The Role of Best Practices in Assessing Software Quality}
  34. \institute{University of Minho}
  35. \author[Miguel Regedor]{\textbf{Miguel Regedor}, Pedro Rangel Henriques, Daniela da Cruz}
  36. \date{5th International Workshop on Foundations and Techniques for \\ Open Source Software Certification \\ Montevideo, Uruguay, 14-15 November 2011}
  37. \begin{document}
  38. \begin{frame}[plain]
  39. \begin{center}
  40. %\pgfimage[width=0.30\textwidth]{img/bglogo}
  41. \maketitle
  42. \end{center}
  43. \end{frame}
  44. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  45. %
  46. %\begin{frame}{Tabel of Contents}\small{\tableofcontents[currentsection,hideallsubsections]}\end{frame}
  47. %\section{Context/Motivation}
  48. \frame{\frametitle{Context: OSS}
  49. Nowadays, Open Source Software is disseminated as a natural practice among SW developers
  50. \begin{block}{Open Source Projects}
  51. \begin{itemize}
  52. \item Android
  53. \item Apache
  54. \item Mozilla Firefox
  55. \item Open Office
  56. \item Ubuntu
  57. \end{itemize}
  58. \end{block}
  59. }
  60. %\section{Context/Motivation}
  61. \frame{\frametitle{Context: OSS}
  62. \begin{itemize}
  63. \item Thousands of Open Source SW packages can be found online and free to download
  64. \item Open Source Project Hosting Web Sites
  65. \end{itemize}
  66. \tiny{\begin{table}
  67. \begin{tabular}{|c|c|c|c|c|c|} \hline
  68. Name & Established & Available VCS & Users & Projects & Alexa rank \\\hline
  69. \mr{5}{SourceForge} &\mr{5}{1999} &CVS &\mr{5}{2,000,000} &\mr{5}{236,319} &\mr{5}{136} \\
  70. & &SVN & & & \\
  71. & &Bazar & & & \\
  72. & &GIT & & & \\
  73. & &Mercurial & & & \\\hline
  74. \mr{1}{\textbf{GitHub}} &\mr{1}{2008} &GIT &\mr{1}{505,000} &\mr{1}{1,516,000} &\mr{1}{742} \\\hline
  75. \mr{2}{Google Code } &\mr{2}{2006} &SVN &\mr{2}{?} &\mr{2}{250,000} &\mr{2}{900} \\
  76. & &Mercurial & & & \\\hline
  77. \mr{3}{Code Plex} &\mr{3}{2006} &SVN &\mr{3}{151,782} &\mr{3}{15.955} &\mr{3}{2,343} \\
  78. & &Microsoft TFS & & & \\
  79. & &Mercurial & & & \\\hline
  80. \mr{2}{Assembla} &\mr{2}{2006} &SVN &\mr{2}{180,000} &\mr{2}{60,000} &\mr{2}{6,628} \\
  81. & &GIT & & & \\\hline
  82. \mr{1}{Launchpad} &\mr{1}{2005} &Bazar &\mr{1}{1,140,345} &\mr{1}{19,016} &\mr{1}{12,466} \\\hline
  83. \mr{4}{BerliOS} &\mr{4}{2000} &CVS &\mr{4}{47,285} &\mr{4}{5,448} &\mr{4}{17,299} \\
  84. & &SVN & & & \\
  85. & &GIT & & & \\
  86. & &Mercurial & & & \\\hline
  87. \mr{1}{Bitbucket} &\mr{1}{2008} &Mercurial &\mr{1}{51,600} &\mr{1}{27,769} &\mr{1}{12,047} \\\hline
  88. \mr{1}{Gitorious} &\mr{1}{2008} &GIT &\mr{1}{?} &\mr{1}{8,336} &\mr{1}{28,531} \\\hline
  89. \end{tabular}
  90. \end{table}}
  91. }
  92. %\section{Context/Motivation}%\section{Context/Motivation}
  93. \frame{\frametitle{Context: OSS quality}
  94. % Can Open Source Software be trusted as a high quality product?
  95. %
  96. We need to be confident in a SW Project developed under this framework!\\
  97. So, we search for an answer to the question:\\
  98. \begin{center}
  99. \emph{How can the quality of an OSS Project be measured?}
  100. \end{center}
  101. }
  102. \frame{\frametitle{Motivation}
  103. In this context, we propose to consider the role of \emph{best practices in SW development}\\
  104. \begin{center}to improve the quality assessment of an OSS Project\end{center}
  105. }
  106. %\begin{frame}{Topics}
  107. %\thispagestyle{empty}
  108. %\small{\tableofcontents[hideallsubsections]}
  109. %\end{frame}
  110. \section{Open Source Software}
  111. \frame{\frametitle{Open Source Software}
  112. \begin{itemize}
  113. \item Open Source Software(OSS) packages can be found in public web-based repositories
  114. \item OSS is not only used by computer specialists
  115. \item Open Source can be now considered the largest software industry in the world involving billions of dollars.
  116. \end{itemize}
  117. }
  118. \frame{\frametitle{OSS: Development Process}
  119. \begin{center}Development Process\end{center}
  120. }
  121. \frame{\frametitle{OSS: Development Process}
  122. Open Source communities work in a \textit{bazaar style}
  123. \begin{block}{Traditional Software Development Process}
  124. \begin{itemize}
  125. \item Similar to building cathedrals; like an orchestra.
  126. \item Few specialized individuals working in controlled and closed environment
  127. \end{itemize}
  128. \end{block}
  129. \begin{block}{Open Source Development Process}
  130. \begin{itemize}
  131. \item Chaotic way
  132. \item Resemble a great babbling \textit{bazaar}.
  133. \end{itemize}
  134. \end{block}
  135. }
  136. \frame{\frametitle{OSS: Quality}
  137. Can software that is developed in such chaotic way be \textbf{trusted} as a high quality product?
  138. \begin{block}{~}
  139. The shock is that in fact the \textit{bazaar style} seems to work !
  140. \end{block}
  141. However, it is mandatory to create a method to measure the quality of the OSS Projects (OSSP)
  142. }
  143. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  144. %% Assessing Open Source Software
  145. \section{Assessing Open Source Software}
  146. \frame{\frametitle{Measuring OSS Quality}
  147. An obvious answer is to apply traditional SW-Metrics to OSSPs.\\
  148. This implies
  149. \begin{itemize}
  150. \item to elect a set of SW characteristics that impact in the product quality
  151. \item to define a formula to associate with each one a numerical value
  152. \item to learn how to read those values to make statements about the quality
  153. \end{itemize}
  154. However, we want to go further, and measure how programmers comply with the best practices.
  155. }
  156. \frame{\frametitle{(Traditional) Software Characteristics}
  157. \small{\begin{block}{ISO/IEC 912 software quality attributes}
  158. \begin{itemize}
  159. \item {\bf Functionality } (meeting of the functional requirements)
  160. \item {\bf Reliability } (fault tolerance and recoverability)
  161. \item {\bf Usability } (effort to learn, and operate the software)
  162. \item {\bf Efficiency } (performance and resource consumption)
  163. \item {\bf Maintainability } (effort to modify the software)
  164. \item {\bf Portability } (effort to transfer to another environment)
  165. \end{itemize}
  166. \end{block}}
  167. }
  168. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  169. %% Software Metrics
  170. %\section{Software Metrics}
  171. \frame{\frametitle{(Traditional) Software Metrics}
  172. \begin{itemize}
  173. \item Lines of Code
  174. \item Number of Components (packages, procedures, ...)
  175. \item Size and complexity of Data Structure
  176. \item Cyclomatic Complexity (control flow and structural complexity)
  177. \item Fan-In and Fan-Out (component dependencies)
  178. \item Object-Oriented Metrics (number of classes, methods, attributes, dependencies, etc.)
  179. % \item Coding Standards?
  180. \end{itemize}
  181. }
  182. \section{Best Practices}
  183. \frame{\frametitle{Best Practices in OSS development}
  184. \begin{block}{~}
  185. Best Practices are not formal rules but instead a set of \emph{recommendations} that are spread
  186. through the community and everybody does it that way.
  187. \end{block}
  188. Best Practices provide a set of pragmatic suggestions/tips on code writing in order to improve the program
  189. Readability, Maintainability, Portability, and also its Usability, and Efficiency.
  190. Furthermore, best practices discourage the use of bad patterns, poor error checking, etc,
  191. }
  192. \frame{\frametitle{The Question}
  193. \begin{center}Are best practices and the project quality truly related?\end{center}
  194. }
  195. \end{document}