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

Revised version of L2.

parent 420f9b79
No related branches found
No related tags found
No related merge requests found
Showing
with 242 additions and 109 deletions
No preview for this file type
......@@ -494,55 +494,4 @@ logic and discrete mathematics
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{The PEO}
\begin{itemize}
\item Degree from an accredited program
\item Experience requirement
\item Law exam
\begin{itemize}
\item Contracts
\item Torts
\item Exculpatory evidence
\item ...
\end{itemize}
\item Ethics
\begin{itemize}
\item Duty to society
\item Duty to employer
\item Duty to profession
\end{itemize}
%\item Still debating what constitutes software engineering
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Software Engineering in System Design} \label{lastframe}
\begin{itemize}
\item A physical system is often controlled by a software system called an embedded system
\item As a result, software engineering is often a crucial part of system design
\item Examples of embedded systems
\begin{itemize}
\item Cell phones
\item Nuclear power plants
\item Automobiles
\item Aircraft
\item Pacemakers
\item mp3 players
\item Programmable household devices
\end{itemize}
\item Embedded systems are rapidly appearing everywhere
\item The developers of software for an embedded system needs to understand both the software and the physical device.
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
\ No newline at end of file
Lectures/L2_SoftEngProfession/CarStall.png

1.06 MiB

Lectures/L2_SoftEngProfession/GammaKnife.png

680 KiB

Lectures/L2_SoftEngProfession/HealthCareDatabase.png

341 KiB

Lectures/L2_SoftEngProfession/InfusionPumps.png

582 KiB

Lectures/L2_SoftEngProfession/PacemakerRecall.png

571 KiB

Lectures/L2_SoftEngProfession/PinpointBeam.png

1.16 MiB

Lectures/L2_SoftEngProfession/RadiationOverdose.png

1.04 MiB

