收藏 分销(赏)

软件工程例子和练习.pptx

上传人:快乐****生活 文档编号:10340186 上传时间:2025-05-23 格式:PPTX 页数:85 大小:2.28MB
下载 相关 举报
软件工程例子和练习.pptx_第1页
第1页 / 共85页
软件工程例子和练习.pptx_第2页
第2页 / 共85页
点击查看更多>>
资源描述
,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,例子,某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。,当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果哪种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。,装配厂使用一台微机处理更新库存清单主文件和产生定货报告的任务。零件库存量的每一次变换称为一个事务,由仓库的,CRT,终端,输入到计算机中;,系统中的库存清单程序负责对事务进行处理,更新存储在,磁盘,上的库存清单主文件;,必要的定货信息写在,磁带,上;,每天由报告生成程序读一次磁带,生成并,打印,出定货报告;,库存清单程序;,报告生成程序。,【,例:问题陈述,】,某家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件的出库或入库称为事务,通过,CRT,终端把事务报告给定货系统。某种零件的库存量少于库存量临界值时就要再次定货。,请给出该系统定货情况的数据流图。,【,分析,】,第一步:,确定系统的源点和终点,仓库管理员,是数据的源点,采购员,是数据的终点,处理,本题应该完成,定货系统,这样一个功能,数据流,事务,需从仓库送到系统中,显然事务是一个数据流;,系统要把,定货报表,送给采购部,定货报表也是一个数据流。,根据问题的陈述,把整个数据处理过程看作一个加工,它的输入数据和输出数据实际上反映了本系统与外界环境的接口。系统的顶层数据流图如下所示:,任何系统的基本模型都由若干个数据源点,/,终点以及,一个处理组成,这个处理就代表了系统对数据加工,变换的基本功能。,第二步:把基本系统模型细化,描绘系统的主要功能,将数据处理过程,定货系统进行功能分解成,处理事务,和,产生报表,两部分,考虑有关数据存储问题,题中涉及到存储的信息有:,库存清单,、,定货信息,处理事务需要,“,库存清单,”,数据,产生报表和处理事务在不同时间进行,因此需要存储,“,定货信息,”,第三步:根据需要,对处理功能进行分解,将处理事务进一步分解为,接收事务,、,更新库存清单,、,处理定货,三部分,画出进一步分解后的数据流图,根据下列描述,画出学生申请,IC,借书卡的第一层,数据流图。学生入学后到图书馆申请,IC,借书卡,,图书馆管理人员根据,IC,借书卡库存情况分析是否,需要购买新的,IC,借书卡,如需购买,则向,IC,借书,卡提供商购买。各种资金往来通过学校的会计科,办理。,欲开发一个银行的活期存取款业务的处理系统:储户将填,好的存,/,取款单和存折交给银行工作人员,然后由系统作以,下处理;,(1),业务分类处理:系统首先根据储户所填的存,/,取款单,确,定本次业务的性质,并将存,/,取款单和存折交下一步处理;,(2),存款处理:系统将存款单上的存款金额分别记录在存折,和帐目文件中,并将现金存入现金库;最后将存折还给储户;,(3),取款处理:系统将取款单上的取款金额分别记录在存折,和帐目文件中,并从现金库提取现金;最后将现金和存折还,给储户。,该系统的总体图如下图所示,请画出该系统的零级图。,某个学生成绩管理系统的部分功能如下:,A.,基本信息管理:教务管理人员输入或修改学期教学执行计,划、学生名单和教师名单;,B.,学生选课:学生根据教学执行计划进行选课;,C.,分配任课教师:教务管理人员为符合开课条件的课程分配,教师,并打印任课通知单给教师;,D.,成绩管理:每门课程的教师在考试评分结束后将考试成绩,交给教务管理人员,教务管理人员输入、维护成绩,系统可,生成成绩单,(,发给学生,),、成绩统计分析表,(,发给教务管理人员,),。,根据以上的描述,完成下列题目:,(1),请用数据流图描绘本系统的功能。,(2),请用实体,-,联系图描绘本系统的功能。,IPO1,学生信息,IPO2,学生选课,IPO3,成绩查询,IPO4,教师信息,IPO6,分配教师,IPO5,成绩录入,IPO7,教学计划管理,例:一个应用软件系统的开发成本需,5000,元,系统投入运行后每年可节约,2500,元,当年利率为,12,时,计算该软件系统的投资回收期、纯收入和投资回收率。,年 将来值 (,1+i,)现在值 累计现在值,1 2500 1.12 2232.14 2232.14,2 2500 1.25 1992.98 4225.12,3 2500 1.40 1779.45 6004.57,4 2500 1.57 1588.80 7593.37,5 2500 1.76 1418.57 9011.94,9011.94-5000=4011.94,(元),2+(5000-4225.12)/1779.45=2.44,(年),本题的投资回收率为,41,42,。,例:某校教学管理,ER,图,对象,教师属性,学生属性,课程属性,联系属性,关系,下面是一个人们打电话时的系统状态图。(见书,67,页)。,图中表明,没有人打电话时电话处于闲置状态;有人拿起听筒则进入拨号音状态,到达这个状态后,电话的行为是响起拨号音并计时;这时如果拿起听筒的人改变主意不想打了,他把听筒放下,(,挂断,),,电话重又回到闲置状态;如果拿起听筒很长时间不拨号,(,超时,),,则进入超时状态;,。,例如,描绘一家计算机公司全部产品的数据结构可以用图中的层次方框图表示。,例:用,Warnier,图描绘一类软件产品,图 正文加工系统的层次图,层次图,图 带编号的层次图,(H,图,),和,H,图中每个方框相对应,应该有一张,IPO,图描绘这个方框代表的模块的处理过程。模块在,H,图中的编号便于追踪了解这个模块在软件结构中的位置。,HIPO,图,图 结构图的例子,产生最佳解的一般结构,结构图,1.,变换分析,例子:汽车数字仪表板的设计。,(,教材,P106),假设的仪表板将完成下述功能:,(1),通过模数转换实现传感器和微处理机接口;,(2),在发光二极管面板上显示数据;,(3),指示每小时英里数,(mph),,行驶的里程,每加仑油行驶的英里数,(mpg),等等;,(4),指示加速或减速;,(5),超速警告:如果车速超过,55,英里,/,小时,则发出超速警告铃声。,在软件需求分析阶段应该对上述每条要求以及系统的其他特点进行全面的分析评价,建立起必要的文档资料,特别是数据流图。,第一级分解,精化,例题:,某程序流程图如右图所示,请分别用,N-S,图和,PAD,图表示。,a,UNTIL x8,j,b,i,c,e,WHILE x5,d,x1,x2,x3,x4,f,g,h,UNTIL x7,x6,x,i,=,PAD,图:,x8,a,j,x1,b,T,F,f,x6,T,F,x7,i,g,h,CASE x,i,x2,x4,x3,x5,c,d,e,N-S,图:,判定表例题:,假设某航空公司规定,乘客可以免费托运重量不超过,30kg,的行李。,当行李重量超过,30kg,时,对头等舱的国内乘客超重部分每公斤收费,4,元,对其他舱的国内乘客超重部分每公斤收费,6,元。,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。,例:用判定表表示计算行李费算法,例:用判定表表示计算行李费算法,例:用判定表表示计算行李费算法,例:用判定表表示计算行李费算法,图 用判定树表示计算行李费的算法,判定树,例题:,某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是,50,元;,对于一般的授课,则根据教师的职称来决定每课时津贴费:教授,30,元,副教授,25,元,讲师,20,元,助教,15,元。,请分别用判定表和判定树表示津贴标准。,15,20,25,30,50,F,F,F,F,T,讲座,T,F,F,F,助教,F,T,F,F,讲师,F,F,T,F,副教授,F,F,F,T,教授,5,4,3,2,1,判定表:,课时津贴,一般授课,讲座,教授,副教授,讲师,助教,30,25,20,15,50,判定树:,练习题,1,:习题,6.3,画出下列伪码程序的程序流程图和盒图:,START,IF p THEN,WHILE q DO,f,END DO,ELSE,BLOCK,g,n,END BLOCK,END IF,STOP,Jackson,方法例:,一个正文文件由若干个记录组成,每个记录是一个字符串。,要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。,要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。,(,1,)用,Jackson,图描绘输入、输出数据结构,输入数据的格式为:,若干记录,构成文件,若干字符,构成一条记录,字符是由空格与非空格两类元素组成的,输出数据的格式为:,一行字符串,本行字符串中的空格数,文件中的空格总数,(1),用,Jackson,图描绘的输入输出数据结构。,设计步骤如下:,(2),分析确定在输入数据结构和输出数据结构中有对应关系的数据单元。,(3),从数据结构图导出程序结构图。,(4),列出所有操作和条件,并且把它们分配到程序结构图的适当位置。,(,1,)停止(,2,)打开文件,(,3,)关闭文件(,4,)印出字符串,(,5,)印出空格数目(,6,)印出空格总数,(,7,),sum:=sum+1,(,8,),totalsum,:,=totalsum+sum,(,9,)读入字符串(,10,),sum:=0,(,11,),totalsum:=0,(,12,),pointer:=1,(,13,),pointer:=pointer+1I,(,1,)文件结束,I,(,2,)字符串结束,S,(,3,)字符是空格,(4),列出所有操作和条件,并且把它们分配到程序结构图的适当位置。,(5),用伪码表示程序处理过程。,流图的表示:,结点:,用圆表示,一个圆代表一条或多条语句。,边:,箭头线称为边,代表控制流。在流图中一条边必须终止于一个结点,即使这个结点并不代表任何语句。,区域:,由边和结点围成的面积称为区域,包括图外部未被围起来的区域。,映射方法:,任何方法表示的过程设计结果,都可以翻译成流图。,对于顺序结构,一个顺序处理序列和下一个选择或循环的开始语句,可以映射成流图中的一个结点。,对于选择结构,开始语句映射成一个结点;两条分支至少各映射成一个结点;结束映射成一个结点。,对于循环结构,开始和结束语句各映射成一个结点。,V,(G)=,区域数,=4,V,(G)=,E,-,N,+2,=11-9+2=4,V,(G)=,P,+1,=3+1=4,例:,逻辑覆盖,1,、语句覆盖,选择足够多的测试数据,,至少执行程序中所有语句一次。,在该例子中,只要设计,能通过路径,SacbdR,的测试,用例就覆盖了所有的语句,。所以可选择测试用例如:,【A=2,,,B=0,,,X=3】,2.,判定覆盖,(,分支覆盖,),程序中的每个语句至少执,行一次,并且每个判定的,每个可能结果都至少执行一次。,所有判定分支:,(1)a,点判定为,T,(2)a,点判定为,F,(3)b,点判定为,T,(4)b,点判定为,F,2.,判定覆盖,(,分支覆盖,),测试用例:,.满足(1)(4),(,A=3,,,B=0,,,X=1,),覆盖,SacbR,.,满足,(2)(3),(,A=2,,,B=1,,,X=1,),覆盖,SabdR,2.,判定覆盖,(,分支覆盖,),或者:,.,满足,(1)(3),(A,2,,,B,0,,,X,3),覆盖,sacbdR,.,满足,(2)(4),(A,3,,,B,1,,,X,1),覆盖,sabR,特点:比语句覆盖强,但对,程序逻辑的覆盖程度仍不高。,3.,条件覆盖,不仅每个语句至少执行一次,,而且使判定表达式中的每个条,件都取到各种可能的结果。,为达到条件覆盖标准,应选,取测试数据,使得,:,在,a,点判定有各种结果出现:,A,1,A1,B,0,B0,在,b,点判定有各种结果出现:,A,2,A2,X,1,X1,3.,条件覆盖,因此,可选取测试用例:,满足,【A=2,,,B=0,,,X=4】,(,满足,A,1,,,B,0,,,A,2,,,X,1,的条件,,执行路径,SacbdR),满足,【A=1,,,B=1,,,X=1】,(,满足,A1,,,B0,A2,,,X1,的条件,执行路径,SabR),3.,条件覆盖,或者,可选取测试用例:,满足,【A=2,,,B=0,,,X=1】,(,满足,A,1,,,B,0,,,A,2,,X1,的条件,,执行路径,SacbdR),满足,【A=1,,,B=1,,,X=2】,(,满足,A1,,,B0,A2,X1,的条件,执行路径,SabdR),4.,判定,/,条件覆盖,选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式,都取到各种可能的结果。,测试用例:,.,满足条件,和判定,A,2,,,B,0,,,X,4,覆盖,SacbdR,.,满足条件,和判定,A,1,,,B,1,,,X,1,覆盖,SabR,特点:有时判定,/,条件覆盖也并不比条件覆盖更强。,在例子中,对于,a,、,b,点的判定共有八种可能的条件组合,它们是:,A,1,,,B,0,A,1,,,B0,A1,,,B,0,A1,,,B0,A,2,,,X,1,A,2,,,X1,A2,,,X,1,A2,,,X1,条件组合覆盖,因此,可选取下面四组测试用例,使上面列出的八种条件组合每种至少出现一次:,.A=2,,,B=0,,,X=4,(,针对,1,、,5,两种组合,执行路径,SacbdR),.A=2,,,B=1,,,X=1,(,针对,2,、,6,两种组合,执行路径,SabdR),.A=1,,,B=0,,,X=2,(,针对,3,、,7,两种组合,执行路径,SabdR),.A=1,,,B=1,,,X=1,(,针对,4,、,8,两种组合,执行路径,SabR),测试用例:,【A=2,,,B=0,,,X=4】,执行路径:,SacbdR,点覆盖,为使程序执行路径经过程序图的边覆盖,(1,2,3,4,5,6,7),,可使用测试用例:,【A=3,,,B=0,,,X=1】,执行路径:,1-4-5-3,【A=2,,,B=1,,,X=1】,执行路径:,1-2-6-7,8.,路径覆盖,选取足够多的测试数据,使程序的每条可能路径都至少执行一次,(,如果程序图中有环,则要求每个环至少经过一次,),。,例中共有四条可能的执行路径:,1-2-3;1-2-6-7;,1-4-5-3;1-4-5-6-7。,为满足路径覆盖,可使用测试用例:,【A=1,,,B=1,,,X=1】,执行路径:,1-2-3,【A=1,,,B=1,,,X=2】,执行路径:,1-2-6-7,【A=3,,,B=0,,,X=1】,执行路径:,1-4-5-3,【A=2,,,B=0,,,X=4】,执行路径:,1-4-5-6-7,下面用等价划分法设计一个简单程序的测试方案,(,实例研究,),:,某一,8,位计算机,其十六进制常数的定义为:以,0 x,或,0X,开头的数是十六进制整数,其值的范围是,-7f,至,7f,(大小写字母不加区别),如,0 x13,,,0X6A,,,-0 x3c,。,第一步:建立等价类表,输入条件,有效等价类,无效等价类,十六进制整数,1,、,0 x,或,0X,开头的,1-2,位数字串,2,、以,-0 x,开头的,1-2,位数字串,3,、在,-7f,至,7f,之间,4,、非,0 x,或非,-,开头的串,5,、含有非数字且,(a,b,c,d,e,f),以外字符,6,、多于,5,个字符,7,、,-,后跟非,0,的多位串,8,、,-0,后跟数字串,9,、,-,后多于,3,个数字,10,、小于,-7f,11,、大于,7f,第二步:为有效等价类设计测试用例,测试用例,期望结果,覆盖范围,0 x23,显示有效输入,1,,,3,-0 x15,显示有效输入,2,,,3,第三步:为无效等价类至少设计一个测试用例,测试用例,期望结果,覆盖范围,2,显示无效输入,4,G12,显示无效输入,5,123311,显示无效输入,6,-1012,显示无效输入,7,-011,显示无效输入,8,-0134,显示无效输入,9,-0 x777,显示无效输入,10,0 x87,显示无效输入,11,边界值分析,例:计算机输出整数的范围在,-32768-32767,之间,若我们要测试机器所能表示整数的边界情况,则有如下测试方案和输出结果:,1,、输入,-32769,,输出,“,无效输入,”,2,、输入,-32768,,输出,-32768,3,、输入,-32767,,输出,-32767,4,、输入,32766,,输出,32766,5,、输入,32767,,输出,32767,6,、输入,32678,,输出,“,无效输入,”,Gantt,(甘特)图,假设有一座陈旧的矩形木板房需要重新油漆。这项工作必须分,3,步完成:首先刮掉旧漆,然后刷上新漆,最后清除溅在窗户上的油漆。假设一共分配了,15,名工人去完成这项工作,然而工具却有限:只有,5,把刮旧漆用的刮板,,5,把刷漆用的刷子,,5,把清除溅在窗户上的油漆用的小刮刀。怎样安排才能使工作进行得更有效呢?,要提高效率,应该采用,“,流水作业法,”,,即首先由,5,名工人刮板刮掉第,1,面墙上的旧漆,当第,1,面墙刮净后,另外,5,名工人立即用刷子给这面墙刷新漆(与此同时拿刮板的,5,名工人转去刮第,2,面墙上的旧漆)。,一旦刮漆的工人转到第,3,面墙而且刷新漆的工人转到第,2,面墙以后,余下的,5,名工人立即拿起刮刀去清除溅在第,1,面墙窗户上的油漆,,。这样安排使每个工人都有活干,因此在较短的时间内完成任务。,表,13.5,各道工序估计需要用的时间(小时),工序,墙壁,刮旧漆,刷新漆,清理,1,或,3,2,3,1,2,或,4,4,6,2,图,13.1,旧木板房刷漆工程的,Gantt,图,工程网络,在工程网络中用箭头表示作业,(,例如,刮旧漆,刷新漆,清理等,),,用圆圈表示事件,(,一项作业开始或结束,),。,注意,事件仅仅是可以明确定义的时间点,并不消耗时间和资源。作业通常既消耗资源又需要持续一定的时间。,用开始事件和结束事件的编号标识一个作业,因此,“,刮第,1,面墙上旧漆,”,是作业,1-2,。,图,13.2,是旧木板房刷漆工程的工程网络。,图,13.2,旧木板房刷漆工程的工程网络,图,13.3,旧木板房刷漆工程的完整的工程网络,作业,LET,(结束),EET,(开始),持续时间,机动时间,2-4,6,2,3,1,3-5,11,6,2,3,4-7,18,6,1,11,5-6,12,8,0,4,5-8,15,8,4,3,6-7,18,12,0,6,7-9,20,12,2,6,8-9,20,15,0,5,9-10,21,15,1,5,表,13.6,旧木板房刷漆网络中的机动时间(小时),图,13.4,旧木板房刷漆工程改进的,Gantt,图之一,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服