Newer
Older
%\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}
\usepackage{booktabs}
\usepackage{hhline}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{array}
\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}{03 Requirements}
\input{../titlepage}
\begin{document}
\input{../footline}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Requirements}
\bi
\item Administrative details
\item You should all now be able to access
\href{https://gitlab.cas.mcmaster.ca/smiths/pub} {the publications repo}
\item Questions: project choices?, software tools?

W. Spencer Smith
committed
\item Problem statement and example
\item Software Engineering for Scientific Computing literature
\item Scientific Computing Software Qualities (online video)
\item Motivation: Challenges to Developing Quality Scientific Software
\item Requirements documentation for scientific computing
\item A requirements template
\item Advantages of new template and examples
\item The template from a software engineering perspective
\item Concluding remarks
\item References
\item Olu visit about optional study participation
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Administrative Details}
\bi
% \item Can everyone access GitLab?
% \href{https://gitlab.cas.mcmaster.ca/smiths/cas741}{https://gitlab.cas.mcmaster.ca/smiths/cas741}
\item Create a GitHub account if you don't already have one
\item Add \texttt{smiths} to your GitHub repos

W. Spencer Smith
committed
\item Linked-In
\item \structure{Assign the instructor an issue to review your problem
statement - Due by Mon, Sept 21 by 11:59 pm}

W. Spencer Smith
committed
\item Issue creating exercises
\begin{itemize}
\item due Fri, Sept 18 by 1:00 pm
\item \textbf{No more issues related to document formatting please :-)}
\item Issues that are questions are fine
\item \href{https://github.com/JacquesCarette/Drasil/issues/2248} {Example of
question label}
\item \href{https://github.com/JacquesCarette/Drasil/issues/2242} {Example of
``at'', and traceability}
\item One issue, per issue
\item \href{https://github.com/JacquesCarette/Drasil/issues/2241} {Connection to
commit and pull request}
\item screenshots, links, full description

W. Spencer Smith
committed
\end{itemize}
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Administrative Details: Presentations (Draft Deadlines)}
~\newline
\begin{tabular}{l l l}
SRS Present & Week 05? & Week of Sept 30?\\
POC Demo & Week 06? & Week of Oct 6?\\
Syst.\ VnV Present & Week 07? & Week of Oct 21?\\
MG + MIS Syntax Present & Week 9? & Week of Nov 4?\\
MIS Semantics Present & Week 11? & Week of Nov 18?\\
Unit VnV or Implement Present & Week 12/13? & Week of Nov 28?\\
\end {tabular}
\bi
%\item Very tentative dates
\item Specific schedule depends on final class registration and need
\item Informal presentations with the goal of improving everyone's written
deliverables
\item Domain experts and secondary reviewers (and others) will ask questions
\ei
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Administrative Details: Draft Report Deadlines}
~\newline
\begin{tabular}{l l l}
Issue Creation Exercise & Week 02 & Sept 18\\
Problem Statement & Week 03 & Sept 21\\
System Requirements Specification (SRS) & Week 06? & Oct 7?\\
System VnV Plan & Week 08? & Oct 28?\\
Module Guide (MG) + Mod Int Spec (MIS)? & Week 10? & Nov 25?\\
%Unit VnV Plan & Week 14 & Dec 3\\
Final Documentation & Week 14? & Dec 9?\\
\end {tabular}
\bi
\item The written deliverables will be graded based on the repo contents as of
11:59 pm of the due date
\item If you need an extension, please ask
\item Two days after each major deliverable, your GitHub issues will be due
%\item Domain expert code due 1 week after MIS deadline
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Questions?}
\begin{itemize}
\item Questions about project choices?
\item Questions about software tools?
\bi
\item git?
\item LaTex?
\ei
\item Partial tex files in the blank project template
\href{https://gitlab.cas.mcmaster.ca/smiths/cas741/tree/master/BlankProjectTemplate/docs/ProblemStatement}
{Problem statement}
\href{https://gitlab.cas.mcmaster.ca/smiths/cas741/-/blob/master/BlankProjectTemplate/docs/ProblemStatement/ProbState-Checklist.pdf}
{Checklist for Problem Statement}
\item Copy the folder structure and README files from the blank project, but
wait for tex files for deliverables
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Problem Statement}
\bi
\item Written in LaTeX
\item Due electronically (on GitHub) by deadline
\item Generated files should NOT be under source control (except pdf)
\item Comments might be typed directly into your source
\item Include the \LaTeX{} commands for comments
\item \textbf{What} problem are you trying to solve?
\item \textbf{Not how} you are going to solve the problem
\item What are the inputs and the outputs?
\item Why is this an important problem?
\item What is the context of the problem you are solving?
\bi
\item Who are the stakeholders? (``fake it'' so it is not 741 specific)
\item What is the environment for the software?
\ei
\item A page description (max) should be sufficient
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Sample Project Statements}

