Quick reference

Notation, templates and formulas from the whole course on one searchable page.

Proposal sections

  • Title and team
  • Problem analysis and motivation
  • Objectives (SMART)
  • Literature review / related work
  • Methodology
  • Feasibility study (technical, economic, legal, operational, schedule)
  • Main phases and detailed work plan
  • Gantt chart
  • Budget
  • Risk analysis
  • Expected outcome, conclusion, references

Economic feasibility formulas

payback period = development cost ÷ (annual benefit − annual running cost)
ROI = (total benefit − total cost) ÷ total cost × 100%
NPV = −initial cost + Σt=1..n net benefitt ÷ (1 + r)t
risk score = probability × impact (1–5 each)

LaTeX: special characters

TypeTo print
%\%
$\$
&\&
#\#
_\_
{ }\{ \}
~\textasciitilde
^\^{}
\\textbackslash
“quotes”``quotes''

LaTeX: document skeleton

\documentclass[12pt]{article}
\usepackage{amsmath, graphicx, biblatex}
\addbibresource{refs.bib}
\title{Title} \author{Team} \date{\today}
\begin{document}
\maketitle
\begin{abstract} ... \end{abstract}
\section{Introduction}\label{sec:intro}
See Section~\ref{sec:intro} and~\cite{key}.
\printbibliography
\end{document}

LaTeX: maths

WriteFor
$x^2$, $x_i$super/subscript
\frac{a}{b}fraction
\sqrt{x}root
\sum_{i=1}^{n}sum
\leq \geq \neq \pm \infty≤ ≥ ≠ ± ∞
\begin{equation} … \end{equation}numbered display
\begin{align*} a &= b \\ &= c \end{align*}aligned lines (amsmath)

LaTeX: figure and table

\begin{figure}[htbp]
  \centering
  \includegraphics[width=0.6\textwidth]{file}
  \caption{Caption.}\label{fig:key}
\end{figure}

\begin{table}[htbp]
  \centering
  \caption{Caption.}\label{tab:key}
  \begin{tabular}{|l|c|r|} \hline
  A & B & C \\ \hline
  \end{tabular}
\end{table}

LaTeX: algorithm

\begin{algorithm}
\caption{Name}
\begin{algorithmic}[1]
\State $s \gets 0$
\For{$i \gets 1$ to $n$} \State $s \gets s + i$ \EndFor
\If{$s > 10$} \State ... \Else \State ... \EndIf
\While{cond} \State ... \EndWhile
\Return $s$
\end{algorithmic}
\end{algorithm}

IEEE SRS outline

  1. Introduction: purpose, conventions, audience, scope, references
  2. Overall description: perspective, features, user classes, environment, constraints, documentation, assumptions
  3. System features: description & priority, stimulus/response, functional requirements
  4. External interfaces: user, hardware, software, communications
  5. Non-functional: performance, safety, security, quality attributes, business rules
  6. Other requirements; appendices (glossary, models, TBD list)

Qualities of a good requirement

Correct · unambiguous · complete · consistent · ranked for importance · verifiable · modifiable · traceable. Write “The system shall …”, one idea, with an ID and a number for every quality.

SDLC models

ModelUse when
Waterfallrequirements fixed and well understood
V-modelfixed requirements and high reliability; a test per phase
Iterativelarge system, core requirements known, changes expected
Spirallarge, costly, high-risk; risk analysis every loop
Agilerequirements change; customer available; short sprints
Prototypingrequirements unclear, especially the UI

DFD symbols and rules

SymbolYourdonGane–Sarson
Processcirclerounded rectangle
Data storetwo parallel linesopen-ended rectangle with ID
External entityrectanglerectangle
Data flowlabelled arrowlabelled arrow

Every flow starts or ends at a process. No entity→entity, entity→store, store→entity or store→store flows. Levels must balance. Level 0 has one process and no stores.

Use case diagram

ElementNotation
Actorstick figure outside the boundary
Use caseellipse, verb + object
Associationsolid line
«include»dashed arrow, base → included (always)
«extend»dashed arrow, extension → base (sometimes)
Generalizationsolid line, hollow triangle to the parent

Sequence diagram messages

MessageLineHead
Synchronoussolidfilled
Replydashedopen
Asynchronoussolidopen
SelfU-shapefilled
Createdashed, «create»open
Destroysolidends in ✕

Fragments: alt (if/else), opt (if), loop, par, ref, break. Lifeline name: instance : Class.

Class diagram notation

SymbolMeaning
+ - # ~public, private, protected, package
underlinestatic
italicabstract
name : Type = valueattribute
op(p : T) : Roperation
1, 0..1, *, 1..*multiplicity
RelationshipLineEnd
Associationsolidnone / open arrow
Dependencydashedopen arrow
Aggregationsolidhollow diamond at the whole
Compositionsolidfilled diamond at the whole
Generalizationsolidhollow triangle at the parent
Realizationdashedhollow triangle at the interface

Nielsen’s heuristics

  1. Visibility of system status
  2. Match between system and the real world
  3. User control and freedom
  4. Consistency and standards
  5. Error prevention
  6. Recognition rather than recall
  7. Flexibility and efficiency of use
  8. Aesthetic and minimalist design
  9. Help users recognise, diagnose and recover from errors
  10. Help and documentation

Accessibility numbers (WCAG 2.2)

CheckMinimum
Normal text contrast (AA)4.5 : 1
Large text (≥ 24 px or ≥ 18.5 px bold)3 : 1
Icons, borders, focus rings3 : 1
Enhanced text contrast (AAA)7 : 1
Target size (2.5.8, AA)24 × 24 CSS px

Figma shortcuts

ActionShortcut
FrameF (or A)
Rectangle / ellipse / textR / O / T
Create componentCtrl/⌘ + Alt/⌥ + K
Auto layoutShift + A
GroupCtrl/⌘ + G
Present prototypeCtrl/⌘ + Alt/⌥ + Enter