首页计算机计算机软件软件工程 05 第4章 概要设计.pptx

05 第4章 概要设计.pptx

页数:124页文件大小:7.63 MB来源: 软件工程ppt课件

本课件讲解概要设计的核心内容,从设计过程与软件体系结构入手,系统说明模块化、抽象、逐步求精、信息隐藏与模块独立等设计原理,给出内聚与耦合的分类及七条启发规则,介绍层次图、HIPO图与结构图,并详解变换分析与事务分析两类面向数据流的设计步骤。

概要设计封面,标示本部分涵盖开篇导入与要点回顾、设计过程推荐最佳方案、软件体系结构、设计原理模块化抽象等内容
“设计”随处可见,本页为要点提示页,具体内容以课件图片为准
瑞典的瓦萨战舰时间,围绕背景、vs、波兰等要点展开说明

第62页:设计原理模块化抽象:数据结构

5.3.5.2模块的耦合性特征耦合也称标记耦合(复合型耦合)。如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系,则称这两个模块间存在标记耦合。计算客户电话费基础费实际费通话记录记录结果。

第63页:设计原理模块化抽象:耦合、标志

5.3.5.2模块的耦合性控制耦合模块之间传递的信息是控制量(一个过程通过标志或命令直接控制另一个过程)。AB计算平均或最高分数平均/最高(控制信号)成绩读入分数B平均/最高计算平均分数计算最高分数输出结果yn。

第64页:设计原理模块化抽象:公共数据

  • 5.3.5.2模块的耦合性公共耦合若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合
  • 公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等
  • 公共耦合的复杂程度随耦合模块的个数增加而显著增加
  • 若只是两模块间有公共数据环境,则公共耦合有两种情况
  • 松散公共耦合和紧密公共耦合
  • AB公共数据区AB公共数据区

第65页:设计原理模块化抽象:程序代码

  • 5.3.5.2模块的耦合性内容耦合一个模块直接访问另一个模块的内部数据
  • 一个模块不通过正常入口转到另一模块内部
  • 两个模块有一部分程序代码重迭(只可能出现在汇编语言中)
  • 一个模块有多个入口
  • 尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合

第66页:5.4启发规则深度内容提纲

本节内容提纲

  • 设计过程
  • 软件体系结构介绍
  • 设计原理
  • 描绘软件结构的图形工具
  • 面向数据流的设计方法
  • 启发规则

第67页:启发规则深度:宽度、扇出和

启发规则深度

宽度、扇出和扇入都应适当模块的作用域应该在控制域之内力争降低模块接口的复杂程度模块功能应该可以预测设计单入口单出口的模块模块规模应该适中模块功能的完善化改进软件结构提高模块独立性

第68页:模块功能的完善化一个

模块功能的完善化一个

完整的功能模块,不仅应能完成指定的功能,而且还应当能够告诉使用者完成任务的状态,以及不能完成的原因。规定的功能部分。出错处理部分。当模块不能完成规定的功能时,必须返回出错信息和标志,向它的调用者报告出现这种例外情况的原因如果需要返回一系列数据给它的调用者,当完成数据加工时应给它的调用者返回一个该模块执行是否正确结束的“标志”。

第69页:改进软件结构提高模块

改进软件结构提高模块

  • 独立性设计出软件的初步结构以后,应该审查分析这个结构,通过模块分解或合并,力求降低耦合提高内聚
  • 例如,多个模块公有的一个子功能可以独立成一个模块,由这些模块调用
  • 有时可以通过分解或合并模块以减少控制信息的传递及对全程数据的引用,并且降低接口的复杂程度

第70页:模块规模应该适中

模块规模应该适中

  • 模块规模是指模块内部结构的多少
  • 限制模块的大小是减少复杂性的手段之一,因而要求把模块的大小限制在一定的范围之内
  • 通常规定其语句行数在50~100左右,最多不超过500行
  • 体积过大的模块往往是由于分解不充分,且具有多个功能,因此需要对功能进一步分解,生成一些下级模块或同层模块
  • 反之,模块体积较小时也可以考虑是否可能与调用它的上级模块合并

