如何评测软件工程知识技能水平?

谁说我不能喝 提交于 2020-01-05 19:18:33

一.单选题,共8题。

1.软件开发的增量模型____。
A.最适用于需求被清晰定义的情况
B.是一种能够快速构造可运行产品的好方法
C.最适合于大规模团队开发的项目
D.是一种不适用于商业产品的创新模型
试题1分析
增量模型是一种非整体开发的模型,该模型具有较大的灵活性,适合于软件需求不明确的一种模型。使用该模型开发产品,一般是尽快构造出可运行的产品,然后在该产品的基础上再增加需要的新的构建,使产品更趋于完善。
试题1答案
B

2.为了有效地捕获系统需求,应采用____。
A.瀑布模型 B.敏捷开发 C.原型模型 D.螺旋模型
试题2分析
瀑布模型严格遵循软件生命周期各阶段的固定顺序进行软件开发,其优点是可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审;而其缺点是过于理想化,缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求。
原型模型基于这样一种客观事实:并非所有的需求在系统开发之前都能准确地说明和定义。因此,它不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法。原型模型适用于需求不够明确的项目,它能有效地捕获系统需求。
螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析。采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。
试题2答案
C

3.模块A执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能,则该模块具有____内聚。
A.顺序 B.过程 C.逻辑 D.功能
试题3分析
内聚是指模块内部各元素之间联系的紧密程度,模块的内聚类型通常可以分为7种,根据内聚度从高到低排序分别如下:
功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。
顺序内聚:处理元素相关,而且必须顺序执行。
通信内聚:所有处理元素集中在一个数据结构的区域上。
过程内聚:处理元素相关,而且必须按特定的次序执行。
瞬时内聚:所包含的任务必须在同一时间间隔内执行(如初始化模块)。
逻辑内聚:完成逻辑上相关的一组任务。
偶然内聚:完成一组没有关系或松散关系的任务。
试题3答案
C

4.面向对象分析的第一步是____。
A.定义服务
B.确定附加的系统约束
C.确定问题域
D.定义类和对象
试题4分析
面向对象分析的任务是了解问题域所涉及的对象、对象间的关系和操作,然后构造问题的对象模型。问题域是指一个包含现实世界事物与概念的领域,这些事物和概念与所设计的系统要解决的问题有关。因此面向对象分析的第一步是要确定问题域。
试题4答案
C

5.在白盒测试法中,__(1)_是最弱的覆盖准则。图7-2至少需要__(2)_个测试用例才可以完成路径覆盖,语句组2不对变量i进行操作。
(1)A.语句 B.条件 C.判定 D.路径
(2)A.1 B.2 C.3 D.4

试题5分析
关于逻辑覆盖相关知识请参看本节考点精讲部分。
本题的第二问比较复杂,关键是我们要清楚程序流程图中有几条路径,然后为每条路径设置一个测试用例。
在本题给出的程序流程图中,如果我们将判定“x<=15&&x>0”规定为第1个判定,“x>15”规定为第2个判定,“i<3”规定为第3个判定的话,那么本题中的路径有:第1个判定为N,第2个判定为N;第1个判定为N,第2个判定为Y,第3个判定一直为Y,后再取N(这里要注意,由于在第3个判定前,给i赋初值为0,因此这个判定每次都是先为Y,循环后再为N);第1个判定为Y,第3个判定先为Y,然后再为N。总共只有这3条路径,因此至少需要设置3个测试用例来满足路径覆盖。
试题5答案

(1) A (2) C

6.在某班级管理系统中,班级的班委有班长、副班长、学习委员和生活委员,且学生年龄在15~25岁。若用等价类划分来进行相关测试,则____不是好的测试用例。
A.(队长,15) B.(班长,20) C.(班长,15) D.(队长,12)
试题6分析
所谓等价类就是某个输入域的集合,对于一个等价类中的输入值来说,它们揭示程序中错误的作用是等效的。也就是说,如果等价类中的一个输入数据能检测出一个错误,那么等价类中的其他输入数据也能检测出同一个错误。
在本题中一个设计用例包含两个输入条件,一个是班委,另一个是年龄,从四个选项来看,D选项中的两个输入都不是有效数据,如果用这个用例检测出了一个错误,那么也不能确定是由哪个输入条件引起的,因此其不是一个好的测试用例。
试题6答案
D

7.若软件项目组对风险采用主动的控制方法,则____是最好的风险控制策略。
A.风险避免 B.风险监控
C.风险消除 D.风险管理及意外事件计划
试题7分析
风险避免即放弃或不进行可能带来损失的活动或工作。例如,为了避免洪水风险,可以把工厂建在地势较高、排水方便的地方,这是一种主动的风险控制方法。
风险监控是指在决策主体的运行过程中,对风险的发展与变化情况进行全程监督,并根据需要进行应对策略的调整。
风险管理是指在一个肯定有风险的环境里把风险减至最低的管理过程。对于风险我们可以转移,可以规避,但不能消除。
试题7答案
A

