软件工程导论第6章详细设计ppt课件

上传人:m**** 文档编号:568776503 上传时间:2024-07-26 格式:PPT 页数:65 大小:1.07MB
返回 下载 相关 举报
软件工程导论第6章详细设计ppt课件_第1页
第1页 / 共65页
软件工程导论第6章详细设计ppt课件_第2页
第2页 / 共65页
软件工程导论第6章详细设计ppt课件_第3页
第3页 / 共65页
软件工程导论第6章详细设计ppt课件_第4页
第4页 / 共65页
软件工程导论第6章详细设计ppt课件_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《软件工程导论第6章详细设计ppt课件》由会员分享,可在线阅读,更多相关《软件工程导论第6章详细设计ppt课件(65页珍藏版)》请在金锄头文库上搜索。

1、 软件工程导论软件工程导论第第4 4版版 普通高校本科计算机专业特征教材精选张海藩 编著第第6章章 详细设计详细设计主要内容6.4 面向数据构造的设计方法6.5 程序复杂程度的定量度量教学重点Jackson图、McCabe方法。详细设计义务:确定怎样详细地实现用户需求的软件系统,即把解法详细化,设计出程序的“蓝图。目的:逻辑上正确地实现每个模块的功能,并使设计出的处置过程简明易懂。除了保证软件的可靠性,还要使未来编写出来的程序可读性好、容易了解、容易测试、容易修正和维护。方法:采用构造程序设计技术,即采用自顶向下逐渐求精的设计方法和单入口单出口的控制构造。工具:过程设计工具,描画程序处置过程的

2、工具。程序流程图NNNNYYYY开场2000ty不能被4整除y不能被100整除打印y“是闰年终了y2500y+1y打印y“不是闰年打印y“是闰年y不能被400整除打印y“不是闰年判 定 闰 年 的 算 法盒图:断定闰年的算法2000 =yy + 1 =y直到 y 2500y/4的余数为0打印y“是闰年打印y“非闰年打印y“是闰年打印y“非闰年y/400的余数为0y/100的余数不为0是是是否否否断定表例如:行李托运费规那么断定树例如:行李托运费6.3 续续伪码例如:判 定 闰 年 的 算 法内层选择构造中层选择构造外层选择构造6.4 面向数据构造的设计方法面向数据构造的设计方法面向数据的分析方

3、法分类:面向数据流面向数据构造特点:以信息对象及其操作为中心进展分析,与面向对象分析有类似之处。以为复合信息对象具有层次构造,并且可按顺序、选择、反复三种构造分解为成员信息对象。提供将层次信息构造映射为程序构造的机制,从而为软件设计奠定较好的根底。6.4 续续面向数据构造的设计方法目的:得出对程序处置过程的描画。数据构造软件所处置的信息的组织构造,相互之间存在一种或多种特定关系的数据元素的集合。面向数据构造的设计方法,也就是用面向数据构造作为程序设计的根底。数据构造与程序构造:反复出现的数据通常由具有循环控制构造的程序来处置;选择数据要用带有分支控制构造的程序来处置;层次的数据组织通常和运用这

4、些数据的程序的层次构造非常类似。方法:Jackson方法、Warnier方法6.4 续续Warnier图例如标题新闻标题新闻国内新闻国内新闻本地新闻本地新闻股市行情股市行情(0,1)商业新闻商业新闻广告广告(1,5)文化、体育新闻文化、体育新闻散文散文 新书评论新书评论文化体育版文化体育版首首 版版商业金融版商业金融版报报 纸纸6.4 续续Jackson图数据构造中,各数据元素彼此间的逻辑关系归结起来只需顺序、选择和反复三类根本构造。顺序构造顺序构造的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。A由B、C、D 3个元素顺序组成每个元素只出现一次,出现的次序依次是B、C、D6.4

5、续续Jackson图选择构造选择构造的数据包含两个或多个数据元素,每次运用这个数据时按一定条件从这些数据元素中选择一个。根据条件A选B或C或D中的某一个6.4 续续Jackson图反复构造反复构造的数据,根据运用时的条件由一个数据元素出现零次或多次构成。A由B出现N次(N0)组成6.4 续续Jackson图优点:Jackson图不仅便于表示层次构造,而且也有利于对构造自顶向下分解; Jackson图笼统直观,可读性好; Jackson图不仅能表示数据构造,也能表示程序构造。缺陷:在选择构造和反复构造中,选择条件或循环终了条件不能直接在Jackson图中表示出来,影响了图形的表达才干,也不利于直

