The document presents a Hierarchical Abstraction Model (HAM) with 5 levels of abstraction for software engineering. It discusses how abstraction plays a major role and the need for more rigorous and precise means of expression at each level. It also describes the cognitive constraints of software engineering around intangibility, inexpressiveness, and inexplicit embodiment that HAM aims to address.