diff --git a/BlankProjectTemplate/Doc/Design/MG/MG.pdf b/BlankProjectTemplate/Doc/Design/MG/MG.pdf
index ea8c480d2d58c4c0a6329bba5f67718a2e8d6552..dd912e67306e2b2b394af1e8905d28a4bd24da10 100644
Binary files a/BlankProjectTemplate/Doc/Design/MG/MG.pdf and b/BlankProjectTemplate/Doc/Design/MG/MG.pdf differ
diff --git a/BlankProjectTemplate/Doc/Design/MG/MG.tex b/BlankProjectTemplate/Doc/Design/MG/MG.tex
index 042518f46dbaa3acbbeb81f8dfe3b0699b843d76..b05afbe6604f5aa561c9c005443c5ef6e0937831 100644
--- a/BlankProjectTemplate/Doc/Design/MG/MG.tex
+++ b/BlankProjectTemplate/Doc/Design/MG/MG.tex
@@ -15,7 +15,8 @@
     linkcolor=red,
     urlcolor=blue
 }
-\usepackage[round]{natbib}
+
+\input{../../Comments}
 
 \newcounter{acnum}
 \newcommand{\actheacnum}{AC\theacnum}
@@ -29,29 +30,18 @@
 \newcommand{\mthemnum}{M\themnum}
 \newcommand{\mref}[1]{M\ref{#1}}
 
-\title{SE 3XA3: Software Requirements Specification\\Title of Project}
-
-\author{Team \#, Team Name
-		\\ Student 1 name and macid
-		\\ Student 2 name and macid
-		\\ Student 3 name and macid
-}
+\begin{document}
 
+\title{Module Guide: Project Title} 
+\author{Author Name}
 \date{\today}
 
-\input{../../Comments}
-
-\begin{document}
-
 \maketitle
 
 \pagenumbering{roman}
-\tableofcontents
-\listoftables
-\listoffigures
 
-\begin{table}[bp]
-\caption{\bf Revision History}
+\section{Revision History}
+
 \begin{tabularx}{\textwidth}{p{3cm}p{2cm}X}
 \toprule {\bf Date} & {\bf Version} & {\bf Notes}\\
 \midrule
@@ -59,7 +49,14 @@ Date 1 & 1.0 & Notes\\
 Date 2 & 1.1 & Notes\\
 \bottomrule
 \end{tabularx}
-\end{table}
+
+\newpage
+
+\tableofcontents
+
+\listoftables
+
+\listoffigures
 
 \newpage
 
diff --git a/Lectures/Figures/BinTreeToThreadTree.png b/Lectures/Figures/BinTreeToThreadTree.png
new file mode 100644
index 0000000000000000000000000000000000000000..71020b46ce3ae47f42e8b083813c5e282d83c2a9
Binary files /dev/null and b/Lectures/Figures/BinTreeToThreadTree.png differ
diff --git a/Lectures/Figures/Example.png b/Lectures/Figures/Example.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e4b0bf8737b4395c3498b8963bbb994b51d4fa2
Binary files /dev/null and b/Lectures/Figures/Example.png differ
diff --git a/Lectures/Figures/GraphAndDAG.png b/Lectures/Figures/GraphAndDAG.png
new file mode 100644
index 0000000000000000000000000000000000000000..d87cd0dfcab169f7b97ccaab9055ae0c8598937f
Binary files /dev/null and b/Lectures/Figures/GraphAndDAG.png differ
diff --git a/Lectures/Figures/GraphViewOf_IS_COMPONENT_OF.png b/Lectures/Figures/GraphViewOf_IS_COMPONENT_OF.png
new file mode 100644
index 0000000000000000000000000000000000000000..95fba6600b77a3d4d0eb9535b7dfd472ff39da96
Binary files /dev/null and b/Lectures/Figures/GraphViewOf_IS_COMPONENT_OF.png differ
diff --git a/Lectures/Figures/ParnasDecompBySecrets.png b/Lectures/Figures/ParnasDecompBySecrets.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f2f4af3486e812cadde23514b5cd0dfdb9f5285
Binary files /dev/null and b/Lectures/Figures/ParnasDecompBySecrets.png differ
diff --git a/Lectures/Figures/Tank.pdf b/Lectures/Figures/Tank.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..dc4ed1191633d5da082fdfa604fb10d1667decdd
Binary files /dev/null and b/Lectures/Figures/Tank.pdf differ
diff --git a/Lectures/Figures/TestingAFunctModule.png b/Lectures/Figures/TestingAFunctModule.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed63241fc0ac3a43051d1010612f3a05377cb6db
Binary files /dev/null and b/Lectures/Figures/TestingAFunctModule.png differ
diff --git a/Lectures/Figures/UML_Association.png b/Lectures/Figures/UML_Association.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c67e1723721fd3a207bcbd7a51e59d2678c9f7e
Binary files /dev/null and b/Lectures/Figures/UML_Association.png differ
diff --git a/Lectures/Figures/UsesHierarchy.pdf b/Lectures/Figures/UsesHierarchy.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..a229222f5284ff31b7e96c88ae67d0c2a012bd50
Binary files /dev/null and b/Lectures/Figures/UsesHierarchy.pdf differ
diff --git a/Lectures/Figures/hierarchy_diagram.pdf b/Lectures/Figures/hierarchy_diagram.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..7b815569f3acf5d5b2123e9b8eb3f16b6e6cc9f7
Binary files /dev/null and b/Lectures/Figures/hierarchy_diagram.pdf differ
diff --git a/Lectures/Figures/magnetron1.pdf b/Lectures/Figures/magnetron1.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..beda8496c8ab8fd680c5211715c90b191364748c
Binary files /dev/null and b/Lectures/Figures/magnetron1.pdf differ
diff --git a/Lectures/L10_VnVContinued/VnVContinued.pdf b/Lectures/L10_VnVContinued/VnVContinued.pdf
index c2f4684a55af249cd64eaf8d98b18d415e38a8fd..8327fa3f83b02b4b63bd31d04bf256dea1884f12 100644
Binary files a/Lectures/L10_VnVContinued/VnVContinued.pdf and b/Lectures/L10_VnVContinued/VnVContinued.pdf differ
diff --git a/Lectures/L10_VnVContinued/VnVContinued.tex b/Lectures/L10_VnVContinued/VnVContinued.tex
index 6636f72b2e7a6b2128d19873b23bd3dc26003895..1950e1a35020b2b1ed66e746179ebd6f16064953 100755
--- a/Lectures/L10_VnVContinued/VnVContinued.tex
+++ b/Lectures/L10_VnVContinued/VnVContinued.tex
@@ -512,15 +512,20 @@ constituents of compound conditions are exercised at least once
 
 \begin{frame}
 \frametitle{Specific SC V\&V Approaches}
-Summary in \cite{Smith2016}
+Summary of most points below in \cite{Smith2016}
 \begin{itemize}
 \item Compare to closed-form solutions
 \item Method of manufactured solutions \cite{Roache1998}
 \item Interval arithmetic \cite{Hickey2001}
 \item Convergence studies
 \item Compare to other program (parallel testing)
+\item Can also consider using code inspection
+\bi
+\item \cite{KellyAndShepard2000,
+  ShepardAndKelly2001}
+\item \href{http://www.cs.nott.ac.uk/~pszcah/G53QAT/fi.pdf}{Sample checklists}
+\ei
 \end{itemize}
-Can also consider using code inspection~\cite{KellyAndShepard2000, ShepardAndKelly2001}
 \end{frame}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -537,6 +542,11 @@ Can also consider using code inspection~\cite{KellyAndShepard2000, ShepardAndKel
 \item Performance
 \item Relative comparison
 \ei
+\item Usability
+\bi
+\item \href{https://measuringu.com/sus/}{Fairly simple standard survey}
+\item \href{https://gitlab.cas.mcmaster.ca/andrem5/RogueReborn/blob/master/Doc/TestPlan/TestPlan.pdf}{Example}
+\ei
 \end{itemize}
 \end{frame}
 
diff --git a/Lectures/L13_ModularDesign/ModularDesign.pdf b/Lectures/L13_ModularDesign/ModularDesign.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..e98035137a9437c94a69dec33ea3016207c97d05
Binary files /dev/null and b/Lectures/L13_ModularDesign/ModularDesign.pdf differ
diff --git a/Lectures/L13_ModularDesign/ModularDesign.tex b/Lectures/L13_ModularDesign/ModularDesign.tex
index 1a42ac7e48a5c242e1d938e4d4afb16772adac8a..ac048c8303800cc27d6f3e98d6abf1827c010cc5 100755
--- a/Lectures/L13_ModularDesign/ModularDesign.tex
+++ b/Lectures/L13_ModularDesign/ModularDesign.tex
@@ -16,6 +16,9 @@
     unicode=false}
 \urlstyle{same}
 
+\usepackage{booktabs}
+\usepackage{multirow}
+
 \bibliographystyle{plain}
 
 %\usetheme{Iimenau}
@@ -44,7 +47,11 @@
 \bi
 \item Administrative details
 \item Questions?
-\item License and copyright
+\item Feedback on SRS
+\item Overview of design
+\item Modular decomposition: advantagages, guidelines etc.
+\item Module guide
+\item Module guide example
 \item Integration Testing %L34
 \ei
 \end{frame}
@@ -55,10 +62,14 @@
 \frametitle{Administrative Details}
 
 \bi
-\item GitHub issues for colleagues
+\item GitHub issues
 \bi
 \item When closing issues give the hash for the corresponding commit
+\item Everyone should have an issue to review my comments on their SRS or CA
 \ei
+\item For MG presentation, we'll try to use my laptop only
+\item Grading scheme for VnV now available on Avenue
+\item Template for MG updated in repo
 \ei
 
 \end{frame}
@@ -69,10 +80,8 @@
 \frametitle{Administrative Details: Deadlines}
 ~\newline
 \begin{tabular}{l l l}
-\textbf{SRS} & Week 05 & Oct 4\\
-\textbf{V\&V Present} & Week 06 & Week of Oct 16\\
 \textbf{V\&V Plan} & Week 07 & Oct 25\\
-MG Present & Week 08 & Week of Oct 30\\
+\textbf{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\\
@@ -88,15 +97,10 @@ Final Documentation & Week 13 & Dec 6\\
 \frametitle{Administrative Details: Presentation Schedule}
 
 \bi
-\item V\&V Present
-\bi
-\item Tuesday: Steven, Alexandre P., Alexander S.
-\item Friday: Geneva, Jason, Yuzhi
-\ei
 \item MG Present
 \bi
-\item Tuesday: Xiaoye, Shusheng, Devi, Keshav, Alex P, Paul
-\item Friday: Yuzhi, Jason, Geneva, Alex S, Isobel, Steven
+\item \textbf{Tuesday: Xiaoye, Shusheng, Devi, Keshav, Alex P, Paul}
+\item \textbf{Friday: Yuzhi, Jason, Geneva, Alex S, Isobel, Steven}
 \ei
 \item MIS Present
 \bi
@@ -118,7 +122,1306 @@ Final Documentation & Week 13 & Dec 6\\
 \begin{frame}
 \frametitle{Questions?}
 \begin{itemize}
-\item Questions about ...
+\item \structure{Questions about Verification and Validation plan?}
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Feedback on SRS}
+\begin{itemize}
+\item Overall well done!
+\item Don't need padding (\textbf{Watch for MG!})
+\bi
+\item Don't make more complicated than it is
+\item Don't add assumptions that the data will be in the correct format, or of
+  the correct type 
+\ei
+\item For the characteristics of intended reader try to be more specific about
+  the education.  What degree?  What course areas?  What level?
+\item If you have a reference by entry, then the referenced by chunk (or its
+  derivation) should actually reference the chunk that has it as an entry.
+\item Functional requirements should reference the instance models
+\item Add more for nonfunctional requirements
+\item Introduce type information when it will help clarify spec
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+\frametitle{LaTeX Related Feedback}
+\bi
+\item The text is better for version control, and for reading in other editors,
+  if you use a hard-wrap at 80 characters
+\item Use \verb|``quote''| to get correct quotation marks
+\item Spell check!
+\item Check for extra and missing spaces
+\item LaTeX often inserts two spaces after a period, use \verb|Dr.\ Jeckyl| or
+  \verb|Dr.~Jeckyl|
+\item For $ABC_{Average}$ in an equation use
+  \verb|$\mathit{ABC}_{\text{Average}}$| ($\mathit{ABC}_{\text{Average}}$)
+\item Use BibTeX.  You should mention the source of the
+  template~\cite{SmithAndLai2005, SmithEtAl2007} 
+\item Cite all sources!
+\ei
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+
+\frametitle{Review of our ``Faked'' Rational Design Process}
+
+\begin{center}
+\includegraphics[scale=0.7]{../Figures/OverviewOfProcess.pdf}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{What is Design?}
+\begin{itemize}
+\item Your requirements document identifies ``What,'' now we begin to look at ``How''
+\item Your system should meet both your functional and nonfunctional requirements
+\item There is no unique ``optimal'' design
+\begin{itemize}
+\item Different goals will lead to different designs
+\item There is a mix of art and science in design
+\item Even with fully formal requirements specification there does not yet exist a systematic way to obtain a design
+\item Favour art in some areas and favour science in others
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{What is Design Continued?}
+
+\begin{itemize}
+
+\item Provides structure to any artifact
+\item Decomposes system into parts, assigns responsibilities, ensures that parts
+  fit together to achieve a global goal
+\item Design refers to
+\bi
+\item Activity
+\bi
+\item Bridge between requirements and implementation
+\item Structure to an artifact
+\ei
+\item Result of the activity
+\bi
+\item System decomposition into modules (module guide)
+\item Module interface specification (MIS)
+\ei
+\end{itemize}
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Why Decompose Into Modules?}
+
+\begin{itemize}
+\item Separation of concerns
+\item Cannot understand all of the details
+\item All engineering fields use decomposition
+\item Modules will act as ``work assignments''
+\item Decomposition needs to follow a systematic procedure (as for SRS)
+\item Need to ensure that modules when fit together achieve our global goals
+\item Document in a Software Design Document (Module Guide)
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Benefits of Modularity}
+\begin{itemize}
+\item Shorter development time
+\item Improved verification
+\item Reduced maintenance costs
+\item Easier to understand
+\begin{itemize}
+\item Small modules
+\item An abstract interface
+\end{itemize}
+\item Modules can be developed independently
+\item Modules can be tested independently
+\item Modules can be reused
+\item Software is easy to change, extend, maintain
+\item This requires identifying the anticipated changes in the design and in the requirements
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Two Important Goals for Decomposition}
+
+\begin{itemize}
+
+\item Design for change (Parnas) \cite{Parnas1972a, Parnas1974}
+\bi
+\item Designers tend to concentrate on current needs
+\item Special effort needed to anticipate likely changes
+\item Changes can be in the design or in the requirements
+\item Too expensive to design for all changes, but should design for likely
+  changes
+\ei
+\item Product families (Parnas) \cite{Parnas1976, Parnas1979}
+\bi
+\item Think of the current system under design as a member of a program family
+\item Analogous to product lines in other engineering disciplines
+\item Example product families include automobiles, cell phones, etc.
+\item Design the whole family as one system, not each individual family member
+  separately 
+\ei
+\end{itemize}
+
+Use Design Principle of Information Hiding
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Sample Likely Changes}
+
+What are some examples of likely changes for software?
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+
+\begin{frame}
+\frametitle{Sample Likely Changes \cite{GhezziEtAl2003}}
+
+\begin{itemize}
+
+\item Algorithms -- like replacing inefficient sorting algorithm with a more
+  efficient one
+\item Change of data representation
+\bi
+\item From binary tree to threaded tree
+\item Array implementation to a pointer implementation
+\item Approx.\ 17\% of maintenance costs attributed to data representation
+  changes (Lientz and Swanson, 1980)
+\ei
+\item Change of underlying abstract machine
+\bi
+\item New release of operating system
+\item New optimizing compiler
+\item New version of DBMS
+\item etc.
+\ei
+\item Change of peripheral devices
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Binary Tree to Threaded Tree}
+
+%\vspace{-2cm}
+\begin{center}
+\includegraphics[width=1.1\textwidth]{../Figures/BinTreeToThreadTree.png}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Sample Likely Changes}
+
+\begin{itemize}
+
+\item Change of ``social'' environment
+\bi
+\item Corresponds to requirements changes
+\item New tax regime
+\item EURO versus national currency in EU
+\item New language for user interface
+\item y2k
+\ei
+\item Change due to development process (prototype transformed into product)
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Components of a Module}
+
+\begin{itemize}
+
+\item A software modules has two components
+\begin{enumerate}
+\item An \structure{interface} that enables the module's clients to use the
+  service the module provides
+\item An \structure{implementation} of the interface that provides the services
+  offered by the module
+\end{enumerate}
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{The Module Interface}
+
+\begin{itemize}
+
+\item A module's interface can be viewed in various ways
+\begin{itemize}
+\item As a \structure{set of services}
+\item As a \structure{contract} between the module and its clients
+\item As a \structure{language} for using the module's services
+\end{itemize}
+\item The interface is \structure{exported} by the module and
+  \structure{imported} by the module's clients
+\item An interface describes the \structure{data} and \structure{procedures}
+  that provide access to the services of the module
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{The Module Implementation}
+
+\begin{itemize}
+
+\item A module's implementation is an implementation of the module's interface
+\item The implementation is \structure{hidden} from other modules
+\item The interface data and procedures are implemented together and may share
+  data structures
+\item The implementation may utilize the services offered by other modules
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Information Hiding}
+
+\begin{itemize}
+
+\item Made explicit by Parnas \cite{Parnas1972a}
+\item Basis for design (that is modular decomposition (Module Guide))
+\item Implementation secrets are hidden to clients
+\item Secret can be changed freely if the change does not affect the interface
+\item \structure{Try to encapsulate changeable design decisions as
+    implementation secrets within module implementations}
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Examples of Modules \cite{GhezziEtAl2003}}
+
+\begin{itemize}
+
+\item \structure{Record}
+\begin{itemize}
+\item Consists of only data
+\item Has state but no behaviour
+\end{itemize}
+\item \structure{Collection of related procedures (library)}
+\begin{itemize}
+\item Has behaviour but no state
+\item Procedural abstractions
+% like many routines in a scientific computing library
+\end{itemize}
+\item \structure{Abstract object}
+\begin{itemize}
+\item Consists of data (\structure{fields}) and procedures (\structure{methods})
+\item Consists of a collection of \structure{constructors},
+  \structure{selectors}, and \structure{mutators}
+\item Has state and behaviour
+\end{itemize}
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Examples of Modules Continued}
+
+\begin{itemize}
+
+\item \structure{Abstract data type (ADT)}
+\begin{itemize}
+\item Consists of a collection of abstract objects and a collection of
+  procedures that can be applied to them
+\item Defines the set of possible values for the type and the associated
+  procedures that manipulate instances of the type
+\item Encapsulates the details of the implementation of the type
+\end{itemize}
+\item \structure{Generic Modules}
+\begin{itemize}
+\item A single abstract description for a family of abstract objects or ADTs
+\item Parameterized by type
+\item Eliminates the need for writing similar specifications for modules that
+  only differ in their type information
+\item A generic module facilitates specification of a stack of integers, stack
+  of strings, stack of stacks etc.
+\end{itemize}
+
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{frame}
+% \frametitle{Specific Techniques for Design for Change}
+
+% What software tool would you use if you wanted to select at build time between
+% two implementations of a module, each distinguished by a different decision for
+% their shared secret?
+
+% \end{frame}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{frame}
+% \frametitle{Specific Techniques for Design for Change}
+
+% \begin{itemize}
+% \item Anticipate definition of all family members
+% \item Identify what is common to all family members, delay decisions that
+%   differentiate among different members
+% \item Configuration constants
+% \begin{itemize}
+% \item Factor constant values into symbolic constants
+% \item Compile time binding
+% \item MAXSPEED = 5600
+% \end{itemize}
+% \item Conditional compilation
+% \bi
+% \item Compile time binding
+% \item Works well when there is a preprocessor, like for C
+% \item If performance is not a concern, can often ``fake it'' at run time
+% \ei
+% \item Make
+% \item Software generation
+% \bi
+% \item Compiler generator, like \texttt{yacc}
+% \item Domain Specific Language
+% \ei
+% \end{itemize}
+
+% \end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Questions}
+
+\begin{itemize}
+\item What relationships are there between modules?
+\item Are there desirable properties for these relations?
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Relationships Between Modules}
+
+\begin{itemize}
+\item Let $S$ be a set of modules
+$$ S = \{ M_1, M_2, ..., M_n \}$$
+\item A binary relation $r$ on $S$ is a subset of $S \times S$
+\item If $M_i$ and $M_j$ are in $S$, $< M_i, M_j > \in r$ can be written as $M_i r M_j$
+\end{itemize} 
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Relations}
+
+\begin{itemize}
+\item Transitive closure $r^{+}$ of $r$
+$$M_i r^{+} M_j \mbox{ iff } M_i r M_j \mbox{ or } \exists M_k \mbox{ in } S \mbox{ such that } M_i r M_k \mbox{ and } M_k
+r^{+} M_j$$
+\item $r$ is a hierarchy iff there are no two elements $M_i$, $M_j$ such that
+  $M_i r^{+} M_j \wedge M_j r^{+} M_i$
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Relations Continued}
+
+\begin{itemize}
+\item Relations can be represented as graphs
+\item A hierarchy is a DAG (Directed Acyclic Graph)
+\end{itemize}
+
+\begin{center}
+\includegraphics[width=1.0\textwidth]{../Figures/GraphAndDAG.png}
+\end{center}
+
+\structure{Why do we prefer the uses relation to be a DAG?}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Desirable Properties}
+
+\begin{itemize}
+\item USES should be a hierarchy \cite{Parnas1974}
+\begin{itemize}
+\item Hierarchy makes software easier to understand
+\item We can proceed from the leaf nodes (nodes that do not use other nodes)
+  upwards
+\item They make software easier to build
+\item They make software easier to test
+\end{itemize}
+\item Low coupling
+\item Fan-in is considered better than Fan-out: \structure{WHY?}
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{DAG Versus Tree}
+
+Is a DAG a tree?  Is a tree a DAG?
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{DAG Versus Tree}
+
+Would you prefer your uses relation is a tree?
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Hierarchy}
+
+\begin{itemize}
+\item Organizes the modular structure through \structure{levels of abstraction}
+\item Each level defines an \structure{abstract (virtual) machine} for the next level
+\item Level can be defined precisely
+\begin{itemize}
+\item $M_i$ has level $0$ if no $M_j$ exists such that $M_i r M_j$
+\item Let $k$ be the maximum level of all nodes $M_j$ such that $M_i r M_j$, then $M_i$ has level $k+1$
+\end{itemize}
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Static Definition of Uses Relation}
+
+Your program has code like:\\
+\texttt{if cond then ServiceFromMod1 else ServiceFromMod2}\\
+~\newline
+This is the only place where each module is used.  Does this mean the uses
+relation depends on the dynamic execution of the program?
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Question about Association and DAG}
+
+\structure{Is the uses relation here a DAG?}\\
+
+\begin{figure}
+\includegraphics[scale=0.6]{../Figures/UML_Association.png}
+\end{figure}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Module Decomposition (Parnas)}
+
+\begin{center}
+\includegraphics[width=1.0\textwidth]{../Figures/ParnasDecompBySecrets.png}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Module Decomposition (Parnas)}
+
+For the module decomposition on the previous slide:
+
+\begin{itemize}
+\item Does it show a Uses relation?  
+\item Is it a DAG?  
+\item Is it a tree?
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{IS\_COMPONENT\_OF}
+
+\begin{itemize}
+\item The Parnas decomposition by secrets gives an IS\_COMPONENT\_OF relationship
+\item Used to describe a higher level module as constituted by a number of lower level modules
+\item A IS\_COMPONENT\_OF B means B consists of several modules of which one is A
+\item B COMPRISES A
+\item $M_{S,i} = \{ M_k | M_k \in S \wedge M_k \mbox{ IS\_COMPONENT\_OF } M_i \}$ we say that $M_{S,i}$ IMPLEMENTS
+$M_i$ 
+\item \structure{How is IS\_COMPONENT\_OF represented in UML?}
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{A Graphical View}
+
+\begin{center}
+\includegraphics[width=1.0\textwidth]{../Figures/GraphViewOf_IS_COMPONENT_OF.png}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{frame}
+% \frametitle{Product Families}
+
+% \begin{itemize}
+% \item Careful recording of (hierarchical) USES relation and IS\_COMPONENT\_OF supports design of program families
+% \item Attempt to recognize modules that will differ in implementation between family members
+% \item New program family member should start at the documentation of the design, not with the code
+% \end{itemize}
+
+% \end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{frame}
+% \frametitle{Remember - Information Hiding}
+
+% \begin{itemize}
+% \item Basis for design (i.e.\ module decomposition)
+% \item Implementation secrets are hidden to clients
+% \item They can be changed freely if the change does not affect the interface
+% \item \structure{Try to encapsulate changeable requirements and design decisions as implementation secrets within module
+% implementations}
+% \item Decomposition by secrets, not by sequence of steps
+% \end{itemize}
+
+% \end{frame}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{frame}
+% \frametitle{Prototyping}
+
+% \begin{itemize}
+% \item Once an interface is defined, implementation can be done
+% \begin{itemize}
+% \item First quickly but inefficiently
+% \item Then progressively turned into the final version
+% \end{itemize}
+% \item Initial version acts as a prototype that evolves into the final product
+% \end{itemize}
+
+% \end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{frame}
+% \frametitle{Parnas's Rational Design Process (RDP)}
+
+% \begin{itemize}
+% \item SRS
+% \item MG
+% \item Uses Hierarchy (updated after writing MISes)
+% \item For each module
+% \begin{itemize} 
+% \item MIS
+% \item MID (we will not emphasize this document)
+% \end{itemize}
+% \item Implementation
+% \item Testing
+% \item Very successfully used on projects such as 
+% \begin{itemize}
+% \item The Darlington Nuclear Reactor shutdown system
+% \item The A7-E fighter jet
+% \end{itemize}
+% \end{itemize}
+
+% \end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Module Guide \cite{ParnasEtAl1984}}
+
+\begin{itemize}
+\item Part of Parnas' Rational Design Process (RDP)
+\item When decomposing the system into modules, we need to document the module
+  decomposition so that developers and other readers can understand and verify
+  the decomposition
+\item Helps future maintainers find appropriate module
+\item Parnas proposed a Module Guide (MG) based on the decomposition module tree
+  shown earlier
+\item Decomposition is usually three to five levels deep
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Three Top Conceptual Modules in an RDP MG}
+
+\structure{What are the three groups of modules in a typical information-hiding
+  decomposition?}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Module Decomposition (Parnas)}
+
+\begin{center}
+\includegraphics[width=1.0\textwidth]{../Figures/ParnasDecompBySecrets.png}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{RDP - MG}
+
+\begin{itemize}
+\item The MG consists of a table that documents each module's service and secret
+\item Conceptual modules will have broader responsibilities and secrets
+\item Following a particular branch, the secrets at lower levels ``sum up'' to
+  the secret at higher levels
+\item The leaf modules that represent code will contain much more precise
+  services and secrets
+\item Only the leaf modules are actually implemented
+\item The MG should list the likely and unlikely changes on which the design is based
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Module Details}
+\begin{itemize}
+\item For each module
+\item Module name
+\item Secret (informal description)
+\item Service or responsibility (informal description)
+\item For ``leaf'' modules add
+\begin{itemize}
+\item Associated requirement
+\item Anticipated change
+\item Module prefix (optional)
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{RDP - MG}
+
+\begin{itemize}
+\item Criteria for a good secret
+\begin{itemize}
+\item One module one secret, especially for leaf modules (watch for ``and'')
+\item Secrets should often be nouns (data structure, algorithm, hardware, ...)
+\item Secrets are often phrased as ``How to ... ''
+\end{itemize}
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Good Secret?}
+
+\structure{Is the following a good module secret: ``The file format for the map and the
+rules for validating that the map satisfies the environmental constraints.''}
+
+%No - more than one secret
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Typical Modules \cite{HoffmanAndStrooper1995}}
+
+\begin{itemize}
+\item \structure{What are the typical secrets for an input variable?}
+\bi
+\item You have an input in the environment, how to get it into your system?
+\item What format is the input data?
+\ei
+\item \structure{What are the secrets for an output variable?}
+\bi
+\item How to get an output from inside the system to the external environment?
+\item How will the output be determined?
+\item What format will the output have?
+\ei
+\item \structure{What are the secrets for a state variable?}
+\bi
+\item What rules are there governing the state transitions?
+\item What data structures or algorithms are needed?
+\ei
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Typical Modules \cite{HoffmanAndStrooper1995}}
+
+\begin{itemize}
+\item Input variables
+\bi
+\item Machine-hiding from hardware or OS service
+\item Behaviour-hiding input format
+\ei
+\item Output variables
+\bi
+\item Machine-hiding
+\item Behaviour-hiding output format
+\item Behaviour-hiding (calculation)
+\ei
+\item State variables
+\bi
+\item Software decision hiding for data structure/algorithm
+\item Behaviour-hiding state-drive
+\ei
+\item Judgement is critical
+\item Often combine variables into the same module
+\item For non-embedded systems, machine hiding for input-output is often
+  combined
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{RDP - Views}
+
+\begin{itemize}
+\item As well as the MG, the modular decomposition should be displayed using a
+  variety of views
+\item An obvious one is the \structure{Uses Hierarchy}
+\item The Uses Hierarchy is updated once the MIS for all modules is complete
+\item The Uses Hierarchy can be represented 
+\begin{itemize} 
+\item Graphically (if it isn't too large and complex)
+\item Using a binary matrix -- \structure{What would the binary matrix look like?}
+\end{itemize}
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{frame}
+% \frametitle{RDP - MIS}
+
+% \begin{itemize}
+% \item For each leaf module we need to document its interface and its implementation
+% \item In RDP, the interfaces are documented in the Module Interface Specification (MIS)
+% \item We have already seen MIS examples specified as Module State Machines
+% \end{itemize}
+
+% \end{frame}
+
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \begin{frame}
+% \frametitle{RDP - MID}
+
+% \begin{itemize}
+% \item Another document that is often helpful is the Module Internal Design (MID)
+%   for each module
+% \item The MID provides the implementation of the module; that is, it shows how
+%   we will deliver on what is promised in the MIS
+% \item The MID is requirements for the code represented at a higher level of
+%   abstraction than the code
+% \item The MID uses the syntax of the selected programming language
+% \item The MID shows decisions like whether to use a static array, or dynamic
+%   memory allocation and pointers
+% \item We will not focus on MIDs, since for many examples it is feasible to go
+%   directly to code
+% \end{itemize}
+
+% \end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{MG Template}
+
+\bi
+\item Table of contents
+\item Introduction
+\item Anticipated and unlikely changes
+\item Module hierarchy
+\item Connection between requirements and design
+\item Module decomposition
+\bi
+\item Hardware hiding modules
+\item Behaviour hiding modules
+\item Software decision hiding modules
+\ei
+\item Traceability matrices
+\item Uses hierarchy between modules
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Traceability Matrices}
+\begin{itemize}
+\item Traceability matrix help inspect the design
+\item Check for completeness, look at from a different viewpoint
+\end{itemize}
+\begin{table}[H]
+\centering
+\begin{tabular}{p{0.2\textwidth} p{0.6\textwidth}}
+\toprule
+\textbf{Req.} & \textbf{Modules}\\
+\midrule
+R1 & M1, M2, M3, M7\\
+R2 & M2, M3\\
+...& ...\\
+\bottomrule
+\end{tabular}
+\end{table}
+
+\begin{table}[H]
+\centering
+\begin{tabular}{p{0.2\textwidth} p{0.6\textwidth}}
+\toprule
+\textbf{AC} & \textbf{Modules}\\
+\midrule
+AC1 & M1\\
+AC2 & M2\\
+... & ...\\
+\bottomrule
+\end{tabular}
+\end{table}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Verification}
+
+\bi
+\item Well formed (consistent format/structure)
+\bi
+\item Follows template
+\item Follows rules (one secret per module, nouns etc.)
+\ei
+\item Feasible (implementable at reasonable cost)
+\bi
+\item Difficult to assess
+\item Try sketches of MIS
+\ei
+\item Flexible
+\bi
+\item Again try sketches of MIS
+\item Thought experiment as if likely change has occurred
+\item Low coupling
+\item Encapsulate repetitive tasks
+\ei
+\item May sometimes have to sacrifice information hiding
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Object Oriented Design Versus Modular Desiogn}
+\begin{itemize}
+\item OO-design and OO-languages are different
+\item OO-design
+\begin{itemize}
+\item Classes and methods
+\item Classes are like modules (state variables and access functions (methods))
+\item An object is an instance of a class
+\item Polymorphism
+\item Inheritance - use carefully
+\end{itemize}
+\item Implementation of modules using an OO-lang is natural
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Solar Water Heating System Example}
+
+\bi
+\item \href{https://github.com/smiths/swhs}{https://github.com/smiths/swhs}
+\item Solve ODEs for temperature of water and PCM
+\item Solve for energy in water and PCM
+\item Generate plots
+\ei
+
+\begin{figure}
+{
+\includegraphics[width=0.5\textwidth]{../Figures/Tank.pdf}
+}
+\end{figure}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Anticipated Changes?}
+
+\structure{What are some anticipated changes?}\\
+~\newline
+Hint: the software follows the Input $\rightarrow$ Calculate $\rightarrow$
+Output design pattern
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Anticipated Changes}
+
+\bi
+\item The specific hardware on which the software is to run
+\item The format of the initial input data
+\item The format of the input parameters
+\item The constraints on the input parameters
+\item The format of the output data
+\item The constraints on the output results
+\item How the governing ODEs are defined using the input parameters
+\item How the energy equations are defined using the input parameters
+\item How the overall control of the calculations is orchestrated
+\item The implementation of the sequence data structure
+\item The algorithm used for the ODE solver
+\item The implementation of plotting data
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Module Hierarchy by Secrets}
+\begin{table}[h!]
+\centering
+\begin{tabular}{p{0.3\textwidth} p{0.6\textwidth}}
+\toprule
+\textbf{Level 1} & \textbf{Level 2}\\
+\midrule
+
+{Hardware-Hiding Module} & ~ \\
+\midrule
+
+\multirow{6}{0.3\textwidth}{Behaviour-Hiding Module} & Input Format Module\\
+& Input Parameters Module\\
+& Output Format Module\\
+& Temperature ODEs Module\\
+& Energy Equations Module\\ 
+& Control Module\\
+\midrule
+
+\multirow{3}{0.3\textwidth}{Software Decision Module} & {Sequence Data Structure Module}\\
+& ODE Solver Module\\
+& Plotting Module\\
+\bottomrule
+
+\end{tabular}
+\caption{Module Hierarchy}
+\label{TblMH}
+\end{table}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Example Modules from SWHS}
+
+\textbf{Hardware Hiding Modules}
+
+\begin{description}
+\item[Secrets:]The data structure and algorithm used to implement the virtual
+  hardware.
+\item[Services:]Serves as a virtual hardware used by the rest of the
+  system. This module provides the interface between the hardware and the
+  software. So, the system can use it to display outputs or to accept inputs.
+\item[Implemented By:] OS
+\end{description}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Example Modules from SWHS}
+
+\textbf{Input Verification Module}
+
+\begin{description}
+\item[Secrets:] The rules for the physical and software constraints.
+\item[Services:] Verifies that the input parameters comply with physical and
+  software constraints. Throws an error if a parameter violates a physical
+  constraint. Throws a warning if a parameter violates a software constraint.
+\item[Implemented By:] SWHS
+\end{description}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Example Modules from SWHS}
+
+\textbf{ODE Solver Module}
+
+\begin{description}
+\item[Secrets:] The algorithm to solve a system of first order ODEs.
+\item[Services:] Provides solvers that take the governing equation, initial
+  conditions, and numerical parameters, and solve them.
+\item[Implemented By:] Matlab
+\end{description}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[plain, fragile]
+
+\frametitle{SWHS Uses Hierarchy}
+
+\begin{center}
+\includegraphics[scale=0.55]{../Figures/UsesHierarchy.pdf}
+\end{center}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Mesh Generator Example}
+\vspace{-1cm}
+\begin{figure}[H]
+\includegraphics[scale=0.4, angle=0]{../Figures/ExampleMesh.pdf}
+\end{figure}\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Mesh Generator Complex Circular Geometry}
+\begin{figure}[H]
+\includegraphics[scale=0.25]{../Figures/magnetron1.pdf}
+\end{figure}\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Mesh Generator Example: Design Goals}
+\begin{itemize}
+\item Independent and flexible representation for each mesh entity
+\item Complete separation of geometric data from the topology
+\item The mesh generator should work with different coordinate systems
+\item A flexible data structure to store sets of vertices, edges and triangles
+\item Different mesh generation algorithms with a minimal amount of local changes
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Example Mesh Gen Modular Decomposition}
+
+%\vspace{-1.5cm}
+% \begin{center}
+% \includegraphics[width=0.5\textwidth]{DecompBySecretHierarchyExample.png}
+% \end{center}
+
+\href{https://gitlab.cas.mcmaster.ca/smiths/se2aa4_cs2me3/blob/master/Lectures/L14_ModuleDecompositionContinued/DecompBySecretHierarchyExample.png}{Link}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Another Mesh Generator Uses Hierarchy \cite{ElSheikhEtAl2004}}
+\begin{figure}[H]
+\includegraphics[scale=0.345]{../Figures/hierarchy_diagram.pdf}
+\end{figure}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Module Testing}
+
+\structure{Is it possible to begin testing before all of the modules have been
+  implemented when there is a use relation between modules?}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Module Testing \cite{GhezziEtAl2003}}
+
+\begin{itemize}
+
+\item Scaffolding needed to create the environment in which the module should be
+  tested
+\item Stubs - a module used by the module under test
+\item Driver - module activating the module under test
+\end{itemize}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Testing a Functional Module \cite{GhezziEtAl2003}}
+
+\includegraphics[scale=0.5]{../Figures/TestingAFunctModule.png}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Integration Testing}
+
+\begin{itemize}
+\item Big-bang approach
+\begin{itemize}
+\item First test individual modules in isolation
+\item Then test integrated system
+\end{itemize}
+\item Incremental approach
+\begin{itemize}
+\item Modules are progressively integrated and tested
+\item Can proceed both top-down and bottom-up according to the USES relation
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Integration Testing and USES relation}
+
+\begin{itemize}
+\item If integration and test proceed bottom-up only need drivers
+\item Otherwise if we proceed top-down only stubs are needed
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Example \cite{GhezziEtAl2003}}
+
+\begin{center}
+\includegraphics[scale=0.35]{../Figures/Example.png}
+\end{center}
+
+\begin{itemize}
+\item $M_1$ USES $M_2$ and $M_2$ IS\_COMPOSED\_OF \{$M_{2,1}$, $M_{2,2}$\}
+\item \structure{In what order would you test these modules?}
+\end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Example \cite{GhezziEtAl2003}}
+
+\begin{center}
+\includegraphics[scale=0.35]{../Figures/Example.png}
+\end{center}
+
+\begin{itemize}
+\item $M_1$ USES $M_2$ and $M_2$ IS\_COMPOSED\_OF \{$M_{2,1}$, $M_{2,2}$\}
+\item Case 1
+\begin{itemize}
+\item Test $M_1$ providing a stub for $M_2$ and a driver for $M_1$
+\item Then provide an implementation for $M_{2,1}$ and a stub for $M_{2,2}$
+\end{itemize}
+\item Case 2
+\begin{itemize}
+\item Implement $M_{2,2}$ and test it by using a driver
+\item Implement $M_{2,1}$ and test the combination of $M_{2,1}$ and $M_{2,2}$
+  (i.e.\ $M_2$) by using a driver
+\item Finally implement $M_1$ and test it with $M_2$ using a driver for $M_1$
+\end{itemize}
 \end{itemize}
 \end{frame}
 