第71页:启发规则深度:程序结构

  • 5.4.4深度、宽度、扇出和扇入都应适当深度:程序结构中控制的层次数
  • 扇出:表示一个模块直接调用(或控制)的下属模块的个数
  • 宽度:层次结构中同一层模块的最大模块个数
  • 扇入:一个模块的直接上级模块的模块

第72页:启发规则深度

MDBCAEKLNGFHPRSJTIQ扇出扇入宽度深度

第73页:启发规则深度:范围、影响

  • 模块的控制范围包括它本身及其所有的从属模块
  • 模块的作用范围是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围
  • 如果一个判定的作用范围包含在这个判定所在模块的控制范围之内,则这种结构是简单的,否则,它的结构是复杂的
  • 5.4.5模块的作用域应在控制域之内

第74页:模块的作用域应在控制域

模块的作用域应在控制域

之内A的控制域是A、B、C、D、E、F等模块的集合。建议,所有受一个判定影响的模块应该都从属于该判定所在的模块,最好局限于做出判定的那个模块及其直接下属模块。

第75页:模块的作用域应在控制域(续)

模块的作用域应在控制域

之内在设计过程中,当遇到作用范围不在控制范围之内,可应用如下办法把作用范围移到控制范围之内:将判定所在模块合并到父模块中,使判定处于较高的层次。将受到判定影响的模块下移到控制范围内。将判定上移到层次中较高的位置。

第76页:启发规则深度:模块接口

  • 5.4.6力争降低模块接口的复杂程度模块接口复杂是软件发生错误的一个主要原因
  • 应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致
  • 接口复杂或不一致(即看起来传递的数据之间没有联系),是紧耦合或低内聚的征兆,应该重新分析这个模块的独立性
  • 5.4.7设计单入口单出口的模块这条启发式规则警告软件工程师不要使模块间出现内容耦合
  • 当从顶部进入模块并且从底部退出来时,软件是比较容易理解的,因此也是比较容易维护的

第77页:启发规则深度:预测、细节

  • 一个功能可预测的模块不论内部处理细节如何,但对相同的输入数据,总能产生同样的结果
  • 如果模块内部有一些特殊的鲜为人知的功能时,这个模块就可能是不可预测的
  • 5.4.8设计功能可预测的模块

第78页:本章内容提纲

本节内容提纲

  • 设计过程
  • 软件体系结构介绍
  • 设计原理
  • 描绘软件结构的图形工具
  • 面向数据流的设计方法
  • 启发规则

第79页:描绘软件结构的图形工具

描绘软件结构的图形工具

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第80页:描绘软件结构的图形工具:层次结构

描绘软件结构的图形工具:层次结构

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第81页:HIPO图美国IBM

HIPO图美国IBM

公司发明的“层次图加输入/处理/输出图”的英文缩写。为了能使HIPO图具有可追踪性,在H图(层次图)里除了最顶层的方框之外,每个方框都加了编号。

第82页:描绘软件结构的图形工具:结构图、方框

  • 5.5.3结构图图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:
  • 尾部是空心圆表示传递的是数据;
  • 实心圆表示传递的是控制信息。

第83页:描绘软件结构的图形工具:结构图

描绘软件结构的图形工具:结构图

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第84页:本章内容提纲

本节内容提纲

  • 设计过程
  • 软件体系结构介绍
  • 设计原理
  • 描绘软件结构的图形工具
  • 面向数据流的设计方法
  • 启发规则

第85页:面向数据流的设计方法

面向数据流的设计方法

  • 面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径
  • 面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构
  • 因为任何软件系统都可以用数据流图表示,所以面向数据流的设计方法理论上可以设计任何软件的结构

第86页:面向数据流的设计方法(续)

面向数据流的设计方法

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第87页:面向数据流的基本理念

面向数据流的基本理念

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第88页:变换流具有较明确的输入

变换流具有较明确的输入

  • 变换(或称主加工)和输出界面的数据流图称为变换型数据流图
  • 如图所示,该变换中心可以理解为数据的加工和处理程序
  • 读入原始数据校验原始数据计算最优结果编辑打印最优结果输入变换中心输出

第89页:变换流内部表示

