%\documentclass[handout]{beamer} 
\documentclass[t,12pt,numbers,fleqn]{beamer}
%\documentclass[ignorenonframetext]{beamer}

\newif\ifquestions
%\questionstrue
\questionsfalse

\usepackage{pgfpages} 
\usepackage{hyperref}
\hypersetup{colorlinks=true,
    linkcolor=blue,
    citecolor=blue,
    filecolor=blue,
    urlcolor=blue,
    unicode=false}
\urlstyle{same}

\bibliographystyle{plain}

%\usetheme{Iimenau}

\useoutertheme{split} %so the footline can be seen, without needing pgfpages

%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape]  %if this is uncommented, the hyperref links do not work

\mode<presentation>{}

\input{../def-beamer}

\newcommand{\topic}{Assurance Cases}

\input{../titlepage}

\begin{document}

\input{../footline}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Assurance Cases}

\bi
\item Administrative details
\item Final documentation
\item Make
\item Coding standards
\item Coding advice
\item Connecting code to MG and MIS
\item License and copyright
\item README file
\item Other files in capTemplate
\item Assurance cases
\ei
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Administrative Details}

\bi
\item Draft participation grade
\item Grades posted for domain expert issues
\item When developing your code, remember that your goal is for someone else to
be able to compile and run it
\item If you project is non-research, you need to complete an extra to get
access all potential marks on the final documentation
\item Make sure I can find your extra 
\begin{itemize}
  \item Make sure \texttt{Repos.csv} is up to date
  \item Put the extra in the correct spot according to \texttt{capTemplate}
  \item Delete extras (and SRS files) you aren't using
\end{itemize}
% \item Upcoming classes
% \bi
% \item L19 --- Assurance Cases
% \item L20 --- Artifact Generation
% \item L21a--24 --- Implementation/Testing Presentations
% \item L21b --- A Holistic Approach (not this year)
%\item L22 --- Drasil Presentations
%\item L25 --- Discussion
% \ei
\item No requirement to provide feedback to colleagues on final documentation
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Course Evaluations}
\begin{itemize}
\item Course experience surveys will close on Tuesday, April 8, 2025 11:59 PM
\item \url{https://mcmaster.bluera.com/mcmaster/}
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\input{../Deadlines.tex}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \begin{frame}
% \frametitle{Feedback on MG}

% \bi
% \item Good work!  Good starting point.  May have to modify design as a response
%   to MIS
% \item If multiple anticipated changes map to the same module, you should explain
%   why
% \item If one anticipated change maps to multiple modules, you should explain why
% \item You don't have an input parameters module
% \ei

% \end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Implementation/Final Presentations}
\begin{itemize}
\item Based on your implementation and testing
\item You decide what to focus on
\item If in doubt, ask
\item Options
\begin{itemize}
  \item Demonstration
  \item Summarize testing results
  \item Usability test with the class (show of hands for data)
  \item Code walkthrough with class
  \item Usability survey with class
  \item Technology overview
  \begin{itemize}
    \item CI/CD
    \item Valgrind
    \item Doxygen
    \item etc.
  \end{itemize}