8.在软件维护阶段,为软件的运行增加监控设施属于_____维护。
A.改正性 B.适应性 C.完善性 D.预防性
试题8分析
根据引起软件维护的原因不同,软件维护通常可分为以下四种类型:
改正性维护是指在使用过程中发现了隐蔽的错误后,为了诊断和改正这些隐蔽错误而修改软件的活动。该类维护一般占总维护工作量的25%。
适应性维护是指为了适应变化了的环境而修改软件的活动。该类维护一般占总维护工作量的20%。
完善性维护是指为了扩充或完善原有软件的功能或性能而修改软件的活动。该类维护一般占总维护工作量的5%。
预防性维护是指为了提高软件的可维护性和可靠性、为未来的进一步改进打下基础而修改软件的活动。该类维护一般占总维护工作量的50%。
而本题所描述的为软件的运行增加监控设施属于完善性维护。
试题8答案
C

二.简答题,共5题。

9.软件需求分析从哪几方面进行?
可以分为:功能需求、性能需求、可靠姓需求和可用性需求、出错处理需求、接口需求等多个方面。

10.什么是数据流图?它包括几种基本符号?其作用是什么?
是描述数据处理的工具。从数据传输和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,是一种功能模型。

11.什么是数据字典,它与数据流图有什么关系?
是关于数据信息的集合,它对数据流图中的各个元素作完整的定义与说明,是数据流图的补充工具。
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。
关系:数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流字典中每个元素的精确定义放在一起,才能共同构成系统的规格说明。

12.你认为编码时要注意的问题有哪些?
1) 变量命名规范 2) 编码格式规范 3) 多加注释 4) 少用或不用 goto语句 5) 使用C/C++时,申请了内存空间就要记得释放内存空间

13.你认为数据流图、系统流程图、软件结构图、E-R图、算法流程图、测试用例分别用于软件开发的哪个阶段?
需求分析阶段:数据流图、系统流图
概要设计阶段:软件结构图、E-R图
详细设计阶段:算法流程图
测试阶段:测试用例

三.综合题,共1题。

14.某网上药店允许顾客凭借医生开具的处方, 通过网络在该药店购买处方上的药品。该网上药店的基本功能描述如下:

1、注册。顾客在买药之前, 必须先在网上药店注册。注册过程中需填写顾客资料以及付款方式(信用卡或者支付宝账户)。此外顾客必须与药店签订一份授权协议书, 授权药店可以向其医生确认处方的真伪。

2、登录。已经注册的顾客可以登录到网上药房购买药品。如果是没有注册的顾客, 系统将拒绝其登录。

3、录入及提交处方。登录成功后, 顾客按照"处方录入界面"显示的信息, 填写开具处方的医生的信息以及处方上的药品信息。填写完成后, 提交该处方。

4、验证处方。对于已经提交的处方(系统将其状态设置为"处方已提交"), 其验证过程为:

① 核实医生信息。如果医生信息不正确, 该处方的状态被设置为"医生信息无效", 并取消这个处方的购买请求; 如果医生信息是正确的, 系统给该医生发送处方确认请求, 并将处方状态修改为"审核中"。

② 如果医生回复处方无效, 系统取消处方, 并将处方状态设置为"无效处方"。如果医生没有在7天内给出确认答复, 系统也会取消处方, 并将处方状态设置为"无法审核"。

③ 如果医生在7天内给出了确认答复, 该处方的状态被修改为"准许付款"。系统取消所有未通过验证的处方, 并自动发送一封电子邮件给顾客, 通知顾客处方被取消以及取消的原因。

5、对于通过验证的处方, 系统自动计算药品的价格并邮寄药品给已经付款的顾客。 该网上药店采用面向对象方法开发, 使用UML进行建模。系统的类图如图3-1所示。


