软件工程复习题.docx
- 文档编号:11061917
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:19
- 大小:23.65KB
软件工程复习题.docx
《软件工程复习题.docx》由会员分享,可在线阅读,更多相关《软件工程复习题.docx(19页珍藏版)》请在冰豆网上搜索。
软件工程复习题
软件工程复习题
复习题
一、选择
1、在软件开发的各种资源中,〔B〕是最重要的资源。
A开发工具B方法C硬件环境D人员
2、软件的复杂性是〔A〕,它引起人员通信困难、开发费用超支、开发时间超时等问题。
A固有的B人为的C可消除的D不可降低的
3、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于〔A〕系统。
A需求不确定的B需求确定的C管理信息D决策支持
4、单元测试的测试用例主要根据〔D〕的结果来设计。
A需求分析B源程序C概要设计D详细设计
5、〔A〕是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件
设计与开发、软件确认、软件改良等活动组成。
A软件过程B软件工具C软件生存周质量保证D软件工程
6、〔A〕意味着一个操作在不同的类中可以有不同的实现方式。
A多态性B类的复用C封装
7、软件测试计划开始于需求分析阶段,完成于〔D〕阶段。
A需求分析B软件设计C软件实现D软件测试
8、在软件生存周期的瀑布模型中一般包括计划、〔C〕、设计、编码、测试、维护等阶段。
A可行性分析B需求采集C需求分析D问题定义
9.软件需求分析阶段的测试手段一般采用〔C〕。
A总结B阶段性报告C需求分析评审D不测试
10.〔C〕是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界
是隐蔽的,外界只能通过有限的接口与对象发生联系。
A多态性B继承C封装D消息
11.软件测试是为了〔B〕而执行程序的过程。
A纠正错误B发现错误C防止错误D证明正确
12.在结构化分析方法中,〔C〕表达系统内部数据运动的图形化技术。
A数据字典B实体关系图C数据流图D状态转换图
13.软件工程的基本要素包括方法、工具和〔A〕。
A过程B软件系统C硬件环境D人员
14.TURBOPASCAL是〔A〕软件。
A、系统软件B、人工智能C、事务软件D、应用软件
15、选择结构的复杂性比顺序结构的复杂性要〔B〕。
A、小B、大C、相等D、无法比较
16、模块内聚度越高,说明模块内各成分彼此结合的程度越〔B〕。
A、松散B、紧密C、无法判断D、相等
17、软件维护是软件生命周期中的固有阶段,一般认为,各种不同的软件维护中以〔〕维
护所占的维护量最小〔C〕。
A、纠错性维护B、代码维护C、预防性维护D、文档维护
18、在下述哪一种测试中,测试人员必须接触到源程序〔C〕。
Ⅰ功能测试Ⅱ结构测试
A、均不需B、只有ⅠC、只有ⅡD、Ⅰ和Ⅱ
19、软件设计阶段的输出主要是〔D〕。
-----------------------Page2-----------------------
A、程序B、模块C、伪代码D、设计规格说明书
20、软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试〔D〕。
A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑
21、下面哪几个阶段是软件的设计阶段〔D〕。
A、编码B、可行性研究C、测试D、维护E、需求分析
22、数据字典是用来定义〔D〕中的各个成分的具体含义的。
A.流程图B.功能结构图C.系统结构图D.数据流图
23、在面向对象设计中,〔A〕意味着在同一作用域内的假设干个参数不同的函数可以使用
相同的函数名字。
A.重载B.类的复用C.封装D.继承
二,判断(正确则打√,错误则打×)
1、文档是软件产品的一部分,没有文档的软件就不称其为软件。
(R)
2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。
(R)
3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。
(R)
4、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。
(W)
5、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
(R)
6、面向对象的分析是面向电脑系统建立软件系统的对象模型。
(W)
7、不完善的系统定义往往是导致软件项目失败的主要原因。
(R)
8、一个成功的项目唯一提交的就是运行程序。
(W)
9、只有质量差的软件产品才需要维护。
(W)
10、一个好的测试用例在于能发现至今未发现的错误。
(R)
11、软件工作的考虑范围主要是程序设计和实现。
(W)
12、在项目计划发生延迟的情况下,增加更多的程序员一定会加快进度。
(W)
13、软件错误可能出现在开发过程的早期,越早修改越好。
(R)
14,在软件开发的过程中,假设能推迟暴露其中的错误,则为修复和改正错误所花费的代价就
会降低。
(W)
15,模型是对现实的简化,建模是为了更好地理解所开发的系统。
(R)
16,好的测试用例应能证明软件是正确的。
(W)
17,白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。
(W)
三,填空题
1、在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课
程之间是多对多关系。
2、动物与老虎之间是继承关系,森林和树木之间是组合关系。
3、衡量模块独立的两个标准是内聚和耦合。
4、结构化分析实质是就是一种建模活动,通常建立数据模型、功能模型、行为模型。
5、在面向对象设计过程中,先后要建立3个模型,它们分别是对象模型_、_动态模型_、_
功能模型_
6、组成数据流图的四种成分是〔源点或终点〕、〔数据流〕、〔处理〕、〔数据存储〕
7、程序的逻辑结构分为顺序结构、分支结构、和循环结构等三大类
8、面向对象的方法有四个要点:
对象、类、继承、通信
9、将正确答案的编号填入题目空白处:
在白盒测试用例设计中,有语句覆盖、条件覆盖、判定覆盖、路径覆盖等,其中,__2__是
-----------------------Page3-----------------------
最强的覆盖准则。
为了对下列图所示的程序进行覆盖测试,必须适当地选取测试数据。
假设X、
Y是两个变量,可供选择的数据组共有Ⅰ、Ⅱ、Ⅲ、Ⅳ四组(如表中给出),则实现语句覆盖
至少应采用的测试数据组是____1__;实现条件覆盖至少应采用的测试数据组是___5___;实
现路径覆盖至少应采用的测试数据组是____5__或____8__。
[供选择的答案]:
A:
①语句覆盖②条件覆盖③判定覆盖④路径覆盖
B—E:
①Ⅰ和Ⅱ组②Ⅱ和Ⅲ组③Ⅲ和Ⅳ组④Ⅰ和Ⅳ组
⑤Ⅰ、Ⅱ和Ⅲ组⑥Ⅱ、Ⅲ和Ⅳ组⑦Ⅰ、Ⅲ和Ⅳ⑧Ⅰ、Ⅱ和Ⅳ组
10、快速原型应该具备的基本特性是:
___快速___、___容易修改____
四,问答题
1、什么是需求分析?
需求分析阶段的基本任务是什么?
答:
需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、
定义和功能时所要做的所有的工作。
需求分析阶段的基本任务是:
要准确的定义新系统的目标,为了满足用户需要,答复系统必
须“做什么”的问题。
2、为什么说面向对象方法学比传统方法学在稳定性方面要好?
答:
传统的软件开发以算法为核心,开发过程基于功能分析和功能分解.用传统方法所建立
起来的软件系统的结构紧密依赖于系统所要完成的功能,当功能需求
发生变化时将引起软件结构的整体修改.事实上,用户需求变化大部分是针对功能的,因此
这样的软件系统是不稳定的。
面向对象方法基于构造问题领域的对象模型,以对象为中心构
造软件系统。
它的基本作法是用对象模拟问题领域中的实体,以对象间的联系刻画实体间的
联系。
当对系统的功能需求变化时并不会引起软件结构的整体变化,仅仅只需要作一些局部
性的修改。
总之,由于现实世界中的实体是相对稳定的,因此,对象为中心构造的软件系统
也是比较稳定的。
为什么说面向对象方法学比传统方法学在可重用性方面要好?
答:
传统的软件重用技术是利用标准函数库来构造新的软件系统,但是标准函数少必要的“柔
性”,不能适应不同应用场合的不同需求,并不是理想的可重用的软件成分。
在面向对象方
法所使用的对象中,数据和操作正是作为平等伙伴出现的,因此,对象具有很强的自合性。
此外,对象所固有的封装性和信息,隐藏机理,使得对象内部实现与外界隔离,具有较强的
独立性。
由此可见,对象是比较理想的模块和可重用的软件成分。
3、你认为一个好的软件开发人员应具备哪些基本素质?
答:
1.最重要的,学习和总结的能力
2.设计能力
3.软件工程能力
-----------------------Page4-----------------------
4、为什么软件需要维护?
简述软件维护的过程。
答:
1.软件维护就是要针对用户使用软件产品过程提出的问题而对软件产品进行相应的修改
或演化,从而修正错误,改善性能或其它特征,以及使软件适应变化的环境。
2.软件维护的过程:
提出维护要求,分析维护要求,提出维护方案,审批维护方案,确定维
护计划,修改软件设计,修改程序,测试程序,复查验收。
5、传统"瀑布模型"的主要缺陷是什么?
试说明造成缺陷的原因。
答:
“瀑布模型是文档驱动的”。
在项目的早期,用户常常很难清楚地给出所有需求,瀑布模
型却要求如此。
由于瀑布模型的特点,早期的错误直到开发晚期才能被发现,开发的风险较
大。
6、某学校需要开发一个学生成绩管理系统,教务人员可以通过该系统维护学生信息、课程
信息和成绩信息,学生可以随时查询自己的成绩单,该系统的实体关系图如下所示:
请问图中是否应该增加"教务人员"?
试说明理由。
答:
不应该增加"教务人员",因为教务人员只是该系统的一个使用者,系统不处理其属性
信息。
7、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。
intGetMax(intn,intdatalist[])
{
intk=0;
for(intj=1;j if(datalist[j]>datalist[k])k=j; returnk; } 〔1〕画出该程序的控制流图,并计算其复杂度。 〔2〕列出独立路径 〔3〕为各测试路径设计测试用例。 答: 1.控制流图如下,McCabe环路复杂性为3。 -----------------------Page5----------------------- 2.测试路径: Path1: ①→③ Path2: ①→②→④→⑥→… Path3: ①→②→⑤→⑥→… 3.测试用例: Path1: 取n=1,datalist[0]=1, 预期结果: k=0 Path2: 取n=2,datalist[0]=1,datalist[1]=0, 预期结果: k=0 Path3: 取n=2,datalist[0]=0,datalist[1]=1, 预期结果: k=1 8,以下是销售管理所需要的信息: 生产厂家编号、厂家名称、联系、联系人、、产品编号、产品名称、产品说明、 销售商场名称、销售商场编号、商场联系、商场联系人、商场 分析这些信息,把它们设计成几个表,并将这些表之间建立起关系,要求反映出: 一个工厂 生产多种产品,一个商店经营多种产品 E-R图 -----------------------Page6----------------------- 数据流图: 9,写出求最小公倍数的程序〔或框图〕,画出其控制流图,计算其复杂度,列出独立路径, 为各独立路径设计测试用例。 #include"stdio.h" voidmain() { inta,b,m,n,c,t; printf("请输入两个整数: "); scanf("%d%d",&a,&b); m=a; n=b; if(a {t=a; a=b; b=t; } c=a%b; while(c! =0) {a=b;b=c;c=a%b;} printf("最小公倍数为%d",m*n/b); } 控制流程图 10,写出求最大公约数的程序〔或框图〕,画出其控制流图,计算其复杂度,列出独立路径, 为各独立路径设计测试用例。 #include"stdio.h" voidmain() { inta,b; scanf("%d%d",&a,&b); while(a! =b) { if(a>b) -----------------------Page7----------------------- a-=b; else b-=a; } printf("%d",a); } 控制流程图 复杂度2 11、画数据流图要注意哪些事项? 答: 1.设计数据流图时只需考虑系统必须完成的基本逻辑功能,不需要考虑怎样具体的实现 这些功能。 2.从顶层数据流开始。 3.并不是所有数据存储和数据流都能直接从问题描述中提取出来; 4.当进一步分解将涉及如何具体地实现一个功能时,就不应该在分解了; 5.数据流图中个成分的命名要仔细推敲,看是否恰当; 12、在项目开发时,选择程序设计语言通常考虑哪些因素? 答: 〔1〕软件项目的应用领域。 〔2〕软件问题的算法复杂性 〔3〕软件的工作环境.〔4〕软件在性能上的需要. 〔5〕软件中数据结构中的复杂性. 〔6〕软件开发人员的知识水平和心理因素. 13、什么是单元测试和集成测试? 他们各有什么特点? 答: 单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件 的独立单元将在与程序的其他部分相隔离的情况下进行测试。 集成测试也叫组装测试、联合测试、子系统测试或部件测试。 集成测试是在单元测试的基础 上,将所有模块按照概要设计要求组装成为子系统或系统。 特点: 1.单元测试大量使用白盒测试技术,检查模块控制结构中的特定路径,以确保做到完 全覆盖并发现最大数量的错误。 2.集成测试是测试和组装软件的系统化技术,是把模块按照设计要求组装起来的同时进行 测试,要目标是发现与接口有关的问题。 14、模块的内聚性分为哪几种类型? 把它们按从低到高进行排序。 答: 〔偶然,逻辑,时间,过程,通信,顺序,功能〕内聚。 15、模块的偶合性分为哪几种类型? 把它们按从高到低进行排序。 答: 〔内容,公共,控制,数据,无直接〕耦合。 -----------------------Page8----------------------- 16、软件的生存周期一般分成哪几个阶段? 答: 三个时期: 软件定义,软件开发,运行开维护。 八个阶段: 问题定义,可行性研究,需求分析,概要设计,详细设计,编码,测试,维护 18、下列图是某系学籍管理的一部分,⑴、⑵分别是同一模块A的两个不同设计方案,你认 为哪一个设计方案较好? 请陈述理由。 20、数据流图由哪几种基本部件组成? 画数据流图时最常犯的有哪些错误? 答: 1.主要成分: 数据的源点或终点,数据处理,数据存储,数据流。 2.没有分支,条件和循环;没有数据出错处理,没有文件的打开和关闭;数据处理必须“有 进有出”;数据存储必须“有进有出”;数据流线上有数据流名,且数据流名是名词;数据处 理的命名是动词。 21、E-R图由哪几种基本部件组成? 画E-R图时最常犯的有哪些错误? 答: 1.基本部件: 实体,属性,关系. 2.用矩形框代表实体,连接相关实体的菱形框表示关系,用椭圆或圆角矩形表示实体〔或关 系〕的属性,用无向边把实体〔或关系〕与其属性连接起来。 22、什么叫模块化? 设计一个系统时是否分的模块越多就越? 好说明原因。 答: 1.模块化就是把程序划分成可独立命名且独立访问的模块,每个模块完成一个子功能, 把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 2.不一定。 当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本〔工作量〕 确实减少了,但是,随着模块数量增加,设计模块间接上所需要的工作量也将增加,根据这 两个因素,得出设计一个系统时并不一定模块越多越好。 23、分别表达“瀑布模型”和“快速原型模型”的优缺点. 1.瀑布模型: 优点: 可强迫开发人员采用标准的方法;严格的规定了每个阶段必须提交的文 档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 缺点: 瀑布模型是文档驱动的。 快速原型模型: 优点: 软件产品的开发基本上是按线性顺序进行的。 缺点: •所选用的开发技术和工具不一定符合主流的发展; •快速建立起来的系统结构加上连续的修改可能会导致产品质量低下; 25、把教科书第三章后的习题1、2、3 复杂度2 11、画数据流图要注意哪些事项? 答: 1.设计数据流图时只需考虑系统必须完成的基本逻辑功能,不需要考虑怎样具体的实现 这些功能。 2.从顶层数据流开始。 -----------------------Page9----------------------- 3.并不是所有数据存储和数据流都能直接从问题描述中提取出来; 4.当进一步分解将涉及如何具体地实现一个功能时,就不应该在分解了; 5.数据流图中个成分的命名要仔细推敲,看是否恰当; 12、在项目开发时,选择程序设计语言通常考虑哪些因素? 答: 〔1〕软件项目的应用领域。 〔2〕软件问题的算法复杂性 〔3〕软件的工作环境.〔4〕软件在性能上的需要. 〔5〕软件中数据结构中的复杂性. 〔6〕软件开发人员的知识水平和心理因素. 13、什么是单元测试和集成测试? 他们各有什么特点? 答: 单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件 的独立单元将在与程序的其他部分相隔离的情况下进行测试。 集成测试也叫组装测试、联合测试、子系统测试或部件测试。 集成测试是在单元测试的基础 上,将所有模块按照概要设计要求组装成为子系统或系统。 特点: 1.单元测试大量使用白盒测试技术,检查模块控制结构中的特定路径,以确保做到完 全覆盖并发现最大数量的错误。 2.集成测试是测试和组装软件的系统化技术,是把模块按照设计要求组装起来的同时进行 测试,要目标是发现与接口有关的问题。 14、模块的内聚性分为哪几种类型? 把它们按从低到高进行排序。 答: 〔偶然,逻辑,时间,过程,通信,顺序,功能〕内聚。 15、模块的偶合性分为哪几种类型? 把它们按从高到低进行排序。 答: 〔内容,公共,控制,数据,无直接〕耦合。 16、软件的生存周期一般分成哪几个阶段? 答: 三个时期: 软件定义,软件开发,运行开维护。 八个阶段: 问题定义,可行性研究,需求分析,概要设计,详细设计,编码,测试,维护 18、下列图是某系学籍管理的一部分,⑴、⑵分别是同一模块A的两个不同设计方案,你认 为哪一个设计方案较好? 请陈述理由。 20、数据流图由哪几种基本部件组成? 画数据流图时最常犯的有哪些错误? 答: 1.主要成分: 数据的源点或终点,数据处理,数据存储,数据流。 2.没有分支,条件和循环;没有数据出错处理,没有文件的打开和关闭;数据处理必须“有 进有出”;数据存储必须“有进有出”;数据流线上有数据流名,且数据流名是名词;数据处 理的命名是动词。 21、E-R图由哪几种基本部件组成? 画E-R图时最常犯的有哪些错误? 答: 1.基本部件: 实体,属性,关系. 2.用矩形框代表实体,连接相关实体的菱形框表示关系,用椭圆或圆角矩形表示实体〔或关 系〕的属性,用无向边把实体〔或关系〕与其属性连接起来。 22、什么叫模块化? 设计一个系统时是否分的模块越多就越? 好说明原因。 答: 1.模块化就是把程序划分成可独立命名且独立访问的模块,每个模块完成一个子功能, 把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 2.不一定。 当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本〔工作量〕 确实减少了,但是,随着模块数量增加,设计模块间接上所需要的工作量也将增加,根据这 两个因素,得出设计一个系统时并不一定模块越多越好。 23、分别表达“瀑布模型”和“快速原型模型”的优缺点. 1.瀑布模型: 优点: 可强迫开发人员采用标准的方法;严格的规定了每个阶段必须提交的文 档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 -----------------------Page10----------------------- 缺点: 瀑布模型是文档驱动的。 快速原型模型: 优点: 软件产品的开发基本上是按线性顺序进行的。 缺点: •所选用的开发技术和工具不一定符合主流的发展; •快速建立起来的系统结构加上连续的修改可能会导致产品质量低下; 25、把教科书第三章后的习题1、2、3 习题1 银行电脑储蓄系统的工作过程大致如下: 储户填写的存款单或取款单由业务员键入系统, 如果是存款则系统记录存款人、住址〔或号码〕、身份证号码、存款类型、存款日 期、到期日期、利率、密码〔可选〕等信息,并印出存款单给储户;如果是取款而且存款时 留有密码,则系统首先核对储户密码,假设密码正确或存款时未留密码,则系统计算利息并印 出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体-关系图描绘系统中的数据对象。 数据流图 -----------------------Page11----------------------- 习题2 为方便旅客,某航空公司拟开发一个机票预定系统。 旅行社把预定机票的旅客信息(、 性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排 航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校 对无误即印出机票给旅客。 -----------------------Page12----------------------- 请用实体-关系图描绘本系统中的数据对象并用数据流图描绘本系统的功能 习题2 为方便旅客,某航空公司拟开发一个机票预定系统。 旅行社把预定机票的旅客信息(、 性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排 航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校 对无误即印出机票给旅客。 请用实体-关系图描绘本系统中的数据对象并用数据流图描绘本系统的功能 习题3 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人 的病情变化,还会
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习题