STUDY GUIDE · GKU 2
Engineering fundamentals study guide (Software Engineering)
Engineering fundamentals is the mathematics and the engineering judgement that the rest of software engineering quietly assumes. The first part is discrete mathematics: sets, relations and functions, the algebraic structures behind check digits and cryptography, propositional and predicate logic, the proof techniques that show a program is correct rather than merely tested, counting, graphs and trees as models of networks and dependencies, and discrete probability. The second part is the engineer's method: how to design a solution against criteria, measure software properly, run a fair experiment, read a correlation, fit a regression line, and model a system before building it. The third part is money: the time value of money, net present value and lifecycle cost, budgets, earned value, risk exposure, and the economics of outsourcing and offshoring. Each section opens with a quick-revision card, and the worked examples run from easy to exam level; every number in them was checked by running it.
Structured by the official ETEC subject standard for this topic: every listed topic and learning outcome, with formulas, figures and worked examples. The full sections are available to members in the app.
SKU 2.1 · Discrete structure
Sets, relations and functions
The vocabulary every other topic is written in: set operations and sizes, relations and their four properties, equivalence relations and partial orders, transitive closure, and functions that are one-to-one, onto or both.
Algebraic structures and modular arithmetic
A set plus an operation and the laws it obeys: semigroups, monoids, groups, rings and fields; arithmetic modulo , inverses by the extended Euclidean algorithm, and the check digits, hashes and ciphers built on them.
Basic logic: propositions, inference and quantifiers
Propositional connectives and truth tables, the equivalences that simplify conditions in code, implication and its converse and contrapositive, the rules of inference, and first-order logic with predicates and quantifiers.
Proof techniques and program correctness
Direct proof, contrapositive, contradiction, cases, counterexample and induction — and the same reasoning applied to code as loop invariants, so a loop is shown correct for every input rather than for the inputs that were tested.
Counting techniques
Sum and product rules, permutations and combinations with and without repetition, inclusion–exclusion, the pigeonhole principle, the binomial theorem and linear recurrence relations — the tools for sizing a key space, a test suite or a search.
Graphs and trees
Graphs as models of relations between entities: degrees and the handshake lemma, paths and connectivity, Euler and Hamilton circuits, bipartite and planar graphs, colouring, and trees — their counting laws, spanning trees and the minimum spanning tree.
Discrete probability
Sample spaces and events, the complement and union rules, conditional probability, independence and Bayes' theorem, random variables, expectation and variance, the binomial distribution, and the birthday problem behind hash collisions.
SKU 2.2 · Foundations of engineering for software development
Engineering design and measurement
The engineering design cycle applied to software, choosing between alternatives with a weighted decision matrix and a sensitivity check, measurement theory (scale types, validity, GQM), and measuring the cost of maintenance.
Experiments, empirical studies, correlation and regression
How to build a designed experiment (factors, levels, randomisation, replication, blocking, factorial designs), how observational and retrospective studies differ from experiments, and how to compute and read a correlation coefficient and a least-squares regression line.
Modelling, simulation and prototyping
Answering "will it work?" before building: analytical models (Little's law and the M/M/1 queue), discrete-event and Monte Carlo simulation, validating a model, and choosing the right kind of prototype.
SKU 2.3 · Engineering economics for software development
Engineering economics and lifecycle cost
The time value of money, present and future worth, net present value, internal rate of return, payback and benefit–cost ratio, applied to software investments and to lifecycle cost comparisons such as build versus buy.
Project budgeting, earned value and risk
Turning an estimate into a budget with reserves, tracking spending and progress with earned value (CV, SV, CPI, SPI, EAC), and quantifying risk and uncertainty with risk exposure, risk-reduction leverage and sensitivity analysis.
Outsourcing and offshoring
Who does the work and where: in-house, outsourced, offshored or both; the motives, the hidden costs that make the real saving smaller than the rate card suggests, and how to decide what to keep.
MORE SOFTWARE ENGINEERING GUIDES
- Computing foundations study guideGKU 1 · 23 sections
- Ethical and professional practice study guideGKU 7 · 7 sections
- Software design study guideGKU 5 · 9 sections
- Software verification and validation study guideGKU 6 · 7 sections
- Software quality study guideGKU 8 · 7 sections
- Requirements analysis and specification study guideGKU 4 · 7 sections
- Software modelling and analysis study guideGKU 3 · 6 sections