diff --git a/Lectures/L14_MIS/MIS.pdf b/Lectures/L14_MIS/MIS.pdf index 209eb4210669fb638dc9f9711d6f7c25246f993d..af87a607451215006885113df11e9a95db68358a 100644 Binary files a/Lectures/L14_MIS/MIS.pdf and b/Lectures/L14_MIS/MIS.pdf differ diff --git a/Lectures/L14_MIS/MIS.tex b/Lectures/L14_MIS/MIS.tex index 4b461bcd691b12d2fa104d13363c0c4132d616ff..300e8d77d4c0267b6c39443dad904baad66f3c6b 100755 --- a/Lectures/L14_MIS/MIS.tex +++ b/Lectures/L14_MIS/MIS.tex @@ -146,14 +146,36 @@ Room for more volunteers. :-) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \begin{frame} +% \frametitle{Finish Previous Day's Discussion} +% \begin{itemize} +% \item Static Definition of Uses Relation +% \item Module Guide +% \item MG Template +% \item MG Verification +% \item OO versus modular +% \end{itemize} +% \end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{frame} -\frametitle{Finish Previous Day's Discussion} +\frametitle{MG + MIS Syntax Presentations} +\begin{itemize} +\item MG +\begin{itemize} +\item Decomposition by secrets +\item Interesting module secrets +\item Uses relationship +\end{itemize} +\item MIS Syntax \begin{itemize} -\item Static Definition of Uses Relation -\item Module Guide -\item MG Template -\item MG Verification -\item OO versus modular +\item Access routine syntax (types of inputs and outputs) +\item State variables +\item Environment variables +\end{itemize} +\item Likely better to discuss MG secret together with MIS syntax +\item Not necessary to cover all details \end{itemize} \end{frame} @@ -772,6 +794,64 @@ seq\_init(): %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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}[allowframebreaks] \frametitle{References}