diff --git a/Lectures/L35_Analysis/Analysis.tex b/Lectures/L35_Analysis/Analysis.tex index 0569b2e05b4a63665cb319c1ecf269571c77c344..ffc955ebe3655f30eda2c93e2a54c177189541d9 100755 --- a/Lectures/L35_Analysis/Analysis.tex +++ b/Lectures/L35_Analysis/Analysis.tex @@ -608,7 +608,7 @@ View all of these as complementary \begin{itemize} \item Worst case analysis versus average behaviour -\item For worst case focus on proving that the system response time is bounded +\item For worst case, focus on proving that the system response time is bounded by some function of the external requests \item Standard deviation \item Analytical versus experimental approaches diff --git a/Lectures/L36_ReviewForFinal/ReviewForFinal.pdf b/Lectures/L36_ReviewForFinal/ReviewForFinal.pdf index bc1434be9fc80a266b233dc64b054e02531afec4..9406726bb28069bf99f664c2bc479cd2210a5245 100644 Binary files a/Lectures/L36_ReviewForFinal/ReviewForFinal.pdf and b/Lectures/L36_ReviewForFinal/ReviewForFinal.pdf differ diff --git a/Lectures/L36_ReviewForFinal/ReviewForFinal.tex b/Lectures/L36_ReviewForFinal/ReviewForFinal.tex index 12acb5c7464b1143b73adac9788523138e3ff9f6..374ac7469f7b5be0420a059e6c386686cb12cf04 100755 --- a/Lectures/L36_ReviewForFinal/ReviewForFinal.tex +++ b/Lectures/L36_ReviewForFinal/ReviewForFinal.tex @@ -29,7 +29,7 @@ \mode<presentation>{} \input{../def-beamer} -\Drafttrue +\Draftfalse \newcommand{\topicTitle}{36 Review for Final} \ifDraft @@ -55,13 +55,14 @@ \begin{itemize} \item Administrative details +\item Verifying nonfunctional properties (qualities) \item Topics on the exam \item Structure of the exam \item Advice on exam preparation \begin{itemize} \item Time management before the exam \item Time management during the exam -\item How to study +%\item How to study \item Sample questions \end{itemize} \item Advice to improve 2me3/2aa4 @@ -81,17 +82,22 @@ TBD { \begin{itemize} -\item A4: {Due April 5 (Today) at 11:59 pm} - +\item A4: Due April 9 at 11:59 pm (tonight) \item A3 sample solution pushed to repo \item Grading should be done before exam \item Course evaluations \bi -\item CS 2ME3: 66\% -\item SE 2AA4: 67\% -\item \href{https://evals.mcmaster.ca/login.php}{https://evals.mcmaster.ca/} -\item Closes: 11:59 pm, Monday, April 10 +\item \href{https://evals.mcmaster.ca}{https://evals.mcmaster.ca} +\item Start: Tues, Mar 27, 10:00 am +\item Close: Tues, Apr 10, 11:59 pm +\item {Your participation is highly valued} +\item {Grade bonus for class participation} +\bi +\item CS 2ME3 C02: 70\% +\item CS 2ME3 C01: 48\% +\item SE 2AA4 C01: 58\% +\ei \ei \end{itemize} @@ -102,13 +108,137 @@ TBD %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame} +\frametitle{Verifying Performance} + +\structure{How might you measure/assess performance?} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Verifying Performance} + +\begin{itemize} +\item Worst case analysis versus average behaviour +\item For worst case, focus on proving that the system response time is bounded + by some function of the external requests +\item Standard deviation +\item Analytical versus experimental approaches +\item Consider verifying the performance of a pacemaker +\item Visualize performance via +\bi +\item Identify a measure of performance (time, storage, FLOPS, accuracy, etc.) +\item Identify an independent variable (problem size, number of processors, + condition number, etc.) +\ei +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Verifying Reliability} + +\begin{itemize} +\item There are approaches to measuring reliability on a probabilistic basis, as + in other engineering fields +\item Unfortunately there are some difficulties with this approach +\item Independence of failures does not hold for software +\item Reliability is concerned with measuring the probability of the occurrence + of failure +\item Meaningful parameters include +\begin{itemize} +\item Average total number of failures observed at time $t$: $AF(t)$ +\item Failure intensity: $FI(T)=AF'(t)$ +\item Mean time to failure at time $t$: $MTTF(t) = 1/FI(t)$ +\end{itemize} +\item Time in the model can be execution or clock or calendar time +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Verifying Subjective Qualities} + +\begin{itemize} +\item \structure{What do you think is meant by empirical software engineering?} +\item \structure{What problems might be studied by empirical software + engineering?} +\item \structure{Does the usual engineering analogy hold for empirical software + engineering?} +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Verifying Subjective Qualities} + +\begin{itemize} +\item Consider notions like simplicity, reusability, understandability … +\item Software science (due to Halstead) has been an attempt +\item Tries to measure some software qualities, such as +abstraction level, effort, … +\item by measuring some quantities on code, such as +\bi +\item $\eta_1$, number of distinct operators in the program +\item $\eta_2$, number of distinct operands in the program +\item $N_1$, number of occurrences of operators in the program +\item $N_2$, number of occurrences of operands in the program +\ei +\item Extract information from repo, including number of commits, issues etc. +\item Empirical software engineering +\item Appropriate analogy switches from engineering to medicine +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Source Code Metric} + +\begin{itemize} +\item \structure{What are the consequences of complex code?} +\item \structure{How might you measure code complexity?} +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{McCabe's Source Code Metric} + +\begin{itemize} +\item Cyclomatic complexity of the control graph +\bi +\item $C = e - n + 2 p$ +\item $e$ is number of edges, $n$ is number of nodes, and $p$ is number of + connected components +\ei +\item McCabe contends that well-structured modules have $C$ in range $3 .. 7$, + and $C = 10$ is a reasonable upper limit for the complexity of a single module +\item Confirmed by empirical evidence +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{frame} \frametitle{Topics on the Final Exam} \begin{itemize} \item All of them :-) -\item From ``introduction to software engineering'' to ``design patterns'' +\item From ``introduction to software engineering'' to ``review for final'' \item Greater emphasis on the material since the midterm, especially \begin{itemize} \item Specification @@ -126,11 +256,17 @@ TBD \begin{itemize} -\item Multiple choice (45 questions) +\item First pages of exam +\item Exam material emphasis will be similar to lecture material emphasis +\item Multiple choice (30 questions) +\bi \item Some questions will be True/False \item Similar to midterm -\item Exam material emphasis will be similar to lecture material emphasis - +\ei +\item Short answer (5 questions - 23 marks, 2 mark bonus) +\bi +\item Answer in the space provided +\ei \end{itemize} \end{frame} @@ -151,7 +287,7 @@ TBD \end{itemize} \item Time management during the exam \begin{itemize} -\item You have an average of 150/45 = 3.3333 minutes per question (Midterm was +\item You have an average of 150/53 = 2.8 minutes per mark (Midterm was 3.0 minutes per question) \item Some questions will take longer, some much less time \item Leave nothing blank @@ -167,46 +303,27 @@ TBD %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame} -\frametitle{Riddles} - -\bi -\item \structure<1>{What belongs to you but others use it more than you do?} -\bi -\item \uncover<2->{Your name} -\ei -\item \uncover<3->{\structure<3>{Jeopardy answer: ``Archibald Leach, Bernard Schwartz and - Lucille LeSueur.'' What is the question?}} -\bi -\item \uncover<4->{Who are three people who have never been in my kitchen?} -\ei -\ei - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{How to Study?} - -\begin{itemize} -\item See posting on Avenue -\item Better if an active, rather than a passive, process -\item Do questions -\begin{itemize} -\item From midterm, assignments -\item From the textbook -\item From other books -\item Make up your own -\begin{itemize} -\item MIS for an ADT that you have studied -\item MIS for 2C03 assignments? -\item Post questions to Avenue -\end{itemize} -\end{itemize} -\end{itemize} - -\end{frame} +% \begin{frame} +% \frametitle{How to Study?} + +% \begin{itemize} +% \item See posting on Avenue +% \item Better if an active, rather than a passive, process +% \item Do questions +% \begin{itemize} +% \item From midterm, assignments +% \item From the textbook +% \item From other books +% \item Make up your own +% \begin{itemize} +% \item MIS for an ADT that you have studied +% \item MIS for 2C03 assignments? +% \item Post questions to Avenue +% \end{itemize} +% \end{itemize} +% \end{itemize} + +% \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -344,9 +461,10 @@ def maxOfThreeNum(x1, x2, x3): \ei \item Technology to cover/emphasize/de-emphasize? \bi -\item Doxygen? Javadoc? +\item Doxygen? \item Continuous integration? \item Make? +\item Debugging? (Valgrind?) \ei \item Programming language(s) \bi @@ -367,9 +485,14 @@ def maxOfThreeNum(x1, x2, x3): \begin{itemize} -\item Discontinue open book for tests? -\item Sequence of assignments? \item Improving lecture attendance? +\item Improving Avenue participation? +\bi +\item More questions +\item More people answering questions +\ei +\item Part 2 of assignments? + \item Other thoughts/ideas? \end{itemize} diff --git a/Lectures/L36_ReviewForFinal/final.pdf b/Lectures/L36_ReviewForFinal/final.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a3dd71e3b64a99aaaa23feae2be6df0630577fa7 Binary files /dev/null and b/Lectures/L36_ReviewForFinal/final.pdf differ