1、第五讲 软件系统概要设计,模块化设计的基本原理 表示软件结构的几种方法 软件设计的启发规则 概要设计的主要任务 概要设计评审,为什么要采用模块化设计方法,用层次化的概念方式构造和分析软件,5.1 模块化设计的基本原理,几个重要的概念,模块的独立性 模块之间相互依赖关系少,最好是没有。 耦 合 模块之间相互关系制约程度的一种度量。 如:处理的对象数据耦合 判别的对象控制耦合等 内 聚 同一模块内部各个元素之间相互关系制约程度的一种度量。理想的内聚是指模块只完成一个功能。,“封装”或“隐藏” 一个模块,意味着什么呢? 模块将独立地进行编写和调试。 与其他程序段的关系将是调用和被调用的关系,或者是通
2、过彼此相关的数据发生联系。 除非通过接口,这个程序段所包含的所有信息是不可见的。既对这些信息做到了“封装”或“隐藏”。 它使得软件的变动只涉及少数的几个相关模块,所以模块化能够提高软件的可修改性。,几个重要的概念,一个矩形框代表一个模块;模块调用关系是上方的调用下方的。 模块扇出数目: 是一个模块直接控制(调用)的模块数目。 模块扇入数目: 是指直接调用它的上级模块的多少。,模块层次图:,5.2 表示软件结构的几种方法,模块IOP表:,HIPO图 : 在模块层次图的基础上,为每一个模块增加一张IPO表 。,1、高内聚性、低耦合性,增强模块独立性 : 模块之间相互依赖关系少,最好是没有 2、模块
3、规模应该适中 : 编码角度:最好不超过60行 心理学角度:最好不超过30行 3、“扇出”和“扇入”要适当 : 扇出通常是3或4;9 扇入越大上级模块数目越多,有好处,5.3 软件设计的启发规则(7条),4、作用范围应该小于或等于控制范围 : 作用范围:该模块内输出结果可能影响到的所有模块。 控制范围:该模块本身以及所有那些直接或间接由它调用或涉及的所有模块。 5、降低模块接口的复杂度 : 保正传递的信息简单,并且和模块的功能一致,6、单入口单出口原则 : 7、模块功能应该可以预测 只要输入的数据相同就产生同样的输出,这个模块的功能就称作是可以预测的黑盒子,通过仔细分析软件需求规格说明,对软件功
4、能进行适当地分解,划分出各个功能模块,由这些模块组建出实现目标功能的体系结构。 建造软件模型,事实上,在任何软件系统的设计中,一定存在那样一个或一组相互制约的功能模块,它们之间界限的划分、它们与其它功能模块的界限的划分影响了整个系统的体系结构。,5.4 概要设计的主要任务,“汽车仪表盘”设计案例,车轮转动信号(转/秒)速度增减f(1秒前平均转/秒,当前(转/秒) 当前燃料存量信号(升)公里/升f(启动时油存量,当前油存量,公里/小时) 当前燃料存量信号(升)当前油存量f(存量信号,10秒内有效采样的均值),车轮转动信号(转/秒)-公里/小时f(转/秒); 车轮转动信号(转/秒)-总里程f(累加
5、基数,转/秒) 车轮转动信号(转/秒)-超速否f(公里/小时,55公里/小时),数据输入与目标 需求(输出)的 换算关系:,数据流图如下,包括: 1)、在系统目标约束范围内,从技术和工程过程管理的思想角度,确认用户的要求能否实现。 2)、在设计方案完成时,要制定相应的方案实施工作计划,明确方案各部分的进程性关系及其必要的风险控制原则。(如工程里程碑) 3)、设计方案最终将撰写成规范的设计文档(文档模板及其体系、图形符号标准等)。,概要设计需要完成的主要任务有3个方面,(1)、制定规范 (管),系统体系结构设计的 工作内容: 1、依据软件需求,将系统功能划分成模块的层次结构。 2、划分模块的同时
6、,确定模块涉及的数据及算法所必需的数据逻辑结构。 3、描述模块之间的调用和协同关系,由此确定模块之间的接口。 4、设计并优化数据处理算法。 5、努力提高软件系统的可维护性能。,(2)、系统体系结构设计 (技),3个层次: 系统初始层专用功能层公用功能层,包括: 概要设计说明书。采用目标系统领域熟悉的语言和方式,与面向编程技术的语言和方式相结合,撰写出目标系统解决问题的总体功能目标、分解后的功能模块体系和与之对应的运行界面设计、数据(库)设计、数据处理方式和算法设计、出错处理算法和消息设计等。,(3)、撰写概要设计文档 (管、技),概要设计文档 (管、技) 还包括: 数据库设计说明书。 用户手册
7、。 测试计划。,内容包括: 1)确认对软件需求的全面覆盖;其方案的风险在哪里。 2)确认方案是否实用,其他方案怎样,模块是否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内技术评审 3)确认软件系统方案之维护性能是否方便、可行,是否满足了目标需求。,5.5 概要设计的评审,4)确认内部接口与外部接口是否已经明确定义并恰当地进行了说明。 5)确认团队成员理解方案文档并进行编程实现没有障碍,否则改进。 6)确认方案的可测试性、能否保证软件具有良好的质量特征。 7)确认现有技术条件下和预算范围内能否按时完成,明确进度的、质量的、商务合同的等等方面的里程碑。,认识过程包括:感觉、知觉、记忆、思维、想象等。,课程小结,第一:,第二:,系统分析与设计阶段是有预定目的、有计划的主动知觉过程。,讨论课任务,第八周(周三前月日)交: “戴尔公司某业务流程图与该业务的数据流图” 周三讨论课,我们将讨论业务流程图与数据流图的描述方法; “某业务流程”是指某一个比较有代表性的、比较复杂的业务,一般应该包含个以上不同部门的数据处理功能(包括数据的增加、修改、删除、查询、保存等功能),具有多个软件操作界面、多个数据存储文件(不同用户被限定不同的使用权限)的业务流程。,