\end{itemize}
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Final Documentation}
\begin{itemize}
\item Looking for 
\bi
\item Revision of documentation
\item Consistency between documents
\item Traceability between documents - should be able to pick a 
requirement and trace it all the way to testing
\item Effort made to address issues and comments
\item Appropriate challenge level
\ei
\item Make it easy to see changes from Rev 0
\bi
\item \href{https://github.com/smiths/capTemplate/blob/main/docs/ReflectAndTrace/ReflectAndTrace.pdf} {Reflection and traceability document}
\item Closed issues in the issue tracker
\item Specific explanation in Revision History
\item Summarize with a table, if possible
\item Use \href{https://commandmasters.com/commands/latexdiff-common/}
{latexdiff} between Rev0 and Rev1 documents, if necessary
\item Comments in tex file (last resort)
\ei
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Final Documentation}
\begin{itemize}
\item Faking a rational design process
\item Problem Statement revised and improved
\item Requirements Document revised and improved
\item Design Documents revised and improved
\item VnV Plan revised and improved (complete unit testing sections)
\begin{itemize}
  \item Summarize unit testing philosophy
  \item Point to unit testing code
\end{itemize}
\item VnV Report
\item Source Code
\item Drasil projects no longer need to maintain the traditionally generated SRS
\item \href{https://github.com/smiths/capTemplate/blob/main/docs/ReflectAndTrace/ReflectAndTrace.pdf} {Reflection Document}
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Final Doc: Reflect and Trace}
\begin{itemize}
\item Reflect and trace document in
\href{https://github.com/smiths/capTemplate/blob/main/docs/ReflectAndTrace/ReflectAndTrace.pdf}
{capTemplate repo}

\item Summarize response to ALL feedback
\item Each item of feedback should be treated separately
\begin{itemize}
  \item Identify source (reviewers, instructor, supervisor, users)
  \item Give response
  \item Summary of issue
  \item Hyperlink to issue (if available)
  \item Summary of change (include hyperlink if available)
  \item Reasoning for not changing (include hyperlink if available)
\end{itemize}
\item Explain how you arrived at your final design and implementation
\item Reflect on and justify your design decisions
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Final Doc: Reflection Cont'd}
\begin{itemize}
  \item Ignore questions related to:
  \begin{itemize}
    \item Hazard analysis
    \item Economic considerations
    \item Feedback on capstone
  \end{itemize}
  \item How did actual project management compare to dev plan
  \begin{itemize}
    \item What went well? (continue)
    \item What went wrong? (stop)
    \item What would you do differently next time? (start)
  \end{itemize}
  % \item Applies the principles of equity and universal design to ensure equitable
  % treatment of all stakeholders
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Final Project Quality}
\begin{itemize}
\item Installability - instructions given, makefiles etc to support, means to
  validate the installation, required libraries are explicitly identified --
  update README.md and INSTALL.md
\item Learnability - instructions to get someone started using the software --
give instructions on how to run the software, how to execute the tests
\item Robustness - can the software handle garbage inputs reasonably
\item Performance - measured if appropriate
\item Usability - measured if appropriate
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Installability and Learnability}

\bi
\item You can test this
\item Ask a colleague to install your software
\item Run it on a virtual machine, like
  \href{https://www.virtualbox.org/}{VirtualBox}
\item Use a ``light weight'' VM like docker
\item Include installation instructions (INSTALL.txt)
\item Include instructions so that someone else can run your tests cases
\item Part of the evaluation of each project is to run it
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Consider Make for Installability, running test cases}
\begin{itemize}
\item
  \href{https://gitlab.cas.mcmaster.ca/smiths/se3xa3/blob/master/Labs/L12/Lab12.pdf}
  {Tutorial on Make, with links}
\item
  \href{https://github.com/smiths/caseStudies/blob/master/CaseStudies/glass/src/Python/Makefile}
  {Example Makefile for GlassBR}
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Extras}

\begin{itemize}
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/CodeWalkthroughs} {Code Walkthrough Report}
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/CostAnalysisReport} {Cost Analysis Report} 
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/DesignThinking} {Design Thinking Report}
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/FormalProof} {Formal Proof Report} 
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/GenderMagPersonas} {Gender Mag Personas Report}
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/GreenComputing} {Green Computing Report} 
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/LiteratureReview} {Literature Review Report}
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/NormansPrinciples} {Norman's Principles Report} 
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/PerformanceReport} {Performance Report} 
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/UsabilityTesting} {Usability Report} 
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/UserInstructionalVideo} {User Instructional Video}
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/UserManual} {User Manual} --- see \href{https://gitlab.cas.mcmaster.ca/smiths/cas741/-/blob/master/ReferenceMaterial/UserManualPresentation.pdf?ref_type=heads} {slides} 
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/Wireframe} {Wireframe Report}
  \item \href{https://github.com/smiths/capTemplate/tree/main/docs/Extras/Other} {Other}
\end{itemize}

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Unit VnV Plan}
\begin{itemize}
\item Complete VnV Plan
\item Scope - what modules will be verified
\item Your approach for automated testing (if not already covered)
\item Tools for code coverage metrics (if not already covered)
\item Non-testing based verification (if planned)
\item Unit test cases for each module - from black box and white box (can point to code)
\item Performance tests for individual modules (if appropriate)
\item Evidence that all modules are considered
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Final Documentation: VnV Report}
\begin{itemize}
\item Completing what you proposed in your test plan
\item You do not need to repeat material from your test plan - the emphasis is
  not on the rational for test case selection, but on the results.
