软件工程的本质:问题域到不同抽象层之间概念和计算逻辑的映射.
从问题域到开发平台直接进行映射,势必存在一定的复杂性。为了控制这一复杂性,需要确定多个抽象层,例如需求、设计、实现、和部署等,每一个抽象层均由自己特定的术语定义,形成该抽象层的一个术语空间。
如果按照自顶向下的途径进行软件开发的话,首先就是通过需求建模,把问题域的概念和处理逻辑向需求这一抽象层进行映射,再把需求层的概念和处理逻辑向设计层进行映射,依次进行,直至映射到运行平台这一抽象层为止。
软件开发涉及两个方面的问题:一是如何实现这样的映射(这是技术问题),二是如何管理这样的映射,以确保映射的有效性与正确性(这是管理方面的问题)