南邮 软件工程-Unit_03-0_结构化分析和设计方法.ppt
文本预览下载声明
结构化设计 软件结构图 表示: 模块 模块间的调用关系 模块间的信息传递 精确表达系统模块组织结构, 反映模块间的相互联系(层次关系、调用关系) * 结构化设计 DFD映射为软件结构图 * 结构化设计 DFD映射为软件结构图 * 结构化设计 DFD映射为软件结构图 * 结构化设计 设计原理 模块化:模块化:把一个复杂的大型程序划分成若干个模块,每个模块完成一个子功能,把这些模块汇总起来组成一个整体,可以完成指定的功能而满足问题的要求。 模块:单独命名的可以通过名字访问的数据说明、可执行语句等程序对象的集合。 模块的外部特征:输入、输出、功能 模块的内部特征:内部数据和程序代码 信息隐蔽:一个模块内所包含的信息(数据和代码),对于不需要这些信息的模块不能访问 模块独立性:软件系统中的每个模块只完成一个相对独立的子功能,且与其它模块间的接口简单 * 结构化设计 结构化设计目标:高内聚、低耦合 定性度量:内聚与耦合 内聚:一个模块内各组成元素间彼此联系的紧密程度 耦合:不同模块之间相互联系的紧密程度,影响因素: 模块间的联系方式(调用方式) 模块间的接口性质(由信息性质决定) 数据型、控制型、描述型标志、混合型 接口上通过的数据量 * 结构化设计 耦合 无耦合 数据耦合:模块间仅仅通过参数交换数据信息,是松散耦合,模块间独立性较强。 特征耦合:模块间通过参数传递整个或部分数据结构,但只需要部分数据元素。 控制耦合:模块间传递控制信息,修改模块,将影响到控制模块,降低模块的独立性。 公共耦合:模块间使用了公共数据,如全程变量、共享通信区、内存的公共覆盖区等,降低系统的可读性、可修改性和可靠性。 内容耦合:访问其它模块的内部数据; 不通过正常入口进入其它模块内部; 代码重叠;模块有多个入口(多功能) * 结构化设计 内聚 偶然内聚:模块成分关系松散、功能模糊 如:重复代码的组织 逻辑内聚:模块完成相同或相似功能 如:参数控制打印不同格式的报表 时间内聚:同一时间完成无关任务,如:初始化 过程内聚:成分相关、特定顺序 通信内聚:成分通过公共数据发生关系 顺序内聚:每个处理对应一个功能,处理有序 功能内聚:成分属于一个整体,完成同一功能 * 结构化设计 设计原则 提高模块独立性,目标:高内聚低耦合 以数据耦合为主,特征耦合为辅,少用控制耦合,限制公共耦合,杜绝内容耦合 模块规模适中 模块的扇入、扇出适当 “腰鼓”形:顶层扇出大、中间扇出较小、底层扇入大 作用域保持在控制域中 作用域:受模块内一个判定影响 的模块的集合 控制域:模块本身及其直接或间 接下属模块的集合 * 结构化设计 程序设计:详细设计,模块内的算法设计 工具: 图形 NS图,流程图 表格 判定表 语言 伪码 * 结构化编程 程序源码 * 结构化分析和设计方法 王传栋 南京邮电大学计算机学院 传统视角的软件生命周期 问题定义 可行性研究 结构化分析 结构化设计 结构化的程序设计 测试 运行和维护 * 问题定义 任务: 确定“软件要解决的问题是什么?” 系统分析员应该提出关于问题性质、工程目标和工程规模的书面报告,并且需要得到客户对这份报告的确认。 结果: 《问题目标和规模报告书》 * 可行性研究 回答“问题定义阶段定义的问题是否可行?” 不是解决问题,而是确定问题是否能做,是否值得做 最短时间、最小代价 4个方面 技术可行性:技术是否先进(人员素质),能否实现系统目标 经济可行性:经济效益、社会效益和技术进步 操作可行性:系统的操作方式在用户范围内是否可行 法律可行性:责任问题(合同、专利版权等),有无违法? 结果:《可行性研究报告》 阐述目标和规模、推荐方案、数据流图表示的系统高层逻辑模型、系统成本和效益的估计、开发计划 * 结构化分析 分析系统的综合要求 功能要求:What,No How 性能要求:响应时间、存储容量、健壮性、安全性等。 运行要求:软硬件环境 未来要求:可能的扩充 数据要求:系统处理的数据及其联系 手段:分解和抽象 分解:将复杂的问题拆成若干小问题再分别解决的过程 抽象:先考虑问题最本质的属性,暂时略去细节,再逐层添加细节,直至达到必要的详细程度 结果:《软件的需求规格说明书》 * 结构化分析 需求分析:是发现、求精、建模、规格说明和复审的过程,是软件开发者和用户相互作用的过程。 发现:需求获取 求精:需求提炼 建模:模型表达 ER图:表达数据模型 数据流图DFD:表达功能模型 状态转换图:表达行为模型 数据字典:组织系统元素 规格说明:需求描述 复审:需求验证 * 结构化分析 数据流图:建立功能模型 提供了功能建模机制也提供了信息流建模机制 是系统逻辑功能的图形表示,没有任何具体的物理元素 描绘了信息在软件中流动和被处理
显示全部