diff --git a/Lectures/Figures/DependenceGraph.pdf b/Lectures/Figures/DependenceGraph.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..db55f6bf8e625979222a41e31b35540531b168ed
Binary files /dev/null and b/Lectures/Figures/DependenceGraph.pdf differ
diff --git a/Lectures/Figures/DependenceOfVariabilities.pdf b/Lectures/Figures/DependenceOfVariabilities.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..ad11779937fb8003cc07f5c37b5c51a6c13e4c11
Binary files /dev/null and b/Lectures/Figures/DependenceOfVariabilities.pdf differ
diff --git a/Lectures/Figures/ExampleMesh.pdf b/Lectures/Figures/ExampleMesh.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..87821e9a2f5f0922e37e79a8888158d3538395c4
Binary files /dev/null and b/Lectures/Figures/ExampleMesh.pdf differ
diff --git a/Lectures/Figures/OverviewOfMethodology.pdf b/Lectures/Figures/OverviewOfMethodology.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..621daa90b3783226f64fb4dd3207703089043bcf
Binary files /dev/null and b/Lectures/Figures/OverviewOfMethodology.pdf differ
diff --git a/Lectures/Figures/Plastic.pdf b/Lectures/Figures/Plastic.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c6221df68a8cb3f9e13180913d4107d2c0f53f85
Binary files /dev/null and b/Lectures/Figures/Plastic.pdf differ
diff --git a/Lectures/Figures/StressTensor.pdf b/Lectures/Figures/StressTensor.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..3096d4ebe0103b57521d0554d41ef2290d09ed9d
Binary files /dev/null and b/Lectures/Figures/StressTensor.pdf differ
diff --git a/Lectures/Figures/TestSpecimenUniaxial.pdf b/Lectures/Figures/TestSpecimenUniaxial.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..2b18503c4366c61e2f97886f158a03101e0131b7
Binary files /dev/null and b/Lectures/Figures/TestSpecimenUniaxial.pdf differ
diff --git a/Lectures/Figures/TopologyPatterns.pdf b/Lectures/Figures/TopologyPatterns.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..6a3642148b0826a7034ad3feebd8ca2b0247164f
Binary files /dev/null and b/Lectures/Figures/TopologyPatterns.pdf differ
diff --git a/Lectures/Figures/TriangleElement.pdf b/Lectures/Figures/TriangleElement.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..16b79e7eacc3b704324c06568994db3a07ae02d3
Binary files /dev/null and b/Lectures/Figures/TriangleElement.pdf differ
diff --git a/Lectures/Figures/Viscoplastic.pdf b/Lectures/Figures/Viscoplastic.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9ba84f95c16244f9e73253b9162d5d4f3b95dd14
Binary files /dev/null and b/Lectures/Figures/Viscoplastic.pdf differ
diff --git a/Lectures/Figures/YieldHardeningAndPlastPotential.pdf b/Lectures/Figures/YieldHardeningAndPlastPotential.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..b5ff3ac944445ae36aec49a1015088a4000495e2
Binary files /dev/null and b/Lectures/Figures/YieldHardeningAndPlastPotential.pdf differ
diff --git a/Lectures/Figures/elementdialog2.png b/Lectures/Figures/elementdialog2.png
new file mode 100644
index 0000000000000000000000000000000000000000..f742b4084af320b7ef54843796772b7307c2a5eb
Binary files /dev/null and b/Lectures/Figures/elementdialog2.png differ
diff --git a/Lectures/L05_ProgramFamilies/ProgramFamilies.pdf b/Lectures/L05_ProgramFamilies/ProgramFamilies.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..63383c844aba2b0ff4d54947052b5dc8343aee89
Binary files /dev/null and b/Lectures/L05_ProgramFamilies/ProgramFamilies.pdf differ
diff --git a/Lectures/L05_ProgramFamilies/ProgramFamilies.tex b/Lectures/L05_ProgramFamilies/ProgramFamilies.tex
new file mode 100755
index 0000000000000000000000000000000000000000..81e05af40782e71fe040d77803c895323477bbba
--- /dev/null
+++ b/Lectures/L05_ProgramFamilies/ProgramFamilies.tex
@@ -0,0 +1,1506 @@
+%\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}
+\usepackage{listings}
+\usepackage{bm}
+\usepackage{colortbl}
+\usepackage{bnf}
+\newcommand{\colA}{2.1cm}
+\newcommand{\colB}{6.9cm}
+\newcommand{\colC}{1.1cm} %do not need this column if binding time is not listed
+\newcommand{\colAwidth}{0.15\textwidth}
+\newcommand{\colBwidth}{0.7\textwidth}
+
+\newcounter{temp}
+\setcounter{temp}{0}
+
+\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}{05 Program Families DRAFT}
+
+\input{../titlepage}
+
+\begin{document}
+
+\input{../footline}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Program Families}
+
+\bi
+\item Administrative details
+\item Questions?
+\item License and copyright
+\item Motivation
+\item Proposed Family Methods
+\item Family of Mesh Generators
+\item Family of Linear Solvers
+\item Family of Material Behaviour Models
+\ei
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details}
+
+\bi
+\item Add me to your GitHub repos, my GitHub id is \texttt{smiths}
+\item Assign me an issue to review your problem statements
+\bi
+\item Clearly state that you would like me to review your problem statement
+\item Include a link to your problem statement
+\ei
+\item Updates to SRS template
+\item Commonality analysis should start from SRS template
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details: Deadlines}
+~\newline
+\begin{tabular}{l l l}
+\textbf{Problem Statement} & Week 02 & Sept 15\\
+\textbf{SRS Present} & Week 04 & Week of Sept 25\\
+\textbf{SRS} & Week 05 & Oct 4\\
+V\&V Present & Week 06 & Week of Oct 16\\
+V\&V Plan & Week 07 & Oct 25\\
+MG Present & Week 08 & Week of Oct 30\\
+MG & Week 09 & Nov 8\\
+MIS Present & Week 10 & Week of Nov 13\\
+MIS & Week 11 & Nov 22\\
+Impl.\ Present & Week 12 & Week of Nov 27\\
+Final Documentation & Week 13 & Dec 6\\
+\end {tabular}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Questions?}
+\begin{itemize}
+\item Questions about ...
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Program Families}
+
+\begin{itemize}
+
+\item Can think of general purpose (or multi-purpose) SC software as a program
+  family
+\item Some examples of physical models are also appropriate for consideration as
+  a family
+\item A program family is a set of programs where it makes more sense to develop
+  them together as opposed to separately
+\item Analogous to families in other domains
+\begin{itemize}
+\item Automobiles
+\item Computers
+\item ...
+\end{itemize}
+\item Need to identify the commonalities
+\item Need to identify the variabilities
+\item Discussed in general in \cite{ClementsAndNorthrop2001,PohlEtAl2005}
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Background}
+
+\begin{itemize}
+
+\item Program family idea since the 1970s (Dijkstra, Parnas, Weiss, Pohl, ...) - variabilities are often from a finite
+set of simple options \cite{Parnas1976, Parnas1979, Dijkstra1972}
+\item Families of algorithms and code generation in SC (Carette, ATLAS, Blitz++, ...) - not much emphasis on
+requirements \cite{Carette2006, WhaleyEtAl2001, Veldhuizen1998, Blitz2010}
+%\item Problem Solving Environments (PSEs)
+\item Work on requirements for SC
+\begin{itemize}
+\item Template for a single physical model \cite{SmithEtAl2007, SmithAndLai2005}
+\item Template for a family of multi-purpose tool \cite{Smith2006,
+    SmithAndChen2004, SmithAndChen2004b}
+\item Template for a family of physical models
+  \cite{SmithMcCutchanAndCarette2017, SmithEtAl2008, McCutchan2007}
+\end{itemize}
+\end{itemize}
+
+\end{frame}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Motivation}
+%:Improve Quality of Product and Process
+\begin{itemize}
+
+\item Requirements documentation
+\begin{itemize}
+\item Allows judgement of quality %need to know what require, 
+\item Improves communication
+\begin{itemize}
+\item Between domain experts% and domain experts %missing models etc.
+\item Between domain experts and programmers %experts on num algos
+\item Explicit assumptions
+\item Range of applicability
+%\item Tradeoffs between nonfunctional requirements %ends arguments about best, 
+% need to know what is most imp, might not need same accuracy for every aspect of the problem
+\end{itemize}
+%\item Provides a foundation for incremental delivery
+\end{itemize}
+
+\item A family approach, potentially including a DSL to allow generation of specialized programs
+\begin{itemize}
+\item Improves efficiency of product and process
+\item Facilitates reuse of requirements and design, which improves reliability
+\item Improves usability and learnability%DSL
+%\item Improves learnability for non-experts %DSL
+\item Clarifies the state of the art
+\end{itemize}
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Advantages of Program Families to SC?}
+
+\begin{itemize}
+\item Usual benefits
+\begin{itemize}
+\item Reduced development time
+\item Improved quality
+\item Reduced maintenance effort
+\item Increased ability to cope with complexity
+\end{itemize}
+\item Reusability
+\begin{itemize}
+\item Underused potential for reuse in SC
+\item Reuse commonalities
+\item Systematically handle variabilities
+\end{itemize}
+\item Usability
+\begin{itemize}
+\item Documentation often lacking in SC
+\item Documentation part of program family methodology
+\item Create family members that are only as general purpose as necessary
+\end{itemize}
+\item Improved performance
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Is SC Suited to a Program Family Approach?}
+
+Based on criteria from Weiss \cite{ArdisAndWeiss1997, Weiss1997, Weiss1998,
+  CukaAndWeiss1997,WeissAndLai1999}
+\begin{itemize}
+\item The redevelopment hypothesis
+\begin{itemize}
+\item A significant portion of requirements, design and code should be common between family members
+\item Common model of software development in SC is to rework an existing program
+\item Progress is made by removing assumptions
+\end{itemize}
+
+\item The oracle hypothesis
+\begin{itemize}
+\item Likely changes should be predictable
+\item Literature on SC, example systems, mathematics
+\end{itemize}
+
+\item The organizational hypothesis
+\begin{itemize}
+\item Design so that predicted changes can be made independently
+\item Tight coupling between data structures and algorithms
+\item Need a suitable abstraction
+\end{itemize}
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Challenges}
+
+\begin{enumerate}
+\setcounter{enumi}{\value{temp}}
+\item Validatable
+\begin{itemize}
+\item Requirements can be complete, consistent, traceable and unambiguous, but still not validatable
+\item Input and outputs are continuously valued variables
+%\item Examples continuously valued variables: time, velocity, temperature, displacement, concentration, stress, etc.
+%\item Infinite number of inputs and outputs
+\item Correct solution is unknown a priori %difficult to have a test oracle
+\item Given $dy/dt = f(t, y)$ and $y(t_0) = y_0$, find $y(t_n)$ 
+%, where $y(t)$ is a function ($y:\mathbb{R} \rightarrow 
+%\mathbb{R}$), $f(t,y)$ is a function ($f:\mathbb{R}\times \mathbb{R} \rightarrow \mathbb{R}$), $t$ is an independent
+%variable (often time), $t_0$ is an initial value for $t$ and $t_n$ is the final value for $t$
+%\item For arbitrary $f(t, y)$ the true solution is unknown, correct value is often not known a priori
+%\item Same problem with $Ax = b$
+%\item $\int e^{x^2} dx$
+%\item Passing one test does not imply passing a nearby test
+\end{itemize}
+\item Abstract
+\begin{itemize}
+% \item Not difficult to be abstract
+\item If too abstract, then difficult to meet NFRs for accuracy and speed
+\item Assumptions can help restrict scope, but possibly as much work as solving the original problem
+\begin{itemize}
+\item $A x = b$
+\item $x^T A x > 0, \forall x$
+\end{itemize}
+%say output should be solution, or say cannot compute, possibly with a reason
+\item Algorithm selection should occur at the design stage
+
+\end{itemize}
+
+\setcounter{temp}{\value{enumi}}
+\end{enumerate}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Challenges (Continued)}
+
+\begin{enumerate}
+\setcounter{enumi}{\value{temp}}
+\item Nonfunctional requirements
+\begin{itemize}
+\item Proving accuracy requirements with a priori error analysis is a difficult mathematical exercise that generally
+leads to weak error bounds
+% mention Wilkinson
+\item Context sensitive tradeoffs between NFRs can be difficult to specify
+\item Absolute quantitative requirements are often unrealistic
+% make the point about relative requirements elsewhere
+\end{itemize}
+\item Capture and Reuse Existing Knowledge
+\begin{itemize}
+\item Cannot ignore the enormous wealth of information that currently exists %not a green field development
+\item A good design will often involve integrating existing software libraries
+\item Reuse software and the requirements documentation
+% scientific software is stable
+\end{itemize}
+
+\setcounter{temp}{\value{enumi}}
+\end{enumerate}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Overview of Process}
+
+\begin{center}
+ \includegraphics[width=1.0\textwidth]{../Figures/Waterfall.pdf}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{CA to SRS to Design}
+
+\begin{center}
+\includegraphics[width=1.0\textwidth]{../Figures/OverviewOfMethodology.pdf}
+\end{center}
+
+% mention an overview of what goes in the boxes
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Proposed Methodology}
+
+\begin{enumerate}
+
+\item Identify family of interest
+\begin{itemize}
+\item Specific physical model?
+\item Multipurpose tool?
+\end{itemize}
+\item Commonality analysis
+\begin{itemize}
+\item Terminology
+\item Commonalities
+\item Variabilities
+\item Parameters of variation
+\item Binding time
+\end{itemize}
+\item Domain Specific Language (DSL)
+\item Generation of family members
+
+\end{enumerate}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Commonality Analysis Template}
+
+From \cite{Smith2006}
+
+\scalebox{1.0}{
+\begin{minipage}{0.94\columnwidth}
+\begin{enumerate}
+
+\item{Reference Material:}
+{a) Table of Contents}
+{b) Table of Symbols}
+{c) Abbreviations and Acronyms}
+
+\item{Introduction:} 
+{a) Purpose of the Document}
+{b) Organization of the Document}
+
+\item{General System Description:}
+{a) \structure{Potential} System Contexts}
+{b) \structure{Potential} User Characteristics}
+{c) \structure{Potential} System Constraints}
+
+\item Commonalities:
+{a) Background Overview}
+{b) Terminology Definition}
+\structure{c) Goal Statements}
+\structure{d) Theoretical Models}
+
+\item \structure{Variabilities:
+{a) Input Assumptions}
+{b) Calculation}
+{c) Output}}
+
+\item{Traceability Matrix}
+
+\item{References}
+
+\end{enumerate}
+\end{minipage}
+}
+% highlight parts to talk about
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Abstract Requirements}
+
+% explain how CAnal addresses this challenge
+\begin{itemize}
+\item Appropriate level of abstraction by refining from goal to theory to input assumptions
+\item A goal is a functional objective the software should achieve: \newline
+\structure{\textbf{G1:} Find the roots of an equation}
+\item Goals are refined into theoretical models: \newline
+% presented as they would be presented in a mathematics textbook 
+\structure{\textbf{T1:} Given a function $f(x)$ and an interval $ \{ x | x_{lower} \leq x_{upper} \} $,
+return the points where $f(x) = 0$}
+\item Introduce simplifying assumptions to allow theoretical model to be solved:\newline
+\structure{\textbf{VA1,2:} $f(x)$ is continuous on the interval and/or $f(x)$ has at least one sign change on the
+interval}
+%traceability matrix?
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Abstract Requirements (Continued)}
+
+\begin{itemize}
+\item Each variability has an associated parameter of variation and a binding time
+\begin{itemize}
+\item Specification time
+\item Compile time
+\item Run time
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Capture Existing Knowledge}
+
+\begin{itemize}
+\item Systematic consideration from general to specific
+\item Communication between experts
+\item Standard template allows comparison
+\item Convenient framework for summarizing existing literature
+\item Eventually a library of requirements documentation
+% \item Same goal may have different theoretical models
+\item CA refined by a family of SRSs
+\end{itemize}
+\end{frame}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{System Requirements Specification (SRS)}
+
+\begin{itemize}
+
+\item Based on IEEE Standard 830 and Volere requirements specification template
+\item Sections from CA are refined in SRS
+\item ``Potential'' descriptions are made specific
+\item Variabilities are set
+\item Binding times are set
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{SRS Template}
+
+\scalebox{1.0}{
+\begin{minipage}{0.94\columnwidth}
+\begin{enumerate}
+
+\item{Reference Material}%:
+%{a) Table of Contents}
+%{b) Table of Symbols}
+%{c) Abbreviations and Acronyms}
+
+\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:}
+{a) Background Overview,}
+{b) Terminology Definition,}
+{c) Goal Statements}
+{d) Theoretical Models,}
+{e) Assumptions,}
+{f) Data Constraints,}
+{g) System Behaviour}
+
+\structure{\item Non-functional Requirements:
+{a) Accuracy of Input Data,}
+{b) Sensitivity of the Model,}
+{c) Tolerance of Solution,}
+{d) Performance,}
+{...}
+{i) Portability,}}
+
+\structure {\item {Solution Validation Strategies,}}
+
+\item{Other System Issues:}
+%{ Open Issues}
+%{ Off-the-Shelf Solutions}
+%{ New Problems}
+%{ Waiting Room}
+
+\item{Traceability Matrix}
+
+%\item List of Possible Changes in the Requirements
+
+%\item{Values of Auxiliary Constants}
+
+%\item{References}
+
+\end{enumerate}
+\end{minipage}
+}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{NFRs}
+
+\begin{itemize}
+
+\item Rather than absolute quantification of NFRs, use relative comparison between other program family members
+\item Specify requirements in big O notation
+% makes the requirement validatable
+%\item Identify benchmark test problems %system test plan
+%\item A posteriori description, rather than a priori specification
+\item Relative importance between NFRs using Analytic Hierarchy Process (AHP) \cite{Saaty1980}
+\begin{itemize}
+\item Addresses challenge of comparing attributes that are measured in different (or hard to quantify) units
+\item Series of pair-wise comparisons between attributes
+\item 1 for equal importance, 3 for moderately strong importance, ..., 9 for extreme importance
+\end{itemize}
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Validatable Requirements}
+
+\begin{itemize}
+
+%\item Rather than absolute quantification of NFRs, use relative comparison between other program family members
+% makes the requirement validatable
+\item Relative comparison between programs is a validatable requirement
+\item Focus on a posteriori description, rather than a priori specification
+% experiment with the software, as experiment with nature
+\item Solution validation strategies
+\begin{itemize}
+\item Solve using different techniques
+\item Identify benchmark test problems %system test plan
+\item Test cases built starting from assumed solutions (Method of Manufactured Solutions)
+\item Partially validate for a simpler subset where the solution is known
+\end{itemize}
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Mesh Generating Software}
+\begin{figure}
+\begin{center}
+\rotatebox{0}
+{
+ \includegraphics[width=0.9\textwidth]{../Figures/ExampleMesh.pdf}
+}
+%\caption{Example finite element mesh}
+\end{center}
+\end{figure}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Commonality Analysis for a Mesh Generator}
+
+From Chen's work \cite{Chen2003, SmithAndChen2004, SmithAndChen2004b}.
+Alternate approach in \cite{BastarricaAndHitschfeld2006, RosselEtAl2014,
+  BastarricaAndHitschfeld-Kahler2004,
+  Bastarrica2002, BastarricaAndHitschfeld2004}
+
+\begin{itemize}
+
+\item Terminology
+\begin{itemize}
+\item requirement
+\item structured mesh, ...
+\end{itemize}
+
+\item Commonalities
+\begin{itemize}
+\item discretization
+\item input from user is required, ...
+\end{itemize}
+
+\item Variabilities
+\begin{itemize}
+\item shape of elements
+\item coordinate system used, ...
+\end{itemize}
+
+\item Parameters of variation
+\begin{itemize}
+\item line, triangle, quadrilateral, tetrahedral, hexahedral
+\item Cartesian, polar, spherical, ...
+\end{itemize}
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Definition of a Mesh}
+Let $\Omega$ be a closed bounded domain in $\mathbb{R}$ or $\mathbb{R}^2$ or $\mathbb{R}^3$
+and let $K$
+be a simple shape, such as a line segment in 1D, a triangle or a quadrilateral in 2D, or a tetrahedron or hexahedron
+in 3D.  A mesh of $\Omega$, denoted by $\tau$, has the following properties:
+\begin{enumerate}
+\item $\Omega \approx \cup(K | K \epsilon \tau : K)$, where $\cup$ is first closed and then opened
+\item the length of every element $K$, of dimension 1, in $\tau$ is greater than zero
+\item the interior of every element $K$, of dimension 2 or greater, in $\tau$ is nonempty
+\item the intersection of the interior of two elements is empty
+\end{enumerate}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Example Commonality}
+
+\newcommand{\colACwidth}{0.25\textwidth}
+\newcommand{\colBCwidth}{0.7\textwidth}
+
+\begin {tabular}{| p{\colACwidth} | p{\colBCwidth}|}
+\hline
+{\bf Item Number} & C1\\
+\hline
+{\bf Description} & A mesh generator discretizes a given computational domain (closed boundary $\Omega$) into a covering
+up of a finite number of simpler shapes.\\
+\hline
+{\bf Related Variability} & V6, V8, V12, V14, V15, V16, V17, V18\\
+\hline
+{\bf History} & Created - May 7, 2004\\
+\hline
+\end {tabular}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}
+
+\frametitle{Mesh Generator (MG) Goals}
+
+\begin{enumerate}[G1]
+
+\item Input spatial domain $\Omega$ output a mesh $M$ that covers this domain.
+
+\item Transform information on the materials, material properties and the
+locations of the different materials
+
+\item Transform information on the boundary condition types, values and locations
+
+\item Transform system information, such as numerical algorithm parameters
+%values needed by the subsequent
+%processing step (for instance initial time, time step size, degree of implicitness, etc.)
+
+\end{enumerate}
+
+\end{frame}
+
+% TO DO - add a slide for the theoretical model? - no room
+% TO DO - mention output file format variability via XSLT? - mention during talk, but no room on slides
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Element Variability}
+
+Location of nodes: sequence of LocationT \\
+Number of dof at nodes: sequence of $\mathbb{N}$ \\
+LocationT = tuple of ($L_1: \mbox{natT}$, $L_2: \mbox{natT}$, $L_3: \mbox{natT}$)\\
+natT = \{ $s: \mathbb{R} | 0 \leq s \leq 1 : s$ \}\\
+
+\begin{center}
+%\rotatebox{-90}
+{
+ \includegraphics[width=0.5\textwidth]{../Figures/TriangleElement.pdf}
+}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Local Topology Variability}
+
+\begin{center}
+{
+\includegraphics[width=0.65\textwidth]{../Figures/TopologyPatterns.pdf}
+}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+
+\frametitle{DSL Using XML}
+
+\lstset{language=XML,linewidth=.9\textwidth,xleftmargin=0.5cm}
+\begin{lstlisting}%[frame=single]
+
+<elementSet>
+    <geometrySpec>
+        <shape>triangle1</shape>
+        <nodeGeo count="3">
+            <node id="1">
+                <location>1,0,0</location>
+            </node>
+            <node id="2">
+                <location>0,1,0</location>
+            </node>
+            ...
+        </nodeGeo>
+    </geometrySpec>
+</elementSet>
+\end{lstlisting}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Proof of Concept Implementation}
+
+From Cao's work \cite{Cao2006, SmithMcCutchanAndCao2007}
+\begin{itemize}
+\item XML document that customizes a Java object
+\item The Java object customizes the general purpose MG as it is loaded
+\item General purpose MG
+\begin{itemize}
+\item All variabilities bound at run-time
+\item Corresponds to an empty XML specification
+\end{itemize}
+\end{itemize}
+
+\begin{center}
+{
+\includegraphics[width=0.4\textwidth]{../Figures/elementdialog2.png}
+}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Linear Systems of Equations}
+
+$$A x = b$$
+
+Commonality analysis presented in \cite{Smith2006}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\begin{frame}
+
+%\frametitle{Terminology}
+
+%\begin{tabular}{ l p{5.5cm}}
+%$n: \mathbb{N}$ & number of linear equations and the number of unknowns\\
+%$A: \mathbb{R}^{n \times n}$ & $n \times n$ real matrix\\
+%$x: \mathbb{R}^{n \times 1}$ & $n \times 1$ real column vector\\
+%$b: \mathbb{R}^{n \times 1}$ & $n \times 1$ real column vector\\
+%$I: \mathbb{R}^{n \times n}$ & an $n \times n$ matrix where all entries are $0$, except for the diagonal entries, which
+%are $1$\\
+%$A^{-1}: \mathbb{R}^{n \times n}$ & the inverse matrix, with the property that $A^{-1} A = I$\\
+%$|| v || $ & the norm (estimate of magnitude) of vector $v$\\
+%residual & $|| b - A x ||$\\
+%singular & matrix $A$ is singular if $A^{-1}$ does not exist\\
+%\end{tabular}
+
+%\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Goal and Theoretical Model}
+
+\textbf{G1}: Given a system of $n$
+linear equations represented by matrix $A$ and column vector $b$, return $x$ such that $A x = b$, if possible
+
+\textbf{T1}: Given square matrix $A$ and column vector $b$, the possible
+solutions for $x$ are as follows:
+
+\begin{enumerate}
+\item A unique solution $x = A^{-1} b$, if $A$ is nonsingular
+\item An infinite number of solutions if $A$ is singular and $b \in span(A)$
+\item No solution if $A$ is singular and $b \notin span(A)$
+\end{enumerate}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Variabilities for Input Assumptions}
+
+\begin{tabular}{| p{\colA} | p{\colB} | }
+\hline
+\textbf{Variability} & \textbf{Parameter of Variation} \\
+\hline
+Allowed structure  $A$ & Set of \{ full, sparse, banded, tridiagonal, block triangular, ...,
+%block structured, diagonal, upper triangular, lower triangular, 
+Hessenberg \} \\
+\hline
+Allowed definiteness $A$ & Set of \{ not definite, positive definite, ...,
+%positive semi-definite, negative definite, 
+negative semi-definite \} \\
+\hline
+Allowed class of $A$ & Set of \{ diagonally dominant, Toeplitz, Vandermonde \} \\
+\hline
+Symmetry\newline assumed? & boolean \\
+\hline
+Possible values for $n$ & set of $\mathbb{N}$ \\
+\hline
+Possible entries in $A$ & set of $\mathbb{R}$ \\
+\hline
+... & ... \\
+%Possible entries in $b$ & set of $\mathbb{R}$ \\
+%\hline
+%Source\newline of input & Set of \{ from a file, through the user interface, passed in memory \} \\
+%\hline
+%Encoding of input & Set of \{binary, text \} \\
+%\hline
+%Format\newline of input $A$ & Set of \{arbitrary, by row, by column, by diagonal \} \\
+%\hline
+%Format\newline of input $b$ & Set of \{arbitrary, ordered \} \\\hline
+\end{tabular}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Variabilities for Calculation}
+
+\begin{tabular}{| p{\colA} | p{\colB} | }
+\hline
+\textbf{Variability} & \textbf{Parameter of Variation} \\
+\hline
+Check input? & boolean (false if the input is assumed to satisfy the input assumptions)\\ 
+\hline
+Exceptions generated? & boolean (false if the goal is non-stop arithmetic)\\ 
+\hline
+Norm used for residual & Set of \{1-norm, 2-norm, $\infty$-norm \} \\
+\hline
+\end{tabular}
+
+% mention turning off input checking helps with problem of theoretical model refined by assumpts
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Variabilities for Output}
+
+\begin{tabular}{| p{\colA} | p{\colB} | }
+\hline
+\textbf{Variability} & \textbf{Parameter of Variation} \\
+\hline
+Destination for output $x$ & Set of \{ to file, to screen, to memory \} \\
+\hline
+Encoding of output $x$ & Set of \{binary, text \} \\
+\hline
+Format of output $x$ & Set of \{arbitrary, ordered \} \\
+\hline
+Output residual & boolean (true if the program returns the residual) \\
+\hline
+Possible entries in $x$ & set of $\mathbb{R} \cup \{- \infty, \infty, undef \}$ \\
+\hline
+\end{tabular}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Analytic Hierarchy Process}
+
+\begin{itemize}
+\item Example 1
+\begin{itemize}
+\item Embedded real-time system for digital signal processing
+\item $n = 10$
+\item $A$ is assumed to be Toeplitz
+\end{itemize}
+\end{itemize}
+
+\begin{tabular}{| l | l | l | l | l |}
+\hline
+~ & \textbf{Speed} & \textbf{Accuracy} & \textbf{Portability} & \textbf{Priority}\\
+\hline
+\textbf{Speed} & 1 & 3 & 5 & 0.64\\
+\textbf{Accuracy} & 1/3 & 1 & 3 & 0.26\\
+\textbf{Portability} & 1/5 & 1/3 & 1 & 0.11\\
+\hline
+\end{tabular}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\begin{frame}
+
+%\frametitle{AHP Continued}
+
+%\begin{itemize}
+%\item Example 2
+%\begin{itemize}
+%\item Structural mechanics software for education
+%\item $10 \leq n \leq 1000$
+%\item $A$ is assumed to be positive definite
+%\item Would have different relative priorities
+%\end{itemize}
+%\end{itemize}
+
+%\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Solution Validation Strategies}
+
+\begin{itemize}
+\item Create test cases with known solutions
+\begin{itemize}
+\item Assume $A$ and $x$, calculate $b$
+\item Given $A$ and $b$ calculate $x^*$ and compare to the assumed $x$
+\end{itemize}
+\item Comparison with Matlab
+\item Comparison with NAG library
+\item Where possible compare solution to interval arithmetic solution
+\item Experiments to describe how accuracy changes with increasing condition number
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Connection to Design}
+
+\begin{itemize}
+
+\item Abstract requirements to concrete design decisions
+%\item Software packages likely already exist within the program family
+\item Reuse existing packages within the program family
+\item Summarize existing software by the parameters of variation and binding time
+%\item Run time binding can often be changed to specification time binding
+\item If functional requirements match, then use NFRs
+\begin{itemize}
+\item AHP to compare each design against each of the NFRs %as done in SRS 
+%cols and rows are des alternatives, compared against a given NFR
+%repeat for each NFR
+\item Contribution of each NFR for each design alternative is found by multiplying the contribution of
+each alternative to the given NFR with the corresponding priority of that NFR
+\item Sum the contributions
+\item The highest overall score is the ``winning'' alternative
+\end{itemize}
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{A Family of Material Models}
+
+From McCutchan's work \cite{CaretteEtAl2008, SmithMcCutchanAndCao2007,
+  SmithEtAl2008, CaretteEtAl2007_TR, SmithMcCutchanAndCarette2017, McCutchan2007}
+
+\begin{center}
+{
+\includegraphics[width=0.5\textwidth]{../Figures/TestSpecimenUniaxial.pdf}
+}
+\end{center}
+
+\begin{center}
+\begin{tabular}{cc}
+\includegraphics[width=0.45\textwidth]{../Figures/Plastic.pdf} &
+\includegraphics[width=0.45\textwidth]{../Figures/Viscoplastic.pdf}\\
+\end{tabular}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Terminology Definitions}
+
+\begin{minipage}{\textwidth}
+\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|}
+\hline
+\rowcolor[gray]{0.9}
+Label: & D\_YieldFunction\\ \hline
+Symbol: & $F = F(\bm{\sigma}, \kappa)$\\ \hline
+Type: & $(\mbox{tensor2DT} \times \mathbb{R}) \rightarrow \mathbb{R}$\\ \hline
+%Units: & --\\ \hline
+Related: & {D\_Stress}, {D\_HardeningParameter}\\ \hline %originally related items, shorted for space
+Sources: & ...\\
+\hline Descrip: & The yield function defines a surface $F = 0$ in the six dimensional stress space ...\\
+%\hline History: & Created -- June 15, 2007\\
+\hline
+\end{tabular}
+\end{minipage}
+
+\begin{center}
+{
+\includegraphics[width=0.35\textwidth]{../Figures/YieldHardeningAndPlastPotential.pdf}
+}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Goal Statement}
+
+\noindent
+\begin{minipage}{\textwidth}
+\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|}
+\hline
+\rowcolor[gray]{0.9}
+Label: & G\_StressDetermination\\ \hline
+Descrip: & Given the initial stress and the deformation history of a material particle, determine the stress
+within the material particle.\\
+\hline
+Refine: & {T\_ConstitEquation}\\ \hline
+%History: & Created -- June 8, 2007\\ \hline
+\end{tabular}
+\end{minipage}
+
+\begin{center}
+{
+\includegraphics[width=0.5\textwidth]{../Figures/StressTensor.pdf}
+}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Assumptions}
+
+\begin{minipage}{\textwidth}
+\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|}
+\hline
+\rowcolor[gray]{0.9}
+Label: & A\_AdditivityPostulate\\ \hline
+Related: & {D\_StrainRate}\\ \hline
+Equation: & $\dot{\bm{\epsilon}} = \dot{\bm{\epsilon}}^e + \dot{\bm{\epsilon}}^{\mathit{vp}}$\newline
+with the following types and units\newline
+$\dot{\bm{\epsilon}}: \mbox{tensor2DT}$ (1/t) (1/s)\newline
+$\dot{\bm{\epsilon}}^e: \mbox{tensor2DT}$ (1/t) (1/s)\newline
+$\dot{\bm{\epsilon}}^{\mathit{vp}}: \mbox{tensor2DT}$ (1/t) (1/s)\\ \hline
+Descrip: & The total strain rate ($\dot{\bm{\epsilon}}$) is assumed to decompose into elastic
+($\dot{\bm{\epsilon}}^e$) and viscoplastic ($\dot{\bm{\epsilon}}^{\mathit{vp}}$)
+strain rates.\\ \hline 
+Rationale & This is a standard assumption for elastoplastic and elastoviscoplastic materials.  The 
+appropriateness of this assumption is born out by the success of theories built upon it.\\ \hline
+Source: & [6, page 339]; [7, page 181]\\ \hline %references hard-coded
+%History: & Created -- June 11, 2007\\ \hline
+\end{tabular}
+\end{minipage}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Theoretical Model}
+
+\begin{minipage}{\textwidth}
+\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|}
+\hline
+\rowcolor[gray]{0.9}
+Label: & T\_ConstitEquation\\
+\hline
+Related: & {A\_CauchyStress}, {A\_DeformationHistory}, {A\_PerzynaConstit}, {A\_AdditivityPostulate},
+{A\_ElasticConstit}, {A\_DescriptionOfMotion}, {V\_MaterialProperties}\\
+\hline
+Input: & $\bm{\sigma}_0: \mbox{tensor2DT}$ (StressU) (Pa)\newline
+$t_{\mathit{begin}}: \mathbb{R}$ (t) (s) \newline
+$t_{\mathit{end}}: \mathbb{R} $ (t) (s) \newline
+$\dot{\bm{\epsilon}}(t) : \{ t: \mathbb{R} | t_{\mathit{begin}} \leq t \leq t_{\mathit{end}} : t \} \rightarrow
+\mbox{   } \mbox{   } \mbox{  tensor2DT}$ (1/t) (1/s)\newline
+$\mathit{mat\_prop\_val}: \mbox{string} \rightarrow \mathbb{R}$\newline
+$E: \mathbb{R}^{+}$ (StressU) (Pa)\newline
+$\nu: \mbox{poissonT}$ (dimensionless)
+\\
+\hline
+\end{tabular}
+\end{minipage}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Theoretical Model Continued}
+
+\begin{minipage}{\textwidth}
+\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|}
+\hline
+\rowcolor[gray]{0.9}
+Label: & T\_ConstitEquation\\
+\hline
+Output: & $\bm{\sigma}(t): \{ t: \mathbb{R} | t_{\mathit{begin}} \leq t \leq t_{\mathit{end}} : t \} \rightarrow
+\mbox{tensor2DT}$ such that 
+$$\dot{\bm{\sigma}} = \mathbf{D} \left ( \dot{\bm{\epsilon}} - \gamma < \phi (F(\bm{\sigma},\kappa) ) >
+\frac {
+\partial Q (\bm{\sigma})}{
+\partial \bm{\sigma}} \right )
+$$ 
+and $\bm{\sigma}(t_{\mathit{begin}}) = \bm{\sigma}_0$,
+the components of $\bm{\sigma}$ have the units of StressU (Pa)\\
+\hline
+Derive: & The governing differential equation is found by first solving for $\dot{\bm{\epsilon}}^e$
+in {A\_AdditivityPostulate} and then ...\\
+\hline
+Descrip: & The theoretical model is only completely defined once the associated
+variabilities~({V\_MaterialProperties}) that define the
+material have been set.  ...\\
+\hline History: & Created -- June 14, 2007\\
+\hline
+\end{tabular}
+\end{minipage}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Variabilities}
+
+\begin{itemize}
+\item $F = F(\bm{\sigma}, \kappa): \mathbb{R}^6 \times \mathbb{R} \rightarrow \mathbb{R}$
+\item $Q = Q(\bm{\sigma}): \mathbb{R}^6 \rightarrow \mathbb{R}$
+\item $\kappa = \kappa(\bm{\epsilon}^{\mathit{vp}}): \mathbb{R}^6 \rightarrow \mathbb{R}$
+\item $\phi = \phi(F): \mathbb{R} \rightarrow \mathbb{R}$
+\item $\gamma: \mathbb{R}$
+\item $\mathit{mat\_prop\_names}: \mbox{set of string}$
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Dependency Graph} %between commonalities
+
+\begin{center}
+{
+\includegraphics[width=1\textwidth]{../Figures/DependenceGraph.pdf}
+}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Dependency Graph Between Commonalities and Variabilities}
+
+\begin{center}
+{
+\includegraphics[width=1\textwidth]{../Figures/DependenceOfVariabilities.pdf}
+}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Example}
+
+\begin{minipage}{\textwidth}
+\begin{tabular}{| p{0.24\textwidth} | p{0.65\textwidth}|}
+\hline
+\rowcolor[gray]{0.9}
+Label: & E\_StrainHardening\\ \hline
+{V\_MatName} & $\mathit{name = }$``Strain-Hardening Viscoelastic''\\
+\hline
+{V\_YieldFunct} & $F =  q \kappa^{\frac{n-1}{m}}$ (StressU) (Pa)\\ \hline
+{V\_PlasticPot} & $Q = q$ (StressU) (Pa)\\ \hline 
+{V\_HardParam} & $\kappa = \epsilon_q^{\mathit{vp}}$ (L/L) (m/m)\\
+\hline
+{V\_Phi} & $\phi = F^{\frac{m}{n}}$ ($\mbox{StressU}^{\frac{m}{n}}$) ($\mbox{Pa}^{\frac{m}{n}}$)\\
+\hline
+{V\_FluParam} & $\gamma = n A^{\frac{1}{n}}$ ($\mbox{StressU}^{-m} \mbox{t}^{-1}$) ($\mbox{Pa}^{-m} \mbox{s}^{-1}$)\\ \hline
+{V\_MatProps} & $\mathit{mat\_prop\_names} = $ \{``$A$'', ``$m$'', ``$n$'' \}, where the type of the
+material properties are ...\\
+%There is likely an upper limit on the values for $m$ and $n$, but at this time the value of these limits is unclear. 
+%With respect to units, $m$ and $n$ do not have units and $A$ has units of $\mbox{StressU}^{-m} \mbox{t}^{-1}$ ($\mbox{Pa}^{-m}%%
+%\mbox{s}^{-1}$)
+\hline
+{V\_Description} & $\mathit{descript =}$ ``This constitutive equation combines a power-law viscoelastic
+material with a strain hardening (softening) material.  ...''
+\\ \hline
+%Source & \cite{Smith2001}
+%\\ \hline
+%History & Created -- Sept 21, 2007\\ \hline
+\end{tabular}
+\end{minipage}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Code Generation}
+
+\begin{itemize}
+\item Specify variabilities
+\item Symbolically calculate terms needed by numerical algorithm, including $\frac{ \partial Q}{ \partial
+\bm{\sigma}}$, $\frac{\partial F}{\partial \bm{\sigma}}$, etc.
+\item Symbolic processing avoids tedious and error-prone hand calculations
+\begin{itemize}
+\item Reduces workload
+\item Allows non-experts to deal with new problems
+\item Increases reliability
+\end{itemize}
+\item Use Maple Computer Algebra System for model manipulation
+\item Convert math expressions into C expressions using ``CodeGeneration''
+\item Inline into a C++ class defining the material model
+\item A finite element program can this interface to realize the numerical algorithm
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+
+\frametitle{BNF of DSL for $F$}
+
+\begin{grammar}
+[(colon){$\rightarrow$}]
+[(semicolon){$|$}]
+[(comma){}]
+[(period){\\}]
+[(quote){\begin{bf}}{\end{bf}}]
+[(nonterminal){$\langle$}{$\rangle$}]
+<expression>:<number>;\\
+(<expression>);\\
+<expression>,\^{ },<expression>;\\
+<expression>,$*$,<expression>;\\
+\end{grammar}
+~~~~~~~...
+\begin{grammar}
+[(colon){$\rightarrow$}]
+[(semicolon){$|$}]
+[(comma){}]
+[(period){\\}]
+[(quote){\begin{bf}}{\end{bf}}]
+[(nonterminal){$\langle$}{$\rangle$}]
+<simulation-variable-F>;<user-defined-constants>.
+<simulation-variable-F>:"Kappa";<simulation-variable-stress>;<simulation-variable-stress-macros>.
+<simulation-variable-stress>:"SigmaXX";"SigmaYY";"SigmaZZ";"SigmaXY";\\
+"SigmaYZ";"SigmaXZ".
+<simulation-variable-stress-macros>:"Sxx";"Syy";"Szz";"Sxy";"Syz";"Sxz";"Sm";"J2";"J3";"q".
+<user-defined-constants>:<string>.
+\end{grammar}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Concluding Remarks}
+\begin{itemize}
+\item Case studies of applying software engineering methodologies to mesh generating systems and linear solvers
+\item Appropriate and advantageous to apply program family strategy
+\item Challenges for software engineers
+\item General purpose scientific software is best studied as a program family
+\begin{itemize}
+\item Variabilities are assumptions about problems that can be handled
+\item Derive requirements from commonality analysis
+\end{itemize}
+\item Eventually hope for automatic code generation
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Concluding Remarks (Continued)}
+
+A new methodology for documenting requirements for general purpose scientific computing software
+
+\setcounter{temp}{0}
+
+\begin{enumerate}
+\setcounter{enumi}{\value{temp}}
+
+\item Validatable requirements
+\begin{itemize}
+\item Relative comparison between program family members
+\item Focus on description rather than specification
+\item Solution validation strategy
+\end{itemize}
+\item Abstract
+\begin{itemize}
+\item Refine goal statement to theoretical model to input assumptions
+\item In some cases one may want to turn off input checking
+\item Connection to design
+\end{itemize}
+
+\setcounter{temp}{\value{enumi}}
+\end{enumerate}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Concluding Remarks (Continued)}
+
+\begin{enumerate}
+\setcounter{enumi}{\value{temp}}
+
+\item NFRs
+\begin{itemize}
+\item Relative comparison
+\item AHP
+\end{itemize}
+\item Capture and reuse
+\begin{itemize}
+\item Systematic consideration from general to specific
+\item CA refined by a family of SRSs
+\item CA and SRS summarize existing knowledge and currently available software
+\item Standard template allows comparison
+\item Convenient framework for summarizing existing literature
+\end{itemize}
+
+\setcounter{temp}{\value{enumi}}
+\end{enumerate}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle<presentation>{Concluding Remarks}
+
+\begin{itemize}
+\item A new template for a family of models of physical phenomena
+\item Refinement of \structure{Goals} to \structure{Theoretical Models} using \structure{Data Definitions} and
+\structure{Assumptions}
+\item \structure{Variabilities} are identified in the Theoretical Model
+\item A constitutive equation can be written using a (declarative) DSL and the code can be generated
+\item A DSL has been built, using Maple, for a virtual material testing laboratory
+\end{itemize}
+  
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle<presentation>{Concluding Remarks}
+
+\begin{itemize}
+\item SC software is a great candidate for development as a program family
+\item Produce programs that are as special or general purpose as needed % run time bindings
+\item Improve reusability, usability and reliability
+\item Potential to improve performance
+\item A commonality analysis facilitates the design of a DSL
+\item Symbolic processing and code generation are very useful techniques
+\item \structure{We will return to code generation later}
+\end{itemize}
+  
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[allowframebreaks]
+\frametitle{References}
+
+\bibliography{../../ReferenceMaterial/References}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\end{document}
\ No newline at end of file
diff --git a/ReferenceMaterial/AsSubmitted_SmithAndChen.pdf b/ReferenceMaterial/AsSubmitted_SmithAndChen.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..b2fdf4b7ff0e889581bf166109049f663b4e3b72
Binary files /dev/null and b/ReferenceMaterial/AsSubmitted_SmithAndChen.pdf differ
diff --git a/ReferenceMaterial/CAS 04-10-SS.pdf b/ReferenceMaterial/CAS 04-10-SS.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..4fabbc1303e69fbe5b6b0966378badc35f2730a2
Binary files /dev/null and b/ReferenceMaterial/CAS 04-10-SS.pdf differ
diff --git a/ReferenceMaterial/Carette2006.pdf b/ReferenceMaterial/Carette2006.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..428e95364e84dcbd9aa916cd9637197a2f75b9c8
Binary files /dev/null and b/ReferenceMaterial/Carette2006.pdf differ
diff --git a/ReferenceMaterial/CaretteEtAl2008_AsPublished.pdf b/ReferenceMaterial/CaretteEtAl2008_AsPublished.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..adf9551db3a6c2623760673581caca1fb180328d
Binary files /dev/null and b/ReferenceMaterial/CaretteEtAl2008_AsPublished.pdf differ
diff --git a/ReferenceMaterial/JohnMcCutchanThesis.pdf b/ReferenceMaterial/JohnMcCutchanThesis.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..11de2ec50a2db58d619c36dde475a769097c00c0
Binary files /dev/null and b/ReferenceMaterial/JohnMcCutchanThesis.pdf differ
diff --git a/ReferenceMaterial/ProgFamiliesInSciComp_CameraReady.pdf b/ReferenceMaterial/ProgFamiliesInSciComp_CameraReady.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..5364cbbd40473bbdf6ef85329d13ee75cbe94dc2
Binary files /dev/null and b/ReferenceMaterial/ProgFamiliesInSciComp_CameraReady.pdf differ
diff --git a/ReferenceMaterial/References.bib b/ReferenceMaterial/References.bib
index d0e27f5e0dade8f5435410ec952d65a1bbdae360..0c9c1214cd0d211cf56a94d8c86dad221b560095 100644
--- a/ReferenceMaterial/References.bib
+++ b/ReferenceMaterial/References.bib
@@ -2,13 +2,390 @@
 %% http://bibdesk.sourceforge.net/
 
 