W. Spencer Smith
committed
\item
\href{https://gitlab.cas.mcmaster.ca/smiths/cas741/-/blob/master/BlankProjectTemplate/docs/Writing-Checklist.pdf}
{Writing Checklist}
\item
\href{https://gitlab.cas.mcmaster.ca/smiths/cas741/-/blob/master/BlankProjectTemplate/docs/ProblemStatement/ProbState-Checklist.pdf}
{Problem Statement Checklist}
\item
\href{https://github.com/icbicket/SpectrumImageAnalysisPy/blob/master/Doc/ProblemStatement/ProblemStatement.tex}
{SpectrumImageAnalysisPy}
\item
\href{https://github.com/palmerst/cas741_sp/blob/master/Doc/ProblemStatement/ProblemStatement.pdf}{Aqueous
Speciation Diagram Generator}
\item
\href{https://github.com/aoananp/cas741/blob/master/Doc/ProblemStatement/ProblemStatement.pdf}{System
of ODE solver library}
\item \href{https://gitlab.cas.mcmaster.ca/ThisTooShallParse/3XA3_CParser}{CParser}
\item \href{https://gitlab.cas.mcmaster.ca/theateam/FloppyFishGroup}{FloppyFish}
\item
\href{https://gitlab.cas.mcmaster.ca/screenholders/screenholders}{Screenholders}
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Definition of Software Qualities}
\begin{itemize}
\item Measures of the excellence or worth of a software product (code or document) or process
with respect to some aspect
\item \structure{What are some important aspects (qualities) for scientific software?}
\item User Satisfaction = The Important Qualities are High + Within Budget
\item We will focus on qualities relevant for software, including qualities
for the documentation, code and executable
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Important Qualities for Scientific Computing Software}
\begin{itemize}
\item External qualities
\begin{itemize}
\item Correctness (Thou shalt not lie)
\item Reliability
\item Robustness
\item Performance
\begin{itemize}
%\item Tight bounds
\item Time efficiency
\item Space efficiency
\end{itemize}
\end{itemize}
\item Internal qualities
\begin{itemize}
\item Verifiability
\item Productivity
\item Usability
\item Maintainability
%\begin{itemize}
%\item Repairability
%\item Evolvability
%\end{itemize}
\item Reusability
\item Portability
\end{itemize}
\end{itemize}
Definitions in \cite{GhezziEtAl2003}.
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
\begin{frame}
\frametitle{Correctness Versus Reliability Versus Robustness}
What is the difference between these 3 qualities?\\
~\\
Can you assess correctness without a requirements specification?
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Correctness}
\begin{itemize}
\item A software product is correct if it satisfies its requirements specification
\item Correctness is extremely difficult to achieve because
\begin{itemize}
\item The requirements specification may be imprecise, ambiguous, inconsistent,
based on incorrect knowledge, or nonexistent
\item Requirements often compete with each other
\item It is virtually impossible to produce ``bug-free'' software
\item It is very difficult to verify or measure correctness
\end{itemize}
\item If the requirements specification is formal, correctness can in theory and
possibly in practise be
\begin{itemize}
\item Mathematically defined
\item Proven by mathematical proof
\item Disproven by counterexample
\end{itemize}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Reliability}
\begin{itemize}
\item A software product is reliable if it usually does what is intended to do
\item Correctness is an absolute quality, while reliability is a relative quality
\item A software product can be both reliable and incorrect
\item Reliability can be statistically measured
\item Software products are usually much less reliable than other engineering
products
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Robustness}
\begin{itemize}
\item A software product is robust if it behaves reasonably even in
unanticipated or exceptional situations
% example of saving a file and power is lost
\item A correct software product need not be robust
\begin{itemize}
\item Correctness is accomplished by satisfying requirements
\item Robustness is accomplished by satisfying unstated requirements
\end{itemize}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Question on Correctness. Reliability and Robustness}
Reliable programs are a superset of correct programs AND robust programs are a
superset of reliable programs. Is this statement True or False?
\begin{enumerate}[A.]
\item True
\item False %answer - robust programs may or may not be correct or reliable
\end{enumerate}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Performance}
What are some ways you could measure software performance?\\
~\\
What are some ways you could specify performance requirements to make them
unambiguous and verifiable?
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Performance}
\begin{itemize}
\item The performance of a computer product is the efficiency with which the
product uses its resources (memory, time, communication)
\item Performance can be evaluated in three ways
\begin{itemize}
\item Empirical measurement
\item Analysis of an analytic model
\item Analysis of a simulation model
\end{itemize}
\item Poor performance often adversely affects the usability and scalability of
the product
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Usability}
\structure{What are some examples of excellent usability?}\\
\structure{When you visit a hotel, especially in another country, do you expect
some confusion with operating the shower?}
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Usability}
\begin{itemize}
\item The usability of a software product is the ease with which a typical human
user can use the product
\item Usability depends strongly on the capabilities and preferences of the user
\item The user interface of a software product is usually the principle factor
affecting the product's usability
\item Human computer interaction (HCI) is a major interdisciplinary subject
concerned with understanding and improving interaction between humans and
computers
\end{itemize}
% talk about IBM usability lab and other things that Muir mentioned
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Verifiability}
\begin{itemize}
\item The verifiability of a software product is the ease with which the
product's properties (such as correctness and performance) can be verified
\item Verifiability can be both an internal and an external quality
%\item What is the relationship between verifiability and correctness?
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Productivity}
\begin{itemize}
\item
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
\begin{frame}
\frametitle{Maintainability}
\begin{itemize}
\item The maintainability of a software product is the ease with which the
product can be modified after its initial release
\item Maintenance costs can exceed 60\% of the total cost of the software product
\item There are three main categories of software maintenance
\begin{enumerate}
\item Corrective: Modifications to fix residual and introduced errors
\item Adaptive: Modifications to handle changes in the environment in which the product is used
\item Perfective: Modifications to improve the qualities of the software
\end{enumerate}
\item Software maintenance can be divided into two separate qualities
\begin{enumerate}
\item Repairability: The ability to correct defects
\item Evolvability: The ability to improve the software and to keep it current
\end{enumerate}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Maintainability}
What do software developers do to promote maintainability?
% documentation, traceability, separation of concerns, modularity, design for
% change, design for generality
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Reusability}
\structure{What are the advantages of reusing code?}\\
\structure{Why doesn't it happen more often?}
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Reusability}
\begin{itemize}
\item A software product or component is reusable if it can be used to create a
new product
\item Reuse comes in two forms
\begin{enumerate}
\item Standardized, interchangeable parts
\item Generic, instantiable components
\end{enumerate}
\item Reusability is a bigger challenge in software engineering than in other
areas of engineering
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Portability}
\begin{itemize}
\item A software product is portable if it can run in different environments
\item The environment for a software product includes the hardware platform, the
operating system, the supporting software and the user base
\item Since environments are constantly changing, portability is often crucial
to the success of a software product
\item Some software such as operating systems and compilers, is inherently
machine specific
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Understandability}
\begin{itemize}
\item The understandability of a software product is the ease with which the
requirements, design, implementation, documentation, etc. can be understood
\item Understandability is an internal quality that has an impact on other
qualities such as verifiability, maintainability, and reusability
\item There is often a tension between understandability and the performance of
a software product
\item Some useful software products completely lack understandability
(e.g. those for which the source code is lost)
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Reproducibility}
\begin{itemize}
\item The cornerstone of the scientific method~\cite{Davison2012}
\item QA has, ``a bad name among creative scientists and
engineers''~\cite[p.~352]{Roache1998}, but participating in QA also improves reproducibility
\item Reproducibility benefits from a consistent and repeatable
computing environment, version control and separating code from
configuration/parameters~\cite{Davison2012}
\item Historically not well done for SCS
\item Need for action is highlighted by a study of 402 computer systems papers -
only 48.3\% of the code was both available and compilable
\cite{CollbergEtAl2015}.
\item \cite{CrickAndHall2014} point out potential roadblocks for
reproducibility, including page length constraints and differing detail needs
depending on the audience
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Reproducibility}
\begin{itemize}
\item Interest is growing \cite{BenureauAndRougier2017, BaileyEtAl2016}
\item Progress on re-running old code with docker, VMs
\item Replicability is rarely achieved, as shown for microarray gene expression
\cite{IoannidisEtAl2009} and for economics modelling
\cite{IonescuAndJansson2013}
\item Long way to go to replicability from original theory
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Sustainability}
\begin{itemize}
\item The latest ``buzz word''
\item Seems to mean maintainability + productivity
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Relationship between Qualities}
Draw a diagram showing the relationships between the various software qualities
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Measurement of Quality}
\begin{itemize}
\item A software quality is only important if it can be measured - without
measurement there is no basis for claiming improvement
\item A software quality must be precisely defined before it can be measured
\item Most software qualities do not have universally accepted
\item Can you directly measure maintainability?
\item How might you measure maintainability?
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{SRS versus CA}
\begin{itemize}
\item SRS (Software Requirements Specification)
\begin{itemize}
\item Requirements for a software product
\item Usually for specific physical problems
\end{itemize}
\item CA (Commonality Analysis)
\begin{itemize}
\item Requirements for a family of related software products
\item Sometime for specific physical problems
\item Commonly used for a \structure{library of general purpose tools}
\item Distinguish commonalities, variabilities and parameters of variation
\end{itemize}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Big Picture View of SRS/CA}
\begin{itemize}
\item Goal statement(s)
\item Inputs and outputs
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for SWHS}
\structure{What are the goal statement for the Solar Water Heating System?}
\structure{Think in terms of what are the inputs and outputs? For the goals, you
might want to first think about the outputs.}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for SWHS}
\noindent Given the temperature of the heating coil, initial conditions for the
temperature of the water and the temperature of the phase change material, and
material properties, the goal statements are:
\begin{itemize}
\item[GS1:] Predict the water temperature over time.
\item[GS2:] Predict the PCM temperature over time.
\item[GS3:] Predict the change in the energy of the water over time.
\item[GS4:] Predict the change in the energy of the PCM over time.
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
\end{itemize}
(Consider using names instead of numbers for labels.)
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for GlassBR}
Given the dimensions of the glass plane, glass type, the characteristics of the explosion, and
the tolerable probability of breakage, the goal statements are:
\begin{itemize}
\item[GS1:] Analyze and predict whether the
glass slab under consideration will be able to withstand the explosion of a
certain degree which is calculated based on user input.
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for Game Physics}
\begin{itemize}
\item[G\_linear:] Given the physical properties, initial positions and
velocities, and forces applied on a set of rigid bodies, determine their new
positions and velocities over a period of time (IM-IM\_FT).
\item[G\_ang:] Given the physical properties, initial orientations and
angular velocities, and forces applied on a set of rigid bodies, determine
their new orientations and angular velocities over a period of
time. (IM-IM\_FR).
\item[G\_dtcCol:] Given the initial positions and velocities of a set
of rigid bodies, determine if any of them will collide with one another over a
period of time.
\item[G\_Col:] Given the physical properties, initial linear and angular
positions and velocities, determine the new positions and velocities over a
period of time of rigid bodies that have undergone a collision (IM-IM\_C).
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for Linear Solver}
\structure{What would be a good goal statement for a library of linear solvers?}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for Linear Solver}
\begin{itemize}
\item[G1] Given a system of $n$ linear equations represented by matrix $A$ and
column vector $b$, return $x$ such that $Ax = b$, if possible
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
\begin{frame}
\frametitle{Relationship Between SRS and CA}
%\begin{figure}
\begin{center}
\includegraphics[width=1.0\textwidth]{../Figures/Waterfall.pdf}
\end{center}
%\end{figure}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Major Conceptual Parts of SRS/CA}
%\begin{figure}
\begin{center}
\includegraphics[width=1.07\textwidth]{../Figures/RelationsBetweenTM_GD_IM_DD_A.pdf}
\end{center}
%\end{figure}
Also Goal Statements and Requirements
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Examples, Checklist and Template}
\begin{itemize}
\item
\href{https://jacquescarette.github.io/Drasil/examples/Projectile/srs/Projectile_SRS.html}
{Projectile Example}
\item
\href{https://jacquescarette.github.io/Drasil/examples/GlassBR/srs/GlassBR_SRS.html}
{GlassBR Example}
\item
\href{https://jacquescarette.github.io/Drasil/examples/SWHS/srs/SWHS_SRS.html}
{SWHS Example}
\item
\href{https://gitlab.cas.mcmaster.ca/smiths/cas741/blob/master/BlankProjectTemplate/docs/SRS/SRS.pdf}
{Blank SRS}
\item
\href{https://gitlab.cas.mcmaster.ca/smiths/cas741/blob/master/BlankProjectTemplate/docs/SRS/SRS-Checklist.pdf} {Checklist}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[allowframebreaks]
\frametitle{References}
\nocite{Lai2004, SmithEtAl2004, SmithAndLai2005, IEEE1998, IEEE2000,
IEEE2000_ThayerAndDorfman, RobertsonAndRobertson1999Vol, DesharnaisEtAl2004,
JanickiAndKhedri2001, GhezziEtAl2003, KreymanAndParnas2002,
ParnasAndClements1986, Segal2007_Dagsthul, Segal2008, Segal2007, Segal2005, Dubois2002}
\bibliography{../../ReferenceMaterial/References}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}