第5章 结构化设计.ppt_第1页
第5章 结构化设计.ppt_第2页
第5章 结构化设计.ppt_第3页
第5章 结构化设计.ppt_第4页
第5章 结构化设计.ppt_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程,第5章总体设计,第2/96章,现有软件工程方法使用结构化设计(SD)技术完成软件设计任务。通常,软件设计工作分为摘要设计和详细设计两个阶段。3/96、设计图形两者之间的关系如图所示。5/96,5.1.2结构化设计与结构化分析的关系,结构化设计方法的实施要点(1)研究、分析和审查数据流图。(2)根据数据流图确定问题的类型(变化和事务)。两种茄子分别对不同类型执行分析处理。(3)系统初始原理图是从数据流图导出的。(4)使用几个茄子启发式原则,改进系统的初始结构,直到获得满足要求的原理图。(5)根据分析模型的实体关系图和数据字典设计数据,包括数据库设计或数据档案设计。(6)基于上述设计,根

2、据分析模型的加工规范说明、状态切换图进行工艺设计。(7)制定测试计划。6/96,5.2结构化设计的原理,使用结构化设计、SD结构化设计方法将系统划分为模块,确定每个模块的功能、介面(模块之间传递的数据)和调用关系,使用模块和模块调用构建软件的体系结构详细设计,以及结构化编程(SP)方法SA、SD和SP构成了完整的结构方法体系。7/96,5.2.1模块化模块是限制为边界元素的相邻节目元素(例如,数据描述、可执行语句)的序列,并且显示完整的标识符。根据模块的定义,过程、函数、子节目和宏等可以用作模块。8/96,有人说,模块化复杂的大型程序是软件必须拥有的唯一属性,以便由人的智能管理。如果大型程序只

3、由一个模块组成,那将很难理解。函数C(x)定义了问题X的复杂性,函数E(x)确定了解决问题X所需的工作量(以小时为单位)。对于两个茄子问题,如果P1和P2: C(P1)C(P2)是E(P1)E(P2),9/96,如果人类解决了一般问题的经验,则另一个有趣的定律是C (P1 P2) C。这是模块化基础,10/96,11/96,结构分析方法的抽象和分解,抽象:从整个软件系统开始(第一层),每个抽象层只关注系统的输入/输出分解,结构变化,同一问题的各种软件结构,13/96,5.2.52内聚度:模块内部每个组件的连接称为块内连接(模块的内聚度)。非直接耦合,耦合与模块属性之间的关系,15/96,(5)

4、数据耦合:指两个模块交换徐璐数据(两个模块之间的通信信息是多个参数,每个参数是数据元素),16/96,(4)控制耦合:17/96,(3)特征耦合,数据耦合和控制耦合之间。通过将整个数据结构作为参数传递来调用的模块需要数据元素的一部分。18/96,(2)公共耦合:两个或多个模块共同引用一个全局数据项。公共环境可以是全局变量、存储介质上的档案、物理设备和孔刘通信区域。19/96,(1)内容耦合:当一个模块直接修改或操作另一个模块时,代码重复、多个入口、20/96,耦合是影响软件复杂性的重要因素。在软件设计中,应尽可能使用数据联接器,减少控制联接器,限制外部联接器和公共联接器的范围,并应用完全不使用

5、内容联接器的设计原则。21/96,练习:分析以下模块之间的联接类型,模块P,T,U更新相同数据库模块之间的接口,如下所示:22/96,内部聚集度是按强度从低到高的以下类型:(1)偶然内部聚合:模块内的每个操作都没有意义。23/96,(2)逻辑内部聚合:多个逻辑相关功能放置在同一模块中,这称为逻辑内部集合。24/96,(3)时间内的聚集:如果需要在一个模块中同时执行已完成的功能(例如系统初始化),则这些功能称为时间内的聚集,因为只是连接了时间元素。25/96,(4)流程内部聚合:如果模块内部的流程组件相关,并且必须按特定顺序执行这些处理,则称为流程内部聚合。26/96,(5)通信内部聚合:如果一

6、个模块的所有组件操作相同的数据集或创建相同的数据集,则称为通信内部集合。27/96,(6)顺序内部聚合:如果一个模块的每个组件与相同的功能紧密相关,并且一个组件的输出用作另一组件的输入,则称为顺序内部集合。28/96,(7)功能聚合:模块的所有组件都需要完成单个功能,称为功能聚合。29/96,内部聚合与模块属性的关系,30/96,模块内部收敛性的判断,31/96,5.3启发规则,软件工程师在电脑软件开发的长期实践中积累了丰富的经验,总结了这些经验,获得了一些茄子启发规则。,32/96,启发式设计战略-1,根据模块化设计原则,相应的启发式设计策略如下:模块大小必须适中。改造节目结构图,减少耦合,

7、提高内聚度。33/96,启发式设计战略-2,高扇出预防启发式设计战略-3,模块的影响范围必须限制在相应模块的控制范围内。例如,在下面的图A中,模块B2的影响范围(模块A)不在该控制范围(模块B2)内的决策控制在顶层模块中,影响范围(A,B2)在控制范围内,但是在决策控制模块中,应减少模块接口的复杂性和冗馀,并在一致性模块接口中尽可能简单地传递数据,传递的数据应与模块的功能保持一致。也就是说,不要传递与模块功能无关的数据。例如,使用模块QUAD_ROOT(TBL,X)和数组TBL传递方程的系数来求出一元二次方程的根。Quad _ root (a,b,c,root1,root2),36/96,启发