diff --git a/Lectures/L14_MIS/MIS.tex b/Lectures/L14_MIS/MIS.tex
new file mode 100755
index 0000000000000000000000000000000000000000..127470e2562655e98a931e26454c92829dba3665
--- /dev/null
+++ b/Lectures/L14_MIS/MIS.tex
@@ -0,0 +1,123 @@
+%\documentclass[handout]{beamer} 
+\documentclass[t,12pt,numbers,fleqn]{beamer}
+%\documentclass[ignorenonframetext]{beamer}
+
+\newif\ifquestions
+%\questionstrue
+\questionsfalse
+
+\usepackage{pgfpages} 
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,
+    linkcolor=blue,
+    citecolor=blue,
+    filecolor=blue,
+    urlcolor=blue,
+    unicode=false}
+\urlstyle{same}
+
+\bibliographystyle{plain}
+
+%\usetheme{Iimenau}
+
+\useoutertheme{split} %so the footline can be seen, without needing pgfpages
+
+%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape]  %if this is uncommented, the hyperref links do not work
+
+\mode<presentation>{}
+
+\input{../def-beamer}
+
+\newcommand{\topic}{14 Module Interface Specification (MIS)}
+
+\input{../titlepage}
+
+\begin{document}
+
+\input{../footline}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Module Interface Specification (MIS)}
+
+\bi
+\item Administrative details
+\item Questions?
+\ei
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details}
+
+\bi
+\item admin points
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details: Deadlines}
+~\newline
+\begin{tabular}{l l l}
+\textbf{MG Present} & Week 08 & Week of Oct 30\\
+\textbf{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{Administrative Details: Presentation Schedule}
+
+\bi
+\item MG Present
+\bi
+\item \textbf{Tuesday: Xiaoye, Shusheng, Devi, Keshav, Alex P, Paul}
+\item \textbf{Friday: Yuzhi, Jason, Geneva, Alex S, Isobel, Steven}
+\ei
+\item MIS Present
+\bi
+\item Tuesday: Isobel, Keshav, Paul
+\item Friday: Shusheng, Xiaoye, Devi
+\ei
+\item Impl.\ Present
+\bi
+\item Tuesday: Alexander S., Steven, Alexandre P.
+\item Friday: Jason, Geneva, Yuzhi
+\ei
+
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Questions?}
+\begin{itemize}
+\item Questions about ...
+\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/Lectures/L15_MGPresent1/MGPresent1.pdf b/Lectures/L15_MGPresent1/MGPresent1.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..1e4b29ec4a69a32ff7577ed583fa64c62eb7eb90
Binary files /dev/null and b/Lectures/L15_MGPresent1/MGPresent1.pdf differ
diff --git a/Lectures/L15_MGPresent1/MGPresent1.tex b/Lectures/L15_MGPresent1/MGPresent1.tex
new file mode 100755
index 0000000000000000000000000000000000000000..8072a69e5c3400050d75488da801335ee19f4bfc
--- /dev/null
+++ b/Lectures/L15_MGPresent1/MGPresent1.tex
@@ -0,0 +1,56 @@
+%\documentclass[handout]{beamer} 
+\documentclass[t,12pt,numbers,fleqn]{beamer}
+%\documentclass[ignorenonframetext]{beamer}
+
+\newif\ifquestions
+%\questionstrue
+\questionsfalse
+
+\usepackage{pgfpages} 
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,
+    linkcolor=blue,
+    citecolor=blue,
+    filecolor=blue,
+    urlcolor=blue,
+    unicode=false}
+\urlstyle{same}
+
+\bibliographystyle{plain}
+
+%\usetheme{Iimenau}
+
+\useoutertheme{split} %so the footline can be seen, without needing pgfpages
+
+%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape]  %if this is uncommented, the hyperref links do not work
+
+\mode<presentation>{}
+
+\input{../def-beamer}
+
+\newcommand{\topic}{15 MG Presentations 1}
+
+\input{../titlepage}
+
+\begin{document}
+
+\input{../footline}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{MG Presentations 1}
+
+\bi
+\item Xiaoye
+\item Shusheng
+\item Devi
+\item Keshav
+\item Alex P
+\item Paul
+\ei
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\end{document}
\ No newline at end of file
diff --git a/Lectures/L16_MGPresent2/MGPresent2.pdf b/Lectures/L16_MGPresent2/MGPresent2.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..04a74d5c456048cb8e982ed6c8343bc0b03bc4e3
Binary files /dev/null and b/Lectures/L16_MGPresent2/MGPresent2.pdf differ
diff --git a/Lectures/L16_MGPresent2/MGPresent2.tex b/Lectures/L16_MGPresent2/MGPresent2.tex
new file mode 100755
index 0000000000000000000000000000000000000000..0f167f341419aef962f02416e50a4faa8ece2125
--- /dev/null
+++ b/Lectures/L16_MGPresent2/MGPresent2.tex
@@ -0,0 +1,56 @@
+%\documentclass[handout]{beamer} 
+\documentclass[t,12pt,numbers,fleqn]{beamer}
+%\documentclass[ignorenonframetext]{beamer}
+
+\newif\ifquestions
+%\questionstrue
+\questionsfalse
+
+\usepackage{pgfpages} 
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,
+    linkcolor=blue,
+    citecolor=blue,
+    filecolor=blue,
+    urlcolor=blue,
+    unicode=false}
+\urlstyle{same}
+
+\bibliographystyle{plain}
+
+%\usetheme{Iimenau}
+
+\useoutertheme{split} %so the footline can be seen, without needing pgfpages
+
+%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape]  %if this is uncommented, the hyperref links do not work
+
+\mode<presentation>{}
+
+\input{../def-beamer}
+
+\newcommand{\topic}{16 MG Presentations 2}
+
+\input{../titlepage}
+
+\begin{document}
+
+\input{../footline}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{MG Presentations 2}
+
+\bi
+\item Yuzhi
+\item Jason
+\item Geneva
+\item Alex S
+\item Isobel
+\item Steven
+\ei
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\end{document}
\ No newline at end of file
diff --git a/Lectures/L17_MISContinued/MISContinued.pdf b/Lectures/L17_MISContinued/MISContinued.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..abef971625c025fb46bc75324ae5c539b7a37621
Binary files /dev/null and b/Lectures/L17_MISContinued/MISContinued.pdf differ
diff --git a/Lectures/L17_MISContinued/MISContinued.tex b/Lectures/L17_MISContinued/MISContinued.tex
new file mode 100755
index 0000000000000000000000000000000000000000..ba9ac3b93b3e5c7e643a7908f76cf3c7203eca5e
--- /dev/null
+++ b/Lectures/L17_MISContinued/MISContinued.tex
@@ -0,0 +1,118 @@
+%\documentclass[handout]{beamer} 
+\documentclass[t,12pt,numbers,fleqn]{beamer}
+%\documentclass[ignorenonframetext]{beamer}
+
+\newif\ifquestions
+%\questionstrue
+\questionsfalse
+
+\usepackage{pgfpages} 
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,
+    linkcolor=blue,
+    citecolor=blue,
+    filecolor=blue,
+    urlcolor=blue,
+    unicode=false}
+\urlstyle{same}
+
+\bibliographystyle{plain}
+
+%\usetheme{Iimenau}
+
+\useoutertheme{split} %so the footline can be seen, without needing pgfpages
+
+%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape]  %if this is uncommented, the hyperref links do not work
+
+\mode<presentation>{}
+
+\input{../def-beamer}
+
+\newcommand{\topic}{17 MIS Continued}
+
+\input{../titlepage}
+
+\begin{document}
+
+\input{../footline}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{MIS Continued}
+
+\bi
+\item Administrative details
+\item Questions?
+\item License and copyright
+\ei
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details}
+
+\bi
+\item admin points
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details: Deadlines}
+~\newline
+\begin{tabular}{l l l}
+\textbf{MG} & Week 09 & Nov 8\\
+\textbf{MIS Present} & Week 10 & Week of Nov 13\\
+\textbf{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{Administrative Details: Presentation Schedule}
+
+\bi
+\item MIS Present
+\bi
+\item \textbf{Tuesday: Isobel, Keshav, Paul}
+\item \textbf{Friday: Shusheng, Xiaoye, Devi}
+\ei
+\item Impl.\ Present
+\bi
+\item Tuesday: Alexander S., Steven, Alexandre P.
+\item Friday: Jason, Geneva, Yuzhi
+\ei
+
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Questions?}
+\begin{itemize}
+\item Questions about ...
+\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/Lectures/L18_CodeGen/CodeGen.pdf b/Lectures/L18_CodeGen/CodeGen.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..0196bbde3852de3bc0078ba5e64c2fabfe1e1ed7
Binary files /dev/null and b/Lectures/L18_CodeGen/CodeGen.pdf differ
diff --git a/Lectures/L18_CodeGen/CodeGen.tex b/Lectures/L18_CodeGen/CodeGen.tex
new file mode 100755
index 0000000000000000000000000000000000000000..e6ee27ebecb47b48bfcea3a13319a043e447e503
--- /dev/null
+++ b/Lectures/L18_CodeGen/CodeGen.tex
@@ -0,0 +1,116 @@
+%\documentclass[handout]{beamer} 
+\documentclass[t,12pt,numbers,fleqn]{beamer}
+%\documentclass[ignorenonframetext]{beamer}
+
+\newif\ifquestions
+%\questionstrue
+\questionsfalse
+
+\usepackage{pgfpages} 
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,
+    linkcolor=blue,
+    citecolor=blue,
+    filecolor=blue,
+    urlcolor=blue,
+    unicode=false}
+\urlstyle{same}
+
+\bibliographystyle{plain}
+
+%\usetheme{Iimenau}
+
+\useoutertheme{split} %so the footline can be seen, without needing pgfpages
+
+%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape]  %if this is uncommented, the hyperref links do not work
+
+\mode<presentation>{}
+
+\input{../def-beamer}
+
+\newcommand{\topic}{18 Code Generation}
+
+\input{../titlepage}
+
+\begin{document}
+
+\input{../footline}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Code Generation}
+
+\bi
+\item Administrative details
+\item Questions?
+\ei
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details}
+
+\bi
+\item admin points
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details: Deadlines}
+~\newline
+\begin{tabular}{l l l}
+\textbf{MIS Present} & Week 10 & Week of Nov 13\\
+\textbf{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{Administrative Details: Presentation Schedule}
+
+\bi
+\item MIS Present
+\bi
+\item \textbf{Tuesday: Isobel, Keshav, Paul}
+\item \textbf{Friday: Shusheng, Xiaoye, Devi}
+\ei
+\item Impl.\ Present
+\bi
+\item Tuesday: Alexander S., Steven, Alexandre P.
+\item Friday: Jason, Geneva, Yuzhi
+\ei
+
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Questions?}
+\begin{itemize}
+\item Questions about ...
+\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/Lectures/L19_MISPresent1/MISPresent1.pdf b/Lectures/L19_MISPresent1/MISPresent1.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..0c5d2eae4e16d401b96aa168af4a82eabf517e91
Binary files /dev/null and b/Lectures/L19_MISPresent1/MISPresent1.pdf differ
diff --git a/Lectures/L19_MISPresent1/MISPresent1.tex b/Lectures/L19_MISPresent1/MISPresent1.tex
new file mode 100755
index 0000000000000000000000000000000000000000..362f275b28059fd9817335d7ada83a86ecc46505
--- /dev/null
+++ b/Lectures/L19_MISPresent1/MISPresent1.tex
@@ -0,0 +1,53 @@
+%\documentclass[handout]{beamer} 
+\documentclass[t,12pt,numbers,fleqn]{beamer}
+%\documentclass[ignorenonframetext]{beamer}
+
+\newif\ifquestions
+%\questionstrue
+\questionsfalse
+
+\usepackage{pgfpages} 
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,
+    linkcolor=blue,
+    citecolor=blue,
+    filecolor=blue,
+    urlcolor=blue,
+    unicode=false}
+\urlstyle{same}
+
+\bibliographystyle{plain}
+
+%\usetheme{Iimenau}
+
+\useoutertheme{split} %so the footline can be seen, without needing pgfpages
+
+%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape]  %if this is uncommented, the hyperref links do not work
+
+\mode<presentation>{}
+
+\input{../def-beamer}
+
+\newcommand{\topic}{19 MIS Presentations 1}
+
+\input{../titlepage}
+
+\begin{document}
+
+\input{../footline}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{MIS Presentations 1}
+
+\bi
+\item Isobel
+\item Keshav
+\item Paul
+\ei
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\end{document}
\ No newline at end of file
diff --git a/Lectures/L20_MISPresent2/MISPresent2.pdf b/Lectures/L20_MISPresent2/MISPresent2.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..692dc3d9c44b7d62d1710a56925fee4edcdea87d
Binary files /dev/null and b/Lectures/L20_MISPresent2/MISPresent2.pdf differ
diff --git a/Lectures/L20_MISPresent2/MISPresent2.tex b/Lectures/L20_MISPresent2/MISPresent2.tex
new file mode 100755
index 0000000000000000000000000000000000000000..a6b7cb3114fa197d5012507c27af655b75471447
--- /dev/null
+++ b/Lectures/L20_MISPresent2/MISPresent2.tex
@@ -0,0 +1,53 @@
+%\documentclass[handout]{beamer} 
+\documentclass[t,12pt,numbers,fleqn]{beamer}
+%\documentclass[ignorenonframetext]{beamer}
+
+\newif\ifquestions
+%\questionstrue
+\questionsfalse
+
+\usepackage{pgfpages} 
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,
+    linkcolor=blue,
+    citecolor=blue,
+    filecolor=blue,
+    urlcolor=blue,
+    unicode=false}
+\urlstyle{same}
+
+\bibliographystyle{plain}
+
+%\usetheme{Iimenau}
+
+\useoutertheme{split} %so the footline can be seen, without needing pgfpages
+
+%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape]  %if this is uncommented, the hyperref links do not work
+
+\mode<presentation>{}
+
+\input{../def-beamer}
+
+\newcommand{\topic}{20 MIS Presentations 2}
+
+\input{../titlepage}
+
+\begin{document}
+
+\input{../footline}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{MIS Presentations 2}
+
+\bi
+\item Shusheng
+\item Xiaoye (Marshall)
+\item Devi
+\ei
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\end{document}
\ No newline at end of file
diff --git a/Lectures/L21_AssuranceCase/AssuranceCase.pdf b/Lectures/L21_AssuranceCase/AssuranceCase.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..2d01332af5021a1f7f3929135de3862a73c196f2
Binary files /dev/null and b/Lectures/L21_AssuranceCase/AssuranceCase.pdf differ
diff --git a/Lectures/L21_AssuranceCase/AssuranceCase.tex b/Lectures/L21_AssuranceCase/AssuranceCase.tex
new file mode 100755
index 0000000000000000000000000000000000000000..ab65ceef3ca6daae0e69e10c33c96b76da1aa8cf
--- /dev/null
+++ b/Lectures/L21_AssuranceCase/AssuranceCase.tex
@@ -0,0 +1,111 @@
+%\documentclass[handout]{beamer} 
+\documentclass[t,12pt,numbers,fleqn]{beamer}
+%\documentclass[ignorenonframetext]{beamer}
+
+\newif\ifquestions
+%\questionstrue
+\questionsfalse
+
+\usepackage{pgfpages} 
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,
+    linkcolor=blue,
+    citecolor=blue,
+    filecolor=blue,
+    urlcolor=blue,
+    unicode=false}
+\urlstyle{same}
+
+\bibliographystyle{plain}
+
+%\usetheme{Iimenau}
+
+\useoutertheme{split} %so the footline can be seen, without needing pgfpages
+
+%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape]  %if this is uncommented, the hyperref links do not work
+
+\mode<presentation>{}
+
+\input{../def-beamer}
+
+\newcommand{\topic}{21 Assurance Case}
+
+\input{../titlepage}
+
+\begin{document}
+
+\input{../footline}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Assurance Case}
+
+\bi
+\item Administrative details
+\item Questions?
+\item License and copyright
+\ei
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details}
+
+\bi
+\item admin points
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details: Deadlines}
+~\newline
+\begin{tabular}{l l l}
+\textbf{MIS} & Week 11 & Nov 22\\
+\textbf{Impl.\ Present} & Week 12 & Week of Nov 27\\
+Final Documentation & Week 13 & Dec 6\\
+\end {tabular}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Administrative Details: Presentation Schedule}
+
+\bi
+\item Impl.\ Present
+\bi
+\item \textbf{Tuesday: Alexander S., Steven, Alexandre P.}
+\item \textbf{Friday: Jason, Geneva, Yuzhi}
+\ei
+
+\ei
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+\frametitle{Questions?}
+\begin{itemize}
+\item Questions about ...
+\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/OnLineVersionOfPaper.pdf b/ReferenceMaterial/OnLineVersionOfPaper.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..db4b1b0dde2308bf0d4f7e131788ae2de6b2b208
Binary files /dev/null and b/ReferenceMaterial/OnLineVersionOfPaper.pdf differ
diff --git a/ReferenceMaterial/ParnasEtAl1984.pdf b/ReferenceMaterial/ParnasEtAl1984.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..49727c3917c072ee7f22aa84f70687e364657dce
Binary files /dev/null and b/ReferenceMaterial/ParnasEtAl1984.pdf differ
diff --git a/ReferenceMaterial/References.bib b/ReferenceMaterial/References.bib
index ce5cbf2d272ed42f8574d2458600e04223a02f5e..596311d8b1346957755337e2d6c645866a9153b7 100644
--- a/ReferenceMaterial/References.bib
+++ b/ReferenceMaterial/References.bib
@@ -2,13 +2,48 @@
 %% http://bibdesk.sourceforge.net/
 
 
