课程名称: 软件方法与工程学(A) 学分: 2.0 大纲编号 06022203
试卷编号: 考试方式: 闭卷 满分分值: 100 考试时间: 120 分钟
组卷日期: 2014年4月20日 组卷教师(签字): 叶庆生 审定人(签字):
学生班级: 学生学号: 学生姓名: | 11. 在软件开发过程中常用图作为描述工具。DFD就是面向___⑴____分析方法的描述工具。在一套分层DFD中,如果某一张图中有N个加工(Process) ,则这张图允许有____⑵___张子图。在一张DFD图中,任意两个加工之间___⑶____。在画分层DFD时,应注意保持___⑷____之间的平衡。DFD中从系统的输入流到系统的输出流的一连串连续变换形成一种信息流,这种信息流可分为___⑸____两大类。 ⑴A.数据结构 B.数据流 C.对象 D.构件(Component) ⑵A.0 B.1 C.1~N D.0~N ⑶A.有且仅有一条数据流 B.至少有一条数据流 C.可以有0或多条名字互不相同的数据流 D.可以有0或多条数据流,但允许其中有若干条名字相同的数据流 ⑷A.父图与子图 B.同一父图的所有子图 C.不同父图的所有子图 D.同一子图的所有直接父图 ⑸A.控制流和变换流 B.事务流和事件流 C.变换流和事务流 D.事件流和控制流 二.填空(每空2分,共10分) 1. 面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的________方式。 2. 复杂问题(大型系统)的对象模型由下述5个层次组成:主题层、对象层、结构层、属性层和________。 3. 对象具有很强的________能力和描述功能。 4. 软件的详细设计可以采用图形工具、________、语言工具三种形式的描述工具表示模块的处理过程。 5. 软件维护的内容有改正性维护、________维护、完善性维护和预防性维护4种。 三.解释名词(每小题2分,共10分) 1. 需求获取 2. 前置条件 3. 复合集聚 4. 过程抽象 5. 数据驱动 四.简要回答下列问题(每小题4分,共20分) 1. 请说明为什么模块控制的宽度和深度要适度。 2. 什么是蜕变测试?编写蜕变测试的测试用例关键点是什么? 3. 快速原型技术的基本思想是什么? 4.软件出错处理设计,即软件安全性设计。一个交互式出错处理程序应该具备哪些功能和属性? 5. 试叙述软件生存周期划分为哪3个阶段,每个阶段有哪些任务。 |
说明:1.所有试题答案均写在答题纸上,并标明题号。答案写在试卷上成绩无效。 2.考试完毕后连考卷一起交上 一.选择题(每题2分,共30分) 1. 软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( )。 A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段 2.计算机程序及其说明程序的各种文档统称为( )。 A.软件 B.文档 C.数据 D. 程序 3. 软件方法学是以软件方法为研究对象的一门学科。从开发风范上看,可分为( )。 A.面向对象开发方法与自底向上的开发方法 B.自顶向下的开发方法与结构化开发方法 C.面向对象开发方法与结构化开发方法 D.自顶向下的开发方法与自底向上的开发方法 4. 软件工程方法中普遍应用的方法之一是结构化生命周期方法(SLC方法),下述哪一项论述不具有SLC方法的主要特征。( ) A.严格定义需求 B.分析控制流程 C.划分开发阶段 D.规范文档格式 5. 数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,哪些是常采用的?( ) a.自顶向下 b.自底向上 c.分层绘制 d.逐步求精 A.全是 B.a,c和d C.b,c 和d D.a和c 6. 一个模块把数值作为参数传送给另一个模块,这种耦合方式称为( ) A.数据耦合 B.公共耦合 C.控制耦合 D.非直接耦合 7. Jackson方法以下列哪一项为中心。( ) A.控制 B.数据结构 C.活动事件 D.数据流 8. DFD中的每个加工至少需要( )。 A.一个输入流 B.一个输出流 C.一个输入或输出流 D.一个输入流和一个输出流 9. 一个程序如果把它作为一个整体,它也是只有一个入口、一个出口的单个顺序结构,这是一种( )。 A.结构程序 B.组合的过程 C.自顶向下设计 D.分解过程 10. 与选择编程语言无关的因素是( )。 A.软件开发的方法 B.软件执行的环境 C.程序设计风格 D.软件开发人员知识 |
课程名称: 软件方法与工程学(A) 学分: 2.0 试卷编号 | 请设计满足组合条件覆盖的测试用例。 5.通过学习软件工程这门课,谈谈你在课程设计过程中如何利用软件工程的知识来进行软件开发的?有那些经验教训?(4分)
|
" 五.应用题(30分) 1.“学生信息管理系统”可以实现办公无纸化、网络化、信息化、现代化,可以有效提高学校的管理效率、节约管理开支。它的功能性需求包括以下内容:(6分) ●在每个新学年开始的时候都会有新生入学。这时系统的管理人员可以通过系统将这些新生的学籍、年龄、家庭住址、性别、身高、学生证号、身份证号等基本信息存入数据库,每个新生都对应一个帷一的编号,此编号可以是学生证号。在日常的管理中,系统管理员还可以对所有学生的基本信息进行查询、修改、删除等操作。校领导可以查询、修改全校所有学生的基本信息,教师可以在日常工作中查询、修改自己班里学生的基本信息。 ●学校的领导可以通过本系统了解每个班的任课教师、辅导员、学生姓名、学生人数、专业等班级基本信息。系统管理员可以进行查询班级基本信息、添加新班级、修改班级基本信息、删除班级等操作。 ●在考试结束后,教师可以将学生的考试成绩录入系统,还可以对学生的成绩进行查询和修改。学生可以通过本系统进行成绩的查询。 ●学生可以在网上选择自己选修的课程(必修课是必须上的,不用选择).学生通过本系统可以看到有哪些课程可选以及课程的基本信息。课程的基本信息包括:课程号、所属专业、课程名称、开课学期、学时数、学分、任课教师等。每个学生每个学期的选修课程数不得大于6门,如果已经选择了6门课程则不能选择新的课程,只有将已选的课程删除后才能再选择新的课程。系统管理员负责修改、增加、删除选修课程。每个用户要登录系统,都需要一个账号,这就需要系统管理员对用户账号进行管理。 试给出班级信息管理用例图。 2.办公室复印机的工作过程大致如下:未接收到复印命令时处于闲置状态,一旦接收到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。 请用状态转换图描绘复印机的行为。(6分) 3. 写出求最大公约数的程序(或框图),画出其控制流图,计算其复杂度,列出路径,为各路径设计测试用例。(8分) 4. 程序流程图如下图所示。 |
课程名称: 软件方法与工程学 学分: 试卷编号 | |
南京理工大学课程试卷答案
课程名称: 软件方法与工程学(A) 学分: 2.0 大纲编号 06022203
试卷编号: 考试方式: 闭卷 满分分值: 100 考试时间: 120 分钟 | 5. 试叙述软件生存周期划分为哪3个阶段,每个阶段有哪些任务。 答:⑴ 3个阶段是:软件定义阶段、软件开发阶段、软件使用与维护阶段。 ⑵ 软件定义阶段的任务:问题定义、可行性研究、需求分析 软件开发阶段的任务:概要设计、详细设计、实现、组装测试、验收测试 软件使用与维护阶段的任务:使用与维护、退役 五.应用题(30分) 1.
注:本题为综合题,考核学生对用例图分析和画法的掌握的情况。 2. 从问题陈述可知,复印机的状态主要有闲置、复印、缺纸和卡纸。引起状态转换的事件主要是复印命令、完成复印命令、发现缺纸、装满纸、发生卡纸故障和排除了卡纸故障。 下图给出了状态转换图描绘了复印机的行为。 注:本题为综合题,考核学生对对象模型分析及类图等工具的掌握情况。 |
一.选择(每小题2分,共30分) 1.C 2.A 3.D 4.B 5.B 6.A 7.B 8.D 9.B 10.C 11⑴B ⑵D ⑶B ⑷A ⑸C 注:本大题均为基本题,考核学生对基本知识点的掌握情况。 二.填空:(每空1分,共10分) 1.自然思维 2.服务层 3.表达 4.软件配置管理 5.适应性 注:本大题均为基本题,考核学生对基本知识点的掌握情况。 三.名词解释(每小题2分,共10分) 1. 需求获取:发现用户需求的过程。 2. 前置条件(Precondition):被调用操作如正常执行必须满足的先决条件称为前置条件。 3. 复合聚集:如果部分类完全隶属于整体类,部分类需要与整体类共存,一旦整体类不存在了,则部分类也会随之消失,或失去存在价值。 4. 过程抽象:是指任何一个完成确定功能的操作序列,其使用者都可以把它看做一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。 5. 数据驱动:是对软件的功能和界面的测试,其目的是发现软件需求或者设计规格说明中的错误,又称为黑盒测试。 注:本大题均为基本题,考核学生对基本知识点的掌握情况。 四.简要回答下列问题(每小题4分,共20分) 1.请说明为什么模块控制的宽度和深度要适度。 深度过大表示分工过细,而宽度过大则表示系统复杂度大,所以模块控制的宽度和深度要适度。 2. 什么是蜕变测试?编写蜕变测试的测试用例关键点是什么? 蜕变测试依据被测软件的领域知识和软件的实现方法建立蜕变关系(Metamorphic Relation, MR),利用蜕变关系来生成新的测试用例,通过验证蜕变关系是否被保持来决定测试是否通过。编写蜕变测试的测试用例关键点就是找出蜕变关系。 3. 快速原型技术的基本思想是什么? 在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。 4. 软件出错处理设计,即软件安全性设计。一个交互式出错处理程序应该具备哪些功能和属性? ⑴ 信息应该使用用户可以理解的术语描述。 ⑵ 信息应该提供有助于从错误中恢复的建设性意见。 ⑶ 信息应该指出错误可能导致的后果。 ⑷ 信息应该伴随感官提示。 ⑸ 信息不能带有指责色彩。 |
课程名称: 软件方法与工程学(A) 学分: 2.0 试卷编号 | 设计测试用例 表5-7 条件组合覆盖测试用例 | |||||
X | Y | 路径 | 条件取值 | 覆盖条件 | ||
1 | 90 | 90 | OAE | T1T2T3T4T5 | ⑴ | |
2 | 90 | 70 | OBCE | T1T2T3T4T5 | ⑶⑹ | |
3 | 90 | 30 | OBDE | T1T2T3T4T5 | ⑶⑾ | |
4 | 70 | 90 | OBCE | T1T2T3T4T5 | ⑵⑺ | |
5 | 30 | 90 | OBDE | T1T2T3T4T5 | ⑵⑽ | |
6 | 70 | 70 | OBDE | T1T2T3T4T5 | ⑷⑻ | |
7 | 50 | 50 | OBDE | T1T2T3T4T5 | ⑷⑿ |
5.略 |
3.#include "stdio.h" void main() { int a,b; scanf("%d %d",&a,&b); while(a!=b) { if(a>b) a-=b; else b-=a; } printf("%d",a); } 由于该段程序有2个判定结点,所以其环路复杂度为:3 path1:①→②→④ 输入:5 5 预期输出: 5 path2:①→②→③→⑤→⑦→② 输入:10 5 预期输出: 5 path1:①→②→③→⑥→⑦→② 输入:5 10 预期输出: 5 注:本题为综合题,考核学生对程序设计、软件测试用例设计等工具的掌握情况。 4. 给出组合条件: ⑴ X>=80,Y>=80 作T1T2 ⑵ X<80,Y>=80 作T1T2 ⑶ X>=80,Y<80 作T1T2 ⑷ X<80,Y<80 作T1T2 ⑸ X+Y>=140,X>=90,Y>=90 作T3T4T5 不可能出现 ⑹ X+Y>=140,X>=90,Y<90 作T3T4T5 ⑺ X+Y>=140,X<90,Y>=90 作T3T4T5 ⑻ X+Y>=140,X<90,Y<90 作T3T4T5 ⑼ X+Y<140,X>=90,Y>=90 作T3T4T5 不可能出现 ⑽ X+Y<140,X >= 90,Y<90 作T3T4T5 ⑾ X+Y<140,X<90,Y >= 90 作T3T4T5 ⑿ X+Y<140,X<90,Y<90 作T3T4T5 |
课程名称: 学分: 试卷编号 | |