\item If your test plan does not match what you are now testing, edit your test
  plan to ``fake'' a rational design process.
\item If your test report is not complete, because there is not time for all of
  the tests, explain this in your report
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{VnV Report Continued}
\begin{itemize}
\item Point to specific test cases in test plan
\item Summarize your test results
\bi
\item Test case name
\item Initial state
\item Input
\item Expected results
\item Whether actual output matched expected
\ei
\item Summarize and explain usability tests - quantify the results
\item Performance tests - quantify the results
\item Stress tests
\item Robustness tests
\item After quantification of nonfunctional tests, explain significance of
  results
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{VnV Report Continued}
\begin{itemize}
\item In cases where there are many similar tests
\bi
\item Summarize the results
\item If the expected result is obvious, you might not need to state it
\item Give an example test case, and explain how similar tests were constructed
\item If the tests were random, describe how they were selected, and how many,
  but not all of the details
\item Use graphs and tables
\item You need enough information that
\bi
\item Someone could reproduce your tests
\item Your test results are convincing
\item Evidence that you have used testing to improve the quality of your project
\ei
\ei
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{VnV Report Continued}
\begin{itemize}
\item Summarize changes made in response to test results
\item Explain your automated testing set-up (if require more detail than from
  the test plan)
\item Provide traceability to requirements (if not in test plan)
\item Provide traceability to modules (if not in test plan)
\item Make sure you show test results for ``bad/abnormal'' input
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Sample VnV Report Documents} 

