《软件工程》例子和练习.ppt

上传人:xt****7 文档编号:2168788 上传时间:2019-11-16 格式:PPT 页数:85 大小:2.54MB
返回 下载 相关 举报
《软件工程》例子和练习.ppt_第1页
第1页 / 共85页
《软件工程》例子和练习.ppt_第2页
第2页 / 共85页
《软件工程》例子和练习.ppt_第3页
第3页 / 共85页
点击查看更多>>
资源描述
例子,某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。 当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果哪种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。,装配厂使用一台微机处理更新库存清单主文件和产生定货报告的任务。零件库存量的每一次变换称为一个事务,由仓库的CRT终端输入到计算机中; 系统中的库存清单程序负责对事务进行处理,更新存储在磁盘上的库存清单主文件; 必要的定货信息写在磁带上; 每天由报告生成程序读一次磁带,生成并打印出定货报告; 库存清单程序; 报告生成程序。,【例:问题陈述】 某家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件的出库或入库称为事务,通过CRT终端把事务报告给定货系统。某种零件的库存量少于库存量临界值时就要再次定货。 请给出该系统定货情况的数据流图。,【分析】 第一步: 确定系统的源点和终点 仓库管理员是数据的源点 采购员是数据的终点 处理 本题应该完成定货系统这样一个功能,数据流 事务需从仓库送到系统中,显然事务是一个数据流; 系统要把定货报表送给采购部,定货报表也是一个数据流。 根据问题的陈述,把整个数据处理过程看作一个加工,它的输入数据和输出数据实际上反映了本系统与外界环境的接口。系统的顶层数据流图如下所示:,任何系统的基本模型都由若干个数据源点/终点以及 一个处理组成,这个处理就代表了系统对数据加工 变换的基本功能。,第二步:把基本系统模型细化,描绘系统的主要功能 将数据处理过程定货系统进行功能分解成处理事务和产生报表两部分 考虑有关数据存储问题,题中涉及到存储的信息有:库存清单、定货信息 处理事务需要“库存清单”数据 产生报表和处理事务在不同时间进行,因此需要存储“定货信息”,第三步:根据需要,对处理功能进行分解 将处理事务进一步分解为接收事务、更新库存清单、处理定货三部分 画出进一步分解后的数据流图,根据下列描述,画出学生申请IC借书卡的第一层 数据流图。学生入学后到图书馆申请IC借书卡, 图书馆管理人员根据IC借书卡库存情况分析是否 需要购买新的IC借书卡,如需购买,则向IC借书 卡提供商购买。各种资金往来通过学校的会计科 办理。,欲开发一个银行的活期存取款业务的处理系统:储户将填 好的存/取款单和存折交给银行工作人员,然后由系统作以 下处理; (1)业务分类处理:系统首先根据储户所填的存/取款单,确 定本次业务的性质,并将存/取款单和存折交下一步处理; (2)存款处理:系统将存款单上的存款金额分别记录在存折 和帐目文件中,并将现金存入现金库;最后将存折还给储户; (3)取款处理:系统将取款单上的取款金额分别记录在存折 和帐目文件中,并从现金库提取现金;最后将现金和存折还 给储户。 该系统的总体图如下图所示,请画出该系统的零级图。,某个学生成绩管理系统的部分功能如下: A.基本信息管理:教务管理人员输入或修改学期教学执行计 划、学生名单和教师名单; B.学生选课:学生根据教学执行计划进行选课; C.分配任课教师:教务管理人员为符合开课条件的课程分配 教师,并打印任课通知单给教师; D.成绩管理:每门课程的教师在考试评分结束后将考试成绩 交给教务管理人员,教务管理人员输入、维护成绩,系统可 生成成绩单(发给学生)、成绩统计分析表(发给教务管理人员)。 根据以上的描述,完成下列题目: (1)请用数据流图描绘本系统的功能。 (2)请用实体-联系图描绘本系统的功能。,例:一个应用软件系统的开发成本需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(年) 本题的投资回收率为4142。,例:某校教学管理ER图,对象,教师属性,学生属性,课程属性,联系属性,关系,下面是一个人们打电话时的系统状态图。(见书67页)。,图中表明,没有人打电话时电话处于闲置状态;有人拿起听筒则进入拨号音状态,到达这个状态后,电话的行为是响起拨号音并计时;这时如果拿起听筒的人改变主意不想打了,他把听筒放下(挂断),电话重又回到闲置状态;如果拿起听筒很长时间不拨号(超时),则进入超时状态;。,例如,描绘一家计算机公司全部产品的数据结构可以用图中的层次方框图表示。,例:用Warnier图描绘一类软件产品,图 正文加工系统的层次图,层次图,图 带编号的层次图(H图),和H图中每个方框相对应,应该有一张IPO图描绘这个方框代表的模块的处理过程。模块在H图中的编号便于追踪了解这个模块在软件结构中的位置。,HIPO图,图 结构图的例子产生最佳解的一般结构,结构图,1.变换分析例子:汽车数字仪表板的设计。(教材P106) 假设的仪表板将完成下述功能: (1) 通过模数转换实现传感器和微处理机接口; (2) 在发光二极管面板上显示数据; (3) 指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等; (4) 指示加速或减速; (5) 超速警告:如果车速超过55英里/小时,则发出超速警告铃声。 在软件需求分析阶段应该对上述每条要求以及系统的其他特点进行全面的分析评价,建立起必要的文档资料,特别是数据流图。,第一级分解,精化,例题:某程序流程图如右图所示,请分别用N-S图和PAD图表示。,a,j,b,i,c,e,d,x2,x3,x4,f,g,h,xi=,PAD图:,x8,a,j,x1,b,T,F,f,x6,T,F,x7,i,g,h,CASE xi,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+1 I(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) (A2,B0,X3) 覆盖sacbdR . 满足(2)(4) (A3,B1,X1) 覆盖sabR 特点:比语句覆盖强,但对 程序逻辑的覆盖程度仍不高。,3. 条件覆盖 不仅每个语句至少执行一次, 而且使判定表达式中的每个条 件都取到各种可能的结果。 为达到条件覆盖标准,应选 取测试数据,使得: 在a点判定有各种结果出现: A1 A1 B0 B0 在b点判定有各种结果出现: A2 A2 X1 X1,3. 条件覆盖 因此,可选取测试用例: 满足 【A=2,B=0,X=4】 (满足A1,B0, A2,X1的条件, 执行路径SacbdR) 满足 【A=1,B=1,X=1】 (满足A1,B0,A2, X1的条件,执行路径SabR),3. 条件覆盖 或者,可选取测试用例: 满足 【A=2,B=0,X=1】 (满足A1,B0, A2,X1的条件, 执行路径SacbdR) 满足 【A=1,B=1,X=2】 (满足A1,B0, A2,X1的条件,执行路径SabdR),4. 判定/条件覆盖 选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式 都取到各种可能的结果。 测试用例: . 满足条件和判定 A2,B0,X4 覆盖SacbdR . 满足条件和判定 A1,B1,X1 覆盖SabR 特点:有时判定/条件覆盖也并不比条件覆盖更强。,在例子中,对于a、b点的判定共有八种可能的条件组合,它们是: A1,B0 A1,B0 A1,B0 A1,B0 A2,X1 A2,X1 A2,X1 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位计算机,其十六进制常数的定义为:以0x或0X开头的数是十六进制整数,其值的范围是-7f至7f(大小写字母不加区别),如0x13,0X6A,-0x3c 。,第一步:建立等价类表,第二步:为有效等价类设计测试用例,第三步:为无效等价类至少设计一个测试用例,边界值分析,例:计算机输出整数的范围在-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 各道工序估计需要用的时间(小时),图13.1 旧木板房刷漆工程的Gantt图,工程网络,在工程网络中用箭头表示作业(例如,刮旧漆,刷新漆,清理等),用圆圈表示事件(一项作业开始或结束)。 注意,事件仅仅是可以明确定义的时间点,并不消耗时间和资源。作业通常既消耗资源又需要持续一定的时间。 用开始事件和结束事件的编号标识一个作业,因此“刮第1面墙上旧漆”是作业1-2。,图13.2是旧木板房刷漆工程的工程网络。 图13.2 旧木板房刷漆工程的工程网络,图13.3 旧木板房刷漆工程的完整的工程网络,表13.6 旧木板房刷漆网络中的机动时间(小时),图13.4 旧木板房刷漆工程改进的Gantt图之一,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!