软件工程(十)

启发式规则
人们在开发软件的长期实践中积累了丰富的经验,总结这些经验得到一些启发规则。
常见启发规则:
1. 改进软件结构提高模块独立性(通过模块合并或分解)
2.模块规模应该适中 (一个模块包含的语句超过30条语句,理解程度下降)
3. 深度、宽度、扇出和扇入都应适当
深度:软件结构中控制的层数;(深度和程序长度应有粗略的对应关系)
宽度:软件结构内同一个层次上的模块总数的最大值;(宽度越大,系统越复杂)
扇出:一个模块直接控制(调用)其它模块的数目;(平均3-4)
扇入:一个模块被其它模块调用的数目。
这里写图片描述

《概要设计说明书》的一般结构:
1、总述:需求或目标(讲一下事情的起源)、环境、局限; —-主要交代背景与大环境。(非重点)
2、总体设计:从全局的角度说一下 总体结构、功能、处理流程、有哪些模块、模块间的关系; —-使读者有“全局”观,为下一步深入各个模块做好准备。
3、外部接口:总体说明外部用户、软、硬件接口(可用资源);
4、模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块或系统的接口),处在什么逻辑位置、物理位置; (重点)
5、数据结构:逻辑结构、物理结构(存储在数据表中,还是缓存中); 6、容灾设计:出错信息、出错处理; (可选)
7、监控设计:运行模块组合、控制、时间;(可选)
8、用户界面设计:(可选)
9、安全设计:(可选)
11、制定规范(附录): 设计原则,代码规范、接口规约、命名规则。–是小组协同开发的基础
对扇出、扇入过大的改进:
这里写图片描述

4..模块的作用域应该在控制域之内
作用域:受该模块内一个判定影响的所有模块的集合。
控制域:模块本身以及所有从属于它的模块的集合。
这里写图片描述

  1. 力争降低模块接口的复杂度
    模块接口复杂是软件发生错误的一个主要原因。应仔细设计模块接口,使的信息传递简单并且和模块的功能一致。

    6.设计单入口、单出口的模块
    警告软件工程师不要使用内容耦合

7.模块功能应该可以预测 (也应防止模块功能过分局限)

图形工具
层次图和HIPO图
层次图用来描述软件的层次结构。
这里写图片描述

HIPO图是:“层次图+输入/处理/输出图”
这里写图片描述

结构图
结构图是进行软件结构设计的另一个有力工具。
其中:
方框:代表一个模块,框内注明模块的名字或主要功能。
箭头(直线):表示模块的调用关系。
这里写图片描述

这里写图片描述

概要设计说明书
该说明书是概要实际阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。

参考资料:

http://wenku.baidu.com/view/3f23313afe4733687e21aab7.html?from=search


欢迎关注我的微信个人订阅号
这里写图片描述
每天多学一点0.0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值