Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cas741
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
W. Spencer Smith
cas741
Commits
d34e2cc8
Commit
d34e2cc8
authored
2 years ago
by
W. Spencer Smith
Browse files
Options
Downloads
Patches
Plain Diff
Updates to MIS lectures
parent
957afbf3
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
Lectures/L15_MIS/MIS.pdf
+0
-0
0 additions, 0 deletions
Lectures/L15_MIS/MIS.pdf
Lectures/L15_MIS/MIS.tex
+139
-75
139 additions, 75 deletions
Lectures/L15_MIS/MIS.tex
with
139 additions
and
75 deletions
Lectures/L15_MIS/MIS.pdf
+
0
−
0
View file @
d34e2cc8
No preview for this file type
This diff is collapsed.
Click to expand it.
Lectures/L15_MIS/MIS.tex
+
139
−
75
View file @
d34e2cc8
...
...
@@ -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
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment