软件工程复习题及答案.doc
《软件工程复习题及答案.doc》由会员分享,可在线阅读,更多相关《软件工程复习题及答案.doc(6页珍藏版)》请在冰点文库上搜索。
2006-2007-2软件工程复习
一、单项选择题(20选10)
1.结构化分析的主要描述手段有(B)。
A.系统流程图和模块图B.DFD图、数据词典、加工说明
C.软件结构图、加工说明D.功能结构图、加工说明
2.用于表示模块间的调用关系的图叫(D)。
A.PADB.SCC.N-SD.HIPO
3.在(B)模型中是采用用例驱动和架构优先的策略,使用迭代增量建造方法,软件“逐渐”被开发出来的。
A.快速原型B.统一过程C.瀑布模型D.螺旋模型
4.常用的软件开发方法有面向对象方法、面向(A)方法和面向数据方法。
A.过程B.内容C.用户D.流程
5从工程管理的角度来看,软件设计分两步完成(D)。
A.①系统分析②模块设计 B.①详细设计②概要设计
C.①模块设计②详细设计D.①概要设计②详细设计
6.程序的三种基本结构是(B)。
A.过程、子程序、分程序B.顺序、条件、循环
C.递归、堆栈、队列D.调用、返回、转移
7.程序的三种基本结构是(B)。
A.过程、子程序、分程序B.顺序、条件、循环
C.递归、堆栈、队列D.调用、返回、转移
8.SD方法衡量模块结构质量的目标是(C)。
A.模块间联系紧密,模块内联系紧密B.模块间联系紧密,模块内联系松散
C.模块间联系松散,模块内联系紧密D.模块间联系松散,模块内联系松散
9.为提高软件测试的效率,应该(C)。
A.随机地选取测试数据B.取一切可能的输入数据作为测试数据
C.在完成编码后制定软件测试计划D.选择发现错误可能性大的数据作为测试数据
10.(D)测试用例发现错误的能力较大。
A.路径覆盖B.条件覆盖C.判断覆盖D.条件组合覆盖
11.软件需求分析应确定的是用户对软件的(A)。
A.功能需求和非功能需求B.性能需求C.非功能需求D.功能需求
12.下列各种图可用于动态建模的有(C)。
A.用例图 B.类图 C.序列图 D.包图
13.软件过程模型有瀑布模型、(B)、增量模型等。
A.概念模型B.原型模型C.逻辑模型D.物理模型
14.面向对象的分析方法主要是建立三类模型,即(D)。
A.系统模型、ER模型、应用模型 B.对象模型、动态模型、应用模型
C.E-R模型、对象模型、功能模型 D.对象模型、动态模型、功能模型
15.测试的分析方法是通过分析程序(B)来设计测试用例的方法。
A.应用范围B.内部逻辑C.功能D.输入数据
16.软件工程是研究软件(B)的一门工程学科。
A.数学B.开发与管理C.运筹学D.工具
17.需求分析可以使用许多工具,但(C)是不适合使用的。
A.数据流图B.判定表C.PAD图D.数据字典
18.划分模块时,一个模块内聚性最好的是(A)。
A.功能内聚B.过程内聚C.信息内聚D.逻辑内聚
19.软件可移植性是用来衡量软件的(D)的重要尺度之一。
A.效率B.质量C.人机关系D.通用性
20.软件配置管理是在软件的整个生存周期内管理(D)的一组活动。
A.程序B.文档C.变更D.数据
二、判定题(20选10)
1统一过程是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。
(×)
2当模块中所有成分结合起来完成一项任务,该模块的内聚是偶然内聚。
(×)
3SD方法衡量模块结构质量的目标是模块间联系松散,模块内联系紧密(√)
4当模块中所有成分结合起来完成一项任务,该模块的内聚是功能内聚。
(√)
5在进行需求分析时,就应该同时考虑软件的可维护性问题。
(√)
6需求分析可以使用许多工具,但数据流图是不适合使用的。
(×)
7用白盒法测试时,测试用例是根据程序内部逻辑设计的。
(√)
8一组测试用例是条件覆盖,则一定是语句覆盖。
(√)
9用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
(×)
10因果图法可以用于系统地设计测试用例。
(√)
11在了解被测试模块的内部结构或算法的情况下进行测试叫白盒测试。
(√)
12为提高软件可移植性,应注意提高软件的设备独立性。
(×)
13在完成测试作业之后,为缩短源程序长度,应删去源程序中的注解。
(×)
14有GOTO语句的程序一般无法机械地变成功能等价的无GOTO语句的程序。
(×)
15快速原型模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。
(√)
16好的程序不仅处理速度要快,而且易读、易修改。
(√)
17应多使用GOTO语句。
(×)
18系统模块的内聚度应尽可能地小。
(×)
19信息隐藏原则禁止在模块外使用在模块接口说明中所没有说明的、关于该模块的信息。
(√)
20在完成测试作业之后,为缩短源程序长度,应删去源程序中的注解。
(×)
三、名词解释(十选5)
四、简答题(十选5)
1可行性研究有哪些步骤?
1)确定项目规模和目标;
2)研究现行系统(如果存在);
3)建立系统的高级逻辑模型,用系统流程图或数据流图(DFD图)描述;
4)提高实现高层逻辑模型的各种方案,并对各方案进行评价;
5)推荐可行的方案;
6)编写可行性报告;
2什么是软件生存周期?
软件生存周期模型有哪些?
答:
软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
主要模型包括:
瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。
3软件质量保证措施有那些?
1)以客户对于质量的需求为基础,对项目开发周期的各个阶段,建立质量目标;
2)定义质量度量以衡量项目活动的结果,协助评价有关的质量目标是否达到;
3)确定质量活动;
4)执行已经确定的质量活动;
5)评价质量
4什么是软件开发方法?
有哪些主要方法?
答:
软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产过程的方法,其方法一般描述成一系列的步骤,每一个步骤都与相应的技术和符号相关。
主要方法有:
1)结构化开发方法
2)面向数据结构的开发方法
3)原型化开发方法
4)面向对象的开发方法
5结构化分析的步骤有哪些?
1)建立当前系统的具体模型
2)抽象出当前系统的逻辑模型
3)建立目标系统的逻辑模型
4)为了对目标系统进行完整的描述,考虑人机界面和其他一些问题
6什么是软件维护?
它有哪些类型?
软件维护是指软件系统交付使用以后,为了改正软件运行错误,或者因新的需求而加入新功能的修改软件的过程。
它的类型有:
完善性维护,适应性维护,纠错性维护,预防性维护。
7软件测试的步骤有哪些?
1单元测试,分别完成每个单元的测试任务,以确保每个模块能正常工作2集成测试,把已测试的模块组装起来,进行集成测试3确认测试,完成集测试以后,要对开发工作初期制定的确认准则进行检验4系统测试,完成确认测试以后,给出的应该是合格的软件产品,为了检验能否与系统的其他部分协调工作,需要进行系统测试5验收测试,检验软件产品质量的最后一道工序是验收测试
8试述用户界面设计应考虑的因素。
答:
(1)可实用性。
要求使用简单,用户界面中所用术语的标准化和一致性,具有help功能。
快速的系统响应和低的系统成本,具有容错能力。
(2)灵活性。
考虑用户的特点,能力,知识水平;提供不同的系统响应时间,提供根据用户需求制定和修改界面,
(3)界面的复杂性与可靠性
9评价模块分割好坏的标准有哪些?
模块分割好坏的标准有2个定性准则:
藕合性和内聚性。
耦合性用于描述模块之间联系的紧密程度;内聚性用于描述模块内部联系的紧密程度。
模块分割时耦合越松越好,内聚性愈强愈好
10UML有那些图?
答:
用例图:
从用户角度描述系统功能,并指出各功能的操作者
静态图:
表示系统的静态结构,包括类图,对象图,包图
行为图:
描述系统的动态模型和组成对象间的交互关系,包括状态图,活动图
交互图:
描述对象间的交互关系,包括顺序图,合作图
实现图:
用于描述系统的物理实现,包括构件图,部件图
五、分析设计题(4选1)
1、数字校园网上考试系统提供给教师的功能如下:
(1)登录
教师通过帐户和密码登录到网上考试系统。
(2)题库管理
对试题库进行添加试题 、修改试题以及删除试题等。
(3)试卷生成
教师从试题库中抽题实现自动组卷或手工组卷,然后存入试卷库中。
(4)试卷查询
教师从试卷库中选出符合要求的试题,被选中的题目将被加入新的试卷中去。
(5)答卷批改
当试卷中存在填空题或问答题,教师需参与答卷评分,系统统计成绩存入成绩库。
(6)维护教学大纲
教师可对教学大纲库中的教学大纲进行维护(修改、增加、删除等)工作。
要求:
画出详细的数据流图或用例图
2、数字校园网上考试系统提供给学生的功能如下:
(1)登录:
学生通过帐户和密码登录到网上考试系统。
(2)在线练习:
学生可以从试题库中任意选择各种题型的试题进行解答,系统将给出正确答案供学生参照,并将学生解答练习情况存入练习库中。
(3)在线测试:
为了对学生的学习效果进行考核,系统可从试卷库中随机组好试卷供学生进行考试并计时。
考生保存答卷到答卷库。
成绩统计进入成绩库。
(4)在线学习:
学生可在网上根据教学大纲的要求选择课程库中的课程进行学习。
(5)成绩查询:
提供查询考试成绩功能,并可以查看答卷得分情况。
要求:
画出详细的数据流图或用例图
3、图书管理主要包括三类用户:
读者、图书管理员、系统管理员。
其中,读者是多个,图书管理员是几个,系统管理员是一个。
对于系统,读者可以查询自己的借阅情况、分门别类的查询图书和在规定期限内续借不能超过一次操作的情况下进行自行登录续借书等。
图书管理员主要是日常操作以下几个工作环节:
图书订购、新书验证、书目录入、图书登记、读者信息管理、借阅书登记、图书信息注销和读者信息注销等,而系统管理员统筹管理图书的系统相关事宜,比如权限维护、日志维护、增删用户和管理系统后台数据等。
要求:
画出详细的数据流图或用例图
4、广告管理系统操作业务人员角色包括:
预订员,财务,划版员,系统管理员和报刊领导。
各个角色承担不同的系统任务:
预订员管理预订、划版员负责划版管理、财务员管理财务、业务员与客户交流、系统管理员负责系统配置、领导根据外部信息源进行决策。
经初步分析,该系统应该包括预订子系统、财务子系统、划版子系统、系统管理子系统、客户管理子系统和决策支持子系统。
划版子系统和客户管理子系统都需要使用财务子系统和预订子系统的信息;财务子系统需要使用预订子系统的信息。
要求:
画出详细的数据流图或用例图
六、测试用例设计
1、使用逻辑覆盖测试法测试以下程序:
PROCEDUREEXAMPLE(A,B:
REAL;VARX:
REAL);
BEGIN
IF(A>2)AND(B=0)
THENX:
=X/A;
IF(A=4)OR(X>1)
THENX:
=X+1
END;
1)画出程序流程图;
2)分别以语句覆盖、判定覆盖、判定/条件覆盖、条件组合覆盖方法设计用例,并写出每个测试用例的执行路径。
2、使用逻辑覆盖测试法测试以下程序:
PROCEDUREEXAMPLE(A,B:
REAL;VARX:
REAL);
BEGIN
IF(A=1)OR(B>1)
THENX:
=AⅹB;
IF(A>2)OR(B=1)
THENX:
=A-2
END;
1)画出程序流程图;
2)分别以语句覆盖、判定覆盖、判定/条件覆盖、条件组合覆盖方法设计用例,并写出每个测试用例的执行路径。
3、某城市的电话号码由3个部分组成。
这3个部分的名称与内容分别是:
地区码:
空白或3位数字
前缀:
以大于等于‘5’开头的4位数字
后缀:
4位数字
要求:
用等价分类法设计它的测试用例。
4、输入三个数据,判断是否能构成三角形?
要求:
用等价分类法设计它的测试用例。
七、1谈谈你学习软件工程的理解和体会。
软件工程这门学科随着发展越来越显得重要,是一个专业的软件开发人员所应该具有的品质,没有需求分析就不可以有一个完整而又经济的软件出现和发展!
这门学科特别的好,应该好好体会其中的理念,为你个人以后的成长和做人处事都是有帮助的!
我们做什么事情都应该事前做好需求分析才能立二不败之地!
特别你要是一个软件开发人员更应该深入体会其中的奥秘!
2谈谈你对参加需求分析或总体设计的体会。
需求分析是要决定“做什么,不做什么”。
需求分析为什么困难?
有几种原因使需求分析变得困难:
(1)客户说不清楚需求;
(2)需求自身经常变动;(3)分析人员或客户理解有误。
客户说不清楚需求:
有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。
有些客户心里非常清楚想要什么,但却说不明白。
事实上,用简单的话来说明需求过程,就是确定系统该做些什么以及该符合什么条件。
话虽然简单,实现起来可没有那么容易。
所以科学的需求过程有一整套完整的理论、工具、方法来实现。
需求分析最重要的是和用户沟通,可是用户多半不是计算机的专业人士,如果在需求分析中使用了行话,就会造成用户理解上的困难。
再也没有什么比软件开发接近完成时才发现遗漏了一项需求更糟的事情了。
需求的完整性是非常非常重要的,想象一下遗漏需求而不得不返工,这简直就是恶梦。
可是令人遗憾的是,需求的遗漏是很经常发生的事情,不仅仅是你的问题,更多的问题发生在用户那里,他们不知道该做些什么。
要做到需求的完整性是很艰难的一件事情,它涉及到需求分析过程的各方各面,贯穿了整个过程,从最初的计划制定到最后的需求评审。
3.谈谈你进行软件项目开发的心得体会。
一、前期规划:
我理解的前期规划是:
在市场人员们汇总一个需求提交给产品专家带领的产品经理团队,然后经过这个团队根据公司具体情况再次分析和规划出一个最终需求文档。
这个需求文档应当首先提交给技术研发部门的负责人以及核心开发人员。
由开发团队对其进行技术和风险分析。
如果对此需求统一有异议的地方,需要返回给产品团队,重新修正需求。
反复如此,直至需求完善准确,细致,清晰。
前期规划就像高楼的地基,如果马马虎虎,就算是一块砖块没摆好都可能导致整个高楼建设的失败。
在规划中我认为,交流永远是需要双方积极主动,能认真听取每个人的建议。
前期工作思维不慎重,不细致,不认真,不够完善,将产生连锁效应直接导致整个工程和项目的失败。
这种失败可能表现为:
第一种,软件按需求实现但是功能根本不能满足用户需要。
第二种,功能都有了,软件没有达到可用性、易用性。
对于第一种,当然是因为前期规划疏漏了某些细小功能,没能把需求文档做完善。
应该是规划工作做的还不够认真和细致。
对于第二种情况,我认为更多是在产品设计规划方面经验还不够成熟。
这种问题应该是很难避免的。
因为每种新产品对产品团队来说都很陌生。
即使以前做过类似的东西,也难免面面俱到。
这只能通过不断努力和认真的态度来弥补。
前期规划的交流涉及了市场、产品和技术研发等多个团队之间。
需要的不仅是团队内部的交流,更多需要协调好团队之间的交流。
可能有时候需要公司高层和中层参与协调。
目前,很多开发人员深感项目的需求文档写的都很单薄。
大家可以想一想,如果没有好的开始,怎么会有好的结束呢?
需求文档单薄,不够细致,由谁来继续完善呢?
难道让程序员们自己去完善。
我想程序员也可能没有这种能力。
对于程序员能把代码写的很健壮很稳定就已经是很不容易的事情了。
4谈谈你参加软件项目开发使用工具的心得体会。
6-3
解:
第1步:
划分等价类:
输入条件
合理等价类
不合理等价类
地区码
j空白,k3位数字
n有非数字字符,o少于3为数字,p多于3为数字
前缀
l200到999之间
q有非数字字符,r起始位为0, s起始位为1,11少于3为数字, 12多于3为数字
后缀
m4为数字
13有非数字字符,14少于4位数字,15多于4位数字
第2步:
设计测试用例:
测试数据
测试范围
期望结果
j()123-4567
等价类j,l,m
有效
k(123)805-9876
等价类k,l,m
有效
l(20A)123-4567
等价类n
无效
m(33)234-5678
等价类o
无效
n(1234)234-4567
等价类p
无效
o(123)2B3-1234
等价类q
无效
p(123)013-1234
等价类r
无效
q(123)123-1234
等价类s
无效
r(123)23-1234
等价类11
无效
s(123)2345-1234
等价类12
无效
11(123)234-1B34
等价类13
无效
12(123)234-34
等价类14
无效
13(123)234-23345
等价类15
等价类15
GUI:
人机交互图形化用户界面设计GUI就是屏幕产品的视觉体验和互动操作部分。
API:
应用程序编程接口是一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数.用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么.
CASE:
computerassistedsoftwareengineering计算机辅助软件工程帮助进行应用程序开发的软件,包括分析、设计和代码生成。
CASE工具为设计和文件编制传统结构编程技术,提供了自动的方法。
IDE:
integrateddevelopmentenvironment集成开发环境一般包括代码编辑器、编译器、调试器和图形用户界面工具。
该程序可以独立运行,也可以和其它程序并用。
MDA:
ModelDrivenArchitecture模型驱动架构是由OMG定义的一个软件开发框架。
它是一种基于UML以及其他工业标准的框架,支持软件设计和模型的可视化、存储和交换。
OLAP:
onlineanalyticalprocessing联机分析处理它是快速提供答案给在自然空间中分析查询的一种方法。
OLTP:
onlinetransactionprocessing联机事务处理
RUP:
RationalUnifiedProcess
UML:
UnifiedModelingLanguage标准的统一的图形化建模语言,是软件工程中面向对象的模型方法。
XP:
xXtremeProgramming
DD:
数据字典详细描述系统中的全部数据
DFD:
dataflowdiagrams数据流图是描述系统中数据流图的图形工具,它标识了他了一个西用的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。
ERD:
entity-relationshipdiagram实体关系图
CPM:
criticalpathmethod关键路径法
CSCW:
computer-supportedcollaborativework
PERT:
ProgramEvaluationReviewTechnique计划评估和评审技术
AEM:
AdvertisingExpenditureMeasurement广告费用评估
BOM:
businessobjectmodel业务对象模型
DOM:
domainobjectmodel领域对象模型
UP:
UnifiedProcess统一过程
CM:
ContactManagement联系人管理
EM:
EmailManagement电子邮件管理
APP:
AcquaintancePackagePrinciple相识包原则
CEP:
CycleEliminationPrinciple循环消除原则
CNP:
ClassNamingPrinciple类命名原则
DDP:
DownwardDependencyPrinciple向下依赖性原则
EAP:
ExplicitAssociationPrinciple显式关联原则
GoF:
GangofFourpatterns
MVC:
Model-View-Controller模型-视图-控制器
NCP:
NeighborCommunicationPrinciple相邻通信原则
PCMEF:
Presentation-Control-Mediator-Entity-Foundation表示-控制-中介者-实体-基础
PCMEF+:
UNP:
UpwardNotificationPrinciple向上通知原则
DBMS:
databasemanagementsystem数据库管理系统负责存储和维护数据的软件叫做数据库管理系统。
ER:
entity-relationshipmodel实体-关系数据库结构设计的概要模型
ODMG:
ObjectDataManagement对象数据管理组织
SQL:
StruturedQueryLanguage结构化查询语言是一种关系语言,应用程序使用它来访问数据库。
BC4J:
BusinessComponentsforJavaJava业务组件
EJB:
EnterpriseJavaBeans企业JavaBeans
JDBC:
JavaDatabaseConnectivityJava数据库连接
JDK:
JavaDevelopmentKitJava开发工具包
SQLJ:
SQLforJavaJavaSQL
MAPI:
JavaMail:
API邮件
OID:
objectidentifier对象标识符
C/S:
client/server客户/服务器
UI:
userinterface用户界面