\bi
\item
  \href{https://gitlab.cas.mcmaster.ca/screenholders/screenholders}{Screenholders}
\item
  \href{https://github.com/palmerst/CS-4ZP6/tree/master}{2D Physics Based Game}
  (Uses doxygen)
\item
  \href{https://gitlab.cas.mcmaster.ca/courses/capstone/-/tree/main/SamplesOfStudentWork/VnVReport}
  {Capstone Sample reports}
\item \href{https://github.com/smiths/swhs/blob/master/docs/VnVReport/PCM_VVReport.pdf} 
{Solar Water Heating System (PCM)}
\item
  \href{https://github.com/smiths/capTemplate}
  {Follow given template}
\item Examples are not perfect
\item Examples are intended to give you ideas, not to be strictly followed
\item You can modify/extend the test report template as appropriate
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Final Documentation: Source Code}
\begin{itemize}
\item Source code in src folder
\item Comments on ``what'' not ``how''
\item Identifiers that are consistent, distinctive, and meaningful
\item Avoidance of hard-coded constants (other than maybe 0 and 1)
\item Appropriate modularization
\bi
\item Follow module guide
\item Show traceability between MG modules and code files
\ei
\item Consistent indentation
\item Explicit identification of coding standards (see next slide)
\item Parameters are in the same order for all functions
\item Descriptive names of source code files
\item Show mapping between MIS symbols and code symbols
\end{itemize}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Coding Style}

\bi
\item Having a coding standard is more important than which standard you use
\item Examples
\bi
\item Google guides
\bi
\item \href{https://google.github.io/styleguide/pyguide.html}{Python}
\item \href{https://google.github.io/styleguide/cppguide.html}{C++}
\item \href{https://google.github.io/styleguide/javaguide.html}{Java}
\ei
\item \href{https://ntrs.nasa.gov/citations/19950022400}{NASA C
    Style Guide}
\ei
%\item Your decisions on style may evolve over the project
\item Important to be consistent
\item Every code file should have a header with
\begin{itemize}
  \item Author(s)
  \item Date
  \item Purpose
\end{itemize}

\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Doxygen}

\bi
\item A tool that generates documentation (say in html or tex) from the code
\item Comments with special syntax are used in source files to mark information
  for Doxygen to use
\item
  \href{https://gitlab.cas.mcmaster.ca/smiths/se2aa4_cs2me3/-/tree/master/Tutorials/T01b-Doxygen}
  {Tutorial on Doxygen} 
\item There are alternative to doxygen (pydoc, javadoc, sphinx, etc.)
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Final Grading Scheme}

\bi
\item Available on Avenue
\item 60 possible grades, but out of 50
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{No License?}

\bi
\item Can others use your work if you do not include a license?
\item \href{http://choosealicense.com/no-license/}{See this link for the answer}
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Copyright}

\bi
\item Your work is automatically afforded protection by copyright law
\bi
\item Your cannot infringe on someone else's copyright
\item Must be some creativity
\ei
\item Additional protection through registration with the copyright office
\item Copyright does not apply to the idea, but the expression of the idea
\item Trademarks and patents cover concepts and ideas
\item In work for hire, copyright belongs to employer
\item You can assign your copyright to someone else or a corporation
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Rights}

\bi
\item Owner has full and exclusive rights to control who may copy or create a
  derivative work
\item Right to sue for copyright infringement
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Licensing}

\bi
\item Permission to others to reproduce or distribute a work
\item Licenses are distinguished by the restrictions (conditions)
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Proprietary License}

\bi
\item Copyright holder retains all rights
\item Cannot copy
\item Cannot use
\item Cannot modify
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{GNU General Public License (GPL)}

\bi
\item Can copy the software
\item Can distribute the software
\item Can charge a fee to distribute the software (which will still include the license information)
\item Can make modifications
\item Condition -- all modifications/uses are also under GPL, source
  code must be available
\item Lesser GPL allows to link to libraries, without automatically falling under
  GPL conditions
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \begin{frame}
% \frametitle{GNU Questions}

% \bi
% \item Question 1
% \bi
% \item You modify some Linux source files to install Linux on your embedded
%   device
% \item You write software to run on this new Linux ``box''
% \item What software falls under the GPL?
% \item \href{http://www.softwarefreedom.org/resources/2008/compliance-guide.html}{Answer}
% \ei
% \item Question 2
% \bi
% \item You want to distribute object code compiled by gcc, where gcc is under GPL
% \item Is your object code under GPL?
% \item \href{https://www.gnu.org/licenses/gcc-exception-3.1-faq.en.html}{Answer}
% \ei
% \ei

% \end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{BSD and MIT}

\bi
\item Removes ``virus'' from GPL
\item Can copy, distribute, charge a fee, make modifications
\item Under the condition that you keep the license intact, credit the author
\item Not required to disclose source 
\item Use at your own risk (cannot sue)
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Public Domain}

\bi
\item Do what you want with the code
\item No conditions
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Copyright and License Related Links}

\bi
\item
  \href{http://haacked.com/archive/2006/01/24/TheDevelopersGuideToCopyrightLaw-Part1.aspx/}{Developer's
    guide to copyright law}

\item \href{https://www.smashingmagazine.com/2010/03/a-short-guide-to-open-source-and-similar-licenses/}{Summary of licenses}

\item
  \href{http://haacked.com/archive/2007/04/04/there-are-only-four-software-licenses.aspx/}{Main
    types of licenses}

\item \href{http://choosealicense.com}{Choose a license}
\item \href{http://choosealicense.com/licenses/}{Another summary}
\item \href{https://tldrlegal.com}{Plain English summaries}

\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Other Potential Files in Your Project}

\bi
\item README
\item Contributing guidelines
\item Citation
\item Changelog
\item Install/Uninstall
\item Dependency list
\item Authors
\item Code of conduct
\item Acknowledgements
\item Style guide
\item Release information
\item Product roadmap
\item Getting started guide, user manual, tutorials
\item FAQ
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Code of Conduct}

\bi
\item Open source projects with a large diverse base of developers frequently
  create a code of conduct
\item \href{https://github.com/todogroup/opencodeofconduct} {Open Code of
    Conduct}
\item \href{https://www.python.org/community/diversity/} {Diversity statement for Python}
\item \href{https://geekfeminismdotorg.wordpress.com/about/code-of-conduct/}
  {Geek Feminism}
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{README files}

\bi
\item Make sure the README file on your landing page is up to date
\item \href{https://arxiv.org/abs/1802.06997} {Categories and Contents of README files}
\item A README file is useful in any folder
\item Give the reader information on the contents of the folder
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Assurance Cases in Scientific Computing \cite{SmithEtAl2018_ICSEPoster,SmithEtAl2020}}

\bi
\item Assurance cases
\bi 
\item Organized and explicit argument for correctness
\item Successfully used for safety critical systems
\ei
\item Advantages for SC
\bi
\item Engaging domain experts
\item Producing necessary and relevant documentation
\item Evidence that can be verified/replicated by a third party
\ei
\item Example of 3dfim+
\bi
\item No errors found
\item However
\bi
\item Documentation ambiguities
\item No warning about parametric statistical model
\ei
\ei
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Assurance Cases in SC Motivation}

\bi
\item Do we put too much trust in the quality of SCS?
\item Are enough checks and balances in place, especially for safety related
  software?
\item Problems with imposing external requirements for certification
\bi
\item External body does not have expertise
\item SCS developers dislike documentation
\ei
\item Solution -- Assurance Cases by experts
\bi
\item Experts engaged
\item Relevant documentation
\ei
\item Current techniques of development and testing still used, but arguments
  will no longer be ad hoc and incompletely documented
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hoffset=-.45in
\begin{frame}[plain]
%\frametitle{Goal Structuring Notation}

\includegraphics[width=1.19\textwidth]{../Figures/assuranceBasic.pdf}

\end{frame}
\hoffset=0in

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hoffset=-.2in
\begin{frame}[plain]
%\frametitle{3dfim+ Software}

\includegraphics[width=1.\textwidth]{../Figures/AFNI_screenshot.PNG}

\end{frame}
\hoffset=0in

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hoffset=-.2in
\begin{frame}[plain]
%\frametitle{Correlation of One Voxel}

\includegraphics[width=1.\textwidth]{../Figures/scaledvoxelANDIdealsignalVStime_least.png}

\end{frame}
\hoffset=0in

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hoffset=-.2in
\begin{frame}[plain]
%\frametitle{Context and Assumption in Top Goal}

\includegraphics[width=0.95\textwidth]{../Figures/TopAC.pdf}

\end{frame}
\hoffset=0in

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hoffset=-.27in
\begin{frame}[plain]
%\frametitle{Top Goal}

\includegraphics[width=1.15\textwidth]{../Figures/TopGoal.pdf}

\end{frame}
\hoffset=0in

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hoffset=-.2in
\begin{frame}[plain]
%\frametitle{GR Decomposition}

\includegraphics[width=0.95\textwidth]{../Figures/GRTop.pdf}

\end{frame}
\hoffset=0in

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hoffset=-.21in
\begin{frame}[plain]
%\frametitle{Modifiability of Documentation Requirements}

\includegraphics[width=1.14\textwidth]{../Figures/Modifiable.pdf}

\end{frame}
\hoffset=0in

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hoffset=-.3in
\begin{frame}[plain]
%\frametitle{Generic Evidence}

\includegraphics[width=1.15\textwidth]{../Figures/Generic.pdf}

\end{frame}
\hoffset=0in

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hoffset=-.2in
\begin{frame}[plain]
%\frametitle{Defined Operational Assumptions}

\includegraphics[width=0.75\textwidth]{../Figures/GSN_GA.pdf}

\end{frame}
\hoffset=0in

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Proposed Changes to 3dfim+}

\bi
\item No mistakes found in calculations
\item Goal of original software was not certification
\item Problems found
\bi
\item GR goal not satisfied
\bi
\item Not complete, verifiable, modifiable or traceable
\item Coordinate system information missing
\item Ambiguous rank function
\ei
\item Inputs not checked in code
\item User not informed of their responsibility to use tool with correct
  statistical model
\ei
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
\frametitle{Concluding Remarks}

\bi
\item Hopefully motivated assurance cases for SC
\item Quality is improved by looking at a problem from different perspectives,
  assurance cases provide a systematic and rigorous way to introduce a new
  perspective
\item An assurance cases will likely use the same documentation and ideas used
  in CAS 741
\item However, an assurance case can focus and direct efforts right from the
  start of the project
\ei

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}[allowframebreaks]
\frametitle{References}

\bibliography{../../ReferenceMaterial/References}

\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{document}