第4结构化软件设计.ppt
《第4结构化软件设计.ppt》由会员分享,可在线阅读,更多相关《第4结构化软件设计.ppt(85页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4结构化软件设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望引言 设计人员把分析的结果设计图纸 程序员拿着设计图纸编写代码名字:读者信息编号:DS01描述:记录读者的基本信息定义:读者信息=姓名+单位+读者类型+职称+电话位置:数据库的读者信息表输入处理说明输出读者输入读者DS102备注:需求规格说明书概要设计概要设计设计图纸设计图纸-软件结构图软件结构图模块模块4设计设计详细设计详细设计需求分析成果第4章 结构化软件设计 1)结构化设计的基本概念2)方法和
2、步骤2)详细设计的方法。3)软件设计的原则。4)影响软件设计的主要因素。掌握掌握 掌握理解了解要求要求o通过软件设计将用户的需求变为实现软件的“蓝图”。蓝图只描述软件的整体框架,也叫做概要设计。概要设计之后,就要对软件进行详细设计,通过对软件设计的不断细化,形成一个可以实施的设计方案。o软件设计的最终目标是要取得最佳方案。“最佳”是指在所有候选方案中,能够以最低的成本,在最短的时间内,生产出可靠性和可维护性俱佳软件的方案。4.1 软件设计的概念4.1.1模块和模块化o一般把用一个名字就可调用的一段程序称为“模块”。模块具有如下三个基本属性。n功能:指该模块要完成的任务。n逻辑:模块内部执行过程
3、。n状态:使用该模块时的环境和条件。4.1.1模块和模块化(续)o把整个系统划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。o模块化设计方法强调清楚地定义每个模块的功能和它的输入/输出参数,而模块的实现细节隐藏在各自的模块之中,与其它模块之间的关系可以是调用关系,因此模块化程序易于调试和修改。o随着模块规模的减小,模块的开发成本减少,但是模块之间的接口变得复杂起来,使得模块的集成成本增加。4.1.2内聚和耦合内聚和耦合o在软件设计中应该保持模块的独立性原则。反映模块独立性的有两个标准:内聚和耦合。n内聚衡量一个模块内部各个元素彼此结合的紧密程度n耦合衡量模块之间
4、彼此依赖的程度。4.1.2内聚和耦合(续)内聚和耦合(续)o模块间相互关联的程度取决于下面几点:n一个模块对另一个模块的访问,比如模块A可能要调用模块B来完成一个功能。n模块间传递的数据量。n模块间接口的复杂程度。Great deal of dependenceIndependent Highly coupledLoosely coupledUncoupled 7种耦合的独立性4.1.2内聚和耦合(续)内聚和耦合(续)内容耦合:如果一个模内容耦合:如果一个模块直接引用另一个模块块直接引用另一个模块的内容。的内容。例例1:A访问访问C的内部数的内部数据或不通过正常入据或不通过正常入口而转入口而转
5、入C的内部。的内部。ABCDA:goto C1C:C1:公共耦合公共耦合多个模块都访问同一个公共数据环境,则称它们是公共耦合。问题:公共部分的改动将影响所有调用它的模块;问题:公共部分的改动将影响所有调用它的模块;公共部分的数据存取无法控制;公共部分的数据存取无法控制;复杂程度随耦合模块的个数增加而增加复杂程度随耦合模块的个数增加而增加Global:V1,V2A:A1=V1+V2B:V1=B1Global:V1,V2A:V1+B:V2=B1+V1控制耦合控制耦合模块A向模块B传递一个控制信息,称这两个模块是控制耦合的。oB模块的具体功能取决于控制信息FlagABFlagF2F1FnFlag数据
6、耦合数据耦合如果两个模块传递的是数据项,则这两个模块是数据耦合。A模块B模块参数内聚:内聚:模块内部各个元素彼此结合的紧密程度模块内部各个元素彼此结合的紧密程度7种内聚的独立性o功能内聚功能内聚 :一个模块中各个部分都:一个模块中各个部分都是完成某一具体功能必不可少的组成是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块紧密联系,不可分割的。则称该模块为功能内聚模块。为功能内聚模块。内聚和耦合(续)内聚和耦合(续)o顺序内聚顺序内聚如果一个模块中的处理元
7、素和如果一个模块中的处理元素和同一个功能密切相关,并且这些处理必须是同一个功能密切相关,并且这些处理必须是顺序执行的,那么这个模块具有顺序内聚。顺序执行的,那么这个模块具有顺序内聚。内聚和耦合(续)内聚和耦合(续)o通信内聚通信内聚:一个模块内各功能部分一个模块内各功能部分都针对相同输入都针对相同输入/输出数据进行处输出数据进行处理。理。内聚和耦合(续)内聚和耦合(续)o过程内聚:过程内聚:模块执行的若干动作,相互关联并且有顺模块执行的若干动作,相互关联并且有顺序关系。例如,从录入界面读取数据,然后更新数据序关系。例如,从录入界面读取数据,然后更新数据库记录。它仍然是将多个相关的功能放在一个模
8、块中库记录。它仍然是将多个相关的功能放在一个模块中实现。实现。内聚和耦合(续)内聚和耦合(续)o时间内聚:时间内聚:模块的各个功能的执模块的各个功能的执行与时间有关,通常要求所有功行与时间有关,通常要求所有功能必须在同一时间段内执行。例能必须在同一时间段内执行。例如初始化模块和终止模块。如初始化模块和终止模块。内聚和耦合(续)内聚和耦合(续)o逻辑内聚:逻辑内聚:一个模块一个模块完成的任务在逻辑上完成的任务在逻辑上相同相同/相似。相似。A:读磁盘读磁盘读磁带读磁带读光盘读光盘from diskfrom tapefrom 内聚和耦合(续)内聚和耦合(续)o巧合内聚又称为偶巧合内聚又称为偶然内聚。
9、当模块内然内聚。当模块内各部分之间没有联各部分之间没有联系,或者即使有联系,或者即使有联系,这种联系,这种联 系也系也很松散。很松散。内聚和耦合(续)内聚和耦合(续)4.1.3抽象o所谓抽象就是将事务的相似方面集中和概括起来,暂时忽略它们之间的差异。或者说,抽象就是抽出事务的本质特性而暂时不考虑它们的细节。o在最高的抽象层次上,用自然语言,配合面向问题的专业术语,概括地描述问题的解法。o在中间的抽象层次上,采用过程化的描述方法。o在最底层,使用能够直接实现的方式来描述问题的解。4.1.4信息隐藏o核心内容是:一个模块中所包含的信息,不允许其他不需要这些信息的模块访问。o模块化可以通过定义一组相
10、互独立的模块来实现,这些独立的模块彼此间仅仅交换那些为完成相应功能而必须交换的信息。o信息隐蔽对模块的过程细节和局部数据结构进行了屏蔽。o在设计模块时采取信息隐藏,使得大多数处理细节对软件的其他部分是隐蔽的。在将来修改软件时偶然引入错误所造成的影响就可以局限在一个或几个模块内部,不至于波及到软件其他部分。4.1.5软件结构图oYourdon提出的软件结构图非常适合表示软件的结构。图中的每个方框代表一个模块,框内注明模块的名称、主要功能,方框之间的箭头线表示模块间的调用关系。o结构图中还可以标注模块之间传递的数据和控制信息。结构图说明o模块的名字应当能够反映该模块的功能,如:查询。o模块的调用关
11、系和接口:两个模块之间用单向箭头连接。箭头从调用模块指向被调用模块,当被调用模块执行结束后,控制又返回到调用模块。o模块间的信息传递:当一个模块调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,以使被调用模块能够运行。被调用模块执行过程中又把它产生的数据或控制信息回送给调用模块。为了区别在模块之间传递的是数据还是控制信息,用 表示数据信息,用 表示控制信息。通常在短箭头附近注有信息的名字。结构图说明(续)o两个辅助符号:用符号表示一个模块有条件地调用另一个模块;用符号表示模块循环调用它的各下属模块。图中模块A下加一个菱形表示控制模块A按条件选择调用模块B、模块C、模块D。结构图说明(
12、续)o结构图的形态特征:上层模块调用下层模块,模块自上而下“主宰”,自下而上“从属”。同一层的模块之间并没有这种主从关系。o结构图的深度:在多层次的结构图中,模块结构的层数称为该结构图的深度。下面结构图的深度为7。结构图的深度在一定意义上反映了程序结构的规模和复杂程度。对于中等规模的程序,结构图的深度约为10左右。对于一个大型程序,深度可以有几十层。o结构图的宽度:结构图中模块数最多的那层的模块个数称为结构图的宽度,下图的宽度为6。结构图说明(续)o模块的扇入和扇出:扇出表示一个模块直接调用的其他模块数目。扇入则定义为调用一个给定模块的模块个数。多扇出意味着需要控制和协调许多下属模块。而多扇入
13、的模块通常是公用模块。4.2软件设计软件设计原则原则和影响设计的因素和影响设计的因素o设计可回溯到需求。软件设计中的每个元素都可以对应到需求,保证设计使用户需要的。o充分利用已有的模块。一个复杂的软件通常是由一系列模块组成,很多模块可能在以前的系统中已经开发过了,如果这些模块设计得好,具有良好的可复用性,那么在设计新软件时应该尽可能使用已有的模块。o软件模块之间应该遵循高内聚、低耦合和信息隐藏的设计原则。o设计应该表现出一致性和规范性。在设计开始之前,设计小组应该定义设计风格和设计规范,保证不同的设计人员设计出风格一致的软件。软件设计软件设计原则原则和影响设计的因素(续)和影响设计的因素(续)
14、o容错性设计。不管多么完善的软件都可能有潜在的问题,所以设计人员应该为软件进行容错性设计,当软件遇到异常数据、事件或操作时,软件不至于彻底崩溃。o设计的粒度要适当。设计不是编码,即使在详细设计阶段,设计模型的抽象级别也比源代码要高,它涉及的是模块内部的实现算法和数据结构。因此,不要用具体的程序代码取代设计。o在设计时就要开始评估软件的质量。软件的质量属性需要在设计时考虑如何实现,不要等全部设计结束之后再考虑软件的质量。软件设计原则和软件设计原则和影响设计的因素影响设计的因素(续)(续)o由多人共同设计一个软件时的协调问题;o设计人员的设计经验、理解力和喜好的差别;o一致的设计规范约束;o设计者
15、的文化背景、信仰、价值观等其他方面的问题,这些都是影响软件设计的因素。4.3 结构化设计方法结构化设计方法o结构化设计方法通常也叫做面向数据流的设计或面向过程的设计。o结构化设计是基于模块化的、自顶向下、逐步求精等技术基础上的设计方法。o结构化设计与结构化分析和结构化编程方法前后呼应,形成了统一、完整的系列化方法。o结构化设计方法以需求分析阶段获得的数据流程图为基础,通过一系列映射,把数据流程图变换为软件结构图。结构化设计方法4步骤1)分分析析数数据据流流的的类类型型。数数据据流流的的类类型型有有变变换换型型和和事事务务型型两两种种,不不同同类类型型的的数数据据流流程程图图映映射射的的软软件件
16、结结构构有所不同。有所不同。2)将数据流程图映射为程序结构图。)将数据流程图映射为程序结构图。3)优化设计结构。)优化设计结构。4)评审软件结构。)评审软件结构。变换型数据流o在变换型的数据流程图上划分逻辑输入、中心变换、逻辑输出的边界;变换型数据流程软件结构图1)重画数据流程图,重画数据流程图应注意以下几个要点:n从物理输入到物理输出。n当数据流进入和离开一个处理时,要仔细地标记它们,不要重名。n数据流程图中的数据存储先略去,造成的数据开链视为数据的物理输入或输出。2)在数据流程图上区分系统的逻辑输入、逻辑输出和中心变换部分。n从数据流程图的物理输入端开始,向系统的中间移动,一直到某个数据流
17、不再被看作是系统的输入为止,这个数据流的前一个数据流就是系统的逻辑输入。从物理输入端到逻辑输入,构成软件的输入部分。n同理从物理输出端开始,向系统的中间移动,就可以找到软件的逻辑输出。n在输入部分和输出部分之间的就是中心变换部分。3)设计软件结构的顶层和第1层。n设计一个主模块,并用系统的名字为它命名,做为系统的顶层。n第1层:为每个逻辑输入设计一个输入模块,它的功能是为主模块提供数据;为每一个逻辑输出设计一个输出模块,它的功能是将主模块提供的数据输出;为中心变换设计一个变换模块,它的功能是将逻辑输入转换成逻辑输出。n主模块控制和协调第1层的输入模块、变换模块和输出模块的工作。4)设计软件结构
18、的下层结构。n每个逻辑输入模块有两个下属模块:一个接收数据;另一个把数据变换成上级模块所需要的数据格式。而接收数据模块又是输入模块,又要重复上述工作。如此循环下去,直到输入模块已经涉及到物理输入端为止。n同样,每个逻辑输出模块有两个下属模块:一个是将上级模块提供的数据变换成输出的形式;另一个是将它们输出。对于每一个逻辑输出,在数据流程图上向物理输出端方向移动,遇到物理输出为止。n设计中心变换模块的下层模块没有通用的方法,一般应参照数据流程图的中心变换部分和功能分解的原则来考虑如何对中心变换模块进行分解。转换后的初始软件结构图事务型数据流o在事务型流程图上划分接收分支和发送分支的边界,见右图。o
19、注意:两种类型的数据流有时会同时出现在一个流程图中,例如右图中的路径L是变换型数据流。事务型数据流程软件结构图1)重画数据流程图,重画数据流程图应注意以下几个要点:n从物理输入到物理输出。n当数据流进入和离开一个处理时,要仔细地标记它们,不要重名。n数据流程图中的数据存储先略去,造成的数据开链视为数据的物理输入或输出。2)标识事务中心、事务接收路径和事务处理路径。n通常事务中心位于几条处理路径的起点,从数据流程图上很容易标识出来,因为事务处理中心一般会有“发射中心”的特征。例如,上图中的“判断命令”处理就是一个事务中心,它有三条发射路径。n事务中心前面的部分叫做接收路径,发射中心后面各条发散路
20、径叫做事务处理路径。对于每条处理路径来讲,还应该确定它们自己的流特征。3)设计软件结构的顶层和第1层。n软件结构图的顶层是系统的事务控制模块。n第1层是由事务流输入分支和事务分类处理分支映射得到的程序结构。也就是说,第1层通常是由两部分组成:取得事务和处理事务。4)设计软件结构的下层结构。n设计事务流输入分支的方法与变换分析中输入流的设计方法类似,从事务中心变换开始,沿输入路径向物理输入端移动。每个接收数据模块的功能是向调用它的上级模块提供数据,它需要有两个下属模块:一个接收数据;另一个把这些数据变换成它的上级模块所需要的数据格式。接收数据模块又是输入模块,也要重复上述工作。如此循环下去,直到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 软件设计
限制150内