Systematic Program Design - Yanhong Annie Liu (Cambridge University Press, 2013)