东南大学软件学院.docx
《东南大学软件学院.docx》由会员分享,可在线阅读,更多相关《东南大学软件学院.docx(28页珍藏版)》请在冰豆网上搜索。
![东南大学软件学院.docx](https://file1.bdocx.com/fileroot1/2023-6/8/143a9625-e14b-4475-ae91-b517805682f2/143a9625-e14b-4475-ae91-b517805682f21.gif)
东南大学软件学院
东南大学
软件学院研究生课程考试试卷
第一部分:
基本概念题(60%)
答题要求:
(共60题,每题1分)
请在每题的四个选项中,选择你认为最合适的一个答案,多选无效。
1、考察软件系统和软件项目的复杂性主要是看
√B、技术的复杂度和管理的难度是主要标准
2、《人月神话》作者Brooks对寻找银弹感到失望的理由是
√C、任何单独的软件工程技术的进展都不能根本解决问题
3、软件生命周期模型与软件开发过程的关系是
√D、是技术、产品、项目、支撑环节,提供了平台和框架
4、你认为,对现在的软件开发而言,传统的瀑布模型实用价值是
√B、仍然有实用价值,软件开发团队需要先用好瀑布模型,然后再考虑与其他模型综合
5、敏捷开发的小规模、频繁迭代的前提条件是
√B、是用户积极参与的项目
6、RUP模型更好地反映了现代软件工程的要求,是因为
√C、更符合UP的理念,考虑的软件过程模型比较全面
7、现代软件工程的过程管理的综合性表现在
√D、过程的交汇点要根据项目的目标,综合考虑技术和管理的不同需要
8、软件产品线的概念是
√D、是满足特定市场或用户需求,具有公共可管理特性的产品的组合
9、什么是构成软件产品线基础的核心资源
√C、构架、组件、领域模型、需求陈述、工程文档和规格等
10、软件产品开发与软件项目开发的区别是
√D、项目是产品的具体实施,各自的目标不同
11、对于项目章程的内容,以下哪个说法不属实
√C、项目章程中,明确认可和承认了项目的存在
12、项目经理如何才能更好地获得执行组织对项目的支持
√B、把对项目的需求与组织的战略计划相联系
13、目标管理是项目管理中基本的原则和方法,同时项目是运用目标管理技术的理想环境,因为?
√A、所有项目应该强烈地以项目目标为导向
14、下列哪项不是项目生命周期的一个过程
√A、可行性研究
15、下列哪种文件是项目队伍与项目客户之间通过确定项目目标及主要的项目可交付成果而达成协议的基础
√C、范围说明书
16、确定项目范围边界的主要因素是
√A、依据用户需求及项目资源,对项目做什么和不做什么的定义
17、项目章程的最主要意义是
√B、确认项目诞生并为项目经理授权
18、项目管理中的里程碑事件作用是
√C、项目进行绩效考核和沟通协调管理的依据
19、用一句话最确切地描述需求是
√D、需求是对系统将要实现的功能、性能、质量和必须满足的约束的叙述
20、最准确地描述角色与用例概念的一句话是
√C、角色是与系统交互的人或其他系统,用例是角色完成的事件序列
21、通过角色和用例分析,产生类图的过程中,角色与类的关系是
√B、从角色到用例、再到类图,是一个分析过程
22、通过建立业务模型,我们能够
√A、分析领域中的角色、功能关系、组织架构、业务规则等
23、下述哪一个说法是对OMT三种模型的最确切描述
√B、对象模型定义了对象及彼此间关系的映射,动态模型表示瞬时的、行为
24、需求获取阶段建立的业务模型与项目范围的关系
√C、良好的业务模型有利于开发团队与用户就项目范围进行沟通
25、现代软件工程需求开发阶段的需求分析是
√B、是一个细化系统定义,并在需求与设计之间进行平衡的过程
26、需求形式化的意义是
√B、使得需求在可分解、可追溯的基础上进行开发和管理
27、软件开发的基线的含义是
√A、是软件制品通过测试和评审,成为继续开发或发布的基准
28、需求状态的意义是
√D、需求状态构成控制软件开发过程的需求基线的里程碑
29、按CMM的定义要求需求评审的关键是
√B、确定他们是否技术可行、适用于软件实现、定义清晰、可测试
30、用户界面友好的可检验标准是
√D、将友好性转化为可客观度量的其他质量属性进行检验
31、在HOLIS系统的范围定义例子中,指令性基线的含义是
√D、反映的是功能需求的范围约定
32、在HOLIS系统的范围定义例子中,资源限制是如何表现的
√B、在功能选择的排序中,考虑资源的因素
33、需求评审的主要内容是由公司组织的专家对用户业务的合理性进行评审,你认为
√C、需求评审的前提是假定用户需求都是必要和合理的,并由用户自行负责
34、需求追踪链的意义是指
√D、可以验证需求实现的程度,跟踪需求实现的过程
35、需求稳定性的作用是
√B、可以检查需求管理与开发的效率和控制水平
36、为什么说用功能点度量取代代码行度量更具有合理性
√C、功能点度量更全面
37、在需求阶段,反映需求过程本身质量的可度量属性应该是
√D、功能点的可追踪性和实现过程的稳定性
38、组成体系结构的主要要素是
√D、构成单元、连接方式和连接关系
39、ISO/OSI的网络七层协议为层次结构设计提供的最好参考是
√B、提出了基于服务、接口、协议的分层思想和概念
40、系统概要设计的任务是
√A、将需求分析模型映射为具体的软件体系结构
41、基于DFD的传统体系结构设计方法最主要的缺点是
√C、当数据流变化的时候,系统结构也要发生变化
42、作为一种战术方法,一般应在系统设计的哪个阶段,考虑采用何种面向对象的设计模式
√C、在子系统设计阶段,结合模块划分,考虑采用那种设计模式
43、在体系结构方法中,“表驱动”是一种
√D、用表格表示模块之间的一种间接调用关系
44、基于DFD的传统体系结构设计方法最主要的缺点是
√C、当数据流变化的时候,系统结构也要发生变化
45、为什么说算法的优劣有时对系统性能指标的影响并不是最关键的
√C、单个模块性能的提高,对系统性能提升作用有限
46、为什么说模块的合理划分比增加一些代码注释更使系统易于维护
√C、合理的模块划分可提高问题定位和回归测试的效率
47、在评价一个软件系统的易用性时,你会更多地关注
√D、运用合理的设计,使得用户很容易使用系统达到自己的应用目的
48、MVC模式的关键机制是
√D、把数据表示与输入控制、数据存储、功能逻辑分离开来
49、MVC控制器的作用是
√B、根据模型的状态和需要,改变对用户输入的控制方式
50、采用MVC模式的理由是
√D、可以采用发布-订阅模式,控制用户的表示和输入操作
51、质量要素是指:
√C、是一组与用户质量需求相一致的、可度量的系统特性
52、项目管理中质量计划与质量体系之间的区别在于:
√A、计划的对象是具体的产品、项目、服务或合同
53、帕累托图(ParetoCharts)有助于项目经理:
√A、集中于质量改进的最关键的问题
54、当一项产品或服务完全达到客户要求时:
√A、质量也达到了
55、软件质量保证的确认(Validation)过程是
√D、测试、度量、可靠性增长
56、软件质量保证的验证(Verification)过程是
√D、评审、度量、配置管理
57、集成测试是在项目组还是由独立测试部门进行,主要看
√C、软件系统的框架与体系结构的控制需要
58、以下内容较好地描述了配置项的分类
√A、是开发过程中程序、数据、文档和过程记录
59、以下描述最好地说明了基线在软件管理中的作用
√A、基线是项目开发过程的制品经过正式评审并被相关人员一致同意,可以
作为以后项目开发的基础
60、软件项目、软件工程、软件过程、软件产品,从总体到具体的关联关系排列应该是
√D、软件工程、软件过程、软件产品、软件项目
软工考题回忆
判断题
1.2道黑盒白盒的概念(求补充)
白盒测试:
是通过程序的源代码进行测试而不使用用户界面。
这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。
黑盒测试:
又被称为功能测试、数据驱动测试或基于规格说明的测试,是通过使用整个软件或某种软件功能来严格地测试,而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。
测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。
2.可维护性是非功能性需求
选择题
2.就记得第二题B选项又考到了UML是哪三位大神发明的==,结果还就选的B。
OMT (James Rumbaugh)
OOSE (Ivar Jacobson)
Booch (Grady Booch)
3.UML状态图关于动作action描述错的是
动作是选取一组输入且产生一组输出并最终可改变系统状态的。
动作的执行只需要一小段时间且执行不可中断。
例如,一个动作可通过一个操作调用实现。
动作可在一个状态机中的如下三处位置发生:
当一条迁移被选中时;当进入一个状态时;当退出一个状态时。
在迁移期间,源状态的退出状态首先执行,接着执行与该迁移相关联的动作,再接着执行进入目标状态的动作。
当从一个状态进入和退出时,进入动作和退出动作总是会分别被执行。
这些动作不依赖于指定用于进入状态和退出状态的迁移。
4.哪个是计划外沟通(A.EMAILB.NEWSGROUPC.MEETINGD.WWW)
答案:
A.EMAIL
计划内沟通:
问题陈述,客户评审,项目浏览,同行评审,现状浏览,集思广益,发布,事后浏览……
计划外沟通:
需求的澄清,需求的变化,问题求解
书P70-77
5.哪类人不关心类图(A.应用域专家B.endusersC.系统分析师D.对象设计师(D不确定))
答案:
B
6.软件并发过程错误发现越早,为改正它所付出的代价越?
(A.接近平均水平B.大C.小D.复杂)
软件开发时,一个错误发现得越晚,为改正它所付出的代价就【A】。
A)越大 B)越小 C)越不可捉摸 D)越接近平均水平
7.模型向源代码的映射属于:
(A.前项过程B.后项过程C.模型转换D.我忘了(是我忘了不是卷子写着我忘了))
模型转换是作用于某一模型上,以产生另一模型。
重构是通过对源代码的操作而进行转换。
正向工程应用于对象元素集合上,并生成一组对应的源代码语句集合,如类声明、Java表达式或数据库模式。
逆向工程应用于源代码元素集合,并产生模型元素集合,用于现存系统重新构建模型。
10.条件覆盖的涵义是__
A.每个判定结果都要执行一次
B.判定表达式中的每个条件都要取到各种可能结果
C.测试程序中每个语句至少执行一次
D.判定表达式中每个条件都取到各种可能值,且每个判定亦取到各种可能值
条件覆盖是指选择足够的测试用例,使得运行这些测试用例后,要使每个判断中每个条件的可能取值至少满足一次,但未必能覆盖全部分支
对于判断/分支覆盖而言,即使一个布尔表达式含有多个逻辑表达式我们也只需要测试每个布尔表达式的值分别为真和假两种情况就可以了。
条件覆盖要检查每个符合谓词的子表达式值为真和假两种情况,要独立衡量每个子表达式的结果,以确保每个子表达式的值为真和假两种情况都被测试到。
简答题:
1.什么是软件工程?
软件生命周期一般包含哪几个阶段?
软件工程是指导计算机软件开发和维护的一门工程学科,包括技术和管理两个方面。
软件生命周期一般包含三个阶段:
软件定义:
问题定义,可行性研究,需求分析
软件开发:
总体设计、详细设计、编码实现、软件测试
软件维护:
改正性、适应性、完善性、预防性维护
2.写出CMM,OOAD,LOC,COCOMO,UML的英文全称
写出ODD,OSI,API,OOA的英文全称。
英文全称:
UML:
unified modeling language(考到)
OMT:
object modeling technology
OCL(Object Constraint Language)(考到)
OOAD(Object Oriented Analysis And Design)(考到)
FRIEND:
First Responder Interactive Emergency Navigational Database
ODD:
The Object Design Document
CMM:
Capability Maturity Model for Software
LOC:
length of code (代码行)
COCOMO:
constructive cost model
Application programmer’s interface (API)
ISO :
International Standard Organization
OSI :
Open System Interconnection (当时写下来觉得没什么用,没想到居然真的考到这个了!
)
OOSE:
object-oriented software engineering
RAD :
Requirement Analysis Document
3.请简述黑盒测试与白盒测试的区别,并针对这两种测试策略各给出一种代表性的测试技术。
黑盒测试主要关注构件的输入/输出行为,黑盒测试不涉及构件内部结构,也不测试构件的行为或是结构。
白盒测试主要关注构件内部结构,白盒测试要确保对象动态模型的每个状态以及对象之间每个交换行为都要被测试到,而这些内容与特定的输入/输出行为不相关联。
因此,白盒测试要先于黑盒测试。
4.CMM是哪5个级别?
有哪些维护?
1. 初始级
v软件过程的特征是无序的,有时甚至是混乱的。
几乎没有什么过程是经过定义的,项目能否成功完全取决于个人能力。
v处于这个最低成熟度等级的组织,基本上没有健全的软件工程管理制度。
v由于软件过程完全取决于当前的人员配备,所以不可能准确地预测产品的开发时间和成本。
¨ 2. 可重复级
v 建立了基本的项目管理过程,以追踪成本、进度和功能性。
必要的过程规范已经建立起来了,使得可以重复以前类似项目所取得的成功。
v在这一级,有些基本的软件项目管理行为、设计和管理技术,是基于相似产品中的经验确定的,因此称为―可重复‖。
¨ 3. 已定义级
v用于管理和工程活动的软件过程已经文档化和标准化,并且已经集成到整个组织的软件过程中。
v所有项目都使用文档化的、组织批准的过程来开发和维护软件。
n
v这一级包含了第2级的所有特征。
¨ 4. 已管理级
v已收集了软件过程和产品质量的详细度量数据,使用这些详细的度量数据,能够定量地理解和控制软件过程和产品。
n
v这一级包含了第3级的所有特征。
v处于第4级的公司为每个项目都设定质量和生产目标,并不断地测量这两个量,当偏离目标太多时,就采取行动来修正。
5. 优化级
v通过定量的反馈能够实现持续的过程改进,这些反馈是从过程及对新想法和技术的测试中获得的。
n
v这一级包含了第4级的所有特征。
5.二叉树是由叶子节点或者二叉子树构成的,请用composition设计模式画出定义。
书P528
6..OCL语言,写出
(1).不变
(2)前置(3)后置(和书上的例子极其相似)
书P265
对象约束语言简称OCL,是一种施加在指定的模型元素上约束的语言。
包括三种类型约束:
不变式:
不变式是一个对该类所以实例都为真的谓词,不变式是和类或接口有关的约束,不变式通常用来说明类属性的一致性约束。
前置条件:
前置条件是一个在调用一个操作之前必须为真的谓词。
前置条件与某个指定的操作相关联。
前置条件是类用户用来说明在调用一个操作之前必须满足的约束。
后置条件:
后置条件是一个在调用一个操作之后必须为真的谓词。
后置条件与某个指定的操作相关联。
后置条件是类实现者和类扩展者用来说明在调用一个操作之前必须满足的约束。
问答题:
1.写出三种软件模型及其优缺点,并举个栗子来论述一下
瀑布模型
优点:
阶段间的顺序性和依赖性,推迟实现的观点,保证质量的观点。
缺点:
不适合需求模糊的系统,开发初始阶段很难弄清系统需求。
快速原型模型
优点:
逼真的模型,可以使用户迅速作出反馈,循环回溯迭代
缺点:
一种可能来自用户,他们舍不得将“活生生”的原型废弃不用,要求开发者仅做修改,就交付使用,另一种常常来自开发者,当他们熟悉原型后,明知它有不足,却不愿全部推倒重来,宁可在最终系统中保留一部分不理想的程序。
这些偏向如不纠正,都将影响软件开发质量。
螺旋模型
优点:
在项目的所有阶段都考虑各类风险,从而能在风险变成问题之前降低它的危害。
缺点:
难以是用户相信演化方法是可控的,过多的迭代周期,也会增加开发成本和时间。
2.写出病房监控系统的用例图。
监控器可以收集病人信息,更新病历,护士可以打印病人情况。
一旦病人发生问题,系统可以第一时间对医生发出警报并且更新病历。
(不用写用例描述)
3..复印机。
一开始在闲置状态,收到复印命令开始复印,复印完回到闲置状态。
缺纸则到缺纸状态并发出警报,放入纸后回到闲置状态。
卡纸则到卡纸状态并发出警报,一旦修好回到闲置状态(画出状态转换图)。
【打印机状态转换图(空闲状态,打印状态,缺纸状态,卡纸状态)】
4.一个软件公司由多个开发部门和管理部门组成。
开发部门可以开发软件。
公司人员包括经理、开发人员、工作人员。
开发部门有经理和开发人员。
管理部门有经理和工作人员。
经理可以负责多个开发项目,开发人员也可以参加多个开发项目。
画出类图(对象模型)
5..自动售货机。
user去买饮料,front接受钱,front告诉identification钱的数额,identification返回给front可以购买的菜单。
user选择购买的东西,identification接受并且告诉arm要的商品,arm返回商品给front。
画出顺序图。
状态图:
6.现有如下需求陈述:
王大夫在小镇上开了一家牙科诊所。
他有一个牙科助手,一个牙科保健员和一个接待员。
王大夫需要一个软件系统来管理预约。
当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。
如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。
系统将核实病人的名字并提供记录病人数据,数据包括病人的病历号等。
在每次治疗或清洗后,助手或保健员将记录相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。
系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。
接待员可以取消预约。
可以打印出前两天预约尚未接诊的病人清单。
系统可以从病人记录中获取病人的电话号码。
接待员还可以带引出关于所有病人的每天和每周的工作安排。
1)画出类图
2)画出状态转换图
用例图:
1.软件设计中划分模块的一个准则是【C】。
A)低内聚低耦合 B)低内聚高耦合 C)高内聚低耦合 D)高内聚高耦合
2.在各种不同的软件需求中,【B】描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
A)详细设计 B)功能需求 C)验收测试 D)编码实现
3.关于程序模块优化的启发式规则有若干条,以下规则中不符合优化原则的是【B】。
A)通过模块的合并和分解,降低模块的耦合度,提高模块的内聚性 B)提高上层模块的扇出,减少模块调用的层次 C)将模块的作用范围限制在模块的控制范围之内 D)降低模块之间接口的复杂性,避免“病态连接”
4.一般地,可以将软件开发的生命周期划分为问题定义、【B】、需求分析、总体设计、
详细设计、编码和单元测试、综合测试和维护8个阶段。
A)项目论证 B)可行性研究 C)初始调查 D)项目计划
5.软件测试的目的是【C】。
通常单元测试是在代码编写阶段可进行的测试,它是整个测
试工作的基础。
A)表明软件的正确性 B)评价软件质量 C)尽可能发现软件中错误 D)判定软件是否合格
6.软件的可行性研究中不包括【D】。
A)法律可行性 B)技术可行性 C)经济可行性 D)政治可行性
7.模块的内聚性最高的是【D】。
A)逻辑内聚 B)时间内聚 C)偶然内聚 D)功能内聚
8.需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的
逻辑模型并写出【B】的过程。
A)模块说明书 B)需求规格说明书 C)项目开发计划 D)合同文档
9.面向对象的分析方法主要是建立三类模型,即【D】。
A)系统模型、ER模型、应用模型 B)对象模型、动态模型、应用模型 C)E-R模型、对象模型、功能模型 D)对象模型、动态模型、功能模型
10.在开发信息系统的过程中,程序设计语言的选择非常重要。
下面选项中,选择准则【D】
是错误的。
A)将来能否占主导地位 B)可重用性 C)有良好的开发工具支持 D)技术越先进的程序设计语言越好
11.不适合作为科学工程计算的语言是【D】。
A)Pascal B)C C)Fortran D)Prolog
12.下面几种白盒测试技术,哪种是最强的覆盖准则【D】。
A)语句覆盖
B)条件覆盖 C)判定覆盖 D)条件组合覆盖
13.面向对象程序设计中,基于父类创建的子类具有父类的所有特性(属性和方法),该特点称为类的【C】。
A)多态性 B)封装性 C)继承性 D)重用性
14.【D】引入了“风险驱动”的思想,适用于大规模的内部开发项目。
A)增量模型 B)喷泉模型 C)原型模型 D)螺旋模型
15.在开发软件时,【A】可用来提高程序员的工作效率。
A)程序开发环境
B)操作系统的作业管理功能 C)编译程序的优化功能
D)并行运算的大型计算机
16.快速原型模型的主要特点之一是【D】。
A)开发完毕才见到产品 B)及早提供全部完整的软件产品
C)开发完毕后才见到工作软件 D)及早提供工作软件
17.下列叙述中,与提高软件可移植性相关的是【D】。
A)选择时间效率高的算法 B)尽可能减少注释
C)选择空间效率高的算法 D)尽量用高级语言编写系统中对效率要求不高的部分
18.下列选项中,【D】不属于结构化分析方法所使用的工具。
A)数据流图 B)判定表和判定树 C)系统流程图 D)用例图
19.只有单重继承的类层次结构是【C】层次结构。
A)网状型 B)星型 C)树型 D)环型
20.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:
-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是【C】。
A)条件覆盖法 B)等价分类法 C)边界值分析法 D)错误推测法
21.在软件测试中,白盒测试方法是通过分析程序的【B】来设计测试用例的方法。
A)应用范围 B)内部逻辑 C)功能 D)输入数据
22.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称【C】。
A)软件工程 B)软件周期 C)软件危机 D)软件管理
23.为适应软件运行环境的变化而修改软件的活动称为【B】。
A)纠错性维护 B)适应性维护 C)改善性维护 D)预防性维护
24、当模块中包含复杂的条件组合,只有【A】能够清晰地表达出各种动作之间的对应关系。
A)判定表和判定树 B)盒图 C)流程图 D)关系图
25.从事物的组成部件