变换流内部表示

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第90页:事务流:也就是

事务流

也就是数据处理、加工中心),它将输入分离成若干个发散的数据流,形成许多活动路径,并根据输入值选择其中一条路径。要求类别处理分房处理调房处理退房处理住房要求事务中心活动路径。

第91页:面向数据流的设计方法

(2)事务流T称为事务中心接收输入数据分析事务确定类型根据类型取通道……TTransactionrequest…Actionpaths……

第92页:面向数据流的设计方法:实际、数据流

  • 通常,一个实际系统的数据流图是变换型和事务型两种类型的混合体
  • 如图所示,中间的子块属事务型数据流,如果把中间子块视为一个处理整体的话,整个程序属变换型程序
  • A(事务型,A为事务中心)变换中心输入输出

第93页:设计过程面向数据流

设计过程面向数据流

  • 设计软件结构的基本步骤有七步:1)复审并精化数据流图
  • 2)确定数据处理流图的类型
  • 3)确定变换中心或事务中心
  • 4)将数据流图映射成软件模块结构图,设计出该数据流图对应的第一层模块结构
  • 5)基于数据流图逐步分解,设计下层模块
  • 6)运用模块设计和优化准则优化软件结构
  • 7)描述模块的接口

第94页:设计过程复查:精化数据流图

设计过程复查

精化数据流图类型找出事务中心找出变换中心映射成事务结构映射成变换结构优化软件模块结构导出模块结构复查不满意变换事务变换设计事务设计Q

第95页:面向数据流的设计方法

面向数据流的设计方法

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第96页:变换分析:设计步骤复查

变换分析

设计步骤复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,从而孤立出变换中心完成第一级分解完成第二级分解使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

第97页:变换分析:汽车数字

变换分析

  • 汽车数字仪表板的设计:
  • 汽车数字仪表板的设计:
  • 通过模数转换实现传感器和微处理机接口;
  • 在发光二极管面板上显示数据;
  • 指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等;
  • 指示加速或减速;
  • 超速警告:如果车速超过55英里/小时,则发出超速警告铃声。

第98页:变换分析:燃料流传感器

变换分析

  • 燃料流传感器信号SPS旋转信号读旋转信号收集和求平均确定加/减速转换成转/分计算里程计算mph,超速值产生加/减速显示计算燃料消耗计算gph读和校核产生mpg显示产生mph显示发出铃声产生里程显示SPS
  • SPS箭头指示燃烧流上箭头水平线下箭头rpmrpmgphmphmpgmph超速值英里显示铃声mph显示mpg显示

第99页:变换分析:设计步骤复查

变换分析

设计步骤复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,从而孤立出变换中心完成第一级分解完成第二级分解使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

第100页:变换分析:燃料流传感器

变换分析

  • 燃料流传感器信号SPS旋转信号读旋转信号收集和求平均确定加/减速转换成转/分计算里程计算mph,超速值产生加/减速显示计算燃料消耗计算gph读和校核产生mpg显示产生mph显示发出铃声产生里程显示SPS
  • SPS箭头指示燃烧流上箭头水平线下箭头rpmrpmgphmphmpgmph超速值英里显示铃声mph显示mpg显示

第101页:变换分析:设计步骤复查

变换分析

设计步骤复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,从而孤立出变换中心完成第一级分解完成第二级分解使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

第102页:燃料流传感器信号SPS

燃料流传感器信号SPS

  • 旋转信号读旋转信号收集和求平均确定加/减速转换成转/分计算里程计算mph,超速值产生加/减速显示计算燃料消耗计算gph读和校核产生mpg显示产生mph显示发出铃声产生里程显示SPS
  • SPS箭头指示燃烧流上箭头水平线下箭头rpmrpmgphmphmpgmph超速值英里显示铃声mph显示mpg显示

第103页:变换分析:设计步骤复查

变换分析

设计步骤复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,从而孤立出变换中心完成第一级分解完成第二级分解使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

第104页:变换分析:软件结构代表

