一,设计的任务
在软件的需求分析阶段,已经把软件是“做什么”的问题搞清了,并且这些需求都最后归结为文档了,从而得出软件系统设计的逻辑模型。在设计阶段的任务,就是要把这个系统的逻辑模型转变成“怎么做”的物理模型。即开始着手实现软件的需求,并将实现的结果反映在文档里。
二,原则
从纵向上看,软件是分层的,所以在设计时要自顶向下,逐层分解; 而在横向上,软件都是由模块实现的,所以,抽象化不可避免; 在模块使用的过程中,信息隐藏对于软件的测试和维护都有很大的好处:因为对于软件的其他部分来说,绝大多数书数据和过程都是隐藏的,这样,在修改期间,由于疏忽而引入的错误所造成的影响就可以仅仅局限在一个小范围内,而不至于影响软件整体。
三,内容
从技术观点来看,软件设计分为:数据设计,系统结构设计,过程设计。
对于数据和文件的设计是基础,因为现在的程序主要是以数据为中心的;数据保存在文件里面,当模块需要时,从文件里读取。
在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达,这就是过程设计的任务,在过程设计阶段,有很多表达过程规格说明的工具叫做详细设计工具,用这些工具,可以更容易理解系统的逻辑关系。
这样看来,数据,文件,和过程设计,好像都是为模块服务的。所以最后一步的模块设计,不但要注意模块内部,还要关注模块间的联系程度。
最后,在设计完成时,将设计的结果反映在文档里面。