-%% Created for Spencer Smith at 2017-10-16 09:48:02 -0400 
+%% Created for Spencer Smith at 2017-10-23 16:59:05 -0400 
 
 
 %% Saved with string encoding Unicode (UTF-8) 
 
 
 
+@article{ElSheikhEtAl2004,
+	Author = {Ahmed H. ElSheikh and W. Spencer Smith and Samir E. Chidiac},
+	Date-Added = {2017-10-23 20:58:24 +0000},
+	Date-Modified = {2017-10-23 20:58:24 +0000},
+	Journal = {Advances in Engineering Software},
+	Keywords = {mesh generation, software engineering, modular decomposition, formal methods, software quality},
+	Local-Url = {/Users/smiths/Work/Research/Papers/SemiFormalDesMeshGen/OnLineVersionOfPaper.pdf},
+	Number = {12},
+	Pages = {827--841},
+	Title = {Semi-formal design of reliable mesh generation systems},
+	Volume = {35},
+	Year = {2004},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QSy4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUGFwZXJzL1NlbWlGb3JtYWxEZXNNZXNoR2VuL09uTGluZVZlcnNpb25PZlBhcGVyLnBkZtIXCxgZV05TLmRhdGFPEQIAAAAAAAIAAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADOl3ODSCsAAAAXC3QYT25MaW5lVmVyc2lvbk9mUGFwZXIucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeH2c8i4SQAAAAAAAAAAAADAAUAAAkgAAAAAAAAAAAAAAAAAAAAFFNlbWlGb3JtYWxEZXNNZXNoR2VuABAACAAAzperwwAAABEACAAAzyMndAAAAAEAGAAXC3QAFwILABcATQAW/e0ACPdmAAJkjgACAGJNYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAV29yazoAUmVzZWFyY2g6AFBhcGVyczoAU2VtaUZvcm1hbERlc01lc2hHZW46AE9uTGluZVZlcnNpb25PZlBhcGVyLnBkZgAOADIAGABPAG4ATABpAG4AZQBWAGUAcgBzAGkAbwBuAE8AZgBQAGEAcABlAHIALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAE9Vc2Vycy9zbWl0aHMvV29yay9SZXNlYXJjaC9QYXBlcnMvU2VtaUZvcm1hbERlc01lc2hHZW4vT25MaW5lVmVyc2lvbk9mUGFwZXIucGRmAAATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOANwA4QDpAu0C7wL0Av8DCAMWAxoDIQMqAy8DPAM/A1EDVANZAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA1s=},
+	Bdsk-File-2 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QWS4uLy4uLy4uLy4uL0Rvd25sb2Fkcy9ldmFsdWF0aW5nLXJlcGxpY2FiaWxpdHktb2YtbGFib3JhdG9yeS1leHBlcmltZW50cy1pbi1lY29ub21pY3MuYmli0hcLGBlXTlMuZGF0YU8RAi4AAAAAAi4AAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM6Xc4NIKwAAAAj3aR9ldmFsdWF0aW5nLXJlcGxpY2FiI0Q4QTEwQkEuYmliAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANihC61ZTX1gAAAAAAAAAAAAQAAgAACSAAAAAAAAAAAAAAAAAAAAAJRG93bmxvYWRzAAAQAAgAAM6Xq8MAAAARAAgAANWVEBYAAAABAAwACPdpAAj3ZgACZI4AAgBGTWFjaW50b3NoIEhEOlVzZXJzOgBzbWl0aHM6AERvd25sb2FkczoAZXZhbHVhdGluZy1yZXBsaWNhYiNEOEExMEJBLmJpYgAOAIgAQwBlAHYAYQBsAHUAYQB0AGkAbgBnAC0AcgBlAHAAbABpAGMAYQBiAGkAbABpAHQAeQAtAG8AZgAtAGwAYQBiAG8AcgBhAHQAbwByAHkALQBlAHgAcABlAHIAaQBtAGUAbgB0AHMALQBpAG4ALQBlAGMAbwBuAG8AbQBpAGMAcwAuAGIAaQBiAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIAWlVzZXJzL3NtaXRocy9Eb3dubG9hZHMvZXZhbHVhdGluZy1yZXBsaWNhYmlsaXR5LW9mLWxhYm9yYXRvcnktZXhwZXJpbWVudHMtaW4tZWNvbm9taWNzLmJpYgATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAOoA7wD3AykDKwMwAzsDRANSA1YDXQNmA2sDeAN7A40DkAOVAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA5c=}}
+
+@inproceedings{ParnasEtAl1984,
+	Author = {D.L. Parnas and P.C. Clement and D. M. Weiss},
+	Booktitle = {International Conference on Software Engineering},
+	Date-Added = {2017-10-23 20:16:11 +0000},
+	Date-Modified = {2017-10-23 20:16:11 +0000},
+	Pages = {408-419},
+	Title = {The modular structure of complex systems},
+	Year = {1984},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QNi4uLy4uL3NlNHNjL1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzL1Bhcm5hc0V0QWwxOTg0LnBkZtIXCxgZV05TLmRhdGFPEQHcAAAAAAHcAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADOl3ODSCsAAAkx/Q0SUGFybmFzRXRBbDE5ODQucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTH9RNNvBNMAAAAAAAAAAAACAAMAAAkgAAAAAAAAAAAAAAAAAAAAF1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzAAAQAAgAAM6Xq8MAAAARAAgAANNvPRMAAAABABQJMf0NCTHuxwASFacACPdmAAJkjgACAFVNYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAUmVwb3M6AHNlNHNjOgBTY2lDb21wQW5kU29mdEVuZ1BhcGVyczoAUGFybmFzRXRBbDE5ODQucGRmAAAOACYAEgBQAGEAcgBuAGEAcwBFAHQAQQBsADEAOQA4ADQALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAENVc2Vycy9zbWl0aHMvUmVwb3Mvc2U0c2MvU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnMvUGFybmFzRXRBbDE5ODQucGRmAAATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAMcAzADUArQCtgK7AsYCzwLdAuEC6ALxAvYDAwMGAxgDGwMgAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAyI=}}
+
+@inproceedings{Parnas1974,
+	Author = {David L. Parnas},
+	Booktitle = {IFIP Congress 74},
+	Date-Added = {2017-10-23 19:36:16 +0000},
+	Date-Modified = {2017-10-23 19:36:16 +0000},
+	Pages = {336-339},
+	Publisher = {North Holland Publishing Company},
+	Title = {On a 'Buzzword': Hierarchical Structure},
+	Year = {1974}}
+
 @inproceedings{KellyAndShepard2000,
 	Author = {Diane Kelly and Terry Shepard},
 	Booktitle = {CASCON '00: Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research},