变换分析

  • 软件结构代表对控制的自顶向下的分配,所谓分解就是分配控制的过程。对于变换流的情况,数据流图被映射成一个特殊的软件结构,这个结构控制输入、变换和输出等信息处理过程。CmCtCaCe位于软件结构最顶层的控制模块Cm协调下述从属的控制功能:
  • 输入信息处理控制模块Ca,协调对所有输入数据的接收;
  • 变换中心控制模块Ct,管理对内部形式的数据的所有操作;
  • 输出信息处理控制模块Ce,协调输出信息的产生过程。

第105页:变换分析:对一个大型

变换分析

  • 对一个大型系统中的复杂数据流可以用两个或多个模块完成上述一个模块的控制功能
  • 应该在能够完成控制功能并且保持好的耦合和内聚特性的前提下,尽量使第一级控制中的模块数目取最小值
  • 对于数字仪表板的例子,每个控制模块的名字表明了为它所控制的那些模块的功能

第106页:变换分析:设计步骤复查

变换分析

设计步骤复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,从而孤立出变换中心完成第一级分解完成第二级分解使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

第107页:变换分析:所谓第二级

变换分析

所谓第二级分解就是把数据流图中的每个处理映射成软件结构中一个适当的模块。完成第二级分解的方法是:从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理映射成软件结构中Ca控制下的一个低层模块。然后沿输出通路向外移动,把输出通路中每个处理映射成直接或间接受模块Ce控制的一个低层模块。最后把变换中心内的每个处理映射成受Ct控制的一个模块。

第108页:变换分析

变换分析

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第109页:变换分析:这3张图表示

变换分析

  • 这3张图表示对软件结构的初步设计结果
  • 虽然图中每个模块的名字表明了它的基本功能,但是仍然应该为每个模块写一个简要说明,描述:进出该模块的信息(接口描述)
  • 模块内部的信息
  • 过程陈述,包括主要判定点及任务等
  • 对约束和特殊特点的简短讨论
  • 这些描述是第一代的设计规格说明,在这个设计时期进一步的精化和补充是经常发生的

第110页:变换分析:设计步骤复查

变换分析

设计步骤复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,从而孤立出变换中心完成第一级分解完成第二级分解使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

第111页:变换分析:对第一次分割

变换分析

  • 对第一次分割得到的软件结构,总可以根据模块独立原理进行精化
  • 下面是某些可能的修改:输入结构中的模块“转换成rpm”和“收集sps”可以合并
  • 模块“确定加速/减速”可以放在模块“计算mph”下面,以减少耦合
  • 模块“加速/减速显示”可以相应地放在模块“显示mph”的下面

第112页:面向数据流的设计方法:控制数据

数字仪表板控制数据转换控制驱动仪表板接收传感器信号计算gph读燃料流转换成rpm收集sps读旋转信号确定加/减速计算mph计算mpg计算里程加/减速显示显示mpg显示mph显示里程发出铃声发光二极管显示

第113页:

第114页:面向数据流的设计方法

面向数据流的设计方法

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第115页:事务分析

事务分析

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第116页:事务分析:基本步骤复查

事务分析

基本步骤复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,从而孤立出变换中心完成第一级分解完成第二级分解使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

第117页:事务分析

事务分析

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第118页:事务分析:基本步骤复查

事务分析

基本步骤复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,从而孤立出变换中心完成第一级分解完成第二级分解使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

第119页:事务分析

事务分析

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第120页:事务分析(续)

事务分析

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第121页:本章内容提纲

本节内容提纲

  • 设计过程
  • 软件体系结构介绍
  • 设计原理
  • 描绘软件结构的图形工具
  • 面向数据流的设计方法
  • 启发规则

第122页:面向数据流的设计方法:模块化、概念

问题1.模块化的概念是什么,模块化的优点是什么2.模块独立的程度可以如何衡量。3.面向数据流的设计方法,包括哪些步骤。

第123页:5.6 面向数据流的设计方法

本章结束软件工程

本页正文以课件图示为主,源文件仅提取到上述文字说明,具体图形内容请对照原课件图片。

第124页:本章小结与课后作业:小组、作业

小组作业以组为单位,参考、分析案例,撰写《概要设计说明书》模板(word)。提交时间:11月5日。

《软件工程》课件目录

顶部目录