精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Powerbuilder>>其他技巧>> 软件工程与PB十日谈之软件设计

主题: 软件工程与PB十日谈之软件设计
发信人: 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]

[关闭][返回]