第3章结构化设计.ppt
《第3章结构化设计.ppt》由会员分享,可在线阅读,更多相关《第3章结构化设计.ppt(73页珍藏版)》请在三一文库上搜索。
1、第3章 结构化设计,系统设计包括概要设计和详细设计。 概要设计方案选择、结构设计、数据库设计和制定测试计划。 详细设计是要完成所有设计的细节,包括过程设计、系统接口以及数据设计。,3.1.1 概要设计步骤,1确定设计方案 1)设想供选择的方案 方法:需求分析阶段得出的数据流图是总体设计的出发点,数据流图的处理进行归并分组 2)推荐最佳方案 考虑:系统流程、组成系统的物理元素清单、成本/效益、进度计划,例如:假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应者和
2、次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。,3.1.1 概要设计步骤,3.1.1 概要设计步骤,方案1:,采购员,定货报表,事务,1 接收事务,4产生报表,仓库 管理员,D2 定货信息,D1 库存清单,2 更新库存清单,3 处理定货,库存 信息,事务,3.1.1 概要设计步骤,方案2,采购员,定货报表,事务,1 接收事务,4 产生报表,仓库 管理员,D2 定货信息,D1 库存清单,2 更新库存清单,3 处理定货,库存 信息,事务,2软件结构设计 1)功能分解 2)设计软件结构 3数据文件设计:数据库
3、设计,数据代码设计 4测试方案设计,3.1.1 概要设计步骤,堆排序的算法: void HeapSort(SeqIAst R) BuildHeap(R); for(i=n;i1;i-) R0=R1; R1=Ri;Ri=R0; Heapify(R,1,i-1); ,主控模块,HeapSort,BuildHeap,Heapify,3.1.1 概要设计步骤,5.编写总体设计文档 总体设计说明书(包括系统实现方案和软件模块结构); 测试计划(包括测试策略、测试方案、预测的测试结果、测试进度计划等); 用户手册(根据总体设计阶段的结果,修改初步的用户操作手册); 详细的工程计划; 数据库设计结果。 6审
4、查和复审,3.1.2 详细设计的基本任务,1、数据结构设计和数据库设计 2、接口设计 3、过程设计 4、代码设计 5、输入输出设计 6、网络设计:拓扑结构 7、评审:对处理过程的算法和数据库的物理结构都要评审。,1)功能分解 2)设计软件结构,3.2 软件结构设计,1.模块: 能独立完成一定功能的单元,基本属性:名称(计算平均成绩)、功能、接口、逻辑、状态 基本属性:名称(计算平均成绩)、功能、接口、逻辑、状态,根据调用关系把分割好的合理模块组织起来,1.减少复杂性,例如:A1000行,B2000行,B是A的2倍, 同时B中的前1000和后1000之间的关系处理又会产生附加的时间开销。因此 C
5、(p1)C(p2),E(p1)E(p2), E(p1+p2)E(p1)+E(p2),3.2.2 模块化,2提高软件的可靠性 模块调试及测试,接口测试 3提高可维护性 修改或者增加以模块为单位 4有助于软件开发工程的组织管理 5有助于实现信息隐藏和局部化,3.2 软件结构设计,3.2.1 软件结构设计的基本原理: 1.模块: 能独立完成一定功能的单元,如Delphi的“BeginEnd”,C,C+和Java,过程,函数,宏,面向对象的对象,对象内的方法 基本属性:名称(计算平均成绩)、功能、接口、逻辑、状态 2.抽象和逐步求精: 3.信息隐藏和局部化: 模块的实现细节和局部数据结构,对其他模块不
6、需要的信息进行隐藏,1、模块的大小:,3.2.3 模块独立性,2、模块之间的联系程度(耦合性):是模块之间依赖程度的度量。 3、模块内元素联系程度(内聚性):内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。 4、模块信息的隐蔽程度,3.2.3 模块独立性,耦合:耦合的强度取决于接口的复杂程度,即: 调用方式;指针、普通、结构体,数组等 传递信息的类型和数量; 耦合的类型: 数据耦合 控制耦合 特征耦合 公共耦合 内容耦合,3.2.3 模块独立性,数据耦合:模块间通过参数 传递基本类型的数据,3.2.3 模块独立性,控制耦合:传递的是控制信息, 形式上还是数据,模块B是 打印会
7、计 收支帐目 统计表, 可以是日 报表、 月报表、 年报表,公共耦合:两个模块都能够存取同一公共数据环境,包括变量、公共内存缓冲区、物理设备,慎用公共数据区和全程变量!,3.2.3 模块独立性,特征耦合:被调用模块可以使用数据多于实际需要的数据,可能导致数据访问失控,内容耦合:一个模块与另一模块的内容直接发生联系。,3.2.3 模块独立性,如 参数调式时指针传递 、引用传递,耦合性的设计原则: 尽量使用数据,少用特征和控制耦合 调用方式:控制公共环境,不采用地址引用(内容耦合) 调用的参数传递13个,内聚(cohesion):一个模块内各个元素彼此结合的紧密程度。按照内聚强度从低到高有以下几种
8、类型 偶然内聚(concidental cohesion) 逻辑内聚( logical cohesion): 时间内聚(temporal cohesion) 过程内聚(procedural cohesion) 通信内聚(communicational cohesion) 顺序内聚(sequential cohesion) 功能内聚(functional cohesion),3.2.3 模块独立性,偶然内聚:一个模块完成多个完全不相关的功能。,3.2.3 模块独立性,逻辑内聚( logical cohesion):一个模块完成的任务在逻辑上属于相同或相似的一类任务。,3.2.3 模块独立性,时间
9、内聚(temporal cohesion):一个模块完成的任务必须在同一段时间内完成。,3.2.3 模块独立性,四季度结算、年终结算、 下季度支出为0,顺序内聚(sequential cohesion):各成分顺序执行,前一个成分的输出是后一个成分的输入。,3.2.3 模块独立性,顺序内聚是数据流从一个处理元到另外处理元;过程是控制流从一个动作到另外动作,过程内聚:处理元素是相关,必须以特定次序执行,导入学生报名信息考场安排,通信内聚:一个模块内包含需多个功能,并且这些功能的完成都依赖于相同的公用数据,即同一数据文件。各个成分合用同一个数据,或者产生同一个输出数据。,3.2.3 模块独立性,功
10、能内聚(functional cohesion):所有成分共同完成一个单一的功能。容易维护。,3.2.3 模块独立性,3.2.4 模块设计启发规则,1、尽力提高模块独立性:高内聚、低耦合 2、注意模块的可靠性、通用性、可维护性、简单性 3、模块的大小应适中规模 4、模块的深度、宽度、扇出和扇入应适当,深度:指软件结构中模块的层数。 宽度:指软件结构内同一层次的模块数的最大值。 扇出:指一个模块所调用的模块数。 扇入:指有多少上级模块调用它,3.2.4 模块设计启发规则,通常设计得较好的软件结构,顶层扇出高,中间扇出较少,下层调用公用模块。 5、接口简单、清晰,3.3 软件结构设计的图形工具,3
11、.3.1 层次图和HPIO图 3.3.2 结构图(Structured Chart ,SC),3.3.1 层次图或HPIO图(1),IBM公司发明的HIPO图:与文件编制技术,最初只用于文档编写的格式要求 层次图 + 输入 / 处理 /输出图 (H图) + (IPO图) ( Hierachy Input Process Output ),3.3.2 结构图(SC)(1),SD方法在概要设计中的主要表达工具,约定,编辑学生记录,读学生记录,学生数据,无此学生,学号,不加区分的数据,数据信息,控制信息,3.3.2 结构图(SC)(2),SC中的简单调用,B,A,C,x,y,z,z,3.3.2 结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 设计
链接地址:https://www.31doc.com/p-3119567.html