文档详情

4第5章-总体设计.ppt

发布:2017-05-07约字共67页下载文档
文本预览下载声明
用户命令交互子系统的SC 用户执行模块 读用户命令 命令处理 密码处理 控制器 现用/非现用 系统 系统设置 控制器 读系统 数据 建立配 置文件 显示信息 与状态 * 用户命令交互子系统DFD 读用户 命令 密码命令 密码 显示信息 系统参数数据 用户 命令 读系统 数据 配置信息 显示信息 和状态 命令 分析处理 读 密码 命令类型 开/关 命令 建立配 置文件 原配置 数据 激活/非活动系统 与文件中 密码比较 格式化 配置数据 配置命令 检验信 息过程 重试信息 四位数字 检验信息 检验信息 A/D信息 格式化配置 数据 格式化 配置数据 * 用户命令交互子系统的SC 用户执行模块 读用户命令 命令处理 密码处理 控制器 现用/非现用 系统 系统设置 控制器 读系统 数据 建立配 置文件 显示信息 与状态 读 密码 用文件 比较密码 密码输出 控制器 产生 无效信息 * 思考 用面向数据流方法设计前面讲述的工资支付系统的软件结构。 * 需求分析 完整的数据流图 * 总结 总体设计的目的、任务、输出成果; 总体设计应遵循的原理---了解,但需会应用 模块独立性的度量标准; 耦合程度和内聚程度度量; 面向数据流的设计方法; * * 软件设计任务---- 1、制定规范:在进入软件开发阶段之处,首先应为软件开发组制定在设计时应该遵守的标准,以便协调组内各成员的工作。它包括: (1)阅读和理解SRS(软件需求说明书),在给定预算范围内和技术现状下,确认用户的要求能否实现; (2)根据目标确定合适的设计方法; 等; 2、软件系统结构的总体设计:在需求分析阶段,已经从系统开发的角度出发,把系统功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计。在设计阶段,基于这个功能的层次结构把个各部分组合起来成为系统。它包括: (1)采用某种设计方法,将一个复杂的系统按功能划分成模块的层次结构。 (2)确定每个模块的功能,建立与已确定的软件需求的对应关系; (3)确定模块间的调用关系; (4)确定模块间的接口,即模块间传递的信息;设计接口的信息结构; 等。 3、处理方式设计: (1)确定为实现软件系统的功能需求所必须的算法,评估算法的性能; (2)确定满足软件系统的性能需求所必须的算法和模块间的控制方式。如,响应时间、吞吐量(即单位时间内能够处理的数据量)、精度(在进行科学计算或工程计算时的运算精度的要求)等。 4、数据结构设计:确定软件涉及的文件系统的结构以及数据库的模式,进行数据完整性和安全性的设计。它包括: (1)确定输入、输出文件的详细的数据结构; (2)结合算法设计、确定算法所必须的逻辑数据结构极其操作等; 5、 可靠性设计:也叫质量设计。在使用计算机的过程中,可靠性是很重要的,可靠性不高的软件会使得运行结果不能使用而造成严重损失。 模块AW之间为控制耦合因为两个模块间传递的Signal值是用作控制信号的开关量。改善方法就是把W模块调用的函数直接写入A模块中,然后删除B模块。 (1)将被调用模块内的判定上移到调用模块中进行 (2)被调用模块分解成若干单一功能模块 过程内聚性的例子:假设有一个子程序,它产生读取雇员的名字,然后是地址,最后是它的电话号码。这种顺序之所以重要,仅仅是因为它符合用户的要求,用户希望按这种顺序进行屏幕输入。另外一个子程序将读取关于雇员的其它信息。这个子程序是过程内聚性,因为是由一个特定顺序而不是其它任何原因,把这些操作组合在一起的。 与以前一样,如何把它变为功能内聚性的答案仍然是把它分为几个部分,并把这几部分分别放入程序中。要保证调用子程序的功能是单一、完善的。调用子程序应该是诸如GetEmployeeData()这样的子程序,而不该是像GetFirstPartofEmployeeData()这类的子程序。可能还要改动其余读取数据的子程序。为得到功能内聚性,改动几个子程序是很正常的。 假设有一个按给出的生日计算雇员年龄、退休时间的子程序,如果它是利用所计算的年龄来确定雇员将要退休的时间,那么它就具有顺序内聚性。而如果它是分别计算年龄和退休时间的,但使用相同生日数据,那它就只具有通讯内聚性。 确定程序存在哪种不良内聚性,还不如确定如何把它设计得更好重要。怎样使这个子程序成为功能内聚性呢?可以分别建立两个子程序,一个
显示全部
相似文档