I'd sharpen this to: it's 3 layers of software engineering (2, 3, 4), and 1 layer of programming (3).