8、式设计战略-4,介面复杂或不一致,请勿对模组施加太多限制。模块功能可以预测牙齿模块可以为相同的输入生成相同的输出限制。一个模块仅处理单个功能。牙齿模块表明,尽可能高的内合,设计单个入口和单个出口的模块单个入口和单个出口的模块可以有效地避免内容合并。表示37/96,5.4软件结构的图形工具、5.4.1分层图表和HIPO图5.4编号的分层图表(H图)、38/96,5.4.2贴图、(1)软件图的基本图形符号:模块:调用:模块间通信:数据信息:控制调用模块时需要传递的参数可以通过在调用箭头旁边添加小箭头和数据名称来表示。使用40/96、映射和结构图描述软件系统的体系结构。说明软件系统由哪些模块组成,以

9、及模块之间的调用。v,41/96,42/96,图中的辅助符号,D,B,C,A,图5.7a循环调用,图5.7b递归调用,43/96,5例如图中模块M的可以直接调用模块的模块数。例如,在图中,模块G的串联输入为1,模块I的串联输入为2,模块R的串联输入为4,44/96,相关指标的含义、深度和宽度反映了特定程序中程序的规模和复杂性。相对来说,节目原理图的深度和宽度越大,程序的规模和复杂性就越大。模块的扇出可能会影响映射的深度和宽度。例如,由于模块扇出减少,宽度变小,深度一个模块扇出过大,通常意味着模块很复杂。但是,扇出太少,可能会增加深度。模块的扇出是一个模块的扇出59,反映了该模块的扇出数可以直接

10、调用的模块的重用。因此,模块的扇入牙齿越大,45/96,结构设计阶段,构建将整个软件视为一个大功能模块的初始映射,通过功能分解不断分解为多个小功能模块。在获得不再需要分解的模块集(映射的默认模块)之前,改进原理图可以根据设计指导和启发式设计策略改进初始原理图。具体地说,对于每个模块,模块的功能、介面、约束、限制等设计研究、46/96、数据流图到软件体系结构映射、基于数据流的设计方法也称为面向流程的设计方法。牙齿方法与软件需求分析阶段的结构分析方法相结合,可以方便地将数据流图表示的信息转换为节目结构的设计说明。5.5面向数据的设计方法,47/96,基于数据流方法的设计过程,48/96,典型的数据

11、流类型和系统结构,典型的数据流类型有变形的数据流和事务数据流。数据流类型不同,生成的系统结构也不同。通常,可以将一个系统中的所有数据流视为转换流,但是,当出现具有明显事务特性的数据流时,最好使用事务映射方法进行设计。49/96,典型数据流类型和系统结构,转换数据流转换数据处理问题的工作流程大致分为三个阶段。即,导入数据,转换数据,并提供如图所示的数据。50/96,转换流,特征:数据流图分为输入、转换、输出三部分,沿输入路径进入系统。通过剪辑、格式转换、合法性检查、字典处理等辅助加工,将输入信息的外部形式变为内部形式的信息,由转换中心处理,然后沿着输出路径经过格式转换、物理块构成、缓冲处理等辅助

12、加工,作为输出信息发送到系统外部。时间,51/96,典型数据流类型和系统结构,转换系统映射转换系统的映射,52/96,事务流,特征:数据流沿着输入路径到达事务中心,事务中心根据输入数据类型从多个行为路径中选择一个来执行事务中心的工作。输入数据(即事务处理)分析传入的每个事务处理的类型。根据事务类型选择,行为路径、53/96、转换映射方法、系统数据处理问题处理过程始终显示为转换数据流图,可以使用转换映射方法配置系统的映射。可能会出现明显的事务数据处理问题,可以使用事务映射方法。54/96,转换映射方法,转换分析方法的步骤(1)重绘数据流图。在需求分析阶段获得的数据流图侧重于说明系统处理数据的方式

13、,重画数据流图的起点是说明系统中数据的流动方式。(2)数据流图区分系统的逻辑输入、逻辑输出和中心转换部分。,55/96,确定输入/流出边界和转换中心-1,相关概念:物理输入:系统输入端数据流物理输出:系统输出端数据流逻辑输入:以转换为中心的输入数据流逻辑输出:表示转换中心的输出数据流分割可能因人而异。但是,如果差别不大,并且可以通过以后的原理图改进进行调整,则物理输入有时会直接用于系统的处理,而不进行字典处理。在牙齿的情况下,物理输入是逻辑输入(如果物理输出也是逻辑输出),56/96,输入/流出边界和转换中心-2确定,确定逻辑输入:根据DFD确定从物理输入到起始物理输入最远,但仍可视为系统输入

14、的那个(或那个)数据流,即逻辑输入确定逻辑输出。根据DFD,可以从物理输出开始,向系统中间移动一步,找到从物理输出端最远的东西,但仍可以看作系统输出的那个(或那个)数据流是逻辑输出确定,逻辑输入和逻辑输出之间的部分是转换中心,57/96,转换映射方法,转换分析方法的步骤(3)第一次分解,设计系统模块结构的顶层和第一层。由上而下设计的核心是寻找系统树状结构图的根或顶层模组。首先设计主模块,使用节目名称命名,然后在与中心变换相对应的位置进行绘制。第1层设计:为每个逻辑输入设计输入模块。牙齿模块的功能是向主模块提供数据。设计每个逻辑输出的输出模块。牙齿模块提供了输出主模块提供的数据的功能。设计中心转换的转换模块,该模块具有将逻辑输入转换为逻辑输出的功能。58/96,转换映射方法,转换分析方法的第一层模块和主模块之间传输的数据必须与数据流图匹配

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论