diff --git a/Lectures/L01_IntroToCourse/IntroToCourse.pdf b/Lectures/L01_IntroToCourse/IntroToCourse.pdf index c47e92448de4ebe4a998b85d414e8da3f02523af..5cf61707d78ce0df131e17321b1fa22e45b0feb5 100644 Binary files a/Lectures/L01_IntroToCourse/IntroToCourse.pdf and b/Lectures/L01_IntroToCourse/IntroToCourse.pdf differ diff --git a/Lectures/L01_IntroToCourse/IntroToCourse.tex b/Lectures/L01_IntroToCourse/IntroToCourse.tex index b63febed4a576cfd3d1e6a068c937e9f5033b376..4e41a4e028e6f5c8ebea598d0ea1726a73c6f345 100755 --- a/Lectures/L01_IntroToCourse/IntroToCourse.tex +++ b/Lectures/L01_IntroToCourse/IntroToCourse.tex @@ -411,8 +411,8 @@ the transcript, and/or suspension or expulsion from the university. \begin {itemize} -\item \bibentry{Smith2016} -\item \bibentry{SmithEtAl2007} +\item \href{https://gitlab.cas.mcmaster.ca/smiths/cas741/blob/master/ReferenceMaterial/SoftEngForScienceBook.pdf}{\bibentry{Smith2016}} +\item \href{https://gitlab.cas.mcmaster.ca/smiths/cas741/blob/master/ReferenceMaterial/SmithLaiAndKhedri2007fulltext.pdf}{\bibentry{SmithEtAl2007}} \end{itemize} diff --git a/Lectures/L02_GettingStarted/GettingStarted.pdf b/Lectures/L02_GettingStarted/GettingStarted.pdf index 5ac9f06b0eea48ab41b3c392c82374d600a40fe3..36c676d115fdb01741b7261a670256b26f2a7102 100644 Binary files a/Lectures/L02_GettingStarted/GettingStarted.pdf and b/Lectures/L02_GettingStarted/GettingStarted.pdf differ diff --git a/Lectures/L02_GettingStarted/GettingStarted.tex b/Lectures/L02_GettingStarted/GettingStarted.tex index 3bcbb47ac445a4737fa60118f6f39ca231ed9e01..27901399c682ada0b07954a2e38c9e7df83d61e7 100755 --- a/Lectures/L02_GettingStarted/GettingStarted.tex +++ b/Lectures/L02_GettingStarted/GettingStarted.tex @@ -22,7 +22,12 @@ \usepackage{multicol} \usepackage{array} -\bibliographystyle{plainnat} +\usepackage{tikz} +\usetikzlibrary{positioning} + +%\usepackage{natbib} %doesn't seem to work with beamer +\bibliographystyle{plain} +%\setcitestyle{authoryear} %\usetheme{Iimenau} @@ -34,39 +39,33 @@ \input{../def-beamer} -\newcommand{\topic}{02 Requirements} +\newcommand{\topic}{02 Getting Started} \input{../titlepage} \begin{document} +%\nobibliography{../../ReferenceMaterial/References} + \input{../footline} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} -\frametitle{Requirements} +\frametitle{Getting Started} \bi \item LiCS overview by Dan \item Administrative details +\item Questions on suggested reading? \item Project choices \item Software tools -\item Motivation -\begin{itemize} -\item Scientific Computing Software Qualities -\item Challenges to Developing Quality Scientific Software -\end{itemize} -\item Requirements documentation for scientific computing -\item A new requirements template -\item Advantages of new template and examples -\item The new template from a software engineering perspective -\item Concluding remarks -\item References +\item Software Engineering for Scientific Computing literature \ei + \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} \frametitle{Administrative Details} @@ -74,12 +73,27 @@ \bi \item Benches and white boards \item Use folder structure given in repo +\item Post any questions as issues in our repo \item Problem statement due Friday, Sept 15 by 11:59 pm \ei \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Benches and Glassboards} + +\begin{tikzpicture}[remember picture,overlay] +\node [xshift=0cm,yshift=0.15cm] at (current page.center) +{ +\includegraphics[width=0.5\textwidth]{../Figures/GlassBoards.jpg} +}; +\end{tikzpicture} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} \frametitle{Administrative Details: Grade Assessment} @@ -107,7 +121,7 @@ \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} \frametitle{Administrative Details: Report Deadlines} @@ -130,7 +144,7 @@ Final Documentation & Week 13 & Dec 6\\ \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} \frametitle{Administrative Details: Presentations} @@ -153,7 +167,21 @@ Implementation Present & Week 12 & Week of Nov 27\\ \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Questions on Suggested Reading?} + +\begin {itemize} + +\item \href{https://gitlab.cas.mcmaster.ca/smiths/cas741/blob/master/ReferenceMaterial/SoftEngForScienceBook.pdf}{Smith2016~\cite{Smith2016}} +\item \href{https://gitlab.cas.mcmaster.ca/smiths/cas741/blob/master/ReferenceMaterial/SmithLaiAndKhedri2007fulltext.pdf}{SmithEtAl2007~\cite{SmithEtAl2007}} + +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} \frametitle{Project Selection: Desired Qualities} @@ -169,7 +197,7 @@ Implementation Present & Week 12 & Week of Nov 27\\ \end{itemize} \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} \frametitle{Project Selection: Specific Physical Problem} @@ -193,760 +221,180 @@ Implementation Present & Week 12 & Week of Nov 27\\ \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} \frametitle{Project Selection: Family of General Purpose Tools} \begin{itemize} -\item Solution of ODEs -\item Solution of $A x = b$ -\item Regression -\item Interpolation -\item Numerical integration -\item FFT -\item Mesh generation -\item Finite element method +\item \href{https://en.wikipedia.org/wiki/Numerical_methods_for_ordinary_differential_equations}{Solution of ODEs} +\item \href{https://en.wikibooks.org/wiki/Numerical_Methods/Solution_of_Linear_Equation_Systems}{Solution of $A x = b$} +\item \href{https://en.wikipedia.org/wiki/Linear_regression}{Regression} +\item \href{https://en.wikibooks.org/wiki/Introduction_to_Numerical_Methods/Interpolation}{Interpolation} +\item \href{https://en.wikipedia.org/wiki/Numerical_integration}{Numerical integration} +\item \href{https://en.wikipedia.org/wiki/Fast_Fourier_transform}{FFT} +\item \href{https://en.wikipedia.org/wiki/Mesh_generation}{Mesh generation} +\item \href{https://en.wikipedia.org/wiki/Finite_element_method}{Finite element method} \item Any chapter from a standard numerical methods textbook \item etc. \end{itemize} \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} \frametitle{Tool Tutorials} \begin{itemize} -\item point to repo -\item Learn by doing -\end{itemize} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Git and GitLab} -\begin{itemize} -\item point to repo -\item Learn by doing -\end{itemize} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{LaTeX} -\begin{itemize} -\item point to repo -\item Learn by doing -\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} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Problems with Developing Quality Scientific Computing Software} - -\begin{itemize} - -\item Need to know requirements to judge reliability -\item In many cases the only documentation is the code -\item Reuse is not as common as it could be -\begin{itemize} -\item \href{http://www.andrew.cmu.edu/user/sowen/softsurv.html}{\alert{Meshing software survey}} -\item \href{http://www.engr.usask.ca/~macphed/finite/fe_resources/node137.html}{\alert{Public domain finite element -programs}} -\item etc. -\end{itemize} -\item Many people develop ``from scratch'' -\item Cannot easily reproduce the work of others -\item Neglect of simple software development technology~\cite{Wilson2006} -% such as version control software - -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame} - -\frametitle{Adapt Software Engineering Methodologies} - -\begin{itemize} - -\item Software engineering improves and quantifies quality %purpose of software engineering -\item Successfully applied in other domains -\begin{itemize} -\item Business and information systems -\item Embedded real time systems -\end{itemize} -\item Systematic engineering process -\item Design through documentation -\item Use of mathematics -\item Reuse of components -\item Warranty rather than a disclaimer %goal of software engineering - -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} - -\frametitle{Developing Scientific Computing Software} - -\begin{itemize} - -\item Facilitators -\begin{itemize} -\item One user viewpoint for specifying a physical model -\item Assumptions can be used to distinguish models -\item High potential for reuse -\item Libraries -\item Already mathematical -\end{itemize} - -\item Challenges -\begin{itemize} -\item Verification and Validation -\item Acceptance of software engineering methodologies -\item No existing templates or examples %explain that templates are a tool for doc req. -\end{itemize} - -\end{itemize} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Outline of Discussion of Requirements} - -\begin{itemize} - -\item Background on requirements elicitation, analysis and documentation -\item Tabular expressions -\item Why requirements analysis for engineering computation? - -\item System Requirements Specification and template for beam analysis software -\begin{itemize} -\item Provides guidelines -\item Eases transition from general to specific -\item Catalyses early consideration of design -\item Reduces ambiguity -\item Identifies range of model applicability -\item Clear documentation of assumptions -\end{itemize} - -\end{itemize} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{A Rational Design Process} -%\begin{figure} -\begin{center} - \includegraphics[width=1.0\textwidth]{../Figures/reqSE.pdf} -\end{center} -%\end{figure} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Sometimes Include Commonality Analysis} -%\begin{figure} -\begin{center} - \includegraphics[width=1.0\textwidth]{../Figures/Waterfall.pdf} -\end{center} -%\end{figure} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Software Requirements Activities} -\begin{itemize} -\item A software requirement is a description of how the system should behave, or of a system property or attribute -\item Requirements should be unambiguous, complete, consistent, modifiable, verifiable and traceable -\item Requirements should express ``What'' not ``How'' -\item Formal versus informal specification -\item Functional versus nonfunctional requirements -\item Software requirements specification (SRS) -\item Requirements template -\end{itemize} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Tabular Expressions} - -\begin{flushleft} -\scalebox{0.75}{ -\begin{tabular}{||r|p{6cm}||} -\hhline{=|=} -Composition rule & $\cup_{i=1}^{4} H_2[i] \cap (\cap_{j=1}^{2} H_1[j] ~;~ G[i,j])$ \\ -\hhline{=|=} -\end{tabular} -} -\end{flushleft} - -%\begin{center} -\begin{tabular}{|l|p{0.3cm}|l|l|} -\multicolumn{4}{c}{} \\ -\multicolumn{2}{c}{} & \multicolumn{2}{>{\large}c}{$H_1$} \\ -\hhline{|~|~|-|-|} -\multicolumn{2}{c|}{} & $S_{GET}'\cup =$ & $ErrorMsg'+=$ \\ -\hhline{|~|~|-|-|} -\multicolumn{4}{c}{} \\ -\hhline{|-|~|-|-|} -$x_1 < 0$ & & $\emptyset$ & $InvalidInput\_x_1$ \\ -\hhline{|-|~|-|-|} -$0 \le x_1 < min_d$ & & $\emptyset$ & $x_1\_TooSmall$ \\ -\hhline{|-|~|-|-|} -$x_1 > max_d$ & & $\emptyset$ & $x_1\_TooLarge$ \\ -\hhline{|-|~|-|-|} -$min_d \le x_1 \le max_d$ & & $\{@{x_1}\}$ & $NULL$ \\ -\hhline{|-|~|-|-|} -\multicolumn{2}{c}{} & \multicolumn{2}{r}{$\land ChangeOnly(S_{GET}, ErrorMsg)$}\\ -\multicolumn{2}{>{\large}c}{$H_2$} & \multicolumn{2}{>{\large}c}{$G$} \\ -\end{tabular} -%\end{center} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Why Requirements Analysis?} -%\begin{figure} -\begin{center} - \includegraphics[width=1.0\textwidth]{../Figures/StagesInSciCompErrors.pdf} -\end{center} -%\end{figure} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Beam Analysis Software} -~\newline -~\newline -\begin{center} - \includegraphics[width=1.0\textwidth]{../Figures/beamFBD.pdf} -\end{center} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Proposed Template} - -\scalebox{0.85}{ -\begin{minipage}{1.2\textwidth} -\begin{enumerate} - -\item Reference Material: a) Table of Symbols ... - -\item Introduction: a) Purpose of the Document; b) Scope of the Software Product; c) Organization of the Document. - -\item General System Description: a) System Context; b) User Characteristics; c) System Constraints. - -\item Specific System Description: -\begin{enumerate} -\item Problem Description: i) Background Overview ... -\item Solution specification: i) Assumptions; ii) Theoretical Models; ... -\item Non-functional Requirements: i) Accuracy of Input Data; ii) Sensitivity ... -\end{enumerate} - -\item{Traceability Matrix} - -\item List of Possible Changes in the Requirements - -\item{Values of Auxiliary Constants} - -\end{enumerate} -\end{minipage} -} -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Provides Guidance} -\begin{itemize} -\item Details will not be overlooked, facilitates multidisciplinary collaboration -\item Encourages a systematic process -\item Acts as a checklist -\item Separation of concerns -\begin{itemize} -\item Discuss purpose separately from organization -\item Functional requirements separate from non-functional -%\begin{itemize} -%\item solve for forces -%\item system responds within 1 second -%\end{itemize} -\end{itemize} -\item Labels for cross-referencing -\begin{itemize} -\item Sections, physical system description, goal statements, assumptions, etc. -\item PS1.a ``the shape of the beam is long and thin'' -\end{itemize} -%\item Use of parameters instead of explicit values +\item Best way to learn is by doing +\item Some getting started information and exercises in the ToolTutorials + folder, modified from undergrad classes +\item Many other resources on-line +\item Your colleagues can help too \end{itemize} \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} -\frametitle{Eases Transition from General to Specific} -\begin{itemize} -\item ``Big picture'' first followed by details -\item Facilitates reuse -\item ``Introduction'' to ``General System Description'' to ``Specific System Description'' -\item Refinement of abstract goals to theoretical model to instanced model +\frametitle{Git, GitLab and GitHub} \begin{itemize} -\item \textbf{G1}. Solve for the unknown external forces applied to the beam -\item $ \textbf{T1}~ -\textrm{$\sum{F_{xi}} = 0$,}~ -\textrm{$\sum{F_{yi}} = 0$,}~ -\textrm{$\sum{M_i} = 0$}$ -\item \textbf{M1} \textrm{$F_{ax} - F_1\cdot \cos\theta_3 - F_2\cdot \cos\theta_4 - F_{bx} = 0$} -\end{itemize} +\item Git manages changes to documents +\bi +\item Tracks changes +\item Keeps history, you can roll back +\item Useful documentation over time +\item Allows people to work simultaneously +\ei +\item Benefits for SC \cite{WilsonEtAl2016} +\bi +\item Not necessary to make a backup copy of everything, stores just enough + information to recreate +\item Do not need to come up with names for backup copies - same file name, but + with timestamps +\item Enforces changelog discipline +\item Facilitates identifying conflict and merging changes +\ei +\item The real bottleneck in scientific computing~\cite{Wilson2006} \end{itemize} \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Ensures Special Cases are Considered} -\scalebox{0.6}{ -\begin{tabular}{| p{3.8cm} | p{1.7cm} | p{0.05cm} | p{9.0cm} | p{1.8cm} |} -\multicolumn{3}{c}{} & \multicolumn{2}{>{\large}c}{$H_1$} \\ -\hhline{|~|~|~|-|-|} -\multicolumn{3}{c}{} & \multicolumn{1}{|c|}{$S_{GET} = S_{sym} - S_{unkF}$} & $S_{GET} \ne (S_{sym} - S_{unkF})$ \\ -\hhline{|~|~|~|-|-|} - -\hhline{|-|-|~|-|-|} $S_{unkF} \notin \mathbb{P}_3$ & - & & $(ErrorMsg'=InvalidUnknown)$ \newline -$\land ChangeOnly(ErrorMsg)$ & -\multirow{9}{2cm}{$FALSE$} \\ -\hhline{|-|-|~|-|~|} $S_{unkF} = \newline \{@{F_{ax}}, @{F_{bx}}, @{F_{ay}} \}$ & - & & $ErrorMsg'=NoSolution$ \newline -$\land ChangeOnly(ErrorMsg)$ & \\ -%\hhline{|-|-|~|-|~|} $S_{unkF} = \newline \{@{F_{ax}}, @{F_{bx}}, @{F_{by}} \}$ & - & & $ErrorMsg'=NoSolution$ \newline -%$\land ChangeOnly(ErrorMsg)$ & \\ -%\hhline{|-|-|~|-|~|} $S_{unkF} = \newline \{@{F_{ax}}, @{F_{bx}}, @{F_1} \}$ & - & & $ErrorMsg'=NoSolution$ \newline -%$\land ChangeOnly(ErrorMsg)$ & \\ -%\hhline{|-|-|~|-|~|} $S_{unkF} = \newline \{@{F_{ax}}, @{F_{bx}}, @{F_2} \}$ & - & & $ErrorMsg'=NoSolution$ \newline -%$\land ChangeOnly(ErrorMsg)$ & \\ -\hhline{|-|-|~|-|~|} -%\multirow{3}{4.2cm} -{$S_{unkF} = \newline \{@{F_{ax}}, @{F_{ay}}, @{F_1}\}$} & -$x_1 \ne 0 $ \newline -$\land~\theta_3 \ne 0$ \newline -$\land~\theta_3 \ne 180$ -& & -$F_{ax}' = $\newline -$\frac{-\cos\theta_3 F_2 x_2 \sin\theta_4 + \cos\theta_3 F_{by} L + F_2 \cos\theta_4 x_1 \sin\theta_3 -+ F_{bx} x_1 \sin\theta_3}{x_1 \sin\theta_3}$\newline -$\land$\newline -$F_{ay}' = -\frac{F_2 x_2 \sin\theta_4 - F_{by} L - F_2 \sin\theta_4 x_1 + F_{by} x_1}{x_1}$\newline -{$\land~F_1' = \frac{-F_2 x_2 \sin\theta_4 + F_{by} L}{x_1 \sin\theta_3} \land ChangeOnly(S_{unkF})$} -& \\ -\hhline{|~|-|~|-|~|} & $otherwise$ & & $(ErrorMsg'=Indeterminant)$\newline -$\land ChangeOnly(ErrorMsg)$ & \\ -\hhline{|-|-|~|-|-|} - -\multicolumn{5}{c}{} \\ -\multicolumn{3}{>{\large}c}{$H_2$} & \multicolumn{2}{>{\large}c}{$G$} \\ -\end{tabular} } -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} -\frametitle{Catalyses Early Consideration of Design} -\begin{itemize} -\item Identification of significant issues early will improve the design -\item Section for considering sensitivity -\begin{itemize} -\item Conditioning? -\item Buckling of beam -\end{itemize} -\item Non-functional requirements -\begin{itemize} -\item Tradeoffs in design -\item Speed efficiency versus accuracy -\end{itemize} -\item Tolerance allowed for solution: $|\sum{F_{xi}}| / \sqrt{\sum{F_{xi}}^2} \le \epsilon$ -\item Solution validation strategies -\item List of possible changes in requirements -\end{itemize} -\end{frame} +\frametitle{Git Typical Usage} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Reduces Ambiguity} -\begin{itemize} -\item Unambiguous requirements allow communication between experts, requirements review, designers do not have to -make arbitrary decisions -\item Tabular expressions allow automatic verification of completeness -\item Table of symbols -\item Abbreviations and acronyms -\item Scope of software product and system context -\item User characteristics -\item Terminology definition and data definition -\item Ends arguments about the relative merits of different designs -\end{itemize} +First either init repo or clone (git init, git clone), then typical workflow is +\be +\item update repo (git pull) +\item create files +\item stage changes to be committed (git status, git add) +\item commit staged changes (git commit -m ``message'') +\item push to remote, if using one (git push) +\ee +\bi +\item Commit after every separate issue, and when need to stop working +\item Always include a meaningful and descriptive commit message for the log +\item If a push reveals conflicts, take appropriate action to merge +\ei \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Identifies Range of Model Applicability} -\begin{itemize} -\item Clear documentation as to when model applies -\item Can make the design specific to the problem -\item Input data constraints are identified -\begin{itemize} -\item Physically meaningful: $0 \leq x_1 \leq L$ -\item Maintain physical description: PS1.a, $0 < h \leq 0.1 L$ -\item Reasonable requirements: $0 \leq \theta_3 \leq 180$ -\end{itemize} -\item The constraints for each variable are documented by tables, which are later composed together -\item $(min_f \le |F_{ax}| \le max_f) -\land (|F_{ax}| \ne 0) \Rightarrow \forall ({FF}|{@{FF} \in S_F} \cdot {FF \ne 0 -\land \frac{max\{{|F_{ax}|,|FF|}\}}{min\{{|F_{ax}|, |FF|}\}} \le 10 ^ {r_f}})$ -\end{itemize} -\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} +\frametitle{GitLab and GitHub Issue Tracking} -\frametitle{Summary of Variables} - -\begin{table} -\begin{center} -\scalebox{0.9}{ -\begin{tabular}{|l|l|p{3.0cm}|p{3.3cm}|l|} -\multicolumn{5}{c}{} \\ -\hline -\textbf{Var} & \textbf{Type} & \textbf{Physical\newline Constraints} & \textbf{System\newline Constraints} & -\textbf{Prop} \\ -\hline $x$ & $Real$ & $x\ge 0 \land x\le L$ & $min_d \le x \le max_d$ & NIV \\ -\hline $x_1$ & $Real$ & $x_1\ge0 \land x_1\le L$ & $min_d \le x_1 \le max_d$ & IN \\ -\hline $x_2$ & $Real$ & $x_2\ge0 \land x_2\le L$ & $min_d \le x_2 \le max_d$ & IN \\ -\hline $e$ & $Real$ & $e>0 \land e \le h$ & $min_e \le e \le max_e$ & IN \\ -\hline $h$ & $Real$ & $h>0 \land h\le 0.1L$ & $min_h \le h \le max_h$ & IN \\ -\hline $L$ & $Real$ & $L>0$ & $min_d \le L \le max_d$ & IN \\ -\hline $E$ & $Real$ & $E>0$ & $min_E \le E \le max_E$ & IN \\ -\hline $\theta_3$ & $Real$ & $-\infty < \theta_3 < +\infty$ & $0 \le \theta_3 \le 180$ & IN \\ -\hline $\theta_4$ & $Real$ & $-\infty < \theta_4 < +\infty$ & $0 \le \theta_4 \le 180$ & IN \\ -\hline $V$ & $Real$ & $-\infty < V < +\infty$ & - & OUT \\ -\hline $M$ & $Real$ & $-\infty < M < +\infty$ & - & OUT \\ -\hline $y$ & $Real$ & $-\infty < y < +\infty$ & - & OUT \\ -\hline $...$ & $...$ & $...$ & ... & ... \\ -\hline -\end{tabular} } -\end{center} -\end{table} - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\bi +\item See brief document in course repo +\item \href{https://github.com/JacquesCarette/literate-scientific-software/issues}{See + examples} +\item Create an issue +\ei -\begin{frame} -\frametitle{Clear Documentation of Assumptions} -\scalebox{0.82}{ -\begin{tabular}{| p{1.3cm} | p{1.3cm} | l | l | l | l | l | l | l | l | l | l | l | l |} -\hhline{--------------} -Phy. Sys. /Goal & Data /Model & \multicolumn{10}{c|}{Assumption} & \multicolumn{2}{c|}{Model} \\ -\hhline{~~------------} -& & A1 & A2 & ... & A4 & ... & A8 & A9 & A10 & ... & A14 & \textbf{M1} & ... \\ -\hhline{--------------} -\textbf{G1} & \textbf{T1} & $\surd$ & & ... & & ... & $\surd$ & $\surd$ & & ... & & $\surd$ & ...\\ -\hhline{--------------} -\textbf{G2} & \textbf{T2} & $\surd$ & & ... & &... & $\surd$ & $\surd$ & & ... & & & ... \\ -\hhline{--------------} -\textbf{G3} & \textbf{T3} & $\surd$ & & ... & &... & & $\surd$ & $\surd$ & ... & & & ...\\ -\hhline{--------------} -~ & \textbf{M1} & & $\surd$ & ... & & ... & & & & ... & & $\surd$ &... \\ -\hhline{--------------} -PS1.a & $L$ & & &... & &... & & & $\surd$ & ... & & ... & ... \\ -\hhline{--------------} -... & ... & ... & ... & ... & ... & ... & ... & ... & ... & ... & ... & ... & ... \\ -\hhline{--------------} -\end{tabular} -} -~\newline -~\newline -\textbf{A10}. The deflection of the beam is caused by bending moment only, the shear does not contribute.\\ -%\textbf{A15}. The beam behaves as a rigid body \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\frame{\frametitle{More on the New Template} -\begin{itemize}%[<+-| alert@+>]%[iacolor=gray] -\item Why a new template? -\item The new template -\begin{itemize} -\item Overview of changes from existing templates -\item Goal $\rightarrow$ Theoretical Model $\rightarrow$ Instanced Model hierarchy -\item Traceability matrix -\item System behaviour, including input constraints -\end{itemize} -\end{itemize} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\frame{\frametitle{Why a New Template?} -\begin{enumerate}%[<+-| alert@+>]%[iacolor=gray] -%\item Reasons for a new template also form principles for its design -\item One user viewpoint for the physical model -\item Assumptions distinguish models -\item High potential for reuse of functional requirements -\item Characteristic hierarchical nature facilitates change -\item Continuous mathematics presents a challenge -\end{enumerate} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\frame{\frametitle{Overview of the New Template} - -\begin{itemize} - -\item{Reference Material} - -\item{Introduction:} -{a) Purpose of the Document} -{b) Scope of the Software Product} -{c) Organization of the Document} - -\item General System Description: -{a) System Context} -{b) User Characteristics} -{c) System Constraints} - -\item \structure<2->{Specific System Description: -a) Problem Description -b) Solution Characteristics Specification -c) Non-functional Requirements} - -\item{Other System Issues} - -\item \structure<2->{Traceability Matrix} - -\item List of Possible Changes in the Requirements - -\item{Values of Auxiliary Constants} - -\item{References} - -\end{itemize} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} -\frametitle{Excerpts from Specific System Description} - -\begin{itemize} - -\item Problem Description -\begin{itemize} -\item Physical system description (\textbf{PS}) -\item Goals (\textbf{G}) -\end{itemize} - -\item Solution Characteristics Specification -\begin{itemize} -\item Assumptions (\textbf{A}) -\item Theoretical models (\textbf{T}) -\item Data definitions -\item Instanced models (\textbf{M}) -\item Data constraints -\item System behaviour -\end{itemize} - -\item Non-functional Requirements +\frametitle{LaTeX} \begin{itemize} -\item Accuracy of input data -\item Sensitivity of the model -\item Tolerance of the solution -\item Solution validation strategies -\end{itemize} - +\item A typesetting language +\item Some initial information in course repo +\item Start from an example +\bi +\item The lectures notes +\item The Blank Project Template +\item The problem statement +\ei \end{itemize} - \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} -\frametitle{Refinement from Abstract to Concrete} - -\begin{overlayarea}{\textwidth}{5.3cm} -\begin{figure}[H] -\includegraphics<1>[scale=0.41]{../Figures/RefinementHierarchy.pdf} -\includegraphics<2>[scale=0.41]{../Figures/RefinementG1.pdf} -\includegraphics<3>[scale=0.41]{../Figures/RefinementT11.pdf} -\includegraphics<4>[scale=0.41]{../Figures/RefinementM111.pdf} -\includegraphics<5>[scale=0.41]{../Figures/RefinementT12.pdf} -\end{figure} -\end{overlayarea} - -\begin{overlayarea}{\textwidth}{1cm} - -\only<2>{\textbf{G1}: Solve for unknown forces} - -\only<3>{ -\begin{center} -$%\begin{displaymath} -\mathbf{(T1_1)}~\left\{ -\begin{array}{lll} -\textrm{$\sum{F_{xi}} = 0$}\\ -\textrm{$\sum{F_{yi}} = 0$}\\ -\textrm{$\sum{M_i} = 0$}\\ -\end{array} \right. $%\end{displaymath} -\end{center} -} - -\only<4>{ -\begin{center} $%\begin{displaymath} -\textbf{(M1)}~\left\{ -\begin{array}{lll} -\textrm{$F_{ax} - F_1\cdot \cos\theta_3 - F_2\cdot \cos\theta_4 - F_{bx} = 0$} \\ -\textrm{$F_{ay} - F_1\cdot \sin\theta_3 - F_2\cdot \sin\theta_4 + F_{by} = 0$}\\ -\textrm{$- F_1\cdot x_1\sin\theta_3 - F_2\cdot x_2\sin\theta_4 + F_{by}\cdot L = 0$}\\ -\end{array} \right. -$%\end{displaymath} -\end{center} -} - -\only<5>{ -The virtual work done by all the external forces and couples acting on the system is zero for each independent virtual -displacement of the system, or mathematically $\delta U = 0$ -} -\end{overlayarea} - -\end{frame} +\frametitle{SE For SC Literature} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin {itemize} -\begin{frame} -\frametitle{Other goals and models} -\begin{itemize} -\item \textbf{G2}: Solve for the functions of shear force and bending moment along the beam -\item \textbf{G3}: Solve for the function of deflection along the beam -\item $\mathbf{T3_1}$: $\frac{d^2 y}{d x^2} = \frac{M}{EI}$, $y(0) = y(L) = 0$ -\item $\mathbf{T3_2}$: $y$ determined by moment area method -\item $\mathbf{T3_3}$: $y$ determined using Castigliano's theorem -\item $\mathbf{M3_{11}}$: $y = \frac{12 \int_0^L (\int_0^L M dx) dx}{Eeh^3}$, $y(0) = y(L) = 0$ +\item CAS 741 process is document driven, adapted +from the waterfall model~\cite{GhezziEtAl2003, VanVliet2000} +\item Many say a document driven process is not used by, nor suitable for, +scientific software. +\bi +\item Scientific developers naturally use an agile + philosophy~\cite{AckroydEtAl2008, CarverEtAl2007, EasterbrookAndJohns2009, Segal2005}, +\item or an amethododical process~\cite{Kelly2013} +\item or a knowledge acquisition driven process~\cite{Kelly2015}. +\ei +\item Scientists do not view rigid, process-heavy approaches, + favorably~\cite{CarverEtAl2007} +\item Reports for each stage of development are counterproductive~\cite[p.~373]{Roache1998} +\item Up-front requirements are +impossible~\cite{CarverEtAl2007, SegalAndMorris2008} +\item \structure{What are some arguments in favour of a rational document driven + process?} \end{itemize} -\end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{frame} -\frametitle{Kreyman and Parnas Five Variable Model} -\begin{itemize} -\item An alternative approach -\item Unfortunately the numerical algorithm is not hidden in the requirements specification -\item The analogy with real-time systems leads to some confusion -\end{itemize} \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} -\frametitle{Concluding Remarks} -\begin{itemize} -\item Quality is a concern for scientific computing software -\item Software engineering methodologies can help -\item Motivated, justified and illustrated a method of writing requirements specification for engineering computation -to improve reliability -\item Also improve quality with respect to usability, verifiability, maintainability, reusability and portability -\item Tabular expressions to reduce ambiguity, encourage systematic approach -\item Conclusions can be generalized because other computation problems follow the same pattern of \emph{Input} then -\emph{Calculate} then \emph{Output} -\item Benefits of approach should increase as the number of details and the number of people involved increase -\end{itemize} -\end{frame} +\frametitle{Counter Arguments} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin {itemize} -\begin{frame} -\frametitle{Concluding Remarks (Continued)} -\begin{itemize} -\item A new template for scientific computing has been developed -\item Characteristics of scientific software guided the design -\item Designed for reuse -\item Functional requirements split into ``Problem Description'' and ``Solution Characteristics Specification'' -\item Traceability matrix -\item Addresses nonfunctional requirements (but room for improvement) +\item Just because document driven is not used, does not mean it will not work +\item Documentation provides many +benefits~\cite{Parnas2010}: +\bi +\item easier reuse of old designs +\item better communication about requirements +\item more useful design reviews +\item easier integration of separately +written modules +\item more effective code inspection +\item more effective testing +\item more efficient corrections and improvements. +\ei +\item Actually faking a rational design process +\item Too complex for up-front requirements sounds like an excuse +\bi +\item Laws of physics/science slow to change +\item Often simple design patterns +\item Think program family, not individual member +\ei \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} \ No newline at end of file diff --git a/ReferenceMaterial/AckroydEtAl2008.pdf b/ReferenceMaterial/AckroydEtAl2008.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5905c857885dd5ea032ce33431e50b6c19a40ca4 Binary files /dev/null and b/ReferenceMaterial/AckroydEtAl2008.pdf differ diff --git a/ReferenceMaterial/CarverEtAl2007.pdf b/ReferenceMaterial/CarverEtAl2007.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6cdec8b4831cf9d204030b3ded74afc9e227f837 Binary files /dev/null and b/ReferenceMaterial/CarverEtAl2007.pdf differ diff --git a/ReferenceMaterial/EasterbrookAndJohns2009.pdf b/ReferenceMaterial/EasterbrookAndJohns2009.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e099fc0c936221e0911f9fa5b8bf71ee1ba6bba0 Binary files /dev/null and b/ReferenceMaterial/EasterbrookAndJohns2009.pdf differ diff --git a/ReferenceMaterial/Kelly2013.pdf b/ReferenceMaterial/Kelly2013.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6db5255ff371f5b2d08e4506e89b968a14af5775 Binary files /dev/null and b/ReferenceMaterial/Kelly2013.pdf differ diff --git a/ReferenceMaterial/Kelly2015.pdf b/ReferenceMaterial/Kelly2015.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d6a52a4bf991449dfc50912fbeb52d691c3df06d Binary files /dev/null and b/ReferenceMaterial/Kelly2015.pdf differ diff --git a/ReferenceMaterial/Parnas2010.pdf b/ReferenceMaterial/Parnas2010.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f9e197946baf1d5cb912e0d6d134f8fe394b348f Binary files /dev/null and b/ReferenceMaterial/Parnas2010.pdf differ diff --git a/ReferenceMaterial/References.bib b/ReferenceMaterial/References.bib index 62cd14e2737af31395ad8b4e487a31c6324552d8..48f994d2927350594ccb7ef7cdf3181a408ad091 100644 --- a/ReferenceMaterial/References.bib +++ b/ReferenceMaterial/References.bib @@ -2,13 +2,166 @@ %% http://bibdesk.sourceforge.net/ -%% Created for Spencer Smith at 2017-09-07 14:15:00 -0400 +%% Created for Spencer Smith at 2017-09-08 00:00:23 -0400 %% Saved with string encoding Unicode (UTF-8) +@inproceedings{Parnas2010, + Author = {David Lorge Parnas}, + Bibsource = {dblp computer science bibliography, http://dblp.org}, + Biburl = {http://dblp.uni-trier.de/rec/bib/conf/birthday/Parnas10}, + Booktitle = {The Future of Software Engineering}, + Date-Added = {2017-09-08 04:00:01 +0000}, + Date-Modified = {2017-09-08 04:00:01 +0000}, + Doi = {10.1007/978-3-642-15187-3_8}, + Pages = {125--148}, + Timestamp = {Tue, 30 Aug 2011 14:09:42 +0200}, + Title = {Precise Documentation: The Key to Better Software}, + Url = {http://dx.doi.org/10.1007/978-3-642-15187-3_8}, + Year = {2010}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QMi4uLy4uL3NlNHNjL1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzL1Bhcm5hczIwMTAucGRm0hcLGBlXTlMuZGF0YU8RAcwAAAAAAcwAAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM6Xc4NIKwAACTH9DQ5QYXJuYXMyMDEwLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJMf1C028E0wAAAAAAAAAAAAIAAwAACSAAAAAAAAAAAAAAAAAAAAAXU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnMAABAACAAAzperwwAAABEACAAA0289EwAAAAEAFAkx/Q0JMe7HABIVpwAI92YAAmSOAAIAUU1hY2ludG9zaCBIRDpVc2VyczoAc21pdGhzOgBSZXBvczoAc2U0c2M6AFNjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzOgBQYXJuYXMyMDEwLnBkZgAADgAeAA4AUABhAHIAbgBhAHMAMgAwADEAMAAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIAP1VzZXJzL3NtaXRocy9SZXBvcy9zZTRzYy9TY2lDb21wQW5kU29mdEVuZ1BhcGVycy9QYXJuYXMyMDEwLnBkZgAAEwABLwAAFQACAA3//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgDDAMgA0AKgAqICpwKyArsCyQLNAtQC3QLiAu8C8gMEAwcDDAAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAMO}, + Bdsk-Url-1 = {http://dx.doi.org/10.1007/978-3-642-15187-3_8}} + +@book{Roache1998, + Address = {Albuquerque, New Mexico}, + Author = {Patrick J. Roache}, + Date-Added = {2017-09-08 03:59:45 +0000}, + Date-Modified = {2017-09-08 03:59:45 +0000}, + Publisher = {Hermosa Publishers}, + Title = {Verification and Validation in Computational Science and Engineering}, + Year = {1998}} + +@article{SegalAndMorris2008, + Annote = {Some extra information on the citation. + +@article{Segal2008IEEE, + Address = {Los Alamitos, CA, USA}, + Author = {Segal, Judith and Morris, Chris}, + Date-Added = {2011-01-28 14:00:17 -0500}, + Date-Modified = {2011-01-28 14:00:35 -0500}, + Doi = {http://dx.doi.org/10.1109/MS.2008.85}, + Issn = {0740-7459}, + Journal = {IEEE Softw.}, + Number = {4}, + Pages = {18--20}, + Publisher = {IEEE Computer Society Press}, + Title = {Developing Scientific Software}, + Url = {http://cs.ua.edu/\~{}SECSE08/Papers/Segal.pdf}, + Volume = {25}, + Year = {2008}, + Bdsk-Url-1 = {http://cs.ua.edu/%5C~%7B%7DSECSE08/Papers/Segal.pdf}, + Bdsk-Url-2 = {http://dx.doi.org/10.1109/MS.2008.85}}}, + Author = {Judith Segal and Chris Morris}, + Date-Added = {2017-09-08 03:59:33 +0000}, + Date-Modified = {2017-09-08 03:59:33 +0000}, + Journal = {IEEE Software}, + Local-Url = {/Users/smiths/LongTermArchives/Work/Research/References/SciCompAndSoftEng/SegalAndMorris2008.pdf}, + Month = {July/August}, + Number = {4}, + Pages = {18--20}, + Title = {Developing Scientific Software}, + Volume = {25}, + Year = {2008}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QOi4uLy4uL3NlNHNjL1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzL1NlZ2FsQW5kTW9ycmlzMjAwOC5wZGbSFwsYGVdOUy5kYXRhTxEB7AAAAAAB7AACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAzpdzg0grAAAJMf0NFlNlZ2FsQW5kTW9ycmlzMjAwOC5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkx/VbTbwTTAAAAAAAAAAAAAgADAAAJIAAAAAAAAAAAAAAAAAAAABdTY2lDb21wQW5kU29mdEVuZ1BhcGVycwAAEAAIAADOl6vDAAAAEQAIAADTbz0TAAAAAQAUCTH9DQkx7scAEhWnAAj3ZgACZI4AAgBZTWFjaW50b3NoIEhEOlVzZXJzOgBzbWl0aHM6AFJlcG9zOgBzZTRzYzoAU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnM6AFNlZ2FsQW5kTW9ycmlzMjAwOC5wZGYAAA4ALgAWAFMAZQBnAGEAbABBAG4AZABNAG8AcgByAGkAcwAyADAAMAA4AC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgBHVXNlcnMvc21pdGhzL1JlcG9zL3NlNHNjL1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzL1NlZ2FsQW5kTW9ycmlzMjAwOC5wZGYAABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4AywDQANgCyALKAs8C2gLjAvEC9QL8AwUDCgMXAxoDLAMvAzQAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAADNg==}, + Bdsk-File-2 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QiC4uLy4uLy4uLy4uLy4uLy4uL1ZvbHVtZXMvQXJjaGl2ZS9Mb25nVGVybUFyY2hpdmVzTGFzdENoYW5nZU1heTEwXzIwMTIvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL1NjaUNvbXBBbmRTb2Z0RW5nL1NlZ2FsQW5kTW9ycmlzMjAwOC5wZGbSFwsYGVdOUy5kYXRhTxECFAAAAAACFAACAAAHQXJjaGl2ZQAAAAAAAAAAAAAAAAAAAAAAAAAAy9IbmEgrAAAAADxgFlNlZ2FsQW5kTW9ycmlzMjAwOC5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPKbGUse1AAAAAAAAAAD/////AAAJAAAAAAAAAAAAAAAAAAAAABFTY2lDb21wQW5kU29mdEVuZwAAEAAIAADL0lPYAAAAEQAIAADGUv/1AAAAAQAUAAA8YAAAOOsAADXTAAAdogAAAD4AAgBpQXJjaGl2ZTpMb25nVGVybUFyY2hpdmVzTGFzdENoYW5nZU1hIzNFOldvcms6UmVzZWFyY2g6UmVmZXJlbmNlczpTY2lDb21wQW5kU29mdEVuZzpTZWdhbEFuZE1vcnJpczIwMDgucGRmAAAOAC4AFgBTAGUAZwBhAGwAQQBuAGQATQBvAHIAcgBpAHMAMgAwADAAOAAuAHAAZABmAA8AEAAHAEEAcgBjAGgAaQB2AGUAEgBnL0xvbmdUZXJtQXJjaGl2ZXNMYXN0Q2hhbmdlTWF5MTBfMjAxMi9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvU2NpQ29tcEFuZFNvZnRFbmcvU2VnYWxBbmRNb3JyaXMyMDA4LnBkZgAAEwAQL1ZvbHVtZXMvQXJjaGl2Zf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOARkBHgEmAz4DQANFA1ADWQNnA2sDcgN7A4ADjQOQA6IDpQOqAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA6w=}} + +@article{Kelly2015, + Author = {Diane Kelly}, + Bibsource = {dblp computer science bibliography, http://dblp.org}, + Biburl = {http://dblp.uni-trier.de/rec/bib/journals/jss/Kelly15}, + Date-Added = {2017-09-08 03:59:12 +0000}, + Date-Modified = {2017-09-08 03:59:12 +0000}, + Doi = {10.1016/j.jss.2015.07.027}, + Journal = {Journal of Systems and Software}, + Pages = {50--61}, + Timestamp = {Thu, 26 Nov 2015 09:26:40 +0100}, + Title = {Scientific software development viewed as knowledge acquisition: Towards understanding the development of risk-averse scientific software}, + Url = {http://dx.doi.org/10.1016/j.jss.2015.07.027}, + Volume = {109}, + Year = {2015}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QMS4uLy4uL3NlNHNjL1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzL0tlbGx5MjAxNS5wZGbSFwsYGVdOUy5kYXRhTxEBxgAAAAABxgACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAzpdzg0grAAAJMf0NDUtlbGx5MjAxNS5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkx/TDTbwTQAAAAAAAAAAAAAgADAAAJIAAAAAAAAAAAAAAAAAAAABdTY2lDb21wQW5kU29mdEVuZ1BhcGVycwAAEAAIAADOl6vDAAAAEQAIAADTbz0QAAAAAQAUCTH9DQkx7scAEhWnAAj3ZgACZI4AAgBQTWFjaW50b3NoIEhEOlVzZXJzOgBzbWl0aHM6AFJlcG9zOgBzZTRzYzoAU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnM6AEtlbGx5MjAxNS5wZGYADgAcAA0ASwBlAGwAbAB5ADIAMAAxADUALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAD5Vc2Vycy9zbWl0aHMvUmVwb3Mvc2U0c2MvU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnMvS2VsbHkyMDE1LnBkZgATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAMIAxwDPApkCmwKgAqsCtALCAsYCzQLWAtsC6ALrAv0DAAMFAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAwc=}, + Bdsk-Url-1 = {http://dx.doi.org/10.1016/j.jss.2015.07.027}} + +@inproceedings{Kelly2013, + Acmid = {2555555}, + Address = {Riverton, NJ, USA}, + Author = {Kelly, Diane}, + Booktitle = {Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research}, + Date-Added = {2017-09-08 03:59:00 +0000}, + Date-Modified = {2017-09-08 03:59:00 +0000}, + Location = {Ontario, Canada}, + Numpages = {12}, + Pages = {299--310}, + Publisher = {IBM Corp.}, + Series = {CASCON '13}, + Title = {Industrial Scientific Software: A Set of Interviews on Software Development}, + Url = {http://dl.acm.org/citation.cfm?id=2555523.2555555}, + Year = {2013}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QLy4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9LZWxseTIwMTMucGRm0hcLGBlXTlMuZGF0YU8RAaQAAAAAAaQAAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM6Xc4NIKwAAABcCDA1LZWxseTIwMTMucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsPtZ0C3wzAAAAAAAAAAAAAMABAAACSAAAAAAAAAAAAAAAAAAAAAKUmVmZXJlbmNlcwAQAAgAAM6Xq8MAAAARAAgAANAuKQwAAAABABQAFwIMABcATQAW/e0ACPdmAAJkjgACAEVNYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAV29yazoAUmVzZWFyY2g6AFJlZmVyZW5jZXM6AEtlbGx5MjAxMy5wZGYAAA4AHAANAEsAZQBsAGwAeQAyADAAMQAzAC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgAzVXNlcnMvc21pdGhzL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9LZWxseTIwMTMucGRmAAATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAMAAxQDNAnUCdwJ8AocCkAKeAqICqQKyArcCxALHAtkC3ALhAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAuM=}} + +@article{EasterbrookAndJohns2009, + Address = {Los Alamitos, CA, USA}, + Author = {Easterbrook, Steve M. and Johns, Timothy C.}, + Date-Added = {2017-09-08 03:58:34 +0000}, + Date-Modified = {2017-09-08 03:58:34 +0000}, + Doi = {http://dx.doi.org/10.1109/MCSE.2009.193}, + Issn = {0740-7475}, + Journal = {Comuting in Science \& Engineering}, + Month = {November/December}, + Number = {6}, + Pages = {65--74}, + Publisher = {IEEE Computer Society Press}, + Title = {Engineering the Software for Understanding Climate Change}, + Volume = {11}, + Year = {2009}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QPy4uLy4uL3NlNHNjL1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzL0Vhc3RlcmJyb29rQW5kSm9obnMyMDA5LnBkZtIXCxgZV05TLmRhdGFPEQH+AAAAAAH+AAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADOl3ODSCsAAAkx/Q0bRWFzdGVyYnJvb2tBbmRKb2huczIwMDkucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTH9INNvBNAAAAAAAAAAAAACAAMAAAkgAAAAAAAAAAAAAAAAAAAAF1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzAAAQAAgAAM6Xq8MAAAARAAgAANNvPRAAAAABABQJMf0NCTHuxwASFacACPdmAAJkjgACAF5NYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAUmVwb3M6AHNlNHNjOgBTY2lDb21wQW5kU29mdEVuZ1BhcGVyczoARWFzdGVyYnJvb2tBbmRKb2huczIwMDkucGRmAA4AOAAbAEUAYQBzAHQAZQByAGIAcgBvAG8AawBBAG4AZABKAG8AaABuAHMAMgAwADAAOQAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIATFVzZXJzL3NtaXRocy9SZXBvcy9zZTRzYy9TY2lDb21wQW5kU29mdEVuZ1BhcGVycy9FYXN0ZXJicm9va0FuZEpvaG5zMjAwOS5wZGYAEwABLwAAFQACAA3//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgDQANUA3QLfAuEC5gLxAvoDCAMMAxMDHAMhAy4DMQNDA0YDSwAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAANN}, + Bdsk-Url-1 = {http://dx.doi.org/10.1109/MCSE.2009.193}} + +@inproceedings{CarverEtAl2007, + Address = {Washington, DC, USA}, + Author = {Jeffrey C. Carver and Richard P. Kendall and Susan E. Squires and Douglass E. Post}, + Booktitle = {ICSE '07: Proceedings of the 29th International Conference on Software Engineering}, + Date-Added = {2017-09-08 03:58:12 +0000}, + Date-Modified = {2017-09-08 03:58:12 +0000}, + Doi = {http://dx.doi.org/10.1109/ICSE.2007.77}, + Isbn = {0-7695-2828-7}, + Local-Url = {file://localhost/Users/smiths/LongTermArchives/Work/Research/References/SciCompAndSoftEng/CarverEtAl2007.pdf}, + Pages = {550--559}, + Publisher = {IEEE Computer Society}, + Title = {Software Development Environments for Scientific and Engineering Software: A Series of Case Studies}, + Year = {2007}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QNC4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9DYXJ2ZXJFdEFsMjAwNy5wZGbSFwsYGVdOUy5kYXRhTxEBtgAAAAABtgACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAzpdzg0grAAAAFwIMEkNhcnZlckV0QWwyMDA3LnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQuvzRbnAsAAAAAAAAAAAAAwAEAAAJIAAAAAAAAAAAAAAAAAAAAApSZWZlcmVuY2VzABAACAAAzperwwAAABEACAAA0W6obAAAAAEAFAAXAgwAFwBNABb97QAI92YAAmSOAAIASk1hY2ludG9zaCBIRDpVc2VyczoAc21pdGhzOgBXb3JrOgBSZXNlYXJjaDoAUmVmZXJlbmNlczoAQ2FydmVyRXRBbDIwMDcucGRmAA4AJgASAEMAYQByAHYAZQByAEUAdABBAGwAMgAwADAANwAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIAOFVzZXJzL3NtaXRocy9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvQ2FydmVyRXRBbDIwMDcucGRmABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4AxQDKANICjAKOApMCngKnArUCuQLAAskCzgLbAt4C8ALzAvgAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAAC+g==}, + Bdsk-Url-1 = {http://dx.doi.org/10.1109/ICSE.2007.77}} + +@article{AckroydEtAl2008, + Author = {Karen S. Ackroyd and Steve H. Kinder and Geoff R. Mant and Mike C. Miller and Christine A. Ramsdale and Paul C. Stephenson}, + Date-Added = {2017-09-08 03:57:39 +0000}, + Date-Modified = {2017-09-08 03:57:39 +0000}, + Journal = {IEEE Software}, + Local-Url = {/Users/smiths/LongTermArchives/Work/Research/References/SciCompAndSoftEng/AckroydEtAl2008.pdf}, + Month = {July/August}, + Number = {4}, + Pages = {44--51}, + Title = {Scientific Software Development at a Research Facility}, + Volume = {25}, + Year = {2008}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QNy4uLy4uL3NlNHNjL1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzL0Fja3JveWRFdEFsMjAwOC5wZGbSFwsYGVdOUy5kYXRhTxEB3gAAAAAB3gACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAzpdzg0grAAAJMf0NE0Fja3JveWRFdEFsMjAwOC5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkx/Q/TbwTQAAAAAAAAAAAAAgADAAAJIAAAAAAAAAAAAAAAAAAAABdTY2lDb21wQW5kU29mdEVuZ1BhcGVycwAAEAAIAADOl6vDAAAAEQAIAADTbz0QAAAAAQAUCTH9DQkx7scAEhWnAAj3ZgACZI4AAgBWTWFjaW50b3NoIEhEOlVzZXJzOgBzbWl0aHM6AFJlcG9zOgBzZTRzYzoAU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnM6AEFja3JveWRFdEFsMjAwOC5wZGYADgAoABMAQQBjAGsAcgBvAHkAZABFAHQAQQBsADIAMAAwADgALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAERVc2Vycy9zbWl0aHMvUmVwb3Mvc2U0c2MvU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnMvQWNrcm95ZEV0QWwyMDA4LnBkZgATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAMgAzQDVArcCuQK+AskC0gLgAuQC6wL0AvkDBgMJAxsDHgMjAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAyU=}, + Bdsk-File-2 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QWy4uLy4uLy4uLy4uL0xvbmdUZXJtQXJjaGl2ZXMvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL1NjaUNvbXBBbmRTb2Z0RW5nL0Fja3JveWRFdEFsMjAwOC5wZGbSFwsYGVdOUy5kYXRhTxECDAAAAAACDAACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAxsVhAEgrAAAAEqeSE0Fja3JveWRFdEFsMjAwOC5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAStFfITnRCAAAAAAAAAAAABAAGAAAJIAAAAAAAAAAAAAAAAAAAABFTY2lDb21wQW5kU29mdEVuZwAAEAAIAADGxZlAAAAAEQAIAADITqyCAAAAAQAcABKnkgASojYAEqDKABKgqQASoKUACFn3AAB8YwACAGlNYWNpbnRvc2ggSEQ6VXNlcnM6c21pdGhzOkxvbmdUZXJtQXJjaGl2ZXM6V29yazpSZXNlYXJjaDpSZWZlcmVuY2VzOlNjaUNvbXBBbmRTb2Z0RW5nOkFja3JveWRFdEFsMjAwOC5wZGYAAA4AKAATAEEAYwBrAHIAbwB5AGQARQB0AEEAbAAyADAAMAA4AC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgBcVXNlcnMvc21pdGhzL0xvbmdUZXJtQXJjaGl2ZXMvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL1NjaUNvbXBBbmRTb2Z0RW5nL0Fja3JveWRFdEFsMjAwOC5wZGYAEwABLwAAFQACAA3//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgDsAPEA+QMJAwsDEAMbAyQDMgM2Az0DRgNLA1gDWwNtA3ADdQAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAN3}} + +@book{VanVliet2000, + Address = {New York, NY, USA}, + Author = {Hans van Vliet}, + Date-Added = {2017-09-08 03:57:00 +0000}, + Date-Modified = {2017-09-08 03:57:00 +0000}, + Isbn = {0-471-97508-7}, + Publisher = {John Wiley \& Sons, Inc.}, + Title = {Software Engineering (2nd ed.): Principles and Practice}, + Year = {2000}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QMi4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9WYW5WbGlldDIwMDAucGRm0hcLGBlXTlMuZGF0YU8RAa4AAAAAAa4AAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM6Xc4NIKwAAABcCDBBWYW5WbGlldDIwMDAucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWKj40RDWlQAAAAAAAAAAAAMABAAACSAAAAAAAAAAAAAAAAAAAAAKUmVmZXJlbmNlcwAQAAgAAM6Xq8MAAAARAAgAANERHOUAAAABABQAFwIMABcATQAW/e0ACPdmAAJkjgACAEhNYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAV29yazoAUmVzZWFyY2g6AFJlZmVyZW5jZXM6AFZhblZsaWV0MjAwMC5wZGYADgAiABAAVgBhAG4AVgBsAGkAZQB0ADIAMAAwADAALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASADZVc2Vycy9zbWl0aHMvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL1ZhblZsaWV0MjAwMC5wZGYAEwABLwAAFQACAA3//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgDDAMgA0AKCAoQCiQKUAp0CqwKvArYCvwLEAtEC1ALmAukC7gAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAALw}} + @article{TaschukAndWilson2017, Abstract = {{[Abstract] diff --git a/ReferenceMaterial/SegalAndMorris2008.pdf b/ReferenceMaterial/SegalAndMorris2008.pdf new file mode 100644 index 0000000000000000000000000000000000000000..67a4436f0f20ade45ee39d33de646301606cd793 Binary files /dev/null and b/ReferenceMaterial/SegalAndMorris2008.pdf differ