




已阅读5页,还剩104页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,软件工程基础,.,2,设计,总体设计详细设计设计与需求分析的区别-?总体设计与详细设计的区别-?划分设计阶段的好处-?,.,3,.,4,需求规格说明之一(数据流图),总体设计,.,5,详细设计,.,6,总体设计,总体设计的任务面向数据流的设计方法示例总体设计原理及启发式规则,.,7,总体设计的任务,系统设计-划分出组成系统的物理元素。软件结构设计-确定软件结构、数据结构。*总体设计阶段组成系统的物理元素处于黑合子级,这些黑合子里的具体内容将在以后阶段详细设计。对构成软件的模块内部详细设计也在后续阶段。总体设计的好处:?-对前面问题的回答。,.,8,系统设计,设计中用到的工具:数据流图系统流程图体会两者的区别与联系系统设计方法从数据流图出发设想供选择的物理方案;选取合理方案-其中用到系统流程图;推荐最佳方案;,.,9,系统流程图,图例,实例,处理操作,X,磁盘,订货报告,通信链路,数据流向,连接下页,I/O报表,人工操作,原始单据,事务,库存清单程序,定货信息,报告生成程序,库存清单主文件,磁带文件,生成的文件,显示或输入输出,库存清单系统系统流程图,.,10,数据流图出发设想供选择的物理方案一,仓库管理员,1.2更新库存清单,2产生报表,采购员,D1库存清单,事务,订货报表,D2订货信息,1.1接受事务,1.3处理订货,事务,库存信息,订货系统,数据流图,.,11,数据流图出发设想供选择的物理方案二,仓库管理员,1.2更新库存清单,2产生报表,采购员,D1库存清单,事务,订货报表,D2订货信息,1.1接受事务,1.3处理订货,事务,库存信息,订货系统,数据流图,D3事务,事务,.,12,软件结构设计,软件结构设计确定程序由那些模块组成,这些模块之间的关系.-不涉及模块内部算法流程功能分解;软件结构设计-即模块结构图(MSD);数据结构设计,主要是完成数据库的物理设计,确定数据库名,表名,设计数据字典;书写文档,.,13,软件结构设计,设计中的图形工具:HIPO图=层次图(H图)+IPO表模块结构图,层次图图例,.,14,软件结构设计,模块结构图图例:,传递的是数据,.,15,软件结构设计,结构设计方法:基于数据流的设计方法(SD方法)基于数据结构的设计方法(Jackson方法),.,16,基于数据流(SD)的方法,.,17,基于数据流(SD)的方法,变换流信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经过加工处理以后再沿输出通路变换成外部形式离开软件系统。,.,18,基于数据流(SD)的方法,.,19,基于数据流(SD)的方法,事务流,.,20,基于数据流(SD)的方法,变换分析复查并精化数据流程图确定数据流程图具有变换特性还是事务特性,.,21,基于数据流(SD)的方法,确定输入流和输出流的边界,从而孤立出变换中心检查“输入流”的边界检查“输出流”的边界得到变换中心,.,22,基于数据流(SD)的方法,完成“第一级分解”控制模块Cm是抽象出来的,它位于软件结构最顶层,协调控制下属模块。输入信息处理控制模块Ca,协调对所有输入数据的接收。变换中心控制模块Ct,管理对内部形式的数据的所有操作。输出信息处理控制模块Ce,协调输出信息的产生过程。,.,23,基于数据流(SD)的方法,Cm,Ca,Ct,Ce,第一级分解的方法,.,24,基于数据流(SD)的方法,完成“第二级分解”把数据流程图中的每个处理映射成软件结构中一个适当的模块。,.,25,基于数据流(SD)的方法,.,26,基于数据流(SD)的方法,.,27,基于数据流(SD)的方法,.,28,基于数据流(SD)的方法,完成第二级分解的方法是:从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理逻辑映射成软件结构中Ca控制下的一个低层模块;沿输出通路向外移动,把输出通路中每个处理逻辑映射成直接或间接受模块Ce控制的一个低层模块;把变换中心内的每个处理映射成受Ct控制的一个模块。,.,29,基于数据流(SD)的方法,事务分析由事务流映射成的软件结构包括一个接收分支和一个发送分支。映射出接收分支结构的方法和变换分析映射出输入结构的方法相似,即从事务中心的边界开始,把沿着接收流通路的处理逻辑映射成模块。,.,30,基于数据流(SD)的方法,发送分支的结构包含一个调度模块,它控制下层的所有活动模块;然后把数据流程图中的每一个活动流通路映射成与它的特征相对应的结构。,.,31,基于数据流(SD)的方法,总控,调度,A_CTL,B_CTL,C_CTL,接收通路,C通路,B通路,A通路,事务分析的映射方法,.,32,变换型软件结构是典型的三叉型,事务型软件结构是典型的二叉型对于复杂系统可能需用多个模块来对应一级分解中的一个模块对前面分割得到的软件结构进行精化,基于数据流(SD)的方法,.,33,示例-回顾转换步骤,复查并精化数据流图,流类型,区分输入和输出分支,区分事务中心和接收通路,映射成事务结构,映射成变换结构,启发式规则精化结构,复查,“事务”,“变换”,孤立变换中心,一级分解通常为三叉形式,一级分解通常为二叉形式,孤立事务中心,.,34,示例,通过模数转换实现传感器和微处理机接口;在发光二极管面板上显示数据;指示每小时英里数(MPH),行驶的里程,每加伦油行驶的里程数(MPG)等等;指示加减速;超速警告:如果车速超过55英里/小时,则发出超速警告铃声。,.,35,示例,示例:数字仪表板系统的精化,读旋转信号,收集并求平均,转换成转/分,计算gph,读并校核,确定加速/减速,计算里程,计算mph和超速值,计算燃料消耗,产生加速/减速显示,产生里程显示,发出铃声,产生mph显示,产生mpg显示,旋转信号,信号/秒,(sps),sps,燃烧流传感器信号,燃烧流,gph,sps,rpm,rpm,箭头指示,上箭头,下箭头,水平线,英里,超速值,mph,mpg,mpg显示,mph显示,铃声,里程显示,.,36,示例,数字仪表板系统的第一级分解,数字仪表板控制,接受传感器信号,数据转换控制,驱动仪表板控制,输入部分,输出部分,变换控制,.,37,示例,可以将输入部分的模块结构图进一步分解为:,.,38,示例,变换中心的模块结构图进一步分解为:,.,39,示例,进一步分解输出部分的模块结构图为:,.,40,示例,输入结构中的模块“转换成rpm”和“收集sps”可以合并:-*?,精化后的输入结构图:,.,41,示例,变换部分的精化:,.,42,示例,输出部分精化为:,.,43,示例,通过以上讨论,可以看出:在总体设计中(1)将一个给定的DFD转换为初始的模块结构图基本上是一个“机械”的过程,一般体现不了设计人员的创造力;(2)优化设计-将一个初始的模块结构图转换为最终的模块结构图,对设计人员将是一种挑战,其结果将直接影响软件系统开发的质量。,.,44,数据结构设计(数据库设计),对于需要使用数据库的那些应用领域,分析员应该在需求分析的基础上进一步设计数据库。模式设计子模式设计完整性和安全性设计优化,.,45,总体设计的原则和概念,模块化抽象和逐步求精信息隐蔽和局部化模块独立启发式规则,.,46,总体设计的原则和概念,模块化模块的定义?什么是模块化?为啥要模块化?,.,47,具有四种属性的一组程序语句称为一个模块,四种属性:输入/输出、逻辑功能、运行程序、内部数据。过程、函数、子程序、宏、组件、对象、对象的方法。就是把程序化分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能满足问题的要求。,总体设计的原则和概念,.,48,总体设计的原则和概念,抽象和逐步求精抽象与逐步求精的互补性抽象包括数据抽象和过程抽象抽象与模块化关系,.,49,总体设计的原则和概念,.,50,总体设计的原则和概念,信息隐蔽与局部化信息隐蔽与局部化密切相关信息隐蔽与局部化的好处-减小模块之间联系的复杂度,.,51,总体设计的原则和概念,.,52,总体设计的原则和概念,voidcal(inti)j=i+3;,voidcal(boolflag)if(flag)thenelseendif,.,53,总体设计的原则和概念,模块独立模块独立的概念-功能单一、完整模块独立的度量1、内聚2、耦合,.,54,总体设计的原则和概念,耦合定义:对一个软件结构内不同模块之间的互连程度的度量。耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。耦合的种类:数据耦合标记耦合控制耦合公共耦合内容耦合,.,55,总体设计的原则和概念,数据耦合如果两个模块间的通讯信息是若干参数,其中每一个参数都是一个数据元素,称这种耦合为数据耦合。这是模块之间影响最小的耦合关系。,开发货单,计算金额,单价,数量,金额,.,56,总体设计的原则和概念,标记耦合(特征耦合)如果两个模块都与同一个数据结构有关,则称为标记耦合。,计算水费和电费,计算水费,计算电费,住户详情,水费,住户详情,电费,.,57,总体设计的原则和概念,住户详情数据结构中包括“本月用水量”、“本月用电量”。上面的“标记耦合”图可改进为下面“数据耦合”图。,计算水量和电费,计算水费,计算电费,水费,电费,本月用水量,本月用电量,模块之间的数据耦合,.,58,总体设计的原则和概念,控制耦合如果模块A向模块B所传递的信息控制了模块B的内部逻辑,那么A和B之间的耦合称为控制耦合。控制信息可以看作是一个开关量,它传递了一个控制信息或状态的标志。控制信息不同于数据信息,数据信息一般通过处理过程处理被处理的数据,而控制信息则是控制处理过程中的某些参数。,.,59,总体设计的原则和概念,当要查找的库存编号找不到时,给上级模块反馈一个控制信息,要求上级模块打印“无此库存记录”错误信息。,获得库存记录,检索库存记录,库存编号,库存量,打印“无此库存记录”错误信息,.,60,总体设计的原则和概念,公共耦合如果两个模块都和同一个公共数据域有关,则称为公共耦合。公共耦合是一种不良的耦合关系,它给模块的维护和修改带来困难。如公共数据要作修改,很难判定有多少模块应用了该公共数据,故在模块设计时,一般不允许有公共耦合关系的模块存在。,A,B,C,公用数据,.,61,总体设计的原则和概念,内容耦合如果一个模块和另一个模块的内部属性(即运行程序和内部数据)有关,则称为内容耦合。例如:模块A中TRC:模块B中GOTOTRC模块A与模块B存在内容耦合,这是一种最坏的耦合。,.,62,总体设计的原则和概念,设计模块时,应以数据耦合为主,辅以特征耦合与控制耦合,消除公共耦合和内容耦合。,耦合,耦合,耦合,耦合,耦合,.,63,总体设计的原则和概念,内聚定义:模块的内聚是指一个模块内部的各个组成部分的紧凑性,其处理动作的组合强度。内聚的种类:功能内聚顺序内聚通讯内聚过程内聚时间内聚逻辑内聚偶然内聚,.,64,总体设计的原则和概念,功能内聚如果一个模块内部的各组成部分的处理动作全都为执行同一个功能而存在,并且只执行一个功能,则称为功能内聚。判断一个模块是不是功能内聚,只要看这个模块是“做什么”,是完成一个具体的任务,还是完成多任务。顺序内聚如果一个模块内部的各个组成部分执行的几个处理动作有这样的特征:前一个处理动作所产生的输出数据是后一个处理动作的输入数据,称为顺序内聚。顺序内聚维护起来不如功能内聚方便,要修改模块中的一个功能,会影响到同一个模块中的其他功能。,A,B,C,功能1,功能2,.,65,总体设计的原则和概念,通讯内聚如果一个模块内各组成部分的处理动作都使用相同的输入数据或相同的输出数据,称为通讯内聚。,获得配件单价和库存量,配件编号,库存量,单价,两个工作:1.按配件编号查询“数据存储”,获得单价。2.按配件编号查询“数据存储”,获得库存量。,这两个处理动作都使用相同的输入数据,为通讯内聚。两个动作的处理顺序无关紧要。,.,66,总体设计的原则和概念,过程内聚如果一个模块内部的各个组成部分的处理动作各不相同,彼此也没有联系,但他们都受同一个控制流支配,决定他们的执行次序,称为过程内聚。,循环体,计算累积,事务记录,累积销售额,累积订货量,通过循环体,计算两种累积数。,事务记录是控制信息,根据它是销售事务还是订货事务来确定计算累积的执行逻辑。,.,67,总体设计的原则和概念,暂时内聚(时间内聚)如果一个模块内的各组成部分的处理动作和时间有关,则称为暂时内聚。暂时内聚模块的处理动作必须在特定的时间内完成。-指在一个特定的时间范围内完成,但完成次序不重要。例如:程序设计中的初始化模块。逻辑内聚如果一个模块内部的各组成部分的处理动作在逻辑上相似,但功能都彼此不同或无关,则称为逻辑内聚。一个逻辑内聚模块往往包括若干个逻辑相似的动作,使用时可以选用一个或几个功能。例如:把编辑各种输入数据的功能放在一个模块中。机械内聚(偶然内聚)如果一个模块的内部各组成部分的处理动作彼此没有任何联系,则称为机械内聚。-无任何关系的内聚最差。,.,68,总体设计的原则和概念,模块聚合性的判断,该模块只能执行一个功能吗?,功能聚合,模块内各组成部分的关系如何?,是,否,次序重要吗?,次序重要吗?,逻辑相似吗?,数据流,控制流,两者都不是,是,是,是,否,否,否,顺序聚合,通讯聚合,过程聚合,暂时聚合,逻辑聚合,机械聚合,.,69,总体设计的原则和概念,七种聚合模块的性能比较,.,70,总体设计的原则和概念,启发式规则(1)模块的分解:-为啥要分解?如何分解?分解的准则?分解是指把一个模块分解成若干个从属于它的下层模块。当模块过大时就应该分解它。一般按功能分解,分解到成为一个小的功能单一的模块为止。一般一个模块内包含的语句在30-50条左右较好(指高级语言)。不要过大,也不要过小。分解后不应该降低模块的独立性。,.,71,总体设计的原则和概念,(2)深度、宽度、扇出和扇入都应适当深度表示软件结构中控制的层数-粗略的标志一个系统的大小和复杂程度。宽度是软件结构同一层次上的模块总数的最大值-宽度越大系统越复杂。模块的扇出指一个模块拥有的直属下级模块的个数,一般扇出数控制在7以内。模块的扇入是指一个模块的直接上级模块的个数。好的设计结构-通常是顶层扇出比较高,中层扇出比较少,底层扇入到公共的实用模块中去(底层模块有高扇入)。*模块的独立性是贯穿始终的标准,不能为了追求其它目标而违背独立性标准。,.,72,总体设计的原则和概念,(3)模块的控制范围和判断作用范围模块的控制范围(控制域):本身及其所有下级模块(包括直接和间接下级模块)。模块的判断作用范围(作用域):被判断影响的模块。原则:A.对于任何一个内部存在判断调用的模块,它的判断作用的范围应该是其控制范围的一个子集。B.存在判断调用的模块,所在层次不要与那些属于判断作用范围的模块所在的层次相隔太远-越近越好。,.,73,总体设计的原则和概念,A,B,C,D,E,F,G,模块G中有一条判断调用D的语句,违反第1条原则,改进的办法:判定点上移(从G到C中);不在控制域的模块移动(模块D移到模块G下面)。,.,74,总体设计的原则和概念,A,B,C,D,E,F,G,模块C中有一条判断调用G的语句,违反第2条原则,.,75,总体设计的原则和概念,(4)力争降低模块接口的复杂程度模块接口复杂是软件发生错误的一个主要原因。应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。接口复杂或不一致(即看起来传递的数据之间没有联系),是紧耦合或低内聚的征兆,应该重新分析这个模块的独立性。例子:QUAD-ROOT(TBL,X)改为QUAD-ROOT(A,B,C,ROOT1,ROOOT2)其中TBL和X为数组,TBL传递方程的系数,X回传根。,.,76,总体设计的原则和概念,(5)设计单入口单出口的模块防止出现内容耦合-多入口(多种处理功能)意味着内容耦合。(6)模块功能应该可以预测-模块是黑合子,输入相同则输出相同,其内部数据结构和接口受到限制。模块的功能应该能够预测,但也要防止模块功能过分局限。过分局限将导致模块灵活性太差,会出现使用现场的修改。,.,77,使用SD方法给出教材购销系统中销售子系统的软件结构图.,作业,.,78,人机界面设计是随着交互式系统的广泛使用而产生的一类接口设计问题;人机界面设计是特殊的接口设计问题,人的因素是其设计的出发点;重点考虑人的感知、人的技能、系统使用领域等。,人机界面设计,.,79,详细设计,详细的任务结构化程序设计详细设计的工具实例,.,80,详细设计,详细设计任务又叫过程设计,用伪代码、图或表等工具描绘软件各个模块的算法流程。详细设计不是写代码,但设计结果是编码的依据;设计好的标准是:逻辑正确、效率高、易读易懂。,.,81,详细设计,.,82,详细设计,结构程序设计技术:程序代码仅使用顺序、选择和循环这三种基本的控制结构进行连接,且每个代码块只有一个入口和一个出口,只在检测错误和退出循环处使用非基本结构技术。现有程序设计语言均是结构化的;过程性程序设计语言是非结构化的;-汇编语言BASIC语言,.,83,详细设计,结构化程序设计的三种基本控制结构,顺序结构,.,84,详细设计,详细设计中的工具:程序流程图(PFD)盒图(N-S图)PAD图判定表/判定树过程设计语言(PDL),.,85,详细设计的主要工具,程序流程图(PFD)例求1-100的累加和s累加和n初值N否(假)Y是(真),.,86,详细设计的主要工具,程序流程图的缺点:程序流图中的箭头代表控制流,它可以随意转移控制,因此不符合结构程序设计的精神。,.,87,详细设计的主要工具,程序流程图的缺点:程序流图本质上不是逐步求精的好工具。-实质上无表达层次结构的符号*-总趋势越来越多人不再使用它。,.,88,详细设计的主要工具,盒图(N-S图)-Nassi和Shneiderman,.,89,详细设计的主要工具,盒图的特点:不能随意转移控制,改进了程序流图的缺点。-无随意箭头,.,90,详细设计的主要工具,.,91,详细设计的主要工具,盒图的特点:容易表现嵌套关系。-逐步求精控制结构的作用域明确,数据的作用域容易确定。,.,92,详细设计的主要工具,.,93,详细设计的主要工具,问题分析图(PAD)-problemanalysisdiagram,.,94,详细设计的主要工具,问题分析图(PAD)的优点:不能随意转移控制,改进了程序流图的缺点。-无随意箭头PAD图支持自顶向下,逐步求精方法的使用。-可以先定义抽象程序,然后用def符号逐步增加细节。,.,95,详细设计的主要工具,.,96,详细设计的主要工具,问题分析图的优点:PAD图所描绘的程序结构十分清晰,图中每条竖线代表一个层次,从左到右依此扩展。,.,97,开始,Y,取下一部门,打开职工工资表,取下一职工,性别,年龄,职务?,处,科,员,+8,+6,+4,写入工资表,=55,女,N=年龄,-55,工资*1.05,N=0?,N-1,年龄,职务?,处,科,员,+9,+7,+5,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肾盂癌健康教育
- 高尿酸血症知识测验题(附答案)
- 2025年事业单位工勤技能-湖南-湖南仓库管理员一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北计量检定工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北不动产测绘员五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-海南-海南计算机信息处理员二级技师历年参考题库含答案解析
- 2025年事业单位工勤技能-浙江-浙江防疫员二级(技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-浙江-浙江医技工五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-河南-河南公路养护工二级(技师)历年参考题库典型考点含答案解析
- 2024版吊车出租合同包月
- 2024年泰州市靖江市公安局招聘警务辅助人员真题
- 国际快递基本知识培训课件
- 塔吊拆除安全操作方案模板
- 普惠金融业务讲座
- 虚拟健康咨询接受度分析-洞察及研究
- 多发性周围神经病护理查房
- 2025年高警示药品管理试题(附答案)
- 2025年低压电工证考试题及参考答案
- 省政府顾问管理办法
- 消防法制业务培训课件
- 医院药剂科运用PDCA循环降低拆零药品管理不合格率品管圈
评论
0/150
提交评论