6、接把图翻译成程序。框间连线为斜线,不易在行式打印机上输出。6.4 续续改良的Jackson图ABCD顺序构造B、C、D中任一个都不能使选择出现或反复出现的数据元素A由B、C、D 3个元素顺序组成6.4 续续改良的Jackson图A B C D选择构造S右面括号中的数字i是分支条件的编号S(i)根据条件A选B或C或D中的某一个6.4 续续改良的Jackson图A B S(i)可选构造A或者是元素B或者不出现6.4 续续改良的Jackson图反复构造循环终了符号的编号为iA B*I(i)A由B出现N次(N0)组成6.4 续续层次图例如:6.4 续续层次方框图例如6.4 续续Jackson图Jack

7、son图与层次图层次图中的一个方框通常代表一个模块;在Jackson图中,一个方框通常只代表几个语句。层次图表现的是调用关系;而Jackson图表现的是组成关系。Jackson图与层次方框图Jackson图是对层次方框图的一种细化。6.4 续续Jackson方法1975年,英国人M.A.Jackson提出了软件工程领域中著名的Jackson方法,当时它只用于软件设计。1983年,Jackson又对它进展了多方面的扩展和完善,又运用于需求分析过程中。中心思想:根据作用于数据的操作序列的构造顺序、选择、反复,建立目的软件系统的模型,然后将其转换为相应的程序构造。6.4 续续Jackson方法设计步

8、骤分析并确定输入数据和输出数据的逻辑构造,并用Jackson图表示这些数据构造。找出输入数据构造和输出数据构造中有对应关系的数据单元。按一定的规那么从描画数据构造的Jackson图导出描画程序构造的Jackson图。列出一切操作与条件,并把它们分配到程序构造图的适当位置。用伪代码写出程序。6.4 续续Jackson方法设计例如1一个正文文件由假设干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。6.4 续续步骤数据构造表示对要求解的问题进

9、展分析,确定输入数据和输出数据的逻辑构造,并用Jackson图描画这些数据构造。正文文本字符串*字符* 空格 非空格IIS 输入数据的Jackson图串信息*表格体空格总数输出表格字符串空格数输出数据的Jackson图6.4 续续步骤找出输入数据构造和输出数据构造的对应关系所谓有对应关系是指有直接的因果关系,在程序中可以同时处置的数据单元。需求留意的是,对于反复的数据单元,必需是反复的次序与次数都一样才有能够有对应关系。6.4 续续步骤确定程序构造图由Jackson图导出相应的程序构造图的规那么:为每对有对应关系的数据单元,按照它们在数据构造图中所处的层次,在程序构造图中的相应层次画一个处置框

10、。假设这对数据单元在输入数据构造图和输出数据构造图中所处的层次不同,那么应以它们在输入数据构造图和输出数据构造图中层次较低的那个层次作为它们在程序构造图中的处置框所处的层次。对于输入数据构造中剩余的数据单元,根据它们所处的层次,在程序构造图的相应层次为每个数据单元画上相应的处置框;对于输出数据构造中剩余的数据单元,根据它们所处的层次,在程序构造图的相应层次为每个数据单元画上相应的处置框。 6.4 续续步骤确定程序构造图本质上,这一步是一个综合的过程:每对有对应关系的数据单元合画一个处置框,没有对应关系的数据单元那么各画一个处置框。6.4 续续步骤列出并分配一切操作和条件 列出一切操作和条件包括

11、分支条件和循环终了条件,并把它们分配到程序构造图的适当位置。操作:停顿 翻开文件 封锁文件印出字符串 印出空格数目 印出空格总数sum:=sum+1 totalsum:=totalsum+sum 读入字符串sum:=0 totalsum:=0 point:=1pointer:=pointer+1条件:I文件终了 I字符串终了 S字符是空格6.4 续续步骤列出并分配一切操作和条件把操作和条件分配到程序构造图的适当位置 6.4 续续步骤用伪码表示程序Jackson方法中运用的伪码与Jackson图是完全对应的。针对三种根本程序构造,有相对应的Jackson伪码。顺序构造A seq B C DA e

12、ndABCD6.4 续续步骤用伪码表示程序选择构造A select cond1 BA or cond2 CA or cond3 DA endA B C DS(i)反复构造A iter until或while cond BA endA B*I(i)6.4 续续步骤用伪码表示程序用Jackson伪码描画的程序:统计空格seq翻开文件读入字符串totalsum=0程序体iter until文件终了 处置字符串seq印字符串seq 印出字符串印字符串endsum=0pointer=16.4 续续步骤用伪码表示程序 分析字符串iter until字符串终了 分析字符select字符是空格 处置空格seq

