欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    软件工程4ppt课件.ppt

    • 资源ID:5640403       资源大小:897.55KB        全文页数:94页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程4ppt课件.ppt

    ,第4章 结构化设计 l面向数据流的设计方法,4.1 软件设计概述4.2 软件设计的原理 4.3 模块独立性 4.4 表示软件结构的工具4.5 软件结构设计中的启发规则,4.6 面向数据流的设计方法 l例3:汽车仪表4.7 人机界面设计 4.8 过程设计(详细设计)4.9 面向数据结构的设计方法,第4章 结构化设计 l面向数据流的设计方法,1软件设计分为概要设计和详细设计两个阶段,(1)概要设计:将软件需求转化为软件结构(程序结构、接口)和 数据结构。通过仔细分析软件需求规格说明,确定组成系统的 模块及各模块之间的关系,设计出完成预定功能的 模块结构(软件结构),并建立接口。,(2)详细设计:详细地设计每个模块,即确定完成每个模块功能所需 要的算法和数据结构。,2软件设计与分析模型的关系(图4.1),(1)数据设计:将分析阶段的数据模型(E-R图、数据字 典)转变成实现软件所需要的数据结构。,(2)体系结构设计:将分析阶段的功能模型(DFD)转变 成软件的模块框架。,l结构化分析结果为结构化设计提供了最基本的输入信息,(3)接口设计:根据分析阶段的功能模型(DFD),描述 软件内部、软件与协作系统之间、软件与用户之间的 通信方式。,(4)过程设计(详细设计):根据数据流图中每个处理的 要求及分析阶段的行为模型(状态转换图)设计每个模 块的实现过程,4.2.1 模块化 4.2.2 抽象和逐步求精 4.2.3 信息隐藏,(1)模块:由边界元素限定的程序单元。l 模块是构成程序的基本构件,是指用一个名字可以 调用的一段程序语句,可以将模块理解成类似“子 程序(函数)”的概念。,(2)模块化的含义:将程序划分成独立命名且可独立访问 的若干模块,每个模块完成一个子功能;将模块集成 起来构成一个整体,完成指定的系统功能。,(3)模块化的依据:把复杂的问题分解成许多容易解决的小问题时,原 来的问题也就容易解决了。,l设函数 C(x)表示问题x的复杂程度,函数 E(x)表示解决问题x需要 的工作量(时间)。对于两个问题P1和P2:如果:C(P1)C(P2)则:E(P1)E(P2)根据经验规律:C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2),(4)合理划分模块,可使软件开发成本达到最小,当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本 也减少了;但随着模块数目增加,设计模块间接口所需要的工作量也 将增加。根据以上两个因素,得出每个软件都相应地有一个最适当的模块数目 M,使得系统的开发成本最小。,模块化是对软件的一次划分过程。该划分过程从需求分析 阶段确立的目标系统的功能模型出发,对整个软件问题进 行分割,使软件问题中的每个部分用一个或几个软件成份 加以解决。,(1)抽象:抽象是抽出事物的本质特性而暂时不考虑其 细节的思维方式。处理复杂系统的有效的方法:分层次构造和分析。(对于一个复杂的动态系统,首先用一些高级的抽象概 念构造和理解,这些高级概念又可以用一些较低级的 概念构造和理解,直至构造出最低层次的具体元 素),软件工程过程的每一步都是对软件解法的抽象层次的 一次精化:在可行性研究阶段,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环境内熟悉 的方式描述的;当由总体设计向详细设计过渡时,抽象的程度也就随 之减少了;最后,当源程序写出来以后,也就达到了抽象的最低层。,(2)逐步求精:从一个高层抽象的功能定义开始,逐步进行功能和信息 的细化,逐步实现越来越多的细节,直至用某种程序设 计语言实现此功能。,l可以把逐步求精定义为:为了能集中精力解决主要问题而尽量推迟对问题细节 的考虑,人类的认知过程遵守Miller法则:一个人在任何时候都只能把注意力集中在(72)个 知识块上。,逐步求精技术的作用:把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说是必要的、然而目 前还不需要考虑的细节,这些细节留到以后再考虑。,(3)抽象与逐步求精是互补的概念:l抽象使得设计者能够集中精力于当前主要的过程和数 据,同时却忽略低层细节。l求精则帮助设计者在设计过程中逐步揭示出低层细节。l可以把抽象看作是一种通过忽略多余的细节同时强调 有关的细节,而实现逐步求精的方法。,信息隐藏:一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。,l“隐藏”意味着有效的模块化可以通过定义一组独立的模块来实现,这些模块彼此之间只交换那些为了完成软件功能而必须交换的信息。,“隐藏”定义并施加了对模块内部过程细节和模块使用的局部数据结构 的访问限制。,信息隐藏原理给出了应用模块化分解软件的原则。,l模块独立性含义:软件结构中的每个模块完成一个相对独 立的特定子功能,而和其它模块的接口是简单的。,l模块独立性的度量标准:模块之间的耦合尽可能弱;每个模块的内聚尽可能强。,4.3.1 耦合4.3.2 内聚,1.耦合表示一个软件结构内不同模块之间的互连程度。,2.耦合的强弱取决于模块间接口的复杂程度(调用方式、接口信息性质、通过接口的数据量),3.模块之间的耦合强度由弱到强依次如下:(1)数据耦合:模块间通过参数交换数据。,(2)控制耦合:模块间通过参数交换控制信息。,(3)特征耦合:主调模块将整个数据结构作为参数传递,而被调模块 只需要其中的一部分数据元素。,l在特征耦合中,被调用的模块处理了的数据多于它 确实需要的数据,这将导致对数据的访问失去控制。,(4)公共环境耦合:一组模块通过一个公共数据环境相互作用。l公共环境可以是全程变量、共享的通信区、内存的公 共覆盖区、任何存储介质上的文件和物理设备等 l分为松散的公共环境耦合和紧密的公共环境耦合两种,(5)内容耦合:一个模块访问另一个模块的内部数据 一个模块不通过正常入口转到另一模块的内部。两个模块有一部分程序代码重叠。一个模块有多个入口。,l耦合的强弱:弱 强 数据耦合控制耦合特征耦合公共环境耦合内容耦合,l耦合是影响软件复杂程度的一个重要因素。应该采取下述 设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共 环境耦合的范围,完全不用内容耦合。,1.内聚标志着一个模块内各个元素彼此结合的紧密程度。它是信息隐蔽和局部化概念的自然扩展。理想内聚的模块只做一件事情。,2.模块内各元素之间的内聚强度由弱到强依次如下:(1)偶然内聚:模块内各元素之间关系松散 l模块没有明确功能或模块包括彼此无关的一组功能,(2)逻辑内聚:一个模块内的各功能在逻辑上相同或相似,l这种模块把几种相关的功能组合在一起,每次调用时,由传送给模 块的判定参数来确定该模块应执行哪一种功能。当调用逻辑内聚模 块时需要进行控制参数的传递,增加了模块间的耦合程度。而将未 用的部分也调入内存,降低了系统的效率。,l例如:一个模块可生 成、打印多种报表;多种功能一个界面,靠传递控制参数分别 调用不同功能。,(3)时间内聚:一个模块内各功能须在同一时段内完成,l模块内各个功能的执行与时间有关,通常要求所有 功能必须在同一时间段内执行。一般情形下,时间 内聚模块的各功能可以以任意的顺序执行,所以它 的内部逻辑简单、存在的开关(或判定)转移较少 l例如:初始化模块完成各种初始化工作。,(4)过程内聚:模块内各个部分彼此相关,必须按特定的次序执行。,l通常过程内聚模块仅包括完整功能的一部分,所以 它的内聚程度仍然较低。,(5)通信内聚:模块内各功能使用同一个输入或产生同 一个输出,l通信内聚模块中包括了若干独立的功能。l通信内聚模块的缺点是它容易产生重复的联结或重复的功能。因 为各成分执行的次序可以是任意的,有的模块调用它时,可能只 需执行其中的部分动作,另一部分则为多余联结。而且维护起来 也不方便。l例如:一个模块完成对同一文件的输入、修改、删除操作,(6)顺序内聚:模块内各处理元素与同一个功能密切相关,且必须 顺序执行,即前一个处理动作产生的输出数据是下 一个处理动作的输入数据。,(7)功能内聚:模块内各部分属于一个整体、为完成一项单一功能而协 同工作、不可分割。,l内聚的强弱:弱 强 偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚,l模块的内聚在系统的模块化设计中是一个关键的因素。软件设计中,应力求做到高内聚,提高模块独立性。,(1)层次图(Hierarchy 图):表示了模块和模块间的调用关系(图4.4,图4.5),(2)HIPO图(Hierarchy plus Input,Process,Output):用层次图表示模块和模块间调用关系;用IPO图表示各个模块的处理过程。lIPO:输入、处理、输出(图4.6,图4.7),(3)结构图:,l结构图作用:表示模块及模块间的调用关系;表示模块间的信息传递,M循环调用A、B、C:,判定为真时调用A、为 假时调用B,(1)改进软件结构提高模块独立性:通过分解或合并模块,降低耦合、提高内聚。,(2)每个模块的规模适中:过大的模块往往是由于分解不充分、会降低独立性。过小的模块开销大于有效操作,而且模块数目过多将 使系统接口复杂。,(3)深度、宽度、扇出和扇入要适当(图示),设计得很好的软件结构通常顶层模块扇出大、中层模块扇出 较小,底层模块扇入大(底层一般是公共的实用模块),(4)模块的作用域应在控制域之内,l模块的作用域:受该模块内一个判定影响 的所有模块集合,l模块的控制域:模块本身及其所有从属模块。,(5)力争降低模块接口的复杂程度(6)设计单入口单出口的模块(7)模块功能应该可以预测,程序的模块结构表明了程序各个部件(模块)的组织情况,是软件的过程表示。可能出现的软件结构:,1.模块的扇出:模块直接调用的子模块数目 扇出过大意味着模块过分复杂,需要 控制和协调过多的下级模块,应该适当 增加中间层次的控制模块。,2.模块的扇入:直接调用该模块的上层模块数目 扇入越大则共享该模块的上级模块数目 越多,这是有好处的。,3.结构图的深度:模块结构图的层次数,4.结构图的宽度:模块结构图中同一层模块数目的最大值,深度、宽度、扇出和扇入,4.6.1 设计步骤 4.6.2 变换分析设计方法(步骤)4.6.3 事务分析设计方法(步骤)4.6.4 软件优化原则,将数据流图映射成软件结构,(1)根据数据流图决定问题类型,(2)根据问题类型,进行变换分析或事务分析,导出系统结构图。,(3)改进系统结构图。,l面向数据流的设计方法-设计步骤,l面向数据流的设计步骤,变换型问题数据流图的构成:,信息沿输入通路进入系统、同时由外部形式(物理输入)变换成内部形式(逻辑输入);进入系统的信息通过变换 中心,经加工处理以后的结果(逻辑输出)再沿输出通路 变换成外部形式(物理输出)离开软件系统。,事务型问题数据流图的构成:,事务中心“T”的任务:接受事务(请求);分析事务类型、确定其对应哪一条处理路径。,数据流“事务”沿输入 通路到达处理“T”,这个处理根据事务的类 型在若干个活动通路中 选出一个来执行。,变换分析设计步骤(1)分析具有变换特征的数据流图,确定输入流和 输出流的边界、孤立出变换中心,变换分析设计步骤(2)完成一级分解,设计软件结构的顶层和第二层 l顶层模块Cm:代表系统 l第二层模块:输入信息处理模块Ca:协调对所有输入数据的接收 变换中心控制模块Ct:管理对内部形式的数据的所有 操作 输出信息处理控制模块Ce:协调输出信息的产生过程,变换分析设计:,变换分析设计步骤(3)完成二级分解:把数据流图中的每个处理映射成软件 结构中一个适当的模块,在数据流图上,沿变换中心的输入边界开始向外移动,将 输入通路中的每个处理映射成Ca模块下的一个直接或间接 低层模块。,l映射过程中,注意保持数据流的一致。,在数据流图上,沿变换中心的输出边界开始向外移动,将 输出通路中的每个处理映射成Ce模块下的一个直接或间接 低层模块。,将变换中心内的每个处理映射成Ct模块下的一个直接或间 接模块。,变换分析设计:,二级分解(局部):将输入通路中的每个处理映射成Ca模块下的一 个直接或间接低层模块,变换分析设计步骤(4)精化软件结构:分解或合并,(5)简要描述每个模块(可以用IPO图描述):接口说明 内部逻辑描述 全局和局部数据结构的说明 设计约束和限制,例:变换分析,数据流图,一级分解:,二级分解:,精化后的软件结构,l,事务分析 由事务流数据流图映射成的软件结构包括一个接收分支和 一个发送分支。映射出接收分支结构的方法和变换分析映射出输入结构的 方法很相像,即从事务中心的边界开始,把沿着接收流通 路的处理映射成模块。发送分支的结构包含一个调度模块,它控制下层的所有活 动模块;然后把数据流图中的每个活动流通路映射成与它 的流特征相对应的结构。,事务分析映射方法,例:事务分析,数据流图,一级分解,二级分解,对于一个大型软件系统,常常把变换分析和事务分析应用 到同一个数据流图的不同部分,由此得到的子结构形成“构件”,可以利用它们构造完整的软件结构。一般说来,如果数据流不具有显著的事务特点,最好使用 变换分析;反之,如果具有明显的事务中心,则应该采用 事务分析技术。,l 优化方法:(1)在不考虑时间因素的前提下开发并精化软件结构;(2)在详细设计阶段选出最耗费时间的那些模块,仔细地设计它们 的处理过程(算法),以求提高效率;(3)使用高级程序设计语言编写程序;(4)在软件中孤立出那些大量占用处理机资源的模块;(5)必要时重新设计或用依赖于机器的语言重写上述大量占用资源 的模块的代码,以求提高效率。l上述优化方法遵守了一句格言:“先使它能工作,然后再使它快起来。”,1.详细设计的任务:(1)确定软件各个组成部分的内部算法以及 各部分的内部数据结构;(2)选定某种过程表达形式来描述各种算法。(3)进行详细设计的评审,2.详细设计的目标:确定应该怎样具体地实现所要求的系统。得出对目标系 统的精确描述,从而在编码阶段可以把这个描述直接翻译成 用某种程序设计语言书写的程序。详细设计阶段的任务还不是具体地编写程序,而是要设计 出程序的“蓝图”,以后程序员将根据这个蓝图写出实际 的程序代码。因此,详细设计的结果基本上决定了最终的 程序代码的质量。,3.结构化程序的经典定义:一个程序的代码块仅仅通过顺序、选择和循环 三种控制结构进行连接;并且每个代码块只有一个入口和一个出口,4.过程设计描述工具:(1)图形工具:程序流程图、NS图、PAD图,(2)表格工具:判定表、判定树,(3)语言工具过程设计语言(PDL)l课堂练习,用判定表表示计算行李费的算法,l当算法中包含多重嵌套的条件选择时,判定表能够清晰地表示复杂 的条件组合与应做的动作之间的对应关系。l一张判定表由四部分组成:左上部列出所有条件,左下部是所有可能做的动作,右上部是表示 各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,右下部规定了与特定的 规则相对应的动作。,图4.30 用判定树表示计算行李费的算法,lPDL介于自然语言和程序设计语言之间lPDL的语法:(1)数据说明:Type is 限定说明(2)程序块:Begin 一组伪码语句 End,(3)子程序:子程序结构:Procedure Interface 程序块或一组伪码语句End 子程序的调用:Perform Using,(4)选择控制结构:选择:if then else endif,多路选择:case of when select;when select;when select;default:endcase,(5)循环控制结构:lrepeat until endrep ldo while enddo ldo for 循环变量取值范围 endfor,(6)输入和输出:read/write from/to,l课堂练习:用N-S图和程序流程图描述下列PDL START DO WHILE L1 IF A0 THEN A2 ELSE A1 END IF S1 IF B0 THEN B2 DO WHILE L2 B3 END DO C ELSE B1 END IF S2 END DO D STOP,4.9.1 面向数据结构的设计方法概述4.9.2 Jackson 图,l面向数据结构的设计思想:根据软件所处理的信息的特征(数据结构)来设计软件l面向数据结构的设计方法适用于详细设计阶段,描述程序处理过程l著名的面向数据结构设计方法:Jackson 方法和 Warnier 方法,1Jackson图:(1)顺序结构:数据由一个或多个数据元素组成,每个元素 按确定次序出现一次 图4.31,(2)选择结构:数据包含两个或多个数据元素,每次使用这个数据 时,按一定条件从这些数据元素中选择一个 图4.32,(3)重复结构:根据使用条件,数据由一个数据元素出现零次或 多次构成 图4.33,l 改进的Jackson图 图4.34,2.Jackson图应用举例:某仓库存放多种零件(如P1,P2,);每个零件的每次进货、发货都有一张卡片作出记录;每月根据这样一叠卡片打印一张月报 表。报表每行列出某种零件本月库存量的净变化。,(a)输入数据结构;(b)输出数据结构;(c)输出月报表,l人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命,因此,必须对人机 界面设计给以足够重视。l人机界面设计中需要考虑的主要问题如下:(1)命令交互;(2)系统响应时间;(3)用户帮助设施;(4)出错信息处理。,1交互界面设计考虑的问题:保持一致性。提供有意义的反馈。保证在用户和界面之间建立双向通信。在执行有较大破坏性的动作之前要求用户确认。允许取消绝大多数操作。提供UNDO操作。减少在两次操作之间必须记忆的信息量。尽量减少击键次数,减少鼠标移动的距离。健壮性。系统应该保证不受致命错误的破坏。提供帮助设施。,2查询界面设计考虑的问题:只显示与当前工作内容有关的信息。显示的含义应该非常明确。允许用户保持可视化的语境。(如:对图形显示进行缩放,原始的图像应该一致(以缩小的形式显示在显示屏的一角)。产生有意义的出错信息。使用窗口分隔不同类型的信息。高效率地使用显示屏。,3数据输入界面设计考虑的问题:尽量减少用户的输入动作。特别是减少击键次数。保持信息显示和数据输入之间的一致性。使在当前动作语境中不适用的命令不起作用。让用户控制交互流。在不退出程序的情况下从错误状态中恢复正常。对所有输入动作都提供帮助。消除冗余的输入。尽可能提供缺省值。程序能自动获得或计算出来的信息不要求用户输入。,程序的3种基本控制结构:,(a)顺序(b)选择(c)循环,其他常用的程序控制结构:,(a)DO-UNTIL结构(b)DO-CASE结构,盒图的基本符号,(a)顺序(b)IF型分支(c)CASE型多分支(d)循环(e)调用子程序A,例:用公式:求。,用N-S图描述的程序算法,用程序流程图描述的程序算法,PAD图(问题分析图)用二维树形结构的图来表示 程序的控制流,将这种图翻译成程序代码比较容易。,(a)顺序(先执行P1,后执行P2);(b)选择(IF C P1 ELSE P2);(c)CASE型分支;(d)WHILE型循环(WHILE C DO P);(e)UNTIL型循环(REPEAT P UNTIL C);(f)语句标号;(g)定义,PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象的程序,随着设计工作的深入而使用def符号逐步增加细节,直至完成详细设计。,

    注意事项

    本文(软件工程4ppt课件.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开