(0010)软件工程复习思考题
软件工程复习思考题

软件工程复习思考题1.试述软件工程的基本原理。
⑴模块化:模块是软件的组成部分,是具有独立功能且可命名的一段程序,所有模块组成整体,可以满足问题的要求。
模块化即按照一定的原则,将软件划分成若干个模块,每个模块完成一个特定的功能,然后把这些模块按照某种方法组装成一个软件系统。
(可降低复杂度、减少工作量)模块具有以下几种特性:接口:模块的输入输出。
功能:指模块实现什么功能。
逻辑:描述模块内部如何实现要求及所需的数据。
状态:该模块的运行环境,模块间调用与被调用关系。
⑵抽象:认识复杂现象过程所使用权的工具,只考虑事物本质的共同特性,忽略细节和其它因素。
通过抽象确定组成软件的过程实体。
⑶信息隐蔽:将模块实现自身功能的细节与数据"隐蔽"起来。
模块间仅交换为完成系统功能所必须的信息。
⑷模块独立性:每个模块只完成系统要求的独立的子功能。
2.软件项目管理的职能有哪些?3.试述总体设计的原则。
4.试述面向对象设计的启发规则。
P2611.设计结果应该清晰易懂2一般—特殊结构的深度应适当3.设计简单的类4.使用简单的协议5.使用简单的服务6.把设计变动减至最小5.为了具有良好的程序设计风格,应注意哪些方面的问题?程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。
要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。
6.试比较程序流程图与PAD图的特点。
程序流程图是一种用规定的图形,指向线及文字说明来准确表示算法的图形,具有直观、形象的特点,能清楚地展现算法的逻辑结构.画程序框图的规则:使用标准的框图符号;框图一般按从上到下,从左到右的方向画;除判断框外,大多数程序框图的符号只有一个进入点和一个退出点,而判断框是具有超过一个退出点的唯一符号.PAD所描述程序的层次关系表现在纵线上。
每条纵线表示了一个层次。
把PAD图从左到右展开。
随着程序层次的增加,PAD逐渐向右展开。
软件工程思考题答案

第一章基本概念1.软件的特点是什么?软件的定义:软件=程序+数据+文档软件的特点:1)软件是逻辑实体;具有抽象性;软件的形态不可见;--必须通过观察、分析、思考、判断来了解其功能、性能和其它特性。
2)软件是人脑思维的产物,其生产过程与硬件不同。
--开发过程的质量控制及软件产品保护问题。
3)软件的开发和运行受计算机系统限制。
--软件移植问题。
4)软件的开发技术落后,手工开发方式仍占统治地位。
--开发效率低。
2.2006年发布的国家分类标准是什么?1)按功能:系统软件、支撑软件、应用软件2)按规模:微型软件、小型软件、大型软件、甚大型软件、极大型软件3)按工作方式:实时处理软件、分时软件、交互式软件、批处理软件4)按服务对象:项目软件、产品软件5)按使用频度:使用频度低、使用频度高6)按失效影响:不良影响、严重影响3.软件危机的表现有哪些?1)软件开发进度难以预测2)软件开发成本难以控制3)用户对产品功能难以满足4)软件产品质量无法保证5)软件产品难以维护4.产生软件危机的原因?1)用户需求不明确2)缺乏正确的理论指导3)软件开发规模越来越大4)软件开发复杂度越来越高5.什么是软件工程三要素?软件工程的三要素:方法、工具和过程。
6.软件工程的基本目标是什么?①付出较低的开发成本②达到要求的软件功能③取得较好的软件性能④开发的软件易于移植⑤需要较低的维护费用⑥能按时完成开发工作,及时交付使用7软件工程的基本原则是什么?①抽象:采用分层次抽象,自顶向下、逐层细化的办法控制软件开发过程的复杂性。
②信息隐蔽:将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模块的使用者直接访问。
这就是信息封装,使用与实现分离的原则。
③模块化:如C语言程序中的函数过程,C++ 语言程序中的类。
模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。
④局部化:要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合,模块内部具有较强的内聚。
西南大学网络教育《软件工程》大作业0010期末考试复习题及答案