13、 sum=sum+1 pointer=pointer+1处置空格end 分析字符or字符不是空格处置非空格seq pointer=pointer+1处置非空格end 分析字符end分析字符串end6.4 续续步骤用伪码表示程序 印空格数seq印出空格数目印空格数end totalsum=totalsum+sum读入字符串 处置字符串end程序体end印总数seq 印出空格总数印总数end封锁文件停顿统计空格end6.4 续续Jackson方法设计例如2例:高考后将考生的根本情况文件简称考生根本情况文件和考生高考成果文件简称考分文件合并成一个新文件简称考生新文件。考生根本情况文件和考分文件都是由

14、考生记录组成的。为简便起见,考生根本情况文件中的考生记录的内容包括:准考证号、姓名、通讯地址。考分文件中的考生记录的内容包括:准考证号和各门考分。合并后的考生新文件自然也是由考生记录组成,内容包括:准考证号、姓名、通讯地址和各门考分。6.4 续续步骤数据构造表示对要求解的问题进展分析,确定输入数据和输出数据的逻辑构造,并用Jackson图描画这些数据构造。6.4 续续步骤找出输入数据构造和输出数据构造的对应关系所谓有对应关系是指有直接的因果关系,在程序中可以同时处置的数据单元。需求留意的是,对于反复的数据单元,必需是反复的次序与次数都一样才有能够有对应关系。6.4 续续步骤确定程序构造图本质上

15、,这一步是一个综合的过程:每对有对应关系的数据单元合画一个处置框,没有对应关系的数据单元那么各画一个处置框。6.4 续续步骤列出并分配一切操作和条件 列出一切操作和条件包括分支条件和循环终了条件,并把它们分配到程序构造图的适当位置。操作:停顿; 翻开两个输入文件;建立输出文件。 从输入文件中各读一条记录。生成一条新记录。 将新记录写入输出文件。封锁全部文件。条件:I文件终了。 6.4 续续步骤列出并分配一切操作和条件把操作和条件分配到程序构造图的适当位置 6.4 续续步骤用伪码表示程序用Jackson伪码描画的程序:产生新文件 seq 翻开两个输入文件 从输入文件中各读一条记录 分析考生记录i

16、ter until文件终了 处置考生记录 seq 产生准考证号 产生姓名 产生通讯地址 产生考分 生成一条新记录 将新记录写入输出文件 从输入文件中各读一条记录 处置考生记录 end 分析考生记录end 封锁全部文件 停顿产生新文件 end 6.4 续续Jackson方法小结关于构造冲突问题。输入数据和输出数据构造之间找不到对应关系的情况,称为构造冲突。引入中间数据构造或中间文件的方法,将冲突总分分隔开来,建立多个程序构造,再利用中间文件把它们联络起来,构成一个系统的整体。JSP方法主要表达程序构造的设计,不明确地划分软件总体设计和详细设计的两个阶段。根据它能直接推出程序构造的规那么,可以将它

17、与SD方法相结合,用SD方法设计体系构造,用JSP方法设计它的部分模块。JSP方法主要用于规模不大的数据处置系统,输入、输出数据构造能较容易地描画出来的情况。对于较大的系统,涉及很多输入、输出数据,其构造又不相互对应的情况,用JSP方法处理要困难一些。6.5 程序复杂程度的定量度量程序复杂程度的定量度量定性度量软件设计根本原理模块化笼统逐渐求精信息隐藏和部分化模块独立6.5 续续定量度量价值:把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需求用的任务量;定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;程序的定量的复杂程度可以作为模块规模的准确限制。方法:McC

18、abe方法Halstead方法。6.5 续续McCabe方法流图流图本质上是一种简化了的程序流程图,它仅仅描画程序的控制流程,完全不表现对数据的详细操作以及分支或循环的详细条件。程序流程图中的各种框包括处置框,断定框等,在流图中都被简化为一个用圆圈表示的结点。程序流程图中的一个顺序的处置框序列和一个菱形断定框,可以映射成流图中的一个结点。6.5 续续McCabe方法流图从图论的观念看,流图是一个可以用GN,E来表示的有向图。其中N表示结点,可以取代程序流程图中的各种框;E代表有向边,用以指明程序的控制流。在流图中一条边必需终止于一个结点,即使这个结点并不代表任何语句(实践上相当于一个空语句)。

