发信人: crazycode()
整理人: leitiger(2002-06-11 11:25:11), 站内信件
|
软件设计
通常软件设计分为概要设计和详细设计。概要设计的输出是模块层次图(模块划 分),IPO图(功能划分),数据流程图。详细设计的输出是数据库设计说明书, 界面设计和程序伪码。概要设计中模块的划分根据软件工程的原则要符合高内聚 低偶合。模块粒度可以小到函数、事件大到窗口、程序模块,模块划分完后,就 需要确定接口,可以用IPO图指出输入、处理、输出将接口明确下来。本人认为概 要设计与详细设计好比树枝与数叶的关系,树枝是脉络,数叶则是外观(界面、 操作)。详细设计对于PB类数据库开发工具而言,还需要提交数据库详细设计, 这是非常重要的文档之一。数据是基础吗!
数据流程图通常可以通过需求分析过程中的业务流程图推导出来,一般只要变换 一下符号即可。DF图完成后,需要将其量化为数据字典,数据字典包括各种加工 、数据流、存储等,都需要将组成、频度、大小、功能用文字描述出来。现在很 多CASE工具可以自动根据DF图生成数据字典如PowerDesigner,我们可以借助这些 工具完成数据字典的书写、同步工作。
数据库详细设计包括表、触发器、存储过程、视图、ER图等,这些可以参考前面 的数据字典,进行必要的优化冗余处理。表即存储,要详细描述出表的功能、涉 及模块、特殊要求、数据来源,所有的表都要描述出各列的属性包括类型、名称 、约束、缺省值、索引等,对于代码/参数表还需要详细列出参数/代码;视图则 需要标明视图形成的机理包括基本表、计算字段,此外还有视图的功能、引用模 块;触发器、存储过程则需要将出入口参数、调用者、处理过程伪码描述出来, 对于触发器还需要将其宿主表、激活时间、处理级别描述出来。设计存储过程和 触发器时,按照C/S原则我们应该把计算部分、逻辑处理部分、安全部分交给后台 来做,既加快了速度又提高了安全性,总之不要让前台把工作全部包了。最后需 要描述出实体关系图,ER图可以用专门的CASE工具来完成,如ER/Win,PowerDes igner,ErStudio,它们灵活方便、支持群体协同开发,效率很高。此时实体分解 粒度问题又拉上案头,基本原则是按照几个数据库范式建立实体关系,最终的目 的就是不要发生数据异?吞岣叽硭俣龋实钡娜哂嘁彩侨峡傻摹J菘庀晗干杓 仆瓿珊螅筇ú糠忠膊畈欢嗔耍衷诳梢钥记疤ㄉ杓乒ぷ髁耍ń缑嫔杓坪 臀甭搿=缑嫔杓瓶梢杂酶髦諶
AD工具本身的快速原型功能,也可以用专门的界面CASE工具如Visio,界面设计完 成后,可以参照界面设计写出处理逻辑的伪码,模块的伪码,函数事件的伪码, 详细程度达到程序员看到设计方案马上可以编码为止。当然我们还可以在PB中划 分出很多用户对象盛装业务逻辑/程序逻辑,在设计过程中也可以将其描绘出来, 这也是对设计人的OO能力的考验。
国内的公司对软件设计很不重视,项目来了就是开个会,划分一下模块,就开始 编码,编码成了关键的部分,可以说这是本末倒置,其实编码只占了开发工作很 小一部分,软件设计需要大量的时间定义、讨论、评审,形成大量文档。俺认为 如果软件设计做好了,程序也就不那么重要了,多加些人手,多花些时间是可以 很快就完成的,而且对于程序员的要求相应也降低了,他们只需按照文档编码, 只要将文字转换为代码即可。故软件设计好比建筑物的蓝图,没有它再好的建筑 工人(程序员)也是白费力气。
-- IF 回复 THEN
请选中'将本文章寄一份给原作者', 多谢!
END IF
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.124.200]
|
|