借书数
位
置:借阅文件
问题三:
主模块
图书编码、借书
查询模块
输出查询结果
查 查查 询 询询 图 借读 书 阅者 文 文文
件 件件
所对 查借 图书 书证 是验 否证 可结
借果
借书事务处
提更 交新 书数 籍据 给库 借 书 人
问题四:
开始 输入图书编码、借书卡号
查询图书文件
Z←图书文件=1
是
借书失败
查询读者文件
的证件 的证件
号!” 号!”
测试方法二:白盒测试 因为程序中有四个判断,所以测试数据围绕这个四个判断展开,令 “Z←图书文件=1”为 X,“Z←图书文件=1”为 Y,“X←借阅文件>5” 为 W,“Today()-BD←借阅文件>40”为 Z。 为达到条件覆盖,需要 16 组测试数据: (X=true,Y=true,W=true,Z=true) (X=true,Y=true,W=true,Z=false) (X=true,Y=true,W= false,Z=true) (X=true,Y= false,W=true,Z=true) (X= false,Y=true,W=true,Z=true) (X= false,Y= false,W=true,Z=true) (X= false,Y=true,W= false,Z=true) (X= false,Y=true,W=true,Z= false) (X=true,Y= false,W= false,Z=true) (X=true,Y= false,W=true,Z= false) (X=true,Y=true,W= false,Z= false) (X= false,Y= false,W= false,Z=true) (X= false,Y=true,W= false,Z= false) (X= false,Y= false,W=true,Z= false) (X=true,Y= false,W= false,Z= false) (X= false,Y= false,W= false,Z= false)
软件工程思考题答案(精)

