




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武当山武当山旅游门户网站旅游门户网站(http:/ wd) 第4章 结构化软件设计6学时武当山武当山旅游门户网站旅游门户网站(http:/ wd) 引言 设计人员把分析的结果设计图纸 程序员拿着设计图纸编写代码名字:读者信息编号:DS01描述:记录读者的基本信息定义:读者信息= 姓名 + 单位 +读者类型 + 职称 + 电话位置:数据库的读者信息表 模块模块 1 1 模块模块 2 2 模块模块 3 3 模块模块4 4 模块模块 5 5 模块模块 6 6 输入处理说明输出读者输入读者DS102备注:需求规格说明书概要设计概要设计设计图纸设计图纸-软件结构图软件结构图模块模块4设计设计详细设计详细
2、设计需求分析成果武当山武当山旅游门户网站旅游门户网站(http:/ wd) 第4章 结构化软件设计 1)结构化设计的基本概念2)方法和步骤2)详细设计的方法。3)软件设计的原则。4)影响软件设计的主要因素。掌握掌握 掌握理解了解要求要求武当山武当山旅游门户网站旅游门户网站(http:/ wd) o 通过软件设计将用户的需求变为实现软件的“蓝图”。蓝图只描述软件的整体框架,也叫做概要设计。概要设计之后,就要对软件进行详细设计,通过对软件设计的不断细化,形成一个可以实施的设计方案。o 软件设计的最终目标是要取得最佳方案。“最佳”是指在所有候选方案中,能够以最低的成本,在最短的时间内,生产出可靠性和
3、可维护性俱佳软件的方案。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.1 软件设计的概念4.1.1模块和模块化o 一般把用一个名字就可调用的一段程序称为“模块”。模块具有如下三个基本属性。n 功能:指该模块要完成的任务。n 逻辑:模块内部执行过程。n 状态:使用该模块时的环境和条件。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.1.1模块和模块化(续)o 把整个系统划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。o 模块化设计方法强调清楚地定义每个模块的功能和它的输入/输出参数,而模块的实现细节隐藏在各自的模块之中,与其它模块
4、之间的关系可以是调用关系,因此模块化程序易于调试和修改。o 随着模块规模的减小,模块的开发成本减少,但是模块之间的接口变得复杂起来,使得模块的集成成本增加。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.1.2内聚和耦合内聚和耦合o 在软件设计中应该保持模块的独立性原则。反映模块独立性的有两个标准:内聚和耦合。n 内聚衡量一个模块内部各个元素彼此结合的紧密程度n 耦合衡量模块之间彼此依赖的程度。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.1.2内聚和耦合(续)内聚和耦合(续)o 模块间相互关联的程度取决于下面几点:n 一个模块对另一个模块的访问,比如模块A可
5、能要调用模块B来完成一个功能。n 模块间传递的数据量。n 模块间接口的复杂程度。Great deal of dependenceIndependent Highly coupledLoosely coupledUncoupled 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 7种耦合的独立性内容耦合公共耦合外部耦合控制耦合数据结构耦合数据耦合非直接耦合模块独立性模块耦合性低高弱强武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.1.2内聚和耦合(续)内聚和耦合(续)内容耦合:如果一个模内容耦合:如果一个模块直接引用另一个模块块直接引用另一个模块的内容。的内容。例例1
6、:A访问访问C的内部数的内部数据或不通过正常入据或不通过正常入口而转入口而转入C的内部。的内部。ABCDA:goto C1C:C1: 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 公共耦合公共耦合多个模块都访问同一个公共数据环境,则称它们是公共耦合。 问题:公共部分的改动将影响所有调用它的模块;问题:公共部分的改动将影响所有调用它的模块;公共部分的数据存取无法控制;公共部分的数据存取无法控制;复杂程度随耦合模块的个数增加而增加复杂程度随耦合模块的个数增加而增加Global:V1, V2A:A1=V1+V2B:V1=B1Global:V1,V2A:V1+B:V2=B1+V1武当山武
7、当山旅游门户网站旅游门户网站(http:/ wd) 控制耦合控制耦合模块A向模块B传递一个控制信息,称这两个模块是控制耦合的。 o B模块的具体功能取决于控制信息FlagABFlagF2F1FnFlag武当山武当山旅游门户网站旅游门户网站(http:/ wd) 数据耦合数据耦合如果两个模块传递的是数据项,则这两个模块是数据耦合。A模块B模块参数武当山武当山旅游门户网站旅游门户网站(http:/ wd) 模块内部各个元素彼此结合的紧密程度模块内部各个元素彼此结合的紧密程度7种内聚的独立性武当山武当山旅游门户网站旅游门户网站(http:/ wd) 内聚和耦合(续)内聚和耦合(续)武当山武当山旅游门
8、户网站旅游门户网站(http:/ wd) 内聚和耦合(续)内聚和耦合(续)武当山武当山旅游门户网站旅游门户网站(http:/ wd) o通信内聚通信内聚:一个模块内各功能部分一个模块内各功能部分都针对相同输入都针对相同输入/输出数据进行处输出数据进行处理。理。内聚和耦合(续)内聚和耦合(续)武当山武当山旅游门户网站旅游门户网站(http:/ wd) o 过程内聚:过程内聚:模块执行的若干动作,相互关联并且有顺模块执行的若干动作,相互关联并且有顺序关系。例如,从录入界面读取数据,然后更新数据序关系。例如,从录入界面读取数据,然后更新数据库记录。它仍然是将多个相关的功能放在一个模块中库记录。它仍然
9、是将多个相关的功能放在一个模块中实现。实现。内聚和耦合(续)内聚和耦合(续)武当山武当山旅游门户网站旅游门户网站(http:/ wd) o时间内聚:时间内聚:模块的各个功能的执模块的各个功能的执行与时间有关,通常要求所有功行与时间有关,通常要求所有功能必须在同一时间段内执行。例能必须在同一时间段内执行。例如初始化模块和终止模块。如初始化模块和终止模块。内聚和耦合(续)内聚和耦合(续)武当山武当山旅游门户网站旅游门户网站(http:/ wd) o 逻辑内聚:逻辑内聚:一个模块一个模块完成的任务在逻辑上完成的任务在逻辑上相同相同/相似。相似。A:读磁盘读磁盘读磁带读磁带读光盘读光盘from dis
10、kfrom tapefrom 内聚和耦合(续)内聚和耦合(续)武当山武当山旅游门户网站旅游门户网站(http:/ wd) o 巧合内聚又称为偶巧合内聚又称为偶然内聚。当模块内然内聚。当模块内各部分之间没有联各部分之间没有联系,或者即使有联系,或者即使有联系,这种联系,这种联 系也系也很松散。很松散。内聚和耦合(续)内聚和耦合(续)武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.1.3抽象o 所谓抽象就是将事务的相似方面集中和概括起来,暂时忽略它们之间的差异。或者说,抽象就是抽出事务的本质特性而暂时不考虑它们的细节。o 在最高的抽象层次上,用自然语言,配合面向问题的专业术语,概括
11、地描述问题的解法。o 在中间的抽象层次上,采用过程化的描述方法。o 在最底层,使用能够直接实现的方式来描述问题的解。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.1.4信息隐藏o 核心内容是:一个模块中所包含的信息,不允许其他不需要这些信息的模块访问。o 模块化可以通过定义一组相互独立的模块来实现,这些独立的模块彼此间仅仅交换那些为完成相应功能而必须交换的信息。o 信息隐蔽对模块的过程细节和局部数据结构进行了屏蔽。o 在设计模块时采取信息隐藏,使得大多数处理细节对软件的其他部分是隐蔽的。在将来修改软件时偶然引入错误所造成的影响就可以局限在一个或几个模块内部,不至于波及到软件其
12、他部分。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.1.5软件结构图o Yourdon提出的软件结构图非常适合表示软件的结构。图中的每个方框代表一个模块,框内注明模块的名称、主要功能,方框之间的箭头线表示模块间的调用关系。o 结构图中还可以标注模块之间传递的数据和控制信息。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 结构图说明o 模块的名字应当能够反映该模块的功能,如:查询。o 模块的调用关系和接口:两个模块之间用单向箭头连接。箭头从调用模块指向被调用模块,当被调用模块执行结束后,控制又返回到调用模块。o 模块间的信息传递:当一个模块调用另一个模块时,调用模
13、块把数据或控制信息传送给被调用模块,以使被调用模块能够运行。被调用模块执行过程中又把它产生的数据或控制信息回送给调用模块。为了区别在模块之间传递的是数据还是控制信息,用 表示数据信息,用 表示控制信息。通常在短箭头附近注有信息的名字。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 结构图说明(续)o 两个辅助符号:用符号表示一个模块有条件地调用另一个模块;用符号表示模块循环调用它的各下属模块。图中模块A下加一个菱形表示控制模块A按条件选择调用模块B、模块C、模块D。ACBDACBD武当山武当山旅游门户网站旅游门户网站(http:/ wd) 结构图说明(续)o 结构图的形态特征:上层
14、模块调用下层模块,模块自上而下“主宰”,自下而上“从属”。同一层的模块之间并没有这种主从关系。o 结构图的深度:在多层次的结构图中,模块结构的层数称为该结构图的深度。下面结构图的深度为7。结构图的深度在一定意义上反映了程序结构的规模和复杂程度。对于中等规模的程序,结构图的深度约为10左右。对于一个大型程序,深度可以有几十层。o 结构图的宽度:结构图中模块数最多的那层的模块个数称为结构图的宽度,下图的宽度为6。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 结构图说明(续)o 模块的扇入和扇出:扇出表示一个模块直接调用的其他模块数目。扇入则定义为调用一个给定模块的模块个数。多扇出意味
15、着需要控制和协调许多下属模块。而多扇入的模块通常是公用模块。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.2软件设计软件设计原则原则和影响设计的因素和影响设计的因素o设计可回溯到需求。软件设计中的每个元素都可以对应到需求,保证设计使用户需要的。o充分利用已有的模块。一个复杂的软件通常是由一系列模块组成,很多模块可能在以前的系统中已经开发过了,如果这些模块设计得好,具有良好的可复用性,那么在设计新软件时应该尽可能使用已有的模块。o软件模块之间应该遵循高内聚、低耦合和信息隐藏的设计原则。o设计应该表现出一致性和规范性。在设计开始之前,设计小组应该定义设计风格和设计规范,保证不同的
16、设计人员设计出风格一致的软件。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 软件设计软件设计原则原则和影响设计的因素(续)和影响设计的因素(续)o 容错性设计。不管多么完善的软件都可能有潜在的问题,所以设计人员应该为软件进行容错性设计,当软件遇到异常数据、事件或操作时,软件不至于彻底崩溃。o 设计的粒度要适当。设计不是编码,即使在详细设计阶段,设计模型的抽象级别也比源代码要高,它涉及的是模块内部的实现算法和数据结构。因此,不要用具体的程序代码取代设计。o 在设计时就要开始评估软件的质量。软件的质量属性需要在设计时考虑如何实现,不要等全部设计结束之后再考虑软件的质量。武当山武当山旅
17、游门户网站旅游门户网站(http:/ wd) 软件设计原则和软件设计原则和影响设计的因素影响设计的因素(续)(续)o 由多人共同设计一个软件时的协调问题;o 设计人员的设计经验、理解力和喜好的差别;o 一致的设计规范约束;o 设计者的文化背景、信仰、价值观等其他方面的问题,这些都是影响软件设计的因素。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.3 结构化设计方法结构化设计方法o 结构化设计方法通常也叫做面向数据流的设计或面向过程的设计。o 结构化设计是基于模块化的、自顶向下、逐步求精等技术基础上的设计方法。o 结构化设计与结构化分析和结构化编程方法前后呼应,形成了统一、完整
18、的系列化方法。o 结构化设计方法以需求分析阶段获得的数据流程图为基础,通过一系列映射,把数据流程图变换为软件结构图。 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 结构化设计方法4步骤1)分析数据流的类型。数据流的类型有变换型和事)分析数据流的类型。数据流的类型有变换型和事务型两种,不同类型的数据流程图映射的软件结务型两种,不同类型的数据流程图映射的软件结构有所不同。构有所不同。2)将数据流程图映射为程序结构图。)将数据流程图映射为程序结构图。3)优化设计结构。)优化设计结构。4)评审软件结构。)评审软件结构。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 变换型数据
19、流o 在变换型的数据流程图上划分逻辑输入、中心变换、逻辑输出的边界; 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 变换型数据流程软件结构图1)重画数据流程图,重画数据流程图应注意以下几个要点:n 从物理输入到物理输出。n 当数据流进入和离开一个处理时,要仔细地标记它们,不要重名。n 数据流程图中的数据存储先略去,造成的数据开链视为数据的物理输入或输出。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 2)在数据流程图上区分系统的逻辑输入、逻辑输出和中心变换部分。n从数据流程图的物理输入端开始,向系统的中间移动,一直到某个数据流不再被看作是系统的输入为止,这个数据流的前
20、一个数据流就是系统的逻辑输入。从物理输入端到逻辑输入,构成软件的输入部分。n同理从物理输出端开始,向系统的中间移动,就可以找到软件的逻辑输出。n在输入部分和输出部分之间的就是中心变换部分。 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 3)设计软件结构的顶层和第1层。n 设计一个主模块,并用系统的名字为它命名,做为系统的顶层。n 第1层:为每个逻辑输入设计一个输入模块,它的功能是为主模块提供数据;为每一个逻辑输出设计一个输出模块,它的功能是将主模块提供的数据输出;为中心变换设计一个变换模块,它的功能是将逻辑输入转换成逻辑输出。n 主模块控制和协调第1层的输入模块、变换模块和输出模
21、块的工作。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4)设计软件结构的下层结构。n每个逻辑输入模块有两个下属模块:一个接收数据;另一个把数据变换成上级模块所需要的数据格式。而接收数据模块又是输入模块,又要重复上述工作。如此循环下去,直到输入模块已经涉及到物理输入端为止。n同样,每个逻辑输出模块有两个下属模块:一个是将上级模块提供的数据变换成输出的形式;另一个是将它们输出。对于每一个逻辑输出,在数据流程图上向物理输出端方向移动,遇到物理输出为止。n设计中心变换模块的下层模块没有通用的方法,一般应参照数据流程图的中心变换部分和功能分解的原则来考虑如何对中心变换模块进行分解。武当山
22、武当山旅游门户网站旅游门户网站(http:/ wd) 转换后的初始软件结构图武当山武当山旅游门户网站旅游门户网站(http:/ wd) 事务型数据流o 在事务型流程图上划分接收分支和发送分支的边界,见右图。o 注意:两种类型的数据流有时会同时出现在一个流程图中,例如右图中的路径L是变换型数据流。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 事务型数据流程软件结构图1)重画数据流程图,重画数据流程图应注意以下几个要点:n 从物理输入到物理输出。n 当数据流进入和离开一个处理时,要仔细地标记它们,不要重名。n 数据流程图中的数据存储先略去,造成的数据开链视为数据的物理输入或输出。武当
23、山武当山旅游门户网站旅游门户网站(http:/ wd) 2)标识事务中心、事务接收路径和事务处理路径。n通常事务中心位于几条处理路径的起点,从数据流程图上很容易标识出来,因为事务处理中心一般会有“发射中心”的特征。例如,上图中的“判断命令”处理就是一个事务中心,它有三条发射路径。n事务中心前面的部分叫做接收路径,发射中心后面各条发散路径叫做事务处理路径。对于每条处理路径来讲,还应该确定它们自己的流特征。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 3)设计软件结构的顶层和第1层。n 软件结构图的顶层是系统的事务控制模块。n 第1层是由事务流输入分支和事务分类处理分支映射得到的程序
24、结构。也就是说,第1层通常是由两部分组成:取得事务和处理事务。 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4)设计软件结构的下层结构。n设计事务流输入分支的方法与变换分析中输入流的设计方法类似,从事务中心变换开始,沿输入路径向物理输入端移动。每个接收数据模块的功能是向调用它的上级模块提供数据,它需要有两个下属模块:一个接收数据;另一个把这些数据变换成它的上级模块所需要的数据格式。接收数据模块又是输入模块,也要重复上述工作。如此循环下去,直到输入模块已经涉及到物理输入端为止。n事务处理分支结构映射成一个分类控制模块,它控制下层的处理模块。对每个事务建立一个事务处理模块。如果发现
25、在系统中有类似的事务,就可以把这些类似的事务组织成一个公共事务处理模块。但是,如果组合后的模块是低内聚的,则应该重新考虑组合问题 。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 转换后的初始软件结构图武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.4 优化软件结构设计 o 数据流程图转换为软件结构图,应该对软件结构图进行优化。使其符合高内聚低耦合的、模块化、信息隐藏的原则。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.4 优化软件结构设计(续)o 规则一:模块功能完善化。一个完整的功能模块,不仅能够完成指定的功能,而且还应当能够向调用者返回完成任
26、务的状态,以及失败的原因。因此要求功能模块除了应该执行规定的功能外,还应该具有出错处理的内容,当模块不能完成规定的功能时,必须回送出错标志,向它的调用者报告失败的原因。如果模块正确结束,应该返回正确结束的标志。上述所有内容,都应当看做是一个模块的有机组成部分,不应分离到其他模块中去,否则将会增大模块间的耦合程度。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.4 优化软件结构设计(续)o 规则二:设计功能单一和结果可预测的模块。一个功能单一和结果可预测的模块可以被看成是一个“黑箱”,不论内部处理细节如何,对于相同的输入数据,总能产生同样的结果。但是,如果模块内部蕴藏有一些特殊的
27、鲜为人知的功能时,其模块的结果可能无法预测。例如,如果在模块内部有一个局部控制变量,在运行过程中模块的处理由这个控制变量确定,由于这个局部控制变量对于调用模块来说是隐蔽的,所以调用模块无法控制这个模块的执行,也不能预知将会引起什么后果,有可能造成混乱。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.4 优化软件结构设计(续)o 规则三:消除重复功能,改善软件结构。应当认真审查初始的软件结构图,如果发现几个模块的功能有相似之处,应该加以改进。例如,当两个模块的功能完全相似,而只是所处理的数据类型不一致时,应该合并模块,同时修改模块的数据类型和变量定义。但是,如果两个模块的功能只是
28、局部相似时,最好不要简单地合二为一,因为这种简单的并后会造成模块内部设置许多判断开关,模块的接口参数势必会传递一些控制信息,造成模块内聚降低。通常的处理办法是分析两个相似的模块,找出相同的部分,然后将相同的部分从分离出去组成一个新的模块。 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.4 优化软件结构设计(续)o 规则四:模块的作用范围应在控制范围之内。首先定义一个模块的控制范围是:是这个模块及其所有下属模块。例如图中模块E的控制范围是I、H、J。o 一个模块的作用范围是:这个模块内判定的作用范围,凡是受这个判定影响的模块都属于这个判定的作用范围。例如图中模块J的一个判定传递
29、给E模块,然后再传递给I和H模块,这时模块J的作用范围是模块E、I、J。显然,这种设计是不好的,因为模块I和H不是模块J的控制范围,这样就导致模块之间传递的是控制参数,使模块之间的耦合增加。 武当山武当山旅游门户网站旅游门户网站(http:/ wd) GABCFDEHIIJ武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.4 优化软件结构设计(续)o 如果在设计过程中,发现作用范围不在控制范围内,可采用如下办法把作用范围移到控制范围之内:o )提高控制模块的层次。将判定所在模块合并到父模块中,使判定处于较高层次。o )将受判定影响的模块下移到控制范围内;o )将判定上移到层次中较
30、高的位置。但是要注意,判定所在的模块最好不要太高,模块之间的控制参数传递路径太长,增加了模块之间的耦合。比较好的方案是将判定提到模块E中。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.4 优化软件结构设计(续)o 规则五:模块的大小要适中。模块的大小一般用模块的源代码数量来衡量,通常在设计过程中,将模块的源代码数量限制在左右,即一页纸的范围内,这样阅读比较方便。实际上,规模大的模块往往是由于分解不充分造成的,应该对其进一步分解,生成一些下级模块或同层模块。有些模块规模非常小,这种情况下要区别对待,如果该模块是公共模块或者是高内聚模块,则一定不要把它合并到其他模块中去;否则可以
31、考虑将规模很小的模块合并到其它相关的模块中。 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.4 优化软件结构设计(续)o 规则六:尽可能减少高扇出和高扇入的结构。o 规则七:将模块中相对变化较大的部分剥离出去。为了加强模块的可复用性,在设计时将模块中相对稳定的部分与可能变化的部分分离,在分离的两个模块之间加一个接口模块对模块之间传递的参数进行整理,这对保持模块的稳定性和可重用性有很大作用。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.4 优化软件结构设计(续)o 对于有时间要求的软件结构,在整个设计阶段和编码阶段都必须进行优化,优化的方法如下:n 首先改进软
32、件的结构。n 在详细设计时,挑出那些有可能占用过多时间的模块,为这些模块精心设计时间效率更高的处理算法。n 检测软件,分离出占用大量处理机资源的模块。如果有必要,用汇编语言或其它较低级的语言重新设计、编码,以提高软件的效率。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.5 图书馆图书信息管理系统设计案例o 仔细研究这些数据流程图,发现一个图书管理信息系统可以分为五个子系统设计,它们是读者信息管理子系统、借书子系统、还书子系统、采编子系统和系统维护子系统。将一个复杂的系统划分为多个简单的子系统,有利于系统设计和实现。武当山武当山旅游门户网站旅游门户网站(http:/ wd) o
33、 进入设计阶段后,要从软件设计的角度重审数据流程图。首先应该为流通组设计一个方便的工作环境,在这个工作环境之中包含了流通组日常要做的所有工作,应该增加一个“还书工作环境”的处理,编号IPO320。 o “还书工作环境”处理之后应该是流通组门的业务分发处理,所以增加一个“事物分发”处理,编号为IPO321。在处理完某个具体的还书业务之后,有可能导致“通知预约”处理的执行,而“催还”和“通知预约”两个处理之中都隐含了一个共同的处理“发送邮件”,因此,应该将具有相同功能的处理独立成为一个“发送邮件”的处理,编号为IPO324。 武当山武当山旅游门户网站旅游门户网站(http:/ wd) o 在重画数
34、据流程图时发现,处罚操作属于性质相同的处理,应该将它们归并在一起。每种处罚的规则和处理不同,增加了一个“处罚事物分发”处理,判断不同的处罚类型,每种处罚处理的用户界面不同,为三种处罚类型设计不同的用户界面。最终的处罚结果是保存在一个数据库表中,因此调用同一个“保存处罚记录”处理。在整个处罚的处理部分,基本上是按照逻辑输入、处理、逻辑输出划分的。o 另外增加了两个界面处理,这是为了将用户界面与业务处理分开来设计和实现,便于系统的维护和修改。下面是修改后的数据流程图: 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 还书数据流程图还书子系统结构图武当山武当山旅游门户网站旅游门户网站(h
35、ttp:/ wd) 走查软件结构图 o 软件结构图中的模块关系体现的是调用关系,模块之间的接口参数在软件结构图上表现出来。o 设计者根据调用关系在纸上对系统进行初步的试运行,方法是从软件结构图的最顶层按深度优先原则调用下级模块,直到图的最底层。在纸上试运行过程中,填写一张功能模块对照表。 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 数据结构与程序模块对照表软件功能需求与程序模块对照表功能模块1模块2模块n功能需求1Module nameModule name功能需求2Module nameModule name功能需求nModule name第1列是分析阶段确定的软件功能编号,
36、通常一个功能可能需要多个模块实现,如果模块超过5个,往往说明该功能太大,应该将其细分。每个功能都应该有一条自上而下的模块调用通路,如果发现某条通路走下来不能实现需要的功能,就要重新检查数据流程图到软件结构图的转换是否正确。在走查模块时不要进入模块内部的具体处理算法,只是检查接口参数和分配的功能即可武当山武当山旅游门户网站旅游门户网站(http:/ wd) 用快速原型法修正设计用快速原型法修正设计o 在设计时,有些问题很难确定是否能够实现,可以先开发一个原型,通过开发原型来发现设计中存在的问题,以便在编码之前解决很多棘手的问题。另外,原型可以促进开发人员之间、以及开发人员与用户之间的沟通。o 开
37、发原型时,通常忽略功能上的很多细节,只是将注意力放在系统的某个或某几个特定方面。例如,界面方面、性能方面、还有安全方面等等,这种原型肯定会存在许多漏洞,但是,如果一个原型仅仅是要证明设计的可行性时,就不必太多的关注这些漏洞。这种原型属于抛弃型原型,意思是,开发的原型仅仅是为了证明系统某些特征的可行性,它不是最终的产品。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 关于设计的说明o 在程序结构被设计和优化后,应该对设计进行一些必要的说明。每个模块写一份处理说明;为模块之间的接口提供一份接口说明;确定全局数据结构;指出所有的设计约束和限制。o 处理说明应该清楚地描述模块的主要处理任务
38、、条件抉择和输人输出。注意概要设计阶段不要对模块的内部处理过程进行详细描述,这项工作是详细设计的任务。o 接口说明要给出一张表格,列出所有进入模块和从模块输出的数据。接口说明中应包括通过参数表传递的信息、对外界的输入输出信息、访问全局数据区的信息等等。此外还要指出其下属的模块和上级模块。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 模块说明表模块名称:编号:主要功能: 输入参数及类型: 输出参数及类型:上级调用模块: 向下调用模块: 局部数据结构: 约束条件和设计限制:武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.6设计复查o 采用概要设计复查的方法来检查在概念
39、上的设计;o 在关键设计审查中,向其它开发者描述关键技术上的设计细节;o 进行程序设计的复查,程序设计的复查属于详细设计阶段。复查的目标是确保软件设计与实现正是用户想要的。 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.7数据设计 o 尽量使用简单的数据结构。简单的数据结构通常伴随着简单的操作,有些人喜欢使用复杂的工具完成一些简单的事情,这在软件开发中是比较忌讳的。o 在设计数据结构时要注意数据之间的关系,特别要平衡数据冗余与数据关联的矛盾。有时,为了减少信息的冗余,需要增加更多的关联,使程序处理比较复杂;如果一味的降低数据之间的关联,可能会造成大量的数据冗余,难以保证数据的
40、一致性。o 为了加强数据设计的可复用性,应该针对常用的数据结构和复杂的数据结构设计抽象类型,并且将数据结构与操纵数据结构的操作封装在一起。同时要清楚地描述调用这个抽象数据结构的接口说明。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.7数据设计(续)o 4) 尽量使用经典的数据结构,因为,对它们的讨论比较普遍,容易被大多数开发人员理解,同时,也能够获得更多的支持。o 5)在确定数据结构时一般先考虑静态结构,如果不能满足要求,再考虑动态结构。 武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.7数据设计(续)o 文件设计是指对数据存储文件的设计,主要工作是根据使用要
41、求、处理方式、存储的信息量、数据的使用频率和文件的物理介质等因素,来确定文件的类别、文件的组织方式。设计文件记录的格式,估计文件的容量。o 文件的设计过程包括文件的逻辑设计和文件的物理设计两个阶段,文件的逻辑设计在概要设计阶段进行,文件的物理设计在详细设计阶段进行。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.7数据设计(续)o 整理必须的数据元素:分析文件中要存储的数据元素,确定每个数据元素的类型、长度,并且给每个数据元素定义一个容易理解的、有意义的名字。o 分析数据间的关系:根据业务处理逻辑确定数据元素之间的关系,有时一个文件记录中可能包含多个子数据结构。例如,考生成绩文
42、件的记录中可能包含:考生编号、姓名、学校、(语文、数学、英语、物理、化学)、总成绩。其中,括号部分是一个子结构,描述各科的成绩,这些数据元素可能需要同时处理。武当山武当山旅游门户网站旅游门户网站(http:/ wd) o3) 确定文件的存储介质。目前,文件的存储介质主要有磁带、软盘、磁盘、光盘、可移动快速闪存。选择文件存储介质是主要考虑下面一些原则:oa) 数据量ob) 处理方式oc) 存储时间od) 处理时间oe) 数据结构of) 操作要求og) 费用要求4.7数据设计(续)武当山武当山旅游门户网站旅游门户网站(http:/ wd) o 确定文件的记录格式。文件的记录格式通常分为无格式的字符
43、流和用户定义的记录格式两种。并且还可以设计为定长记录和不定长记录。o 估算记录的存取时间。根据文件的存储介质和类型,计算平均访问时间和最坏情况下的访问时间。o 估算文件的存储量。根据一条记录的大小估算整个文件的存储量,然后,考虑文件的增长速度,确定文件的存储介质的规格型号,以及设计文件备份转储的周期 4.7数据设计(续)武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.7数据设计(续)o 数据库模式设计:模式设计是在物理层和逻辑层面上描述的数据库设计。o 第三范式形式的实体及关系数据模型是模式设计过程的输入,模式设计的主要问题是处理具体的数据库管理系统的结构约束。o 子模式设计:
44、子模式是用户使用的数据视图。o 完整性和安全性设计o 优化武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.8详细设计o 详细设计也叫过程设计,应该在软件结构设计、数据设计之后进行,主要是设计模块内的算法实现细节。o 任务不是编写程序,而是要为编写程序代码设计“图纸”,由程序员按“图纸”用某种高级程序设计语言编写程序代码。因此,详细设计的结果基本上决定了最终的程序代码质量。o 衡量程序代码的质量不仅要看它的逻辑是否正确,性能是否满足要求,更主要的要看它是否容易阅读和理解。因此,详细设计的目标不仅仅是保证所设计的模块功能正确,更重要的是保证所设计的处理过程简明易懂。武当山武当山旅游门户网站旅游门户网站(http:/ wd) 4.8详细设计(续)o 结构化程序的特征:n 程序模块只有一个入口和一个出口。n 程序中只包含顺序、条件和循环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江广厦建设职业技术大学《中国城市建设史》2023-2024学年第二学期期末试卷
- 鄂尔多斯应用技术学院《管理会计实验》2023-2024学年第二学期期末试卷
- 炎黄职业技术学院《计算机绘图及BM应用》2023-2024学年第二学期期末试卷
- 烟台职业学院《足球理论与实践Ⅲ》2023-2024学年第二学期期末试卷
- 2025年吉林省建筑安全员《B证》考试题库
- 浙江机电职业技术学院《BIM技术原理及其应用》2023-2024学年第二学期期末试卷
- 贵州师范学院《微机原理与接口技术B》2023-2024学年第二学期期末试卷
- 2025年安徽省建筑安全员知识题库附答案
- 四川三河职业学院《建筑与环境设计方法》2023-2024学年第二学期期末试卷
- 邢台应用技术职业学院《体育教学训练理论与方法实践》2023-2024学年第二学期期末试卷
- 砥砺前行决心谱写华章
- 2025年开学教导处发言稿(5篇)
- 机电设备安装旁站监理方案
- 2025年度民政局离婚协议书范本模板官方修订2篇
- 《百达翡丽名表介绍》课件
- 《集装箱标识辨识》课件
- 2024年临床输血管理委员会年终的工作总结
- 2025版《VOCs废气处理设施安全检查表》(全)
- 整形医院客户管理培训
- 七年级语文下册全册完整课件(部编版)
- (投资管理)对外投资合作国别(地区)指南
评论
0/150
提交评论