抽象

抽象(Abstraction)是人类认识问题和解决问题的基本工具和方法。在解决复杂的具体问题时,人们往往先忽略其细节和非本质的方面,而集中注意力去分析问题的本质和主要方面,搞清所要解决的问题的本质所在;同时人们在总结认识和实验规律时,也往往突出各类问题的共性,找出各种客观事物、状态和过程间的联系和相似性,加以概括和提取,即抽象。抽象是具有有限思维能力的人类个体同复杂外部世界相互了解的有力工具。

抽象在软件开发过程中也具有重要的地位。复杂软件系统的构造就是一个运用抽象的过程。通过对所要解决问题的抽象,进行需求分析;然后借助较低层次上的抽象,采用更加过程化、形式化的方法,进行系统设计;最后, 在最低的抽象层次上,用可以直接实现的方法,叙述问题的解法。

因此,在本质上,抽象的过程是一个逐步求精的过程。Wirth 曾对抽象作过如下解释:抽象是我们对付复杂问题最重要的办法,所以,对一个复杂的问题,不应马上用计算机指令、数字与逻辑字来表示,而应该用较为自然的抽象语句来表示,从而得出抽象程序。抽象程序对抽象的数据进行某些特定的运算并用某些合适的记号(可能是自然语言)来表示。对抽象程序作进一步的分解,并进入下一层的抽象,这样的精细化过程一直进行下去,直到程序能被计算机接受为止。