-%% Created for Spencer Smith at 2017-09-14 15:18:12 -0400 
+%% Created for Spencer Smith at 2017-09-14 16:53:00 -0400 
 
 
 %% Saved with string encoding Unicode (UTF-8) 
 
 
 
+@inproceedings{BastarricaAndHitschfeld-Kahler2004,
+	Author = {Bastarrica, M Cecilia and Hitschfeld-Kahler, Nancy},
+	Booktitle = {International Meshing Roundtable},
+	Date-Added = {2017-09-14 20:51:36 +0000},
+	Date-Modified = {2017-09-14 20:51:36 +0000},
+	Organization = {Citeseer},
+	Pages = {203--212},
+	Title = {An Evolvable Meshing Tool Through a Flexible Object-Oriented Design.},
+	Year = {2004},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QSC4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9CYXN0YXJyaWNhQW5kSGl0c2NoZmVsZC1LYWhsZXIyMDA0LnBkZtIXCxgZV05TLmRhdGFPEQIAAAAAAAIAAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADOl3ODSCsAAAAXAgwfQmFzdGFycmljYUFuZEhpdHNjaCM1RUNDQjlDLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABezLnNG21IQAAAAAAAAAAAADAAQAAAkgAAAAAAAAAAAAAAAAAAAAClJlZmVyZW5jZXMAEAAIAADOl6vDAAAAEQAIAADRtwzEAAAAAQAUABcCDAAXAE0AFv3tAAj3ZgACZI4AAgBXTWFjaW50b3NoIEhEOlVzZXJzOgBzbWl0aHM6AFdvcms6AFJlc2VhcmNoOgBSZWZlcmVuY2VzOgBCYXN0YXJyaWNhQW5kSGl0c2NoIzVFQ0NCOUMucGRmAAAOAE4AJgBCAGEAcwB0AGEAcgByAGkAYwBhAEEAbgBkAEgAaQB0AHMAYwBoAGYAZQBsAGQALQBLAGEAaABsAGUAcgAyADAAMAA0AC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgBMVXNlcnMvc21pdGhzL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9CYXN0YXJyaWNhQW5kSGl0c2NoZmVsZC1LYWhsZXIyMDA0LnBkZgATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOANkA3gDmAuoC7ALxAvwDBQMTAxcDHgMnAywDOQM8A04DUQNWAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA1g=}}
+
+@inproceedings{BastarricaEtAl2006,
+	Author = {M. Cecilia Bastarrica and Nancy Hitschfeld-Kahler and Pedro O. Rossel},
+	Biburl = {http://www.bibsonomy.org/bibtex/2e9f4f53cc36e64502f528f99ae02239c/dblp},
+	Booktitle = {ICSR},
+	Date = {2006-08-21},
+	Date-Added = {2017-09-14 20:51:11 +0000},
+	Date-Modified = {2017-09-14 20:51:11 +0000},
+	Description = {dblp},
+	Editor = {Maurizio Morisio},
+	Ee = {http://dx.doi.org/10.1007/11763864_33},
+	Isbn = {3-540-34606-6},
+	Keywords = {dblp},
+	Pages = {403-406},
+	Publisher = {Springer},
+	Series = {Lecture Notes in Computer Science},
+	Title = {Product Line Architecture for a Family of Meshing Tools.},
+	Url = {http://dblp.uni-trier.de/db/conf/icsr/icsr2006.html#BastarricaHR06},
+	Volume = {4039},
+	Year = {2006},
+	Bdsk-Url-1 = {http://dblp.uni-trier.de/db/conf/icsr/icsr2006.html#BastarricaHR06}}
+
+@inproceedings{BastarricaAndHitschfeld2004,
+	Address = {Williamsburg, Virginia},
+	Author = {Mar\'{i}a Cecilia Bastarrica and Nancy Hischfeld-Kahler},
+	Booktitle = {Proceedings of the 13th International Meshing Roundtable},
+	Date-Added = {2017-09-14 20:51:11 +0000},
+	Date-Modified = {2017-09-14 20:51:11 +0000},
+	Local-Url = {file://localhost/Users/smiths/LongTermArchives/Work/Research/References/MeshGeneration/Bastarrica2004.pdf},
+	Pages = {203--212},
+	Publisher = {Sandia National Laboratories},
+	Title = {An Evolvable Meshing Tool Through a Flexible Object-Oriented Design, September 2004},
+	Year = {2004},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QVy4uLy4uLy4uLy4uL0xvbmdUZXJtQXJjaGl2ZXMvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL01lc2hHZW5lcmF0aW9uL0Jhc3RhcnJpY2EyMDA0LnBkZtIXCxgZV05TLmRhdGFPEQH+AAAAAAH+AAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADGxWEASCsAAAASp4kSQmFzdGFycmljYTIwMDQucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKzvMhOdDYAAAAAAAAAAAAEAAYAAAkgAAAAAAAAAAAAAAAAAAAADk1lc2hHZW5lcmF0aW9uABAACAAAxsWZQAAAABEACAAAyE6sdgAAAAEAHAASp4kAEqI2ABKgygASoKkAEqClAAhZ9wAAfGMAAgBlTWFjaW50b3NoIEhEOlVzZXJzOnNtaXRoczpMb25nVGVybUFyY2hpdmVzOldvcms6UmVzZWFyY2g6UmVmZXJlbmNlczpNZXNoR2VuZXJhdGlvbjpCYXN0YXJyaWNhMjAwNC5wZGYAAA4AJgASAEIAYQBzAHQAYQByAHIAaQBjAGEAMgAwADAANAAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIAWFVzZXJzL3NtaXRocy9Mb25nVGVybUFyY2hpdmVzL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9NZXNoR2VuZXJhdGlvbi9CYXN0YXJyaWNhMjAwNC5wZGYAEwABLwAAFQACAA3//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgDoAO0A9QL3AvkC/gMJAxIDIAMkAysDNAM5A0YDSQNbA14DYwAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAANl}}
+
+@inproceedings{Bastarrica2002,
+	Author = {Mar\'{i}a Cecilia Bastarrica},
+	Booktitle = {Proceedings of the XXVIII Latin American Conference of Informatics, {CLEI'2002}, Montevideo, Uruguay},
+	Date-Added = {2017-09-14 20:51:11 +0000},
+	Date-Modified = {2017-09-14 20:51:11 +0000},
+	Pages = {119},
+	Title = {Base Architecture in a Software Product Line},
+	Year = {2002}}
+
+@article{RosselEtAl2014,
+	Author = {Pedro O. Rossel and Mar{\'{\i}}a Cecilia Bastarrica and Nancy Hitschfeld{-}Kahler and Violeta D{\'{\i}}az and Mario Medina},
+	Bibsource = {dblp computer science bibliography, http://dblp.org},
+	Biburl = {http://dblp.uni-trier.de/rec/bib/journals/aes/RosselBHDM14},
+	Date-Added = {2017-09-14 20:51:01 +0000},
+	Date-Modified = {2017-09-14 20:51:01 +0000},
+	Doi = {10.1016/j.advengsoft.2014.01.011},
+	Journal = {Advances in Engineering Software},
+	Pages = {77--89},
+	Timestamp = {Thu, 02 Oct 2014 16:18:42 +0200},
+	Title = {Domain modeling as a basis for building a meshing tool software product line},
+	Url = {http://dx.doi.org/10.1016/j.advengsoft.2014.01.011},
+	Volume = {70},
+	Year = {2014},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QNC4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9Sb3NzZWxFdEFsMjAxNC5wZGbSFwsYGVdOUy5kYXRhTxEBtgAAAAABtgACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAzpdzg0grAAAAFwIMElJvc3NlbEV0QWwyMDE0LnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDd43QUtXsAAAAAAAAAAAAAwAEAAAJIAAAAAAAAAAAAAAAAAAAAApSZWZlcmVuY2VzABAACAAAzperwwAAABEACAAA0FMOLAAAAAEAFAAXAgwAFwBNABb97QAI92YAAmSOAAIASk1hY2ludG9zaCBIRDpVc2VyczoAc21pdGhzOgBXb3JrOgBSZXNlYXJjaDoAUmVmZXJlbmNlczoAUm9zc2VsRXRBbDIwMTQucGRmAA4AJgASAFIAbwBzAHMAZQBsAEUAdABBAGwAMgAwADEANAAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIAOFVzZXJzL3NtaXRocy9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvUm9zc2VsRXRBbDIwMTQucGRmABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4AxQDKANICjAKOApMCngKnArUCuQLAAskCzgLbAt4C8ALzAvgAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAAC+g==},
+	Bdsk-Url-1 = {http://dx.doi.org/10.1016/j.advengsoft.2014.01.011}}
+
+@article{CukaAndWeiss1997,
+	Annote = {Apparently this article was never published in this form.  It looks like it was published as Engineering Domains: Executable Commands as an Example.},
+	Author = {David A. Cuka and David M. Weiss},
+	Date-Added = {2017-09-14 20:49:28 +0000},
+	Date-Modified = {2017-09-14 20:49:28 +0000},
+	Journal = {Submitted to IEEE Transactions on Software Engineering},
+	Keywords = {software engineering, domain analysis, domain engineering, families, software process, application-oriented languages},
+	Local-Url = {/Users/smiths/LongTermArchives/Work/Research/References/ProgramFamilies/CukaAndWeiss.pdf},
+	Pages = {1 - 12},
+	Title = {Specifying Executable Commands: An example of {FAST} domain engineering},
+	Url = {http://www.research.avayalabs.com/user/weiss/Publications.html},
+	Year = {Submitted 1997},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8Qfy4uLy4uLy4uLy4uLy4uLy4uL1ZvbHVtZXMvQmFja3VwL0xvbmdUZXJtQXJjaGl2ZXNMYXN0Q2hhbmdlTWF5MTBfMjAxMi9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvUHJvZ3JhbUZhbWlsaWVzL0N1a2FBbmRXZWlzcy5wZGbSFwsYGVdOUy5kYXRhTxEB+AAAAAAB+AACAAAGQmFja3VwAAAAAAAAAAAAAAAAAAAAAAAAAAAAymG1pUgrAAAByechEEN1a2FBbmRXZWlzcy5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJ5yfITnQ0UERGIHBydnf/////AAAJAAAAAAAAAAAAAAAAAAAAAA9Qcm9ncmFtRmFtaWxpZXMAABAACAAAymHt5QAAABEACAAAyE6sdAAAAAEAFAHJ5yEByeSWAcngfQHJx9IByapsAAIAZUJhY2t1cDpMb25nVGVybUFyY2hpdmVzTGFzdENoYSMxQzlBQTZDOgBXb3JrOgBSZXNlYXJjaDoAUmVmZXJlbmNlczoAUHJvZ3JhbUZhbWlsaWVzOgBDdWthQW5kV2Vpc3MucGRmAAAOACIAEABDAHUAawBhAEEAbgBkAFcAZQBpAHMAcwAuAHAAZABmAA8ADgAGAEIAYQBjAGsAdQBwABIAXy9Mb25nVGVybUFyY2hpdmVzTGFzdENoYW5nZU1heTEwXzIwMTIvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL1Byb2dyYW1GYW1pbGllcy9DdWthQW5kV2Vpc3MucGRmAAATAA8vVm9sdW1lcy9CYWNrdXAA//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4BEAEVAR0DGQMbAyADKwM0A0IDRgNNA1YDWwNoA2sDfQOAA4UAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAADhw==},
+	Bdsk-Url-1 = {http://www.research.avayalabs.com/user/weiss/Publications.html}}
+
+@techreport{CaretteEtAl2007_TR,
+	Annote = {Acknowledgment: NSERC},
+	Author = {Jacques Carette and W. Spencer Smith and John McCutchan and Christopher Anand and Alexandre Korobkine},
+	Date-Added = {2017-09-14 20:48:49 +0000},
+	Date-Modified = {2017-09-14 20:48:49 +0000},
+	Institution = {Software Quality Research Laboratory, McMaster University},
+	Month = {December},
+	Note = {41 pp},
+	Number = {48},
+	Title = {Model manipulation as part of a better development process for scientific computing code},
+	Year = {2007},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QLy4uLy4uL09MRF9TVk4vbW1zY09MRF9TVk4vTU1TQ19UUi9TUVJMX1RSNDgucGRm0hcLGBlXTlMuZGF0YU8RAbgAAAAAAbgAAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM6Xc4NIKwAAApHPMQ1TUVJMX1RSNDgucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkc9z0CEtAwAAAAAAAAAAAAIABAAACSAAAAAAAAAAAAAAAAAAAAAHTU1TQ19UUgAAEAAIAADOl6vDAAAAEQAIAADQIWVDAAAAAQAYApHPMQKRxEwJMf6nABIVpwAI92YAAmSOAAIAT01hY2ludG9zaCBIRDpVc2VyczoAc21pdGhzOgBSZXBvczoAT0xEX1NWTjoAbW1zY09MRF9TVk46AE1NU0NfVFI6AFNRUkxfVFI0OC5wZGYAAA4AHAANAFMAUQBSAEwAXwBUAFIANAA4AC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgA8VXNlcnMvc21pdGhzL1JlcG9zL09MRF9TVk4vbW1zY09MRF9TVk4vTU1TQ19UUi9TUVJMX1RSNDgucGRmABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4AwADFAM0CiQKLApACmwKkArICtgK9AsYCywLYAtsC7QLwAvUAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAAC9w==}}
+
+@inbook{CaretteEtAl2008,
+	Address = {Birmingham, UK},
+	Author = {Jacques Carette and W. Spencer Smith and John McCutchan and Christopher Anand and Alexandre Korobkine},
+	Chapter = {Case Studies in Model Manipulation for Scientific Computing},
+	Date-Added = {2017-09-14 20:48:35 +0000},
+	Date-Modified = {2017-09-14 20:48:35 +0000},
+	Local-Url = {/Users/smiths/Work/Research/Papers/mmsc/aisc08/CaretteEtAl2008_AsPublished.pdf},
+	Pages = {24--37},
+	Publisher = {Springer Berlin / Heidelberg},
+	Series = {Lecture Notes in Computer Science},
+	Title = {Intelligent Computer Mathematics, 9th International Conference, AISC 2008},
+	Url = {{http://dx.doi.org/10.1007/978-3-540-85110-3_4}},
+	Year = {2008},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QYy4uLy4uLy4uL1dvcmsvVGVhY2hpbmcvQ0FTNzQxLzIwMDkvV2ViUGFnZUluZm8vQ0FTNzQxL1Byb2dyYW1GYW1pbHkvQ2FyZXR0ZUV0QWwyMDA4X0FzUHVibGlzaGVkLnBkZtIXCxgZV05TLmRhdGFPEQJIAAAAAAJIAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADOl3ODSCsAAAAX0JcfQ2FyZXR0ZUV0QWwyMDA4X0FzUHVibGlzaGVkLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf+Ac8i5FwAAAAAAAAAAAADAAgAAAkgAAAAAAAAAAAAAAAAAAAADVByb2dyYW1GYW1pbHkAABAACAAAzperwwAAABEACAAAzyMqrAAAAAEAJAAX0JcAF5ShABcxywAXCPsAFwHfABcAUQAW/e0ACPdmAAJkjgACAH1NYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAV29yazoAVGVhY2hpbmc6AENBUzc0MToAMjAwOToAV2ViUGFnZUluZm86AENBUzc0MToAUHJvZ3JhbUZhbWlseToAQ2FyZXR0ZUV0QWwyMDA4X0FzUHVibGlzaGVkLnBkZgAADgBAAB8AQwBhAHIAZQB0AHQAZQBFAHQAQQBsADIAMAAwADgAXwBBAHMAUAB1AGIAbABpAHMAaABlAGQALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAGdVc2Vycy9zbWl0aHMvV29yay9UZWFjaGluZy9DQVM3NDEvMjAwOS9XZWJQYWdlSW5mby9DQVM3NDEvUHJvZ3JhbUZhbWlseS9DYXJldHRlRXRBbDIwMDhfQXNQdWJsaXNoZWQucGRmAAATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAPQA+QEBA00DTwNUA18DaAN2A3oDgQOKA48DnAOfA7EDtAO5AAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA7s=},
+	Bdsk-Url-1 = {%7Bhttp://dx.doi.org/10.1007/978-3-540-85110-3_4%7D}}
+
+@inproceedings{SmithMcCutchanAndCao2007,
+	Address = {Montr\'{e}al, Qu\'{e}bec},
+	Author = {W. Spencer Smith and John McCutchan and Fang Cao},
+	Booktitle = {7$^{th}$ OOPSLA Workshop on Domain Specific Modelling ({DSM}'07)},
+	Date-Added = {2017-09-14 20:47:28 +0000},
+	Date-Modified = {2017-09-14 20:47:28 +0000},
+	Editor = {Jonathan Sprinkle and Jeff Gray and Matti Rossi and Juha-Pekka Tolvanen},
+	Local-Url = {/Users/smiths/Work/Research/Papers/OOPSLA_Workshop2007/ProgFamiliesInSciComp_CameraReady.pdf},
+	Month = {October},
+	Pages = {39--47},
+	Title = {Program Families in Scientific Computing},
+	Year = {2007},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QVy4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUGFwZXJzL09PUFNMQV9Xb3Jrc2hvcDIwMDcvUHJvZ0ZhbWlsaWVzSW5TY2lDb21wX0NhbWVyYVJlYWR5LnBkZtIXCxgZV05TLmRhdGFPEQIsAAAAAAIsAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADOl3ODSCsAAAAXC2ofUHJvZ0ZhbWlsaWVzSW5TY2lDbyNEQ0ZFREU5LnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc/t6c8i4TQAAAAAAAAAAAADAAUAAAkgAAAAAAAAAAAAAAAAAAAAE09PUFNMQV9Xb3Jrc2hvcDIwMDcAABAACAAAzperwwAAABEACAAAzyMnhAAAAAEAGAAXC2oAFwILABcATQAW/e0ACPdmAAJkjgACAGhNYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAV29yazoAUmVzZWFyY2g6AFBhcGVyczoAT09QU0xBX1dvcmtzaG9wMjAwNzoAUHJvZ0ZhbWlsaWVzSW5TY2lDbyNEQ0ZFREU5LnBkZgAOAEwAJQBQAHIAbwBnAEYAYQBtAGkAbABpAGUAcwBJAG4AUwBjAGkAQwBvAG0AcABfAEMAYQBtAGUAcgBhAFIAZQBhAGQAeQAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIAW1VzZXJzL3NtaXRocy9Xb3JrL1Jlc2VhcmNoL1BhcGVycy9PT1BTTEFfV29ya3Nob3AyMDA3L1Byb2dGYW1pbGllc0luU2NpQ29tcF9DYW1lcmFSZWFkeS5wZGYAABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4A6ADtAPUDJQMnAywDNwNAA04DUgNZA2IDZwN0A3cDiQOMA5EAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAADkw==}}
+
+@mastersthesis{Cao2006,
+	Author = {Fang Cao},
+	Date-Added = {2017-09-14 20:47:14 +0000},
+	Date-Modified = {2017-09-14 20:47:14 +0000},
+	Month = {April},
+	School = {McMaster University},
+	Title = {A Program Family Approach to Developing Mesh Generators},
+	Year = {2006}}
+
+@article{BastarricaAndHitschfeld2006,
+	Author = {Mar\'{i}a Cecilia Bastarrica and Nancy Hischfeld-Kahler},
+	Date-Added = {2017-09-14 20:47:06 +0000},
+	Date-Modified = {2017-09-14 20:47:06 +0000},
+	Journal = {Advances in Engineering Software},
+	Keywords = {meshing tools, object-oriented design, software product line},
+	Local-Url = {file://localhost/Users/smiths/LongTermArchives/Work/Research/References/SciCompAndSoftEng/BastarricaAndHitschfeld2005.pdf},
+	Number = {1},
+	Pages = {1--10},
+	Title = {Designing a product family of meshing tools},
+	Volume = {37},
+	Year = {2006},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QZy4uLy4uLy4uLy4uL0xvbmdUZXJtQXJjaGl2ZXMvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL1NjaUNvbXBBbmRTb2Z0RW5nL0Jhc3RhcnJpY2FBbmRIaXRzY2hmZWxkMjAwNS5wZGbSFwsYGVdOUy5kYXRhTxECPAAAAAACPAACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAxsVhAEgrAAAAEqeSH0Jhc3RhcnJpY2FBbmRIaXRzY2hmZWxkMjAwNS5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAStC/ITnQ/UERGIENBUk8ABAAGAAAJIAAAAAAAAAAAAAAAAAAAABFTY2lDb21wQW5kU29mdEVuZwAAEAAIAADGxZlAAAAAEQAIAADITqx/AAAAAQAcABKnkgASojYAEqDKABKgqQASoKUACFn3AAB8YwACAHVNYWNpbnRvc2ggSEQ6VXNlcnM6c21pdGhzOkxvbmdUZXJtQXJjaGl2ZXM6V29yazpSZXNlYXJjaDpSZWZlcmVuY2VzOlNjaUNvbXBBbmRTb2Z0RW5nOkJhc3RhcnJpY2FBbmRIaXRzY2hmZWxkMjAwNS5wZGYAAA4AQAAfAEIAYQBzAHQAYQByAHIAaQBjAGEAQQBuAGQASABpAHQAcwBjAGgAZgBlAGwAZAAyADAAMAA1AC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgBoVXNlcnMvc21pdGhzL0xvbmdUZXJtQXJjaGl2ZXMvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL1NjaUNvbXBBbmRTb2Z0RW5nL0Jhc3RhcnJpY2FBbmRIaXRzY2hmZWxkMjAwNS5wZGYAEwABLwAAFQACAA3//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgD4AP0BBQNFA0cDTANXA2ADbgNyA3kDggOHA5QDlwOpA6wDsQAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAOz}}
+
+@mastersthesis{Chen2003,
+	Author = {Chien-Hsien Chen},
+	Date-Added = {2017-09-14 20:46:56 +0000},
+	Date-Modified = {2017-09-14 20:46:56 +0000},
+	Keywords = {sofware engineering, mesh generation, commonality analysis, requirements, modular decomposition, module interface specification},
+	School = {McMaster University, Hamilton, Ontario, Canada},
+	Title = {A software engineering approach to developing mesh generators},
+	Year = {2003}}
+
+@book{Saaty1980,
+	Address = {New York, New York},
+	Author = {T. L. Saaty},
+	Date-Added = {2017-09-14 20:46:45 +0000},
+	Date-Modified = {2017-09-14 20:46:45 +0000},
+	Publisher = {McGraw-Hill Publishing Company},
+	Title = {The Analytic Hierarchy Process: Planning, Priority Setting, Resource Allocation},
+	Year = {1980}}
+
+@book{WeissAndLai1999,
+	Author = {D. Weiss and C.T.R. Lai},
+	Date-Added = {2017-09-14 20:46:33 +0000},
+	Date-Modified = {2017-09-14 20:46:33 +0000},
+	Publisher = {Addison-Wesley},
+	Title = {Software Product Line Engineering: A Family-Based Software Development Process},
+	Year = {1999}}
+
+@article{CukaAndWeiss1998,
+	Address = {Los Alamitos, CA, USA},
+	Author = {D.A. Cuka and D.M. Weiss},
+	Date-Added = {2017-09-14 20:46:24 +0000},
+	Date-Modified = {2017-09-14 20:46:24 +0000},
+	Doi = {http://doi.ieeecomputersociety.org/10.1109/ICSR.1998.685727},
+	Issn = {1085-9098},
+	Journal = {Software Reuse, International Conference on},
+	Pages = {26--34},
+	Publisher = {IEEE Computer Society},
+	Title = {Engineering Domains: Executable Commands as an Example},
+	Year = {1998},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8Qgy4uLy4uLy4uLy4uLy4uLy4uL1ZvbHVtZXMvQmFja3VwL0xvbmdUZXJtQXJjaGl2ZXNMYXN0Q2hhbmdlTWF5MTBfMjAxMi9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvUHJvZ3JhbUZhbWlsaWVzL0N1a2FBbmRXZWlzczE5OTgucGRm0hcLGBlXTlMuZGF0YU8RAggAAAAAAggAAgAABkJhY2t1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAMphtaVIKwAAAcnnIRRDdWthQW5kV2Vpc3MxOTk4LnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByecoyE50NAAAAAAAAAAA/////wAACQAAAAAAAAAAAAAAAAAAAAAPUHJvZ3JhbUZhbWlsaWVzAAAQAAgAAMph7eUAAAARAAgAAMhOrHQAAAABABQByechAcnklgHJ4H0BycfSAcmqbAACAGlCYWNrdXA6TG9uZ1Rlcm1BcmNoaXZlc0xhc3RDaGEjMUM5QUE2QzoAV29yazoAUmVzZWFyY2g6AFJlZmVyZW5jZXM6AFByb2dyYW1GYW1pbGllczoAQ3VrYUFuZFdlaXNzMTk5OC5wZGYAAA4AKgAUAEMAdQBrAGEAQQBuAGQAVwBlAGkAcwBzADEAOQA5ADgALgBwAGQAZgAPAA4ABgBCAGEAYwBrAHUAcAASAGMvTG9uZ1Rlcm1BcmNoaXZlc0xhc3RDaGFuZ2VNYXkxMF8yMDEyL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9Qcm9ncmFtRmFtaWxpZXMvQ3VrYUFuZFdlaXNzMTk5OC5wZGYAABMADy9Wb2x1bWVzL0JhY2t1cAD//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgEUARkBIQMtAy8DNAM/A0gDVgNaA2EDagNvA3wDfwORA5QDmQAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAOb},
+	Bdsk-Url-1 = {http://doi.ieeecomputersociety.org/10.1109/ICSR.1998.685727}}
+
+@article{Weiss1998,
+	Author = {David M. Weiss},
+	Date-Added = {2017-09-14 20:46:19 +0000},
+	Date-Modified = {2017-09-14 20:46:19 +0000},
+	Journal = {Lecture Notes in Computer Science},
+	Keywords = {commonality analysis, program families},
+	Local-Url = {/Users/smiths/LongTermArchives/Work/Research/References/ProgramFamilies/DefiningFamilies.ARES.pdf},
+	Pages = {214--222},
+	Title = {Commonality analysis: A systematic process for defining families},
+	Url = {citeseer.ist.psu.edu/13585.html},
+	Volume = {1429},
+	Year = {1998},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QiC4uLy4uLy4uLy4uLy4uLy4uL1ZvbHVtZXMvQmFja3VwL0xvbmdUZXJtQXJjaGl2ZXNMYXN0Q2hhbmdlTWF5MTBfMjAxMi9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvUHJvZ3JhbUZhbWlsaWVzL0RlZmluaW5nRmFtaWxpZXMuQVJFUy5wZGbSFwsYGVdOUy5kYXRhTxECGgAAAAACGgACAAAGQmFja3VwAAAAAAAAAAAAAAAAAAAAAAAAAAAAymG1pUgrAAAByechGURlZmluaW5nRmFtaWxpZXMuQVJFUy5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJ5ynITnQ3UERGIHBydnf/////AAAJAAAAAAAAAAAAAAAAAAAAAA9Qcm9ncmFtRmFtaWxpZXMAABAACAAAymHt5QAAABEACAAAyE6sdwAAAAEAFAHJ5yEByeSWAcngfQHJx9IByapsAAIAbkJhY2t1cDpMb25nVGVybUFyY2hpdmVzTGFzdENoYSMxQzlBQTZDOgBXb3JrOgBSZXNlYXJjaDoAUmVmZXJlbmNlczoAUHJvZ3JhbUZhbWlsaWVzOgBEZWZpbmluZ0ZhbWlsaWVzLkFSRVMucGRmAA4ANAAZAEQAZQBmAGkAbgBpAG4AZwBGAGEAbQBpAGwAaQBlAHMALgBBAFIARQBTAC4AcABkAGYADwAOAAYAQgBhAGMAawB1AHAAEgBoL0xvbmdUZXJtQXJjaGl2ZXNMYXN0Q2hhbmdlTWF5MTBfMjAxMi9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvUHJvZ3JhbUZhbWlsaWVzL0RlZmluaW5nRmFtaWxpZXMuQVJFUy5wZGYAEwAPL1ZvbHVtZXMvQmFja3VwAP//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOARkBHgEmA0QDRgNLA1YDXwNtA3EDeAOBA4YDkwOWA6gDqwOwAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA7I=},
+	Bdsk-Url-1 = {citeseer.ist.psu.edu/13585.html}}
+
+@article{Weiss1997,
+	Author = {David M. Weiss},
+	Date-Added = {2017-09-14 20:46:14 +0000},
+	Date-Modified = {2017-09-14 20:46:14 +0000},
+	Journal = {Submitted to IEEE Transactions on Software Engineering},
+	Keywords = {software engineering, domain analysis, domain engineering, families, software process, application-oriented languages},
+	Local-Url = {/Users/smiths/LongTermArchives/Work/Research/References/ProgramFamilies/DefiningFamilies.pdf},
+	Title = {Defining families: The commonality analysis},
+	Url = {http://www.research.avayalabs.com/user/weiss/Publications.html},
+	Year = {1997},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8Qgy4uLy4uLy4uLy4uLy4uLy4uL1ZvbHVtZXMvQmFja3VwL0xvbmdUZXJtQXJjaGl2ZXNMYXN0Q2hhbmdlTWF5MTBfMjAxMi9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvUHJvZ3JhbUZhbWlsaWVzL0RlZmluaW5nRmFtaWxpZXMucGRm0hcLGBlXTlMuZGF0YU8RAggAAAAAAggAAgAABkJhY2t1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAMphtaVIKwAAAcnnIRREZWZpbmluZ0ZhbWlsaWVzLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByecqyE50NFBERiBwcnZ3/////wAACQAAAAAAAAAAAAAAAAAAAAAPUHJvZ3JhbUZhbWlsaWVzAAAQAAgAAMph7eUAAAARAAgAAMhOrHQAAAABABQByechAcnklgHJ4H0BycfSAcmqbAACAGlCYWNrdXA6TG9uZ1Rlcm1BcmNoaXZlc0xhc3RDaGEjMUM5QUE2QzoAV29yazoAUmVzZWFyY2g6AFJlZmVyZW5jZXM6AFByb2dyYW1GYW1pbGllczoARGVmaW5pbmdGYW1pbGllcy5wZGYAAA4AKgAUAEQAZQBmAGkAbgBpAG4AZwBGAGEAbQBpAGwAaQBlAHMALgBwAGQAZgAPAA4ABgBCAGEAYwBrAHUAcAASAGMvTG9uZ1Rlcm1BcmNoaXZlc0xhc3RDaGFuZ2VNYXkxMF8yMDEyL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9Qcm9ncmFtRmFtaWxpZXMvRGVmaW5pbmdGYW1pbGllcy5wZGYAABMADy9Wb2x1bWVzL0JhY2t1cAD//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgEUARkBIQMtAy8DNAM/A0gDVgNaA2EDagNvA3wDfwORA5QDmQAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAOb},
+	Bdsk-Url-1 = {http://www.research.avayalabs.com/user/weiss/Publications.html}}
+
+@inproceedings{ArdisAndWeiss1997,
+	Author = {Mark Ardis and David M. Weiss},
+	Booktitle = {Proceedings of the Nineteenth International Conference on Software Engineering},
+	Date-Added = {2017-09-14 20:45:55 +0000},
+	Date-Modified = {2017-09-14 20:45:55 +0000},
+	Keywords = {software engineering, domain analysis, domain engineering, families, software process, application-oriented languages, reuse, requirements engineering},
+	Local-Url = {/Users/smiths/LongTermArchives/Work/Research/References/ProgramFamilies/ArdisAndWeiss_ProgFam.pdf},
+	Pages = {649--650},
+	Publisher = {ACM, Inc.},
+	Title = {Defining families: The commonality analysis},
+	Year = {1997},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QiC4uLy4uLy4uLy4uLy4uLy4uL1ZvbHVtZXMvQmFja3VwL0xvbmdUZXJtQXJjaGl2ZXNMYXN0Q2hhbmdlTWF5MTBfMjAxMi9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvUHJvZ3JhbUZhbWlsaWVzL0FyZGlzQW5kV2Vpc3NfUHJvZ0ZhbS5wZGbSFwsYGVdOUy5kYXRhTxECGgAAAAACGgACAAAGQmFja3VwAAAAAAAAAAAAAAAAAAAAAAAAAAAAymG1pUgrAAAByechGUFyZGlzQW5kV2Vpc3NfUHJvZ0ZhbS5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJ5yPITnQ0AAAAAAAAAAD/////AAAJAAAAAAAAAAAAAAAAAAAAAA9Qcm9ncmFtRmFtaWxpZXMAABAACAAAymHt5QAAABEACAAAyE6sdAAAAAEAFAHJ5yEByeSWAcngfQHJx9IByapsAAIAbkJhY2t1cDpMb25nVGVybUFyY2hpdmVzTGFzdENoYSMxQzlBQTZDOgBXb3JrOgBSZXNlYXJjaDoAUmVmZXJlbmNlczoAUHJvZ3JhbUZhbWlsaWVzOgBBcmRpc0FuZFdlaXNzX1Byb2dGYW0ucGRmAA4ANAAZAEEAcgBkAGkAcwBBAG4AZABXAGUAaQBzAHMAXwBQAHIAbwBnAEYAYQBtAC4AcABkAGYADwAOAAYAQgBhAGMAawB1AHAAEgBoL0xvbmdUZXJtQXJjaGl2ZXNMYXN0Q2hhbmdlTWF5MTBfMjAxMi9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvUHJvZ3JhbUZhbWlsaWVzL0FyZGlzQW5kV2Vpc3NfUHJvZ0ZhbS5wZGYAEwAPL1ZvbHVtZXMvQmFja3VwAP//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOARkBHgEmA0QDRgNLA1YDXwNtA3EDeAOBA4YDkwOWA6gDqwOwAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA7I=}}
+
+@mastersthesis{McCutchan2007,
+	Address = {Hamilton, ON, Canada},
+	Author = {John McCutchan},
+	Date-Added = {2017-09-14 20:45:41 +0000},
+	Date-Modified = {2017-09-14 20:45:41 +0000},
+	Local-Url = {file://localhost/Users/smiths/Work/Research/GradStudents/JohnMcCutchan/thesis/thesis/build/Thesis.pdf},
+	Month = {September},
+	School = {McMaster University},
+	Title = {A generative approach to a virtual material testing laboratory},
+	Year = {2007},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QLi4uLy4uL3ZpcnRsYWIvZG9jLzIwMDcvSm9obk1jQ3V0Y2hhblRoZXNpcy5wZGbSFwsYGVdOUy5kYXRhTxEBxgAAAAABxgACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAzpdzg0grAAAJNoJiF0pvaG5NY0N1dGNoYW5UaGVzaXMucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk2gmPTcxXHAAAAAAAAAAAAAgAEAAAJIAAAAAAAAAAAAAAAAAAAAAQyMDA3ABAACAAAzperwwAAABEACAAA03NOBwAAAAEAGAk2gmIJNoJhCTZ6twASFacACPdmAAJkjgACAE5NYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAUmVwb3M6AHZpcnRsYWI6AGRvYzoAMjAwNzoASm9obk1jQ3V0Y2hhblRoZXNpcy5wZGYADgAwABcASgBvAGgAbgBNAGMAQwB1AHQAYwBoAGEAbgBUAGgAZQBzAGkAcwAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIAO1VzZXJzL3NtaXRocy9SZXBvcy92aXJ0bGFiL2RvYy8yMDA3L0pvaG5NY0N1dGNoYW5UaGVzaXMucGRmAAATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAL8AxADMApYCmAKdAqgCsQK/AsMCygLTAtgC5QLoAvoC/QMCAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAwQ=}}
+
+@techreport{SmithAndChen2004b,
+	Author = {W. Spencer Smith and Chien-Hsien Chen},
+	Date-Added = {2017-09-14 20:45:24 +0000},
+	Date-Modified = {2017-09-14 20:45:24 +0000},
+	Institution = {McMaster University, Department of Computing and Software},
+	Local-Url = {file://localhost/Users/smiths/Work/Research/WorkingDocs/MeshGenSyst/CommAnalysisMeshGen/CAS%2004-10-SS.pdf},
+	Note = {45 pp},
+	Number = {CAS-04-10-SS},
+	Title = {Commonality analysis for mesh generating systems},
+	Type = {Technical Report},
+	Year = {2004},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QUy4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvV29ya2luZ0RvY3MvTWVzaEdlblN5c3QvQ29tbUFuYWx5c2lzTWVzaEdlbi9DQVMgMDQtMTAtU1MucGRm0hcLGBlXTlMuZGF0YU8RAgYAAAAAAgYAAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM6Xc4NIKwAAABeHSxBDQVMgMDQtMTAtU1MucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF79jzyLirwAAAAAAAAAAAAMABgAACSAAAAAAAAAAAAAAAAAAAAATQ29tbUFuYWx5c2lzTWVzaEdlbgAAEAAIAADOl6vDAAAAEQAIAADPIyj/AAAAAQAcABeHSwAXD/4AFwIUABcATQAW/e0ACPdmAAJkjgACAGtNYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAV29yazoAUmVzZWFyY2g6AFdvcmtpbmdEb2NzOgBNZXNoR2VuU3lzdDoAQ29tbUFuYWx5c2lzTWVzaEdlbjoAQ0FTIDA0LTEwLVNTLnBkZgAADgAiABAAQwBBAFMAIAAwADQALQAxADAALQBTAFMALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAFdVc2Vycy9zbWl0aHMvV29yay9SZXNlYXJjaC9Xb3JraW5nRG9jcy9NZXNoR2VuU3lzdC9Db21tQW5hbHlzaXNNZXNoR2VuL0NBUyAwNC0xMC1TUy5wZGYAABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4A5ADpAPEC+wL9AwIDDQMWAyQDKAMvAzgDPQNKA00DXwNiA2cAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAADaQ==}}
+
+@inproceedings{SmithAndChen2004,
+	Address = {Banff, Alberta},
+	Author = {W. Spencer Smith and Chien-Hsien Chen},
+	Booktitle = {Proceedings of the Sixteenth International Conference on Software Engineering and Knowledge Engineering (SEKE 2004)},
+	Date-Added = {2017-09-14 20:45:16 +0000},
+	Date-Modified = {2017-09-14 20:45:16 +0000},
+	Editor = {F. Maurer and G. Ruhe},
+	Local-Url = {/Users/smiths/Work/Research/Papers/CommReqAnal_MeshGen_SEKE04/AsSubmitted_SmithAndChen.pdf},
+	Pages = {384--387},
+	Title = {Commonality and Requirements Analysis for Mesh Generating Software},
+	Year = {2004},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QVS4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUGFwZXJzL0NvbW1SZXFBbmFsX01lc2hHZW5fU0VLRTA0L0FzU3VibWl0dGVkX1NtaXRoQW5kQ2hlbi5wZGbSFwsYGVdOUy5kYXRhTxECIgAAAAACIgACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAzpdzg0grAAAAFwtMHEFzU3VibWl0dGVkX1NtaXRoQW5kQ2hlbi5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXjRXPIuFNAAAAAAAAAAAAAwAFAAAJIAAAAAAAAAAAAAAAAAAAABpDb21tUmVxQW5hbF9NZXNoR2VuX1NFS0UwNAAQAAgAAM6Xq8MAAAARAAgAAM8jJ50AAAABABgAFwtMABcCCwAXAE0AFv3tAAj3ZgACZI4AAgBsTWFjaW50b3NoIEhEOlVzZXJzOgBzbWl0aHM6AFdvcms6AFJlc2VhcmNoOgBQYXBlcnM6AENvbW1SZXFBbmFsX01lc2hHZW5fU0VLRTA0OgBBc1N1Ym1pdHRlZF9TbWl0aEFuZENoZW4ucGRmAA4AOgAcAEEAcwBTAHUAYgBtAGkAdAB0AGUAZABfAFMAbQBpAHQAaABBAG4AZABDAGgAZQBuAC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgBZVXNlcnMvc21pdGhzL1dvcmsvUmVzZWFyY2gvUGFwZXJzL0NvbW1SZXFBbmFsX01lc2hHZW5fU0VLRTA0L0FzU3VibWl0dGVkX1NtaXRoQW5kQ2hlbi5wZGYAABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4A5gDrAPMDGQMbAyADKwM0A0IDRgNNA1YDWwNoA2sDfQOAA4UAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAADhw==}}
+
+@misc{Blitz2010,
+	Author = {Blitz},
+	Date-Added = {2017-09-14 20:45:01 +0000},
+	Date-Modified = {2017-09-14 20:45:01 +0000},
+	Node = {Version 1.2},
+	Title = {Blitz++, Object-Oriented Scientific Computing},
+	Url = {http://www.oonumerics.org/blitz/},
+	Year = {Last Accessed in December 2001},
+	Bdsk-Url-1 = {http://www.oonumerics.org/blitz/}}
+
+@inproceedings{Veldhuizen1998,
+	Author = {Todd. L. Veldhuizen},
+	Booktitle = {Proceedings of the 2nd International Scientific Computing in Object-Oriented Parallel Environments ({ISCOPE}'98), Lecture Notes in Computer Science},
+	Date-Added = {2017-09-14 20:44:29 +0000},
+	Date-Modified = {2017-09-14 20:44:29 +0000},
+	Local-Url = {file://localhost/Users/smiths/LongTermArchives/Work/Research/References/GenerativeProgramming/Veldhuizen98.pdf},
+	Publisher = {Springer-Verlag},
+	Title = {Arrays in {Blitz++}},
+	Year = {1998},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QXC4uLy4uLy4uLy4uL0xvbmdUZXJtQXJjaGl2ZXMvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL0dlbmVyYXRpdmVQcm9ncmFtbWluZy9WZWxkaHVpemVuOTgucGRm0hcLGBlXTlMuZGF0YU8RAgwAAAAAAgwAAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAMbFYQBIKwAAABKnhhBWZWxkaHVpemVuOTgucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAErN+yE50MlBERiBDQVJPAAQABgAACSAAAAAAAAAAAAAAAAAAAAAVR2VuZXJhdGl2ZVByb2dyYW1taW5nAAAQAAgAAMbFmUAAAAARAAgAAMhOrHIAAAABABwAEqeGABKiNgASoMoAEqCpABKgpQAIWfcAAHxjAAIAak1hY2ludG9zaCBIRDpVc2VyczpzbWl0aHM6TG9uZ1Rlcm1BcmNoaXZlczpXb3JrOlJlc2VhcmNoOlJlZmVyZW5jZXM6R2VuZXJhdGl2ZVByb2dyYW1taW5nOlZlbGRodWl6ZW45OC5wZGYADgAiABAAVgBlAGwAZABoAHUAaQB6AGUAbgA5ADgALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAF1Vc2Vycy9zbWl0aHMvTG9uZ1Rlcm1BcmNoaXZlcy9Xb3JrL1Jlc2VhcmNoL1JlZmVyZW5jZXMvR2VuZXJhdGl2ZVByb2dyYW1taW5nL1ZlbGRodWl6ZW45OC5wZGYAABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4A7QDyAPoDCgMMAxEDHAMlAzMDNwM+A0cDTANZA1wDbgNxA3YAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAADeA==}}
+
+@article{WhaleyEtAl2001,
+	Author = {R. C. Whaley and A. Petitet and J. J. Dongarra},
+	Date-Added = {2017-09-14 20:43:34 +0000},
+	Date-Modified = {2017-09-14 20:43:34 +0000},
+	Journal = {Parallel Computing},
+	Local-Url = {file://localhost/Users/smiths/LongTermArchives/Work/Research/References/GenerativeProgramming/WhaleyEtAl2001.pdf},
+	Number = {1--2},
+	Pages = {3--35},
+	Title = {Automated empirical optimization of software and the {ATLAS} project},
+	Volume = {27},
+	Year = {2001},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QXi4uLy4uLy4uLy4uL0xvbmdUZXJtQXJjaGl2ZXMvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL0dlbmVyYXRpdmVQcm9ncmFtbWluZy9XaGFsZXlFdEFsMjAwMS5wZGbSFwsYGVdOUy5kYXRhTxECFAAAAAACFAACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAxsVhAEgrAAAAEqeGEldoYWxleUV0QWwyMDAxLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASs67ITnQ1AAAAAAAAAAAABAAGAAAJIAAAAAAAAAAAAAAAAAAAABVHZW5lcmF0aXZlUHJvZ3JhbW1pbmcAABAACAAAxsWZQAAAABEACAAAyE6sdQAAAAEAHAASp4YAEqI2ABKgygASoKkAEqClAAhZ9wAAfGMAAgBsTWFjaW50b3NoIEhEOlVzZXJzOnNtaXRoczpMb25nVGVybUFyY2hpdmVzOldvcms6UmVzZWFyY2g6UmVmZXJlbmNlczpHZW5lcmF0aXZlUHJvZ3JhbW1pbmc6V2hhbGV5RXRBbDIwMDEucGRmAA4AJgASAFcAaABhAGwAZQB5AEUAdABBAGwAMgAwADAAMQAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIAX1VzZXJzL3NtaXRocy9Mb25nVGVybUFyY2hpdmVzL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9HZW5lcmF0aXZlUHJvZ3JhbW1pbmcvV2hhbGV5RXRBbDIwMDEucGRmAAATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAO8A9AD8AxQDFgMbAyYDLwM9A0EDSANRA1YDYwNmA3gDewOAAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA4I=}}
+
+@article{Carette2006,
+	Author = {Jacques Carette},
+	Date-Added = {2017-09-14 20:43:20 +0000},
+	Date-Modified = {2017-09-14 20:43:20 +0000},
+	Journal = {Science of Computer Programming},
+	Keywords = {MetaOCaml, linear algebra, genericity, generative, staging},
+	Local-Url = {file://localhost/Users/smiths/LongTermArchives/Work/Research/References/ScientificComputing/Carette2006.pdf},
+	Number = {1},
+	Pages = {3--24},
+	Title = {Gaussian Elimination: A case study in efficient genericity with {M}eta{OC}aml},
+	Volume = {62},
+	Year = {2006},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QMS4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9DYXJldHRlMjAwNi5wZGbSFwsYGVdOUy5kYXRhTxEBrAAAAAABrAACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAzpdzg0grAAAAFwIMD0NhcmV0dGUyMDA2LnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS/y9TRHI/XAAAAAAAAAAAAAwAEAAAJIAAAAAAAAAAAAAAAAAAAAApSZWZlcmVuY2VzABAACAAAzperwwAAABEACAAA0RzWJwAAAAEAFAAXAgwAFwBNABb97QAI92YAAmSOAAIAR01hY2ludG9zaCBIRDpVc2VyczoAc21pdGhzOgBXb3JrOgBSZXNlYXJjaDoAUmVmZXJlbmNlczoAQ2FyZXR0ZTIwMDYucGRmAAAOACAADwBDAGEAcgBlAHQAdABlADIAMAAwADYALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASADVVc2Vycy9zbWl0aHMvV29yay9SZXNlYXJjaC9SZWZlcmVuY2VzL0NhcmV0dGUyMDA2LnBkZgAAEwABLwAAFQACAA3//wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgDCAMcAzwJ/AoEChgKRApoCqAKsArMCvALBAs4C0QLjAuYC6wAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAALt}}
+
+@incollection{Dijkstra1972,
+	Acmid = {1243381},
+	Address = {London, UK, UK},
+	Author = {Dijkstra, Edsger W.},
+	Booktitle = {Structure Programming},
+	Date-Added = {2017-09-14 20:42:43 +0000},
+	Date-Modified = {2017-09-14 20:42:43 +0000},
+	Editor = {Dahl, O. J. and Dijkstra, E. W. and Hoare, C. A. R.},
+	Isbn = {0-12-200550-3},
+	Numpages = {82},
+	Pages = {1--82},
+	Publisher = {Academic Press Ltd.},
+	Title = {Notes on Structured Programming},
+	Url = {http://dl.acm.org/citation.cfm?id=1243380.1243381},
+	Year = {1972},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QMC4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9jYi1zcC1kYWhsLnBkZtIXCxgZV05TLmRhdGFPEQGmAAAAAAGmAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADOl3ODSCsAAAAXAgwOY2Itc3AtZGFobC5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtvS2NBAYEQAAAAAAAAAAAADAAQAAAkgAAAAAAAAAAAAAAAAAAAAClJlZmVyZW5jZXMAEAAIAADOl6vDAAAAEQAIAADQQJiEAAAAAQAUABcCDAAXAE0AFv3tAAj3ZgACZI4AAgBGTWFjaW50b3NoIEhEOlVzZXJzOgBzbWl0aHM6AFdvcms6AFJlc2VhcmNoOgBSZWZlcmVuY2VzOgBjYi1zcC1kYWhsLnBkZgAOAB4ADgBjAGIALQBzAHAALQBkAGEAaABsAC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgA0VXNlcnMvc21pdGhzL1dvcmsvUmVzZWFyY2gvUmVmZXJlbmNlcy9jYi1zcC1kYWhsLnBkZgATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAMEAxgDOAngCegJ/AooCkwKhAqUCrAK1AroCxwLKAtwC3wLkAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAuY=},
+	Bdsk-Url-1 = {http://dl.acm.org/citation.cfm?id=1243380.1243381}}
+
+@article{Parnas1979,
+	Author = {David L. Parnas},
+	Date-Added = {2017-09-14 20:42:25 +0000},
+	Date-Modified = {2017-09-14 20:42:25 +0000},
+	Journal = {IEEE Transactions on Software Engineering},
+	Month = {March},
+	Pages = {128-138},
+	Title = {Designing Software for Ease of Extension and Contraction},
+	Year = {1979}}
+
+@article{Parnas1976,
+	Author = {David Parnas},
+	Date-Added = {2017-09-14 20:42:18 +0000},
+	Date-Modified = {2017-09-14 20:42:18 +0000},
+	Journal = {IEEE Transactions on Software Engineering},
+	Keywords = {program families, step-wise refinement, modules},
+	Number = {1},
+	Pages = {1-9},
+	Title = {On the design and development of program families},
+	Volume = {SE-2},
+	Year = {1976}}
+
+@book{PohlEtAl2005,
+	Author = {K. Pohl and G. B\"{o}ckle and F. van der Linden},
+	Date-Added = {2017-09-14 20:42:09 +0000},
+	Date-Modified = {2017-09-14 20:42:09 +0000},
+	Publisher = {Springer-Verlag},
+	Title = {Software Product Line Engineering: Foundations, Principles, and Techniques},
+	Year = {2005}}
+
+@book{ClementsAndNorthrop2001,
+	Address = {Boston, MA, USA},
+	Author = {Paul Clements and Linda M. Northrop},
+	Date-Added = {2017-09-14 20:42:02 +0000},
+	Date-Modified = {2017-09-14 20:42:02 +0000},
+	Publisher = {Addison-Wesley Longman Publishing Co., Inc.},
+	Title = {Software product lines: practices and patterns},
+	Year = {2002}}
+
 @inproceedings{SmithEtAl2008,
 	Address = {Leipzig, Germany},
 	Author = {W. Spencer Smith and John McCutchan and Jacques Carette},
diff --git a/ReferenceMaterial/SQRL_TR48.pdf b/ReferenceMaterial/SQRL_TR48.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..4805e4f7e05a9a1fc545b42e1fa05de50f6ddc53
Binary files /dev/null and b/ReferenceMaterial/SQRL_TR48.pdf differ
diff --git a/ReferenceMaterial/cb-sp-dahl.pdf b/ReferenceMaterial/cb-sp-dahl.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..3032b872134f1bff6cca56a757395e76e41d4b68
Binary files /dev/null and b/ReferenceMaterial/cb-sp-dahl.pdf differ