[问题1]根据说明中的描述, 给出图3-1中缺少的C1~C5所对应的类名以及(1)~(6)处所对应的多重度。
[问题2]图3-2给出了"处方"的部分状态图。根据说明中的描述, 给出图3-2中缺少的S1~S4所对应的状态名以及(7)~(10)处所对应的迁移(transition)名。`
[问题3]试分析图3-1中空心和实心矩形分别含义及其区别。

参考答案:

问题1:
C1:付款方式
C2:处方
C3:信用卡
C4:支付宝账户
C5:(处方)药品
(1):1
(2):0..
(3):1
(4):1..

(5):0..*
(6):1
问题2:
s1:审核中
s2:无法审核(无效处方)
s3:医生信息无效
s4:无效处方(无法审核)
(7):医生信息不正确
(8):医生信息正确
(9):医生回复处方无效(医生没有7天内给出确认答复)
(10):医生没有7天内给出确认答复(医生回复处方无效)
分析:

问题3:

题目详细分析:
在本题中, 首先考查类图中的Customer、C2和Doctor这三个类。由说明可知, 在网上购药时, 顾客与医生之间不会直接发生交互, 而是通过顾客持有的"处方"而发生关联。由此可以确定C2对应的类应该是"处方"。
C2与C5之间是聚集关系, 其中C2表示整体类, C5表示部分类。由于已经确定了C2表示的是"处方"类, 那么C5表示就应该是处方所包含的内容。处方中包含的是药品, 所以C5对应的类应该是"处方上的药品"。
下面来分析类图中的继承关系。继承关系表示类之间的"一般/特殊"关系。C1表示一般类, C3和C4是C1的两个具体类; 并且这三个类与Customer之间具有组装关系。那么在说明中出现的所有名词词汇中, 具有明显的一下一步工作就是把上表中的信息与题中的状态图对应起来。 由说明可知, 处方提交后的第一步操作就是核实医生信息, 而这个操作会产生两种结果: 医生信息正确, 或者不正确。医生信息不正确会使处方的状态变更为"医生信息无效", 并导致购买行为被取消, 即表中的第一行。对于这种情况, "处方"的状态变更轨迹为: 处方已提交→医生信息无效→结束。而在状态图中与这条轨迹匹配的状态序列就是: 处方已提交→S3→结束。由此可以确定, S3对应的就是状态"医生信息无效", 而(7)对应的迁移就是"医生信息不正确"。
相应地, 就可以判断出(8)应该代表的是核实医生信息的另一种结果, 因此(8)对应的迁移应该是"医生信息正确"。由上表可知, 医生信息正确时, 处方状态会变更为"审核中", 这样S1对应的状态就是"审核中"。 但处方在状态"审核中"时, 实际上会有三个后续状态: 一个是图中已经给出的"准许付款", 另外两个是"无效处方"和"无法审核"。而产生这两个状态的原因分别是"医生回复处方无效"和"医生没有在7天内给出答复"。由此得出, (9)对应"医生回复处方无效", S4对应状态"无效处方"; (10)对应"医生没有在7天内给出答复", S2对应"无法审核"。 如果S2为状态"无效处方", 那么(10)就对应着"医生回复处方无效"; S4对应状态"无法审核", 那么(9)就对应着"医生没有在7天内给出答复"。

题目考察:
本题考查UML的应用, 是比较传统的题目, 要求考生细心分析题目中所描述的内容。本问题考查UML的类图。类图展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中, 最常用的模型之一就是类图。
类图用于对系统的静态设计视图建模。这种视图主要支持系统的功能需求, 即系统要提供给用户的服务。但对系统的静态设计视图建模时, 通常有三种使用方式: (1)对系统的词汇建模
对系统的词汇建模涉及做出这样的决定: 哪些抽象是考虑中的系统的一部分, 哪些抽象处于系统边界之外。用类图详细描述这些抽象和它们的职责。
(2)对简单的协作建模 协作是一些共同工作的类、接口和其他元素的群体, 该群体提供的一些合作行为强于所有这些元素的行为之和。例如当对分布式系统的事务语义建模时, 不能仅仅盯着一个单独的类来推断要发生什么, 而要有相互协作的一组类来实现这些语义。用类图对这组类以及它们之间的关系进行可视化和详述。
(3)对逻辑数据库模式建模 将模式看作数据库的概念设计的蓝图。在很多领域中, 要在关系数据库或面向对象数据库中存储永久信息。可以用类图对这些数据库的模式建模。 本题主要使用类图对系统词汇进行建模。题目中已经给出了类图的基本框架及部分的类, 要求考生将类图中其余的类补充完整。在解答这类题目时, 需要细心阅读说明中的文字, 并记录和整理其中出现的名词。这些名词将来有可能成为类。其次应特别关注类图中出现的特殊关联关系, 如继承关系、聚集/组装关系等。
本题考查UML的应用, 是比较传统的题目, 要求考生细心分析题目中所描述的内容。 状态图关注系统的动态视图, 它注重描述可能的状态序列, 以及在特定状态下对象对外部离散事件的响应动作。
本题考查的是类"处方"的对象的状态变化。关于网上药店对"处方"的处理流程, 在说明的(4)验证处方中, 给出了详细的描述。对该描述进行分析之后, 可以用下面的表来说明"处方"在整个验证流程中所经历的状态。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!