对于任何工程项目来说,在它施工之前,总要先完成设计。因此,设计往往是开发活动的第一步。通常,人们把设计定义为“应用各种技术和原理,对设备、过程或系统做出足够详细的定义,使之能够在物理上得以实现”。

  软件的设计与其它领域的工程设计一样,也需要有好的方法、好的分析策略等等。把软件设计看作仅仅是程序设计或者编制程序,这是很片面的。实际上,程序设计只是软件设计的实现,不能把它们混同起来。