19、由边和结点围成的面积称为区域,当计算区域数时应该包括图外部未被围起来的那个区域。6.5 续续McCabe方法流图6.5 续续McCabe方法流图流图可以由程序流程图导出,也可直接由PAD图或代码等其它详细设计表达工具变换获得。当过程设计中包含复合条件时,应该把复合条件分解为假设干个简单条件,每个简单条件对应流图中一个结点。包含条件的结点称为断定节点,从每个断定结点引出两条或多条边。6.5 续续McCabe方法流图6.5 续续McCabe方法流图6.5 续续McCabe方法McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度环形复杂度。环形复杂度定量度量程序的逻辑复杂度。程序的环形复杂

20、度取决于程序控制流的复杂程度,即取决于程序构造的复杂程度。在对构造复杂性进展度量的时候,关怀的仅是程序的流程,并不关怀各个框的细节。流图保管了控制流的全部轨迹,舍弃了不需求的内容,从而使画面更加简约,更好地顺应了度量的需求。6.5 续续计算环形复杂度的方法利用流图计算环形复杂度:流图中的区域数等于环形复杂度。流图G的环形复杂度V(G) = E N + 2,其中,E是流图中边的条数,N是结点数。流图G的环形复杂度V(G) = P + 1,其中,P是流图中断定结点的数目。 上述3种方法中的任何一种都可计算出程序的环形复杂度。6.5 续续计算环形复杂度的方法6.5 续续计算环形复杂度流图中的区域数等

21、于环形复杂度。 VG= 4 ( R1、R2、R3、R4流图G的环形复杂度V(G) = E N + 2,其中,E是流图中边的条数,N是结点数。 VG= 11 9 + 2 = 4流图G的环形复杂度V(G) = P + 1,其中,P是流图中断定结点的数目。每个断定结点引出两条或多条边。 VG = 3 + 1 = 46.5 续续计算环形复杂度的方法6.5 续续环形复杂度的用途对测试难度的一种定量度量。对软件最终的可靠性给出某种预测。 环形复杂度高的程序往往是最困难、最容易出问题的程序。 实际阐明,模块规模以V(G)10为宜。6.5 续续Halstead方法Halstead方法根据程序中运算符和操作数的

22、总数来度量程序的复杂程度。令N1为程序中运算符出现的总次数,N2为操作数出现的总次数,程序长度N定义为:N=N1+N2详细设计完成之后,可以知道程序中运用的不同运算符(包括关键字)的个数n1,以及不同操作数(变量和常数)的个数n2。Halstead给出预测程序长度的公式如下:H=n1 log2 n1+n2 log2 n2多次验证都阐明,预测的长度H与实践长度N非常接近。预测程序中包含错误的个数的公式: E=N log2 (n1+n2)/30006.5 续续Halstead方法的缺陷没有留意调用的深度。Halstead 公式该当对调用子程序的不同深度区别对待。在计算嵌套调用的运算符和运算对象时,

23、应乘上一个调用深度因子。这样可以增大嵌套调用时的错误预测率。没有把不同类型的运算对象,运算符与不同的错误发生率联络起来,而是把它们同等对待。例如,对简单IF语句与WHILE语句就没有区别。忽视了嵌套构造。普通地,运算符的嵌套序列,总比具有一样数量的运算符和运算对象的非嵌套序列要复杂得多。处理的方法是对嵌套结果乘上一个嵌套因子。假设一种言语有整型、实型、双精度型三种不同类型的运算对象,那么任何一种根本算术运算符(、)实践上代表了 = 6 种运算符。在计算时应思索这种因数据类型而引起差别的情况。怎样判别一个程序能否构造化?构造化程序设计是一种设计程序的技术,它采用自顶向下逐渐求精的设计方法和单入口单出口的控制构造。 假设对流程图中每一构件用“边框圈起来,边境之间不出现交叉,那么阐明一切构件都为单入口单出口,那么称此程序为构造化程序。方法一:重写交叉部位的方框。方法二:运用标志技术。A=1,B=1,C=12,D=12+13,E=13方法一: 重写交叉部位的方框非构造化 利用一个标志存贮变量flag,四个标志赋值语句及一个标志测试。假设A、B、C、D都是比较大的程序段,那么这个添加的影响是可以忽略。方法二:运用标志技术标志flag是一个变量,记忆过去的断定是真是假,并坚持此信息以备后用。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号