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

W. Spencer Smith
committed
%\item Student Introductions
\item Questions: project choices?, software tools?
\item Problem statement questions?
%\item Software Engineering for Scientific Computing literature
\item Scientific Computing Software Qualities
\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
\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 Accounts requested for all non-CAS students to access
\href{https://gitlab.cas.mcmaster.ca/smiths/pub} {the publications repo}
\item Use the \href{https://github.com/smiths/capTemplate} {GitHub template} to
create a new repo

W. Spencer Smith
committed
\begin{itemize}
\item Add \texttt{smiths} to your GitHub repo

W. Spencer Smith
committed
\item Remove \href{https://github.com/ace-lectures/cas-handbook-req-template/tree/dd9cfe1020cc11c88315c0311e7027e5447a148d} {SRS-Meyer}, \href{https://github.com/smiths/capTemplate/tree/main/docs/SRS-Volere} {SRS-Volere}, \href{https://github.com/smiths/capTemplate/tree/main/docs/Reflection} {Reflection}, \href{https://github.com/smiths/capTemplate/tree/main/docs/HazardAnalysis} {Hazard Analysis}, \href{https://github.com/smiths/capTemplate/tree/main/docs/Presentations} {Presentations}
\end{itemize}
\item Create a fork and a
\href{https://gitlab.cas.mcmaster.ca/smiths/cas741/-/merge_requests} {merge
request} to modify
\href{https://gitlab.cas.mcmaster.ca/smiths/cas741/-/blob/master/Repos.csv}
{Repos.csv} with your project details

W. Spencer Smith
committed
\item Only two projects in Repos.csv so far
\item \structure{Is anyone still considering dropping the course?}
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
% \begin{frame}
% \frametitle{Introductions}
% \begin{itemize}
% \item Your name
% \item Degree program
% \item Academic background
% \item Experience with:
% \begin{itemize}
% \item Science (such as physics)
% \item Scientific computing
% \item Continuous math
% \item Discrete math
% \item Software engineering
% \item Software development technology
% \bi
% \item Git
% \item GitHub or GitLab
% \item LaTeX
% \item Make etc.
% \ei
% \end{itemize}
% \item What do you hope to get out of this course?
% \end{itemize}
% \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 Questions about
\href{https://github.com/smiths/capTemplate/tree/main/docs/ProblemStatementAndGoals}
{Problem statement and goals}? (also see \href
{https://github.com/smiths/capTemplate/blob/main/docs/Checklists/ProbState-Checklist.pdf}
{prob state checklist} and

W. Spencer Smith
committed
\href{https://github.com/smiths/capTemplate/blob/main/docs/Checklists/Writing-Checklist.pdf} {writing checklist})
\end{itemize}
\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

W. Spencer Smith
committed
\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}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
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
\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? the microwave? the TV?}
\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
\item \textbf{If you project is relatively simple, usability is a place where
your project can ``shine''}
\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 The productivity of a software development process is the measure of how
efficiently the process produces software
\item Productivity highly depends on the skills and organization of the development team
\item Productivity is very hard to measure
\item The number of lines of code per unit time is a terrible metric for
measuring software productivity
% mention capstone students and their copy and paste modules and code
\item Productivity can be greatly increased by the use of development tools,
environments, and methods
\item Software reuse decreases productivity in the short term, but increases
productivity in the long term
\item See \href{https://arxiv.org/pdf/2112.12580.pdf} {SmithAndCarette2021} for
some thoughts on productivity
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
\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?}
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
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
\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{BaileyEtAl2016, BenureauAndRougier2017}
\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?
(\href{https://jacquescarette.github.io/Drasil/examples/nopcm/SRS/srs/NoPCM_SRS.html}
~\\
\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 noPCM}
\noindent Given the temperature of the heating coil, initial conditions for the
temperature of the water, and material properties, the goal statements are:
\item[GS1:] Predict the water temperature over time.
\item[GS2:] Predict the change in the energy of the water over time.
~\\
\begin{itemize}
\item Consider using names instead of numbers for labels.
\item For
\href{https://jacquescarette.github.io/Drasil/examples/swhs/SRS/srs/SWHS_SRS.html}
{SWHS} add goals related to the Phase Change Material
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for GlassBR}
For
\href{https://jacquescarette.github.io/Drasil/examples/glassbr/SRS/srs/GlassBR_SRS.html}
{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:
\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}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\frametitle{Goal Statements for Game Physics}
\noindent For
\href{https://jacquescarette.github.io/Drasil/examples/gamephysics/SRS/srs/GamePhysics_SRS.html}
{Game Physics}:
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
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
\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}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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
\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/srs/Projectile_SRS.html}

W. Spencer Smith
committed
\item \href{https://github.com/smiths/caseStudies/blob/master/CaseStudies/projectile/projectileSRS_RefinedTheories/Projectile_SRS.pdf}
{Refined Theories Projectile SRS}
\href{https://jacquescarette.github.io/Drasil/examples/glassbr/SRS/srs/GlassBR_SRS.html}
\href{https://jacquescarette.github.io/Drasil/examples/swhs/SRS/srs/SWHS_SRS.html}
\href{https://github.com/smiths/capTemplate/blob/main/docs/SRS/SRS.pdf}
{Blank SRS from Template}
\href{https://github.com/smiths/capTemplate/blob/main/docs/Checklists/SRS-Checklist.pdf} {Checklist}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

W. Spencer Smith
committed
\begin{frame}
\frametitle{Requirements for Projectile}
\vspace{-1.0cm}
\begin{center}
\includegraphics[scale=0.55]{../Figures/Launch.jpg}
\end{center}
\vspace{-1.0cm}
\begin{itemize}
\item Simplifying assumptions? (scope decisions, modelling decisions)
\item Kinematic theories for translational motion?
\item Data constraints on input? output?
\item Types?
\item Rationale?
\item \href{https://github.com/smiths/caseStudies/blob/master/CaseStudies/projectile/projectileSRS_RefinedTheories/Projectile_SRS.pdf}
{Refined Theories Projectile SRS}
\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}