No preview for this file type
%\documentclass[13pt]{beamer} % some colour, looks good with logictheme style
\documentclass[handout]{beamer} % for handout
\usepackage{logictheme}
\usepackage{amsmath}
\usepackage{bm}
\usepackage{ulem}
\usepackage{hhline}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{array}
%\documentclass[handout]{beamer}
\documentclass[t,12pt,numbers,fleqn]{beamer}
%\documentclass[ignorenonframetext]{beamer}
\usepackage{pgfpages}
\usepackage{hyperref}
\hypersetup{colorlinks=true,
linkcolor=blue,
citecolor=blue,
filecolor=blue,
urlcolor=blue,
unicode=false}
\urlstyle{same}
\usepackage{booktabs}
\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
\title[SE Profession (slide \thepage)]{The Software Engineering Profession (adapted from Dr. Farmer's notes)}
%\subtitle{???}
\author[Smith]{Dr.~Spencer Smith}
\institute{Computing and Software Department, McMaster University}
\date{\today}
\pgfdeclareimage[height=0.5cm]{logo}{../McMasterLogo}
\logo{\pgfuseimage{logo}}
\mode<presentation>{}
\setbeamercolor{alerted text}{fg=red!75!green!50!blue}
%\setbeamerfont{alerted text}{series=\bfseries}
\setbeamerfont{alerted text}{family=\rmfamily,series=\bfseries}
\input{../def-beamer}
%\setbeamertemplate{footline}{\insertpagenumber} % only has the page number
\newcommand{\topic}{02 Software Engineering Profession}
\newcounter{temp}
\input{../titlepage}
\begin{document}
% ==================================================================================
% Slide 1
\maketitle
% ==================================================================================
\input{../footline}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Software Engineering Profession}
......@@ -42,10 +39,11 @@
\begin{itemize}
\item Administrative details
\item What is software engineering?
\item What is Software Engineering (SE)?
\item The PEO
\item Historical origins of SE
\item Software engineering in system design
\item Therac-25
\item Examples of software failures
\item The great gulf
\item Challenges and opportunities for engineering
\item Attributes of a good software engineer
......@@ -55,6 +53,7 @@
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Administrative Details}
......@@ -62,13 +61,8 @@
\item GitLab access update
\item Any paper-based resources are allowed for the open book midterm and final
\item Assignment 1 deadlines
\begin{itemize}
\item Files due by midnight January 19
\item E-mail partner files by January 20
\item Lab report due by the beginning of class on January 26
\end{itemize}
\item Assignment 1 is posted to {http://www.cas.mcmaster.ca/--smiths/SFWRENG2AA4/Assig1.pdf}
\item Assignment 1 given out next week
\item Tutorials start next week
\end{itemize}
\end{frame}
......@@ -92,6 +86,7 @@ operation and maintenance of software'' (IEEE 1990)
\item D.\ Parnas (1978) defines software engineering as ``multi-person construction of multi-version software''
\item Like other areas of engineering, software engineering relies heavily on mathematical techniques, especially
logic and discrete mathematics
\item Analogous to other engineering disciplines
\end{itemize}
\end{frame}
......@@ -99,13 +94,38 @@ logic and discrete mathematics
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{The PEO}
\frametitle{PEng}
What do you need to get an Engineer's Seal? Iron Ring?
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{The PEO (Professional Engineers Ontario)}
\begin{itemize}
\item Degree from an accredited program
\item Degree from an accredited program (or a series of examinations)
\item Experience requirement
\item Law and ethics exam
\item Still debating what constitutes software engineering
\item Law exam
\begin{itemize}
\item Contracts
\item Torts
\item Exculpatory evidence
\item ...
\end{itemize}
\item Code of ethics
\begin{itemize}
\item Duty to society
\item Duty to employer
\item Duty to profession
\end{itemize}
\item \href{http://www.peo.on.ca/index.php/ci_id/2266/la_id/1.htm}{PEO protects
the term Software Engineering}
\item \href{http://www.peo.on.ca/index.php/ci_id/21466/la_id/1.htm}{The debate
on SE in Canada started years ago}
\end{itemize}
\end{frame}
......@@ -129,7 +149,8 @@ logic and discrete mathematics
\item Programmable household devices
\end{itemize}
\item Embedded systems are rapidly appearing everywhere
\item The developers of software for an embedded system needs to understand both the software and the physical device.
\item The developers of software for an embedded system needs to understand both
the software and the physical device
\end{itemize}
\end{frame}
......@@ -137,7 +158,16 @@ logic and discrete mathematics
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Therac-25}
\frametitle{Example Failures}
What are some examples of software failures that you are aware of?
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: Therac-25}
\begin{itemize}
\item The Therac-25 was a radiation therapy machine for treating cancer
......@@ -204,6 +234,130 @@ Causes of failure
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: Public Servants Waiting for Pay}
\href{http://www.theglobeandmail.com/news/national/officials-apologize-as-more-than-80000-civil-servants-have-issue-getting-paid/article30961062/}{System
glitch, or management problem?}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: Health-care Database}
\begin{center}
\includegraphics[scale=0.5]{HealthCareDatabase.png}
\end{center}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: Pacemaker Recall}
\begin{center}
\includegraphics[scale=0.58]{PacemakerRecall.png}
\end{center}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: Car Stall Due to Software }
\begin{center}
\includegraphics[scale=0.57]{CarStall.png}
\end{center}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: UK Tax Software}
\begin{center}
\includegraphics[scale=0.55]{UKTaxSoftware.png}
\end{center}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: Infusion Pumps}
\begin{center}
\includegraphics[scale=0.55]{InfusionPumps.png}
\end{center}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: Gamma Knife}
\begin{center}
\includegraphics[scale=0.5]{GammaKnife.png}
\end{center}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: Therapy Planning}
\begin{center}
\includegraphics[scale=0.5]{TherapyPlanning.png}
\end{center}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: Radiation Overdose}
\begin{center}
\includegraphics[scale=0.5]{RadiationOverdose.png}
\end{center}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Example Failure: Radiation Overdose Again}
\begin{center}
\includegraphics[scale=0.45]{PinpointBeam.png}
\end{center}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{History}
\bi
\item The field of software engineering was born in 1968 in response to chronic
failures of large software projects to meet schedule and budget constraints
\item Recognition of ``the software crisis''
\item Term became popular after NATO Conference in Garmisch Partenkirchen
(Germany), 1968
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{The Great Gulf}
......@@ -211,16 +365,21 @@ Causes of failure
\item Engineers do not sufficiently understand or care about software
\begin{itemize}
\item Many of the basic principles of software design and development are largely unknown to engineers
\item Engineers often do not appreciate the challenges and dangers inherent in software for embedded systems
\item Many of the basic principles of software design and development are
largely unknown to engineers
\item Engineers often do not appreciate the challenges and dangers inherent in
software for embedded systems
\end{itemize}
\item Software developers lack engineering training and professionalism
\begin{itemize}
\item There is an entrenched culture of producing software without any guarantee whatsoever
\item There is an entrenched culture of producing software without any guarantee
whatsoever
\item There is no system for certifying either software or software developers
\item Most software developers lack the engineering background needed to produce software for embedded systems
\item Most software developers lack the engineering background needed to produce
software for embedded systems
\end{itemize}
\item There is a gulf between software engineering and scientific computing as well
% \item There is a gulf between software engineering and scientific computing as
% well
\end{itemize}
\end{frame}
......@@ -237,7 +396,7 @@ Causes of failure
\item Engineers need to design systems that have safe, correct, high-quality software
\item Software engineers need to produce software that they can guarantee
\item No silver bullets
\item Still an immature field
\item Maturing, but still an immature field
\end{itemize}
\item Opportunities
\begin{itemize}
......@@ -254,13 +413,34 @@ Causes of failure
\begin{frame}
\frametitle{Attributes of a Good Software Engineer}
What are the attributes of a good software engineer?
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Attributes of a Good Software Engineer}
\begin{itemize}
\item Is a good engineer!
\item Embraces
\bi
\item Rigour
\item Being systematic
\item Documentation
\item Specification
\item Mathematics
\item Evidence (measurement) based decisions
\item Ethics
\item Professionalism
\ei
\item Can program in the large as well as in the small
\item Has a solid understanding of computing and software
\item Is comfortable with working with models at different levels of abstraction
\item Can communicate and work effectively with other team members
\item Comfortable with different levels of abstraction
\item Communicate and work effectively with other team members
\item Management skills
\end{itemize}
......@@ -289,11 +469,15 @@ Causes of failure
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
\begin{frame}
\frametitle{Software Lifecycle}
\begin{center}
\includegraphics[scale=0.55]{SoftwareLifecycle.png}
\end{center}
NOTES
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- do survey to see what people know in the tutorial
- mention the field is still rapidly changing
- mention that there are no silver bullets - no method solves all problems - usually best to pick the method,
language, notation, etc. that is appropriate for the problem at hand
\end{document}
\ No newline at end of file
Lectures/L2_SoftEngProfession/SoftwareLifecycle.png

80.8 KiB

Lectures/L2_SoftEngProfession/TherapyPlanning.png

635 KiB

Lectures/L2_SoftEngProfession/UKTaxSoftware.png

682 KiB

......@@ -20,7 +20,7 @@
\hspace{1ex}
{\tiny \instructSmall \hfill
\courseCode~\season~\yr:~\topic \hfill
\insertframenumber/\ref{lastframe}~~}
\insertframenumber/\inserttotalframenumber~~}
%\insertframenumber/\ref{lastframe}}
%\hfill {\small \insertframenumber} \hspace{10ex}
%{\small $$\insertframenumber$$}
......
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