1,4 系统设计
主要任务,把系统分析阶段确定的逻辑模型向物理模型 ( 在计算机上的实现方法 ) 转化 。
系统设计阶段又可划分为:
概要设计 ( 总体设计,初步设计 ) 和 详细设计 两个阶段 。
1.4.1 概要设计
主要任务
1,将系统划分成模块 ( 最重要的任务 ) ;
2,决定每个模块的功能;
3,决定模块的调用关系;
4,决定模块间的接口;
5.进行数据库逻辑设计;
划分模块的主要依据:尽可能提高模块独立性模块独立性的两个定性度量标准,耦合性 和 内聚性 。
耦合性,表示模块间相互关联的程度。
模块间的耦合性的强弱取决于模块间接口的复杂性,
接口越简单,耦合性越低,模块独立性越好。反之,
模块独立性则差。存在以下 4种耦合:
1.数据耦合 两个模块彼此间通过参数交换信息,
而且交换的信息仅仅是数据。
2.控制耦合 传递的信息中有控制信息。
3.公共耦合 两个或多个模块通过一个公共数据环境相互作用。
4.内容耦合 一个模块访问另一个模块的内部数据或一个模块不通过正常入口而转入另一个模块内部( 高级语言已杜绝 )
这四种耦合中内容耦合的耦合程度最高,数据耦合的耦合程度最低。
内聚性,是指模块内部各成分之间联系的强弱。内聚性越好,模块内部各成分的联系强度越大,会增加可理解性、可维护性和可靠性。内聚可分为低、中、
高三类:
1.低内聚包括:
( 1) 偶然内聚 一个模块完成一组任务,这些任务彼此间既使有关系,关系也是很松散。
( 2) 逻辑内聚 一个模块完成的任务在逻辑上属于相同或相似的一类。
( 3) 时间内聚 一个模块包含的任务必须在同一段时间内执行
2.中内聚包括
( 1) 过程内聚 一个模块内的处理元素是相关的
,而且必须以特定次序执行 。
( 2) 通讯内聚 模块中所有元素都使用同一输入数据和 ( 或 ) 产生同一个输出数据 。
3,高内聚包括
( 1) 顺序内聚 一个模块内的处理元素和同一个处理功能密切相关,而且这些处理必须顺序执行 。
( 2)功能内聚 模块内所有处理元素属于一个整体,完成一个单一的功能。
概要设计阶段重要任务是设计 高内聚低耦合 的模块 。
1,层次图
描述系统结构采用的图形工具工资档案管理数据修改数据查询数据统计打印工资表录入更新删除按姓名查询组合查询按性别统计按年龄统计
2.HIPO图
注,以上两种图形工具在实际工作中经常配合使用。
3,结构图消 扣 扣款单费 款单 单 合计消费单扣款计算获得消费单计算扣款合计个人扣款
1.4.3 设计的准则根据人们长期的软件开发实践中积累的经验,在软件设计时应遵循以下 7条准则:
1,改进软件结构提高模块独立性 。 通过模块分解与合并,力求降低耦合提高内聚 。
2,模块规模应适中,一个利于理解的模块通常不要超过 60行 。
3,深度,宽度,扇入和扇出都应适当 。 深度表示软件结构中控制的层数,宽度是软件结构内同一个层次上的模块个数的最大值 。 扇出数是一个模块直接调用的模块数目 。 扇入数是一个模块被多少个模块调用 。 好的系统中模块的平均扇出数通常是 3或 4( 扇出的上限通常是 5— 9) 。 好的软件结构中通常顶层扇出比较高,中层扇出较少,底层模块有较高的扇入 。
4,模块的作用域应在控制域之内。模块的作用域为模块内一个受判定影响的所有模块的集合。模块控制域是这个模块本身以及所有直接或间接从属于他的模块的集合。
5,力争降低模块接口的复杂度。
6,设计单入口和单出口的模块。这是结构化程序设计的基本要求。
7,模块的功能应能预测。既对给定的输入应产生相同的输出。