Skip to content
Snippets Groups Projects
Commit d34e2cc8 authored by W. Spencer Smith's avatar W. Spencer Smith
Browse files

Updates to MIS lectures

parent 957afbf3
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -45,7 +45,6 @@
\frametitle{Module Interface Specification (MIS)}
\bi
\item Start recording
\item Administrative details
\item Questions?
%\item Finish previous day slides
......@@ -67,16 +66,21 @@
\frametitle{Administrative Details}
\bi
\item When developing your code, remember that your goal is for someone else to
be able to compile and run it
\item Upcoming classes
\bi
\item L15 - Module Interface Specification
\item L16 - Math Review + MIS
\item L17 - POC + MG Presentations
\item L18 - MIS Presentations
\ei
\item Mathematical review (\cite{HoffmanAndStrooper1995} and separate slides)
% \item When developing your code, remember that your goal is for someone else to
% be able to compile and run it
% \item Upcoming classes
% \bi
% \item L15 - Module Interface Specification
% \item L16 - Math Review + MIS
% \item L17 - POC + MG Presentations
% \item L18 - MIS Presentations
% \ei
\item Mathematical review
\begin{itemize}
\item \cite{HoffmanAndStrooper1995}
\item \href{https://gitlab.cas.mcmaster.ca/smiths/cas741/-/tree/master/Lectures/MathReviewPlusExample} {Review Slides}
\item \href{https://gitlab.cas.mcmaster.ca/smiths/se2aa4_cs2me3/-/blob/master/MISFormat/MISFormat.pdf} {MIS Format}
\end{itemize}
\item Potential software for drawing figures
\bi
\item \href{https://app.diagrams.net/} {draw.io}
......@@ -88,70 +92,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Administrative Details: Report Deadlines}
~\newline
\begin{tabular}{l l}
%\textbf{SRS} & Oct 8\\
\textbf{MG + MIS (Traditional)} & Nov 19\\
\textbf{Drasil Code and Report (Drasil)} & Nov 19\\
Final Documentation & Dec 9\\
\end {tabular}
\bi
\item The written deliverables will be graded based on the repo contents as of
11:59 pm of the due date
\item If you need an extension for a written deliverable, please ask
\item You should inform your primary and secondary reviewers of the extension
\item Two days after each major deliverable, your GitHub issues will be due
%\item Domain expert code due 1 week after MIS deadline
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Admin Details: Presentation Schedule}
\bi
\item Proof of Concept Demonstrations (15 min)
\bi
\item \textbf{Thurs, Nov 12: Salah, John}
\ei
\item MG Present (10 minutes)
\bi
\item \textbf{Thurs, Nov 12: John, Tiago, Leila, Xuanming, Andrea}
\ei
\item MIS Present
\bi
\item Mon, Nov 16: Shayan, Parsa, Gaby, Sid, Xingzhi
\ei
\item Drasil Project Present (20 min each)
\bi
\item Thurs, Nov 26: Andrea, Naveen, Ting-Yu
\ei
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Presentation Schedule Continued}
\bi
\item Test or Impl.\ Present (15 min each)
\bi
\item Mon, Nov 30: John, Salah, Liz, Xingzhi, Leila
\item Thurs, Dec 3: Shayan, Naveen, Sid, Gaby, Seyed
\item Mon, Dec 7: Ting-Yu, Xuanming, Mohamed, Andrea, Tiago
\ei
\item 4 presentations each
\item If you will miss a presentation, please trade with someone else
\ei
\end{frame}
\input{../Deadlines.tex}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......@@ -424,6 +365,64 @@ are isolated to their own access programs (like submodules). % This, combined
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\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{Module Testing}
......@@ -952,6 +951,71 @@ seq\_init():
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Getting Started}
\begin{enumerate}
\item Find a similar example to your problem as use that as a starting point
\item Draft module names and secrets
\item For each module sketch out:
\bi
\item Classify module type (record, library, abstract object, abstract data
type, generic ADT)
\item Access program syntax
\item State variables (if applicable)
\ei
\item Iterate on design
\end{enumerate}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Appendix: Information Hiding Examples}
\begin{itemize}
\item
\href{https://gitlab.cas.mcmaster.ca/smiths/pub/-/blob/master/HoffmanAndStrooper1995.pdf}
{Hoffman and Strooper (1995)} textbook on software development: The running
example is of a symbol table. A very complete example. There is a complete
chapter on the module guide in the text. It is well explained there.
\item
\href{https://gitlab.cas.mcmaster.ca/smiths/pub/-/blob/master/ParnasEtAl1984.pdf}
{Parnas Et Al (1984) ``The Module Structure of Complex Systems'' }: This
example is right back to the source. The example focuses on the A7E military
fighter jet.
\item
\href{https://gitlab.cas.mcmaster.ca/smiths/pub/-/blob/master/Parnas1979.pdf
}{Parnas (1979) ``Designing Software For Ease of Extension and Contraction''}
\item \href{http://www.cas.mcmaster.ca/~mohrens/maze.pdf} {von Mohrenschildt
(2005) ``The Maze Tracing Robot A Sample Specification''}: This is a small
and complete example.
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Appendix Cont'd: Information Hiding Examples}
\begin{itemize}
\item
\href{https://github.com/smiths/swhs/blob/master/docs/Design/MG/PCM_MG.pdf}
{Jegatheesan and MacLachlan (2018), Module Guide for Solar Water Heating
Systems Incorporating Phase Change Material}
\item
\href{https://github.com/XingzhiMac/CAS741-Proj/blob/master/docs/Design/MG/MG.pdf}
{Liu (2020) Module Guide for Radio Signal Strength Calculator}
\item Key points
\bi
\item One module, one secret
\item Secrets are often nouns (data structure, algorithm, hardware, etc.)
\item Secrets are sometimes phrased with ``How to …''
\item Secrets ideally will have a one to one mapping with the anticipated
changes for the software
\ei
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[allowframebreaks]
\frametitle{References}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment