首页 第05章

第05章

举报
开通vip

第05章null第四章 总体设计第四章 总体设计第4章 总体设计第4章 总体设计 可行性分析 -- Why? Who? 需求分析 -- What? 设计 -- How do? 总体设计 (概要设计)确定软件的结构以及 各组成成分(子系统或模块)...

第05章
null第四章 总体 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 第四章 总体设计第4章 总体设计第4章 总体设计 可行性分析 -- Why? Who? 需求分析 -- What? 设计 -- How do? 总体设计 (概要设计)确定软件的结构以及 各组成成分(子系统或模块)之间的相互关系 设计 详细设计确定模块内部的算法和数据结构, 产生描述各模块程序过程的详细文档。 内容提要内容提要总体设计的必要性 总体设计的任务 总体设计过程 总体设计原理 启发式规则 描绘软件结构的图形工具 面向数据流的设计方法总体设计的任务总体设计的任务划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。 设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。null总体设计的必要性: 可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。4.1 设计过程4.1 设计过程总体设计过程通常由两个主要阶段组成: -- 系统设计阶段,确定系统的具体实现方案; -- 结构设计阶段,确定软件结构。典型的总体设计过程包括下述9个步骤:典型的总体设计过程包括下述9个步骤:1. 设想供选择的方案 2. 选取合理的方案 3. 推荐最佳方案 4. 功能分解 5. 设计软件结构 6. 设计数据库 7. 制定测试 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 8. 书写文档 9. 审查和复审系统设计阶段1系统设计阶段1设想供选择的方案 分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。 需求分析阶段得出的数据流图是总体设计的极好的出发点。系统设计阶段2系统设计阶段2选取合理的方案 从前一步得到的一系列供选择的方案中选取低成本、中等成本和高成本的三种方案。 对每个合理的方案应该准备下列4份资料: (1) 系统流程图; (2) 组成系统的物理元素清单; (3) 成本/效益分析; (4) 实现这个系统的进度计划。系统设计阶段3系统设计阶段3推荐最佳方案 分析员综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。 用户和有关的技术专家应该认真审查分析员所推荐的最佳系统。 如果该系统确实符合用户的需要,并且是在现有条件下完全能够实现的,则应该提请使用部门负责人进一步审批。结构设计阶段1结构设计阶段1功能分解 设计出组成这个系统的所有程序和文件(或数据库)。 对程序(特别是复杂的大型程序)的设计,通常分为两个阶段完成: (1) 结构设计:确定程序由哪些模块组成及模块之间的关系,它是总体设计阶段的任务; 从实现角度把复杂的功能进一步分解细化,经过分解之后应该使每个功能对大多数程序员而言都是明显易懂的。 用IPO图或其他适当的工具简要描述细化后每个处理的算法。 (2) 过程设计:确定每个模块的处理过程,它是详细设计阶段的任务。 把模块组织成良好的层次系统,最下层的模块完成最具体的功能。软件结构可以用层次图或结构图来描绘。 如果数据流图已经细化到适当的层次,则可以直接从数据流图映射出软件结构,即面向数据流的设计方法。结构设计阶段2结构设计阶段2设计数据库 软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。 制定测试计划 在软件开发的早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。结构设计阶段3结构设计阶段3书写文档 (1) 系统说明 系统设计阶段得到的文档。 (2) 初步的用户手册 修改在需求分析阶段产生的初步的用户手册。 (3) 测试计划 包括测试策略,测试方案,预期测试结果,测试进度计划等。 (4) 详细的实现计划 (5) 数据库设计结果null 概要设计 说明书 房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载 (GB8567—88)结构设计阶段4结构设计阶段4审查和复审 对总体设计的结果进行严格的技术审查; 在技术审查通过之后再由使用部门的负责人从管理角度进行复审。4.2 设计原理4.2 设计原理 模块化 抽 象 逐步求精 信息隐藏和局部化 模块独立模块化模块化模块:由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它。模块是构成程序的基本构件。 模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 模块化的根据:“各个击破”的理论,即把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。模块化2模块化2例:设函数C(x)定义问题x的复杂程度,函数E(x)确定解决问题x需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2),显然E(P1)>E(P2)。 根据人类解决一般问题的经验,另一个有趣的规律是C(P1+P2)>C(P1)+C(P2) 也就是说,如果一个问题由P1和P2两个问题组合而成,那么它的复杂程度大于分别考虑每个问题时的复杂程度之和。 综上所述,得到下面的不等式E(P1+P2)>E(P1)+E(P2)模块化3模块化3模块化和软件成本的关系模块化4模块化4模块化的好处 可以使软件结构清晰,不仅容易设计也容易阅读和理解。 有助于提高软件的可靠性,因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使软件容易测试和调试。 能够提高软件的可修改性,因为变动往往只涉及少数几个模块。 有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。抽象抽象抽象:把在现实世界中一定事物、状态或过程之间存在着某些相似的方面(共性) 集中和概括起来,暂时忽略它们之间的差异。 化分抽象层次是处理复杂系统的有效方法 最高层次:使用问题环境的语言,以概括的方式叙述问题的解法; 较低抽象层次:采用更过程化的方法,把面向问题的术语和面向实现的术语结合起来叙述问题的解法; 最低的抽象层次:用可直接实现的方式叙述问题的解法。抽象2抽象2软件过程的抽象化过程 在可行性研究阶段:软件作为系统的一个完整部件; 在需求分析期间:软件解法使用在问题环境内熟悉的方式描述的; 由总体设计向详细设计过渡时:抽象的程度也就随之减少了; 源程序写出来以后:也就达到了抽象的最低层。逐步求精逐步求精逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。 为什么要逐步求精:一个人在任何时候都只能把注意力集中在(7±2)个知识块上( Miller法则)。 逐步求精的作用:帮助软件工程师把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说虽然是必要的,然而目前还不需要考虑的细节,这些细节将留到以后再考虑。 抽象与求精的关系:是一对互补的概念。抽象看作是一种通过忽略多余的细节同时强调有关的细节,而实现逐步求精的方法;求精则帮助设计者在设计过程中逐步揭示出低层细节,即自顶向下逐步细化。4.2.4 信息隐藏和局部化4.2.4 信息隐藏和局部化信息隐藏原理指出:设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。 局部化的概念和信息隐藏概念是密切相关的。 所谓局部化:是指把一些关系密切的软件元素物理地放得彼此靠近。 -- 在模块中使用局部数据元素是局部化的一个例子。显然,局部化有助于实现信息隐藏。 如果在测试期间和以后的软件维护期间需要修改软件,那么使用信息隐藏原理作为模块化系统设计的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 就会带来极大好处。4.2.5 模块独立4.2.5 模块独立 模块的独立性是指软件系统中每个模块只 涉及软件要求的具体的子功能,而和软件系统 中其他模块的接口是简单的。模块之间的 相对独立性 的度量 模块功能强 度的度量 模块的独立程度可以由两个定性标准度量1. 耦合1. 耦合 耦合性是程序结构中各个模块之间相互关联的度量 它取决于各个模块之间接口的复杂程度、调用模块的方 式以及那些信息通过接口。低 高弱 强耦合性模块独立性(1) 非直接耦合(1) 非直接耦合两个模块没有直接关系(模块1和模块2), 模块独立性最强。模块1模块2模块3模块4(2) 数据耦合(2) 数据耦合 一模块调用另一模块时,被调用模块的输入、输出都是简单的数据(若干参数)。 属松散耦合。 开发票计算水费单价 数量金额(3) 标记耦合(特征耦合)(3) 标记耦合(特征耦合) 如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系, 则称这两个模块间存在标记偶合。计算水电费计算水费计算电费住户情况水费电费住户情况“住户情况”是一个数据结构,图中模块都与此数据结构有关.“计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合.(4) 控制耦合(4) 控制耦合 如果一个模块通过传送开关、标志、名字 等控制信息,明显地控制选择另一模块的功能 就是控制耦合。(5) 外部耦合(5) 外部耦合一组模块均与同一外部环境关联(例如, I/O模块与特定的设备、格式和通信协议相关联),它们之间便存在外部耦合。 外部偶合必不可少,但这种模块数目应尽量少。(6) 公共环境耦合(公共数据区耦合)(6) 公共环境耦合(公共数据区耦合) 一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。 公共数据区指: 全局数据结构 共享通讯区 内存公共覆盖区等 ABC公共数据区 公共耦合存在的问题: (1)软件可理解性降低 (2)诊断错误困难 (3)软件可维护性差, (4)软件可靠性差 (公共数据区及全程变量无保护措施) 慎用公共数据区和全程变量!!!(7) 内容耦合(7) 内容耦合A B一模块直接访问另一模块的内部信息 (程序代码或数据) A B 模块代码重叠Entry1 …… Entry2 …… 多入口模块不正常转入另一模块最不好的耦合形式!null以上给出了 7种耦合类型,这只是从耦合的机制上所做的分类,按耦合的强弱程度的排列只是相对的关系。但它给设计人员在设计程序结构时提供了一决策准则。实际上,开始时两个模块之间的耦合不只是一种类型,而是多种类型的混合。这就要求设计人员按照实际情况进行分析、比较和分析,逐步加以改进,以提高模块的独立性。总之,耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则: 尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。2. 内 聚 2. 内 聚 一个模块内部元素在功能上相互关联的强度设计目标:高内聚,模块在软件过程中完成单一的任务(1) 功能内聚 (Functional Cohesion)(1) 功能内聚 (Functional Cohesion)一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。 内聚性最强 (2) 信息内聚(Informational Cohesion)(2) 信息内聚(Informational Cohesion)这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。信息内聚模块可以看成是多个功能内聚模块的组合,并且达到信息的隐蔽。即把某个数据结构、资源或设备隐蔽在一个模块内,不为别的模块所知晓(3) 通信内聚(Communication Cohesion)(3) 通信内聚(Communication Cohesion)如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的。(4) 过程内聚(Procedural Cohesion)(4) 过程内聚(Procedural Cohesion)模块内各处理成分相关,且必须以特定次序执行读入 成绩单审查 成绩单统计 成绩打印 成绩读入并审查成绩单统计并打印成绩单(5) 时间内聚(Classical Cohesion)(5) 时间内聚(Classical Cohesion) 时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。 例如初始化模块和终止模块,系统结束模块、紧急故障处理模块等均是时间性聚合模块 。(6) 逻辑内聚(Logical Cohesion)(6) 逻辑内聚(Logical Cohesion)把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。(7) 巧合内聚(Coincidental Cohesion)(7) 巧合内聚(Coincidental Cohesion)当模块内各部分之间没有联系,或者即使有联系,这种联也很松散,则称这种模块为巧合内聚模块,它是内聚程度最低的模块。模块M中的三个语句没有任何联系 缺点:可理解性差, 可修改性差null内聚与耦合密切相关,同其它模块强耦合的模块意味者弱内聚,强内聚模块意味着与其它模块间松散耦合。 设计目标: 力争强内聚、弱耦合耦合、内聚与模块独立性关系: 耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。但耦合是直接的主导因素,内聚则辅助耦合共同对模块独立性进行衡量。4.3 启发规则4.3 启发规则改进软件结构提高模块独立性。 模块规模应该适中。 深度、宽度、扇出和扇入都应适当。 模块的作用域应该在控制域之内。 5. 力争降低模块接口的复杂程度。 6. 设计单入口单出口的模块。 7. 模块功能应该可以预测。启发式规则2启发式规则2改进软件结构提高模块独立性 通过模块分解或合并,力求降低耦合提高内聚。null模块规模应该适中 经验表明,一个模块的规模不应过大,最好能写在一页纸内(通常不超过60行语句)。 过大的模块往往需要进一步分解,一般说来,分解后不应该降低模块独立性。 过小的模块开销大于有效操作,而且模块数目过多将使系统接口复杂。 启发式规则3启发式规则3深度、宽度、扇出和扇入都应适当 深度:表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。 宽度:软件结构内同一个层次上的模块总数的最大值,宽度越大系统越复杂。 扇出:一个模块直接控制(调用)的模块数目,扇出过大意味着模块过分复杂,一个设计得好的系统的平均扇出通常是3或4(扇出的上限通常是5~9)。 扇入:表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多,但不能违背模块独立原理单纯追求高扇入。 软件结构中合理的扇出扇入:顶层扇出比较高,中层扇出较少,底层扇入到公共的实用模块中去(底层模块有高扇入)。null例子:避免平铺结构(减少扇出)例子:避免平铺结构(减少扇出)null启发式规则4启发式规则4模块的作用域应该在控制域之内 作用域:受该模块内一个判定影响的所有模块的集合。 控制域:模块本身以及所有直接或间接从属于它的模块的集合。启发式规则5启发式规则5力争降低模块接口的复杂程度 模块接口的信息传递简单并且和模块的功能一致。 接口复杂或不一致(即看起来传递的数据之间没有联系),是紧耦合或低内聚的征兆,应该重新分析这个模块的独立性。 设计单入口单出口的模块 不要使模块间出现内容耦合。 模块功能应该可以预测 只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。4.4 软件设计过程4.4 软件设计过程1. 制定规范 在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。包括: -- 阅读和理解软件需求说明书,确认用户要求能否实现,明确实现的条件,从而确定设计的目标,以及它们的优先顺序 -- 根据目标确定最合适的设计方法 -- 规定设计文档的编制标准 -- 规定编码的信息形式,与硬件,操作系统的接口规约,命名规则2. 软件系统结构的总体设计 基于功能层次结构建立系统 -- 采用某种设计方法,将系统按功能划分成模块的层次结构 -- 确定每个模块的功能 -- 建立与已确定的软件需求的对应关系 -- 确定模块间的调用关系 -- 确定模块间的接口 -- 评估模块划分的质量4.4 软件设计过程4.4 软件设计过程3. 处理方式设计 确定为实现系统的功能需求所必需的算法,评估算法的性能 确定为满足系统的性能需求所必需的算法和模块间的控制方式 周转时间 响应时间 吞吐量 精度 确定外部信号的接收发送形式4. 数据结构设计 确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计 确定输入,输出文件的详细的数据结构 结合算法设计,确定算法所必需的逻辑数据结构及其操作 确定对逻辑数据结构所必需的那些操作的程序模块(软件包)4.4 软件设计过程4.4 软件设计过程4. 数据结构设计(续) 限制和确定各个数据设计决策的影响范围 若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则 数据的保护性设计 防卫性设计:在软件设计中就插入自动检错,报错和纠错的功能 一致性设计: 保证软件运行过程中所使用的数据的类型和取值范围不变 在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏 冗余性设计:针对同一问题,由两个开发者采用不同的程序设计风格不同的算法设计软件,当两者运行结果之差不在允许范围内时,利用检错系统予以纠正,或使用表决技术决定一个正确结果。4.4 软件设计过程4.4 软件设计过程5.可靠性设计 可靠性设计也叫做质量设计 在运行过程中,为了适应环境的变化和用户新的要求,需经常对软件进行改造和修正。在软件开发的一开始就要确定软件可靠性和其它质量指标,考虑相应措施,以使得软件易于修改和易于维护。6.编写概要设计阶段的文档 概要设计阶段完成时应编写以下文档: 概要设计说明书 数据库设计说明书 用户手册 制定初步的测试计划4.4 软件设计过程4.4 软件设计过程7.概要设计评审 可追溯性:确认该设计是否复盖了所有已确定的软件需求,软件每一成份是否可追溯到某一项需求 接口:确认该软件的内部接口与外部接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内 风险:确认该设计在现有技术条件下和预算范围内是否能按时实现 实用性:确认该设计对于需求的解决方案是否实用 技术清晰度:确认该设计是否以一种易于翻译成代码的形式表达 可维护性:确认该设计是否考虑了方便未来的维护 质量:确认该设计是否表现出良好的质量特征 各种选择方案:看是否考虑过其它方案,比较各种选择方案的标准是什么 限制:评估对该软件的限制是否现实,是否与需求一致 其它具体问题:对于文档、可测试性、设计过程等进行评估5.5 描绘软件结构的图形工具5.5 描绘软件结构的图形工具1、层次图和HIPO图 IBM公司发明的HIPO图: 层次图 + 输入 / 处理 /输出图 (H图) (IPO图) (Hiberarchy Input Process Output) null正文加工系统的层次图null2、结构图(SC -- Structure Chart) 2、结构图(SC -- Structure Chart) Yourdon提出的结构图是进行软件结构设计的另一个有力工具。结构图和层次图类似,也是描绘软件结构的图形工具。 结构图反映程序中模块之间的层次调用关系和联系:它以特定的符号表示模块、模块间的调用关系和模块间信息的传递。null① 模块:模块用矩形框表示,并用模块的名字标记它。null② 模块的调用关系和接口:模块之间用单向箭头联结,箭头从调用模块指向被调用模块null③ 模块间的信息传递:当一个模块调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,以使被调用模块能够运行。而被调用模块在执行过程中又把它产生的数据或控制信息回送给调用模块。nullnull④ 在模块A的箭头尾部标以一个菱形符号,表示模块A有条件地调用另一个模块B。当一个在调用箭头尾部标以一个弧形符号,表示模块A反复调用模块C和模块D。4.6 面向数据流的设计方法 --- 结构化设计(SD - Structured Design)4.6 面向数据流的设计方法 --- 结构化设计(SD - Structured Design)面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。 面向数据流的设计要解决的任务,就是在需求分析的基础上,将表示系统逻辑模型的DFD图映射(Mapping)成软件系统结构的初始设计描述。目标系统的DFD SD目标系统的SCnull数据流可以分为两种类型: 1)变换型数据流 2)事务型数据流 4.6.1变换流与事务流null一、变换流 具有较明确的输入、变换(或称主加工)和输出界面的数据流图称为变换型数据流图。 如图所示,该变换中心可以理解为数据的加工和处理程序。 null 事务型数据流图中存在一个事务中心(也就是数据处理、加工中心),它将输入分离成若干个发散的数据流,形成许多活动路径,并根据输入值选择其中一条路径。 二、事务流null 通常,一个实际系统的数据流图是变换型和事务型两种类型的混合体。 如图所示,中间的子块属事务型数据流,如果把中间子块视为一个处理整体的话,整个程序属变换型程序。 null面向数据流设计软件结构的基本步骤有七步: 1)复审并精化数据流图; 2)确定数据处理流图的类型; 3)确定变换中心或事务中心; 4.6.2 面向数据流设计的步骤null4)将数据流图映射成软件模块结构图,设计出该数据流图对应的第一层模块结构; 5)基于数据流图逐步分解,设计下层模块; 6)运用模块设计和优化准则优化软件结构; 7)描述模块的接口。null在系统结构图中的模块在系统结构图中的模块传入模块 ─ 从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输入数据流。 传出模块 ─ 从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出数据流。变换模块 ─ 它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。它加工的数据流叫做变换数据流。 协调模块 ─ 对所有下属模块进行协调和管理的模块。变换型系统结构图变换型系统结构图变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。 相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出等三部分组成。null事务型系统结构图事务型系统结构图它接受一项事务(输入数据),根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。 在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务处理模块执行。各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。null变换分析变换分析变换分析方法由以下四步组成: 1) 重画数据流图; 2) 区分有效(逻辑)输入、有效(逻辑)输出和中心变换部分; 3) 进行一级分解,设计上层模块; 4) 进行二级分解,设计输入、输出和中心变换部分的中、下层模块。null(1)在 DFD 图上标出逻辑输入、逻辑输出和变换中心的分界变换中心c,e 逻 辑输入w,u 逻 辑输出-------- 具有变换型数据流图null(2) 完成第一级分解McMAMTMEC,eC,eU,wU,w变换中心 顶 层第一层 第一级分解后的 SC 图(含协调、传入、变换、传出模块)null第一级分解后的 SC 图(另一种画法)变换中心nullMA对逻辑输入的分解CEBAD变换中心ME对输出的分解WUVMTQPR eC,prU,w对变换中心加工的分解 prw,u(3) 完成第二级分解null(4) 获得完整的 SC 图运用变换分析方法建立系统的SC时需注意以下几点:① 在选择模块设计的次序时,必须对一个模块的全部直接下属模块都设计完成之后,才能转向另一个模块的下层模块的设计。 ② 在设计下层模块时,应考虑模块的耦合和内聚问题,以提高初始结构图的质量。运用变换分析方法建立系统的SC时需注意以下几点:运用变换分析方法建立系统的SC时需注意以下几点:④ 在模块划分时,一个模块的直接下属模块一般在5个左右。如果直接下属模块超过10个,可设立中间层次。 ⑤ 如果出现了以下情况,就停止模块的功能分解: 当模块不能再细分为明显的子任务时; 当分解成用户提供的模块或程序库的子程序时; 当模块的界面是输入/输出设备传送的信息时; 当模块不宜再分解得过小时。③ 使用“黑箱”技术: 在设计当前模块时,先把这个模块的所有下层模块定义成“黑箱”,在设计中利用它们时,暂时不考虑其内部结构和实现。在这一步定义好的“黑箱”,在下一步就可以对它们进行设计和加工。这样,又会导致更多的“黑箱”。最后,全部“黑箱”的内容和结构应完全被确定。运用变换分析方法建立系统的SC时需注意以下几点:null事务分析---- 是将具有事务型的DFD图导出SC图事务中心事务源null主模块给出H取得ALMNA GHBECF Dnull变换分析是软件系统结构设计的主要方法。 一般,一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。null 设计的后处理设计的后处理为每一个模块写一份处理说明 为每一个模块提供一份接口说明 确定全局数据结构和局部数据结构 指出所有的设计约束和限制 进行概要设计的评审 进行设计的优化(如果需要和可能的话)null设计实例: 教材P106 – P111null 作业:习题5 4、5; 作业作业P114: 3 用面向数据流的方法设计下列系统的软件结构 (1)储蓄系统2-2 (2)机票预定系统2-3 为了方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,旅客在飞机起飞前一天凭取票通知和账单交款取票,系统核对无误即印出机票给顾客 (1)储蓄系统(1)储蓄系统nullnullnull不能是两个分开的子系统,是相同的前台单个处理null不能是两个分开的子系统,是相同的前台单个处理计算利息(2)机票预定系统2-3(2)机票预定系统2-3nullnullnullnull可以是两个子系统,预定和取票是不同的处理方式(后台批量和前台单个)null
本文档为【第05章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_211845
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2011-04-15
浏览量:5