1、一个软件公司许多部门,分为开发部门和管理部门两种,每个开发部门开发多个软件产品。
每个部门由部门名字唯一确定。
该公司有许多员工,员工分为经理,工作人员和开发人员每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员,开发人员使用语言开发项目。
每位经理可主持多个开发项目。
建立该软件公司的对象模型。
2、某教务中心准备开发一个成人自学考试系统考务管理系统,经过调研该系统有如下功能: (1对考生填写的报名单进行审查,对合格的考生,编好准考证发给考生,汇总后的报名单送给阅卷站。
(2给合格的考生制作通知单,将考试科目、时间、地点安排告诉考生。
(3对阅卷站送来的成绩进行登记;按当年标准审查单科合格者,并发成绩单,对所考专业各科成绩全部合格者发给大专毕业证书。
(4对成绩进行分类(按地区、年龄、职业、专业、科目等分类产生相应统计表(5查询考生可按准考证号随时查询自己的各科成绩试根据要求画出系统的用例图3、某图书馆借阅系统有以下功能:(1借书:根据读者的借书证查询读者档案,若借书数目未超过规定数量,则办理借阅手续(修改库存记录及读者档案,超过规定数量者不予借阅。
对于第一次借阅者则直接办理借阅手续。
(2还书:根据读者书中的条形码,修改库存记录及读者档案,若借阅时间超过规定期限则罚款。
请对以上问题,画出数据流图4、某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下: (1报社发行多种刊物,每种刊物通过订单来征订,订单中有代码、名称、订期、单价、份数等项目,订户通过填写订单来订阅报刊。
(2报社下属多个发行站,每个站负责收集登陆订单,打印收款凭证等事务。
(3报社负责分类并统计各个发行站送来的报刊订阅信息。
请就比需求建立对象模型,并画出系统的用例图。
(完整word版)计算机软件技术基础复习题和思考题答案

计算机软件技术基础复习题和思考题答案1。
5.1 复习题1。
解释计算机程序的概念。
计算机程序(computer programs),简称程序,是指计算机的指令序列.2. 什么是源代码程序?源代码是指以程序设计语言编写的、可读的语句和声明的集合,程序设计人员的工作就是使用程序设计语言编写源代码,源代码经过编译后转变为计算机可以执行的程序。
3. 什么是可执行程序?可执行程序是指包含了计算机可以直接执行的指令的文件。
为了与源代码相区别,可执行程序又被称为二进制代码。
4。
什么是计算机软件技术?计算机软件技术是与软件的设计、实施和使用相关的多种技术的统称。
软件的设计与实施涉及到程序设计语言、算法和数据结构、数据库系统、多媒体、软件工程等技术,软件的使用涉及到质量、可靠性、专利、知识产权、道德、法律等管理和技术。
5. 如何对软件进行分类?可以根据软件的功能进行分类,也可以根据软件的不同开发方式进行划分,还可以从软件的使用方式进行分类。
根据软件的功能来划分是一种主要的分类方式,可以把软件分为系统软件、编程软件和应用软件3大类型。
6. 什么是系统软件?系统软件(system software)指管理和控制计算机硬件、使计算机工作的软件。
系统软件是一种非常重要的软件类型,它为用户提供了一种操作计算机硬件的便捷方法,为其他程序提供了运行的基础。
7. 常见的系统软件有哪些?根据系统软件的功能特点,可以继续划分为操作系统、设备驱动程序、实用工具以及其他系统软件。
8. 什么是操作系统?操作系统(operating system,OS)是位于计算机系统中的硬件和软件之间的接口,负责管理和协调计算机硬件的操作和计算机有限资源的共享。
9. 列出3个典型的操作系统。
主要的操作系统包括微软公司的Windows系列操作系统、Unix和类Unix操作系统、苹果公司的Mac OS X 操作系统、Linux操作系统等。
任意列出3个即可.10. 什么是编程软件?编程软件(programming software)又称为编程工具(programming tool)或软件开发工具(software development tool),是一种软件开发人员用于创建、调试、维护其他程序和应用软件的软件工具。
《软件工程》-经典考试例题复习题,重点知识点(含答案)

1.某旅馆的电话服务如下:可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
要求:写出在数据字典中,电话号码的数据流条目的定义即组成。
电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。
(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。
(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。
或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装。
天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。
(0010)《软件工程》复习思考题及参考答案
(0010)《软件工程》复习思考题模拟试卷一(开卷)“商场管理信息系统”问题描述:库房管理员负责录入商品的入库和出库信息,系统自动根据库房管理员的输入修改库房的库存商品信息;当商品的库存数量低于临界值,系统自动打印出缺货商品的采购单交给采购员。
售货员负责登入商品销售信息(品名,编号,销售量,单价),系统根据售货员的输入,自动修改前台商品库存信息,当前台商品数量低于临界值,系统打印出领货通知单交给库房管理员。
问题1:画出尽可能详细的“商场管理信息系统”数据流图。
问题2:按照软件工程的规范写出“商品入/出库信息”的数据字典(定义到第2层)。
问题3:根据问题1中你所画的数据流图,采用面向数据流的方法,画出系统的软件结构图问题4:已知“销售模块”的IPO表如下,请画出该模块的程序流程图。
问题5说明你采用了什么测试方法。
模拟试卷二(开卷)“报刊订阅系统”问题描述:系统保存所有通过邮局发行的报刊的与发行有关的信息;接受订阅者的订阅和付款,并保存订阅、付款日期和金额、以及投递信息;输出投递和订阅清单;接受顾客的查询服务;统计各报刊的各阶段的总订阅数,并输出各报社、各杂志社的订单汇总表。
问题1:画出尽可能详细的“报刊订阅系统”数据流图。
问题2:按照软件工程的规范写出“报刊订单”的数据字典(定义到第2层)。
问题3:根据问题1中你所画的数据流图,采用面向数据流的方法,画出系统的软件结构图问题4问题5:请至少设计出两组测试数据,用于测试问题4中你设计的程序,并说明你采用了什么测试方法和目的。
(0010)《软件工程》复习思考题答案模拟试卷一“商场管理信息系统”问题描述:库房管理员负责录入商品的入库和出库信息,系统自动根据库房管理员的输入修改库房的库存商品信息;当商品的库存数量低于临界值,系统自动打印出缺货商品的采购单交给采购员。
售货员负责登入商品销售信息(品名,编号,销售量,单价),系统根据售货员的输入,自动修改前台商品库存信息,当前台商品数量低于临界值,系统打印出领货通知单交给库房管理员。
软件工程思考题答案
《软件工程》思考题答案2、软件工程是什么时候提出来的?它主要包括哪些方面?软件工程的提出:伴随着软件危机的出现以及解决过程中软件工程学的主要内容是软件开发技术和软件工程管理:软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学5、面向对象系统设计的特点面向对象分析设计界限不明显面向对象分析和设计通常采用迭代方法和传统的设计方法类似,面向对象设计也是基于模块化和功能独立等方法之上6、需求分析的主要任务建立分析模型,完成用户需求报告:分析模型是一组描述软件需求的模型;编写软件需求规格说明(SRS)需求分析的特点:用户需求具有动态性用户需求具有模糊性用户与设计者在对需求的认识和理解上存在偏差对需求分析,用户和设计者应共同承担责任需求规格说明书内容:一、概述二、目标系统描述三、目标系统功能需求四、目标系统性能需求五、目标系统界面与接口需求六、目标系统其他需求七、目标系统假设与约束需求分析重要:●需求分析工作对于整个系统的成败影响最大●用户需求报告是第一个最重要的文档,是用户、软件开发人员和项目管理人员三者必须遵守的一根基线●需求分析中的错误对后续工作影响较大●需求分析时期的工作量约占整个开发系统工作量的1/47、●数据流图DFD、数据字典DD和加工说明PSPEC●控制流图CFD、控制状态说明CSPEC和状态变迁图STD●关系实体图E-R图1.8、概要设计的主要任务是什么?它与需求分析有什么关系?主要任务:1.设计软件系统结构(简称软件结构)2.数据结构及数据库设计3.编写概要设计文档4.评审关系需求分析--产生软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。
不涉及具体实现方法。
用户能看得明白,开发人员也可据此进行下面的工作(概要设计)概要设计--产生软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。
并且需要指出关键技术难点等。
软工大纲思考题
软工大纲思考题(1~10题)作者:zxh 出自:同等学力申请硕士学位(数学+网络+软工)浏览/评论:560/0 日期:2005年4月26日 17:45软工大纲思考题(1~10题)1、何谓软件?并结合一个具体的软件开发,说明软件的基本构成。
答:软件=程序+数据+文档。
例如在开发一个教师招聘管理信息系统的过程中,首先要有计划,要进行可行性分析,这就产生了最终软件的文档部分中的第一部分项目计划书;如果获得了项目的开发权,接下要进行的是需求分析和设计,这又必须产生需求规格说明书、概要设计说明书和、详细设计说明书,这也是软件文档的一部分。
同时还要进行数据设计,这就包含了软件的另一个组成部分——数据;然后进行编码,编码主要的产品是程序,但程序中也应该有必要的注释,以提高程序的可读性;随后是测试,测试要有测试计划、测试用例设计、测试结果等相关文档;交付用户之前还要编写用户说明书、培训资料等文档。
在运行期间,进行的维护工作也要产生相应的维护记录。
2、软件工程的概念与图1所示的软件工程框架之间的关系。
答:按照IEEE1993年的定义,软件工程是将系统的化的、规范化的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。
软件工程框架:也就是说,软件工程的目标是开发可用的、正确的和合算的软件;为了达到这个目标,在包括基本过程、支持过程和组织过程软件过程中,必须坚持“选取适宜的开发范型原则、采用合适的设计方法、提供高质量的工程支持和重视软件工程管理”的原则。
4、如何理解ISO12207标准中的“软件过程”这一术语?答:软件过程是一组活动的集合,而活动是任务的集合,任务是把输入变成输出的一组操作。
5、按参与软件开发(生产)的人之职责来划分软件过程,形成三大类:基本过程、组织过程和支持过程,简述它们的含义以及每一过程所包含的活动。
答:基本过程是与软件开发直接相关的过程,包括获取过程、供应过程、开发过程、运行过程和维护过程。
软件工程 简答题复习题(带答案)
软件工程简答题复习题(带答案)软件工程简答题复习题(带答案)1. 什么是软件工程?软件工程是一种系统化、规范化、可量化的方法,用于开发、维护和测试软件系统的过程。
它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。
2. 软件开发生命周期有哪些阶段?常见的软件开发生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
3. 什么是需求分析?需求分析是软件开发过程中的第一步,它涉及与客户进行沟通和理解客户需求的过程。
通过需求分析,开发团队可以明确软件系统的功能和性能要求,并将这些要求转化为详细的规格说明。
4. 需求分析的主要目标是什么?需求分析的主要目标是确保开发团队和客户对软件系统的需求达成共识。
它需要明确软件系统的功能需求、性能需求和约束条件,以便后续的设计和开发工作能够按照这些需求进行。
5. 什么是软件设计?软件设计是在需求分析的基础上,根据系统需求和约束条件,将系统划分为模块,确定模块之间的接口和关系,设计出满足系统需求的软件结构和算法的过程。
6. 软件设计的原则有哪些?常见的软件设计原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)和迪米特法则(LoD)等。
7. 什么是软件测试?软件测试是为了评估系统的质量和功能是否满足需求的过程。
它通过设计和执行测试用例,检查系统的输出是否符合预期,并发现潜在的错误和缺陷。
8. 软件测试的分类有哪些?软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层次。
单元测试用于测试软件的最小功能单元,集成测试用于测试不同模块之间的交互,系统测试则测试整个系统的功能和性能,验收测试是由客户进行的测试,以确认系统是否达到了合同中规定的要求。
9. 什么是软件维护?软件维护是在软件交付给客户后,为了保证其正常运行和适应环境变化而进行的一系列活动。
维护包括错误修复、性能优化、功能扩展等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(0010)《软件工程》复习思考题
模拟试卷一(开卷)
“商场管理信息系统”问题描述:
库房管理员负责录入商品的入库和出库信息,系统自动根据库房管理员的输入修改库房的库存商品信息;当商品的库存数量低于临界值,系统自动打印出缺货商品的采购单交给采购员。
售货员负责登入商品销售信息(品名,编号,销售量,单价),系统根据售货员的输入,自动修改前台商品库存信息,当前台商品数量低于临界值,系统打印出领货通知单交给库房管理员。
问题1:画出尽可能详细的“商场管理信息系统”数据流图。
问题2:按照软件工程的规范写出“商品入/出库信息”的数据字典(定义到第2层)。
问题3:根据问题1中你所画的数据流图,采用面向数据流的方法,画出系统的软件结构图问题4:已知“销售模块”的IPO表如下,请画出该模块的程序流程图。
问题5:请至少用两种测试方法设计出两套测试数据,用于测试问题4中你设计的程序,并说明你采用了什么测试方法。
模拟试卷二(开卷)
“报刊订阅系统”问题描述:
系统保存所有通过邮局发行的报刊的与发行有关的信息;接受订阅者的订阅和付款,并保存订阅、付款日期和金额、以及投递信息;输出投递和订阅清单;接受顾客的查询服务;统计各报刊的各阶段的总订阅数,并输出各报社、各杂志社的订单汇总表。
问题1:画出尽可能详细的“报刊订阅系统”数据流图。
问题2:按照软件工程的规范写出“报刊订单”的数据字典(定义到第2层)。
问题3:根据问题1中你所画的数据流图,采用面向数据流的方法,画出系统的软件结构图问题4:已知“订阅模块”的IPO表如下,请画出该模块的程序流程图。
问题5:请至少设计出两组测试数据,用于测试问题4中你设计的程序,并说明你采用了什么测试方法和目的。
(0010)《软件工程》复习思考题答案
模拟试卷一
“商场管理信息系统”问题描述:
库房管理员负责录入商品的入库和出库信息,系统自动根据库房管理员的输入修改库房的库存商品信息;当商品的库存数量低于临界值,系统自动打印出缺货商品的采购单交给采购员。
售货员负责登入商品销售信息(品名,编号,销售量,单价),系统根据售货员的输入,自动修改前台商品库存信息,当前台商品数量低于临界值,系统打印出领货通知单交给库房管理员。
问题1:画出尽可能详细的“商场管理信息系统”数据流图。
问题2:按照软件工程的规范写出“商品入/出库信息”的数据字典(定义到第2层)。
问题3:根据问题1中你所画的数据流图,采用面向数据流的方法,画出系统的软件结构图问题4:已知“销售模块”的IPO表如下,请画出该模块的程序流程图。
问题5:请至少用两种测试方法设计出两套测试数据,用于测试问题4中你设计的程序,并
说明你采用了什么测试方法。
参考答案 问题1.
问题2. 商品入/出库信息={品名+编号+生产厂家+数量+单价+入/出库日期+经手人}
品名=20{ 字符 }20 编号=10{ 数字} 10 数量=10{ 数字} 10
生产厂家=20{ 字符 }20
单价=5{ 数字} 5+”.”+2{ 数字} 2 入/出库日期=10{ 数字 }10
经手人=
10{ 字符 }10 问题3.
问题4:
问题5
由于流程图只有一个判断语句,且判断语句中的变量(ng)只有一个,而临界值是一个常数10,所以测试数据的选取只与ng有关。
1、取ng=10,可对该程序进行边界值测试法,这属于黑盒测试,测试目的在于测试程序能不能处理商品数量刚好等于临界值的情况。
2、取:ng =11,
ng=8
可对该程序进行语句覆盖或判定覆盖测试,属于白盒测试。
语句覆盖的测试目的在于将程序的每条语句都执行到,以判断语句有无错误;判定覆盖测试目的在于
通过测试将程序中判定的真假分支都执行一遍,以观察判定的每个分支有无错误产
生。
模拟试卷二
“报刊订阅系统”问题描述:
系统保存所有通过邮局发行的报刊的与发行有关的信息;接受订阅者的订阅和付款,并保存订阅、付款日期和金额、以及投递信息;输出投递和订阅清单;接受顾客的查询服务;统计各报刊的各阶段的总订阅数,并输出各报社、各杂志社的订单汇总表。
问题1:画出尽可能详细的“报刊订阅系统”数据流图。
问题2:按照软件工程的规范写出“报刊订单”的数据字典(定义到第2层)。
问题3:根据问题1中你所画的数据流图,采用面向数据流的方法,画出系统的软件结构图问题4:已知“订阅模块”的IPO表如下,请画出该模块的程序流程图。
问题5:请至少设计出两组测试数据,用于测试问题4中你设计的程序,并说明你采用了什么测试方法和目的。
参考答案:
问题1.
说明:绘制数据流图可以采用分层的方法,即先绘制出顶层数据流图,用于说明整个系统的概貌,然后再分块绘制下层数据流图。
本题答案给出的是顶层数据流图,大家可自行绘
制“订阅,付费”,“订单统计”等下层数据流图。
问题 2.
问题 3.
问题 4
问题5:
因为程序中有两个判断,所以测试数据围绕这两个判断展开,令“存在该报刊”为X,“付款”为Y,则
为达到条件覆盖,需要四组测试数据:
(X=true,Y=true)
(X=true,Y=false)
(X=false,Y=true)
(X=false,Y=false)
条件覆盖的含义是,不仅每个语句至少执行一次,而且使判定表达式中的每个条
件都取到各种可能的结果。
为达到判定覆盖,需要三组测试数据:
(X=true,Y=true)
(X=true,Y=false)
(X=false,Y=true或false)
判定覆盖又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且每
个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至
少执行一次。