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

软件工程师应该具备的基础和能力

  • 具备软件工程课程是软件开发的指导思想,方法体系,这是需要掌握的核心内容:
    (1)软件工程知识
    (2)系统分析基础知识
    (3)系统设计基础知识
    (4)系统实施基础知识
    (5)系统运行和维护基础知识
    (6)软件质量管理基础知识
    (7)软件过程改进基础知识
  • 具有基本代码实践能力:最拿手的计算机语言之一,代码量多少?(偏web前端,PC/Mobile App)
  • 具有行业洞察力:你最感兴趣的领域是什么?这个领域过去10年经历了哪些创新?
  • 项目管理能力:如何决定项目中各种任务的优先次序,有什么理论来支持你的做法?
  • 团队协作能力:协同工作,提供反馈,说服别人
  • 软件设计能力:架构设计,模块化设计,接口设计

一.单选题,共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.模块A直接访问模块B的内部数据,则模块A和模块B的耦合类型为____。
A.数据耦合 B.标记耦合 C.公共耦合 D.内容耦合
试题5分析
本题主要考查耦合的基本内容。
耦合是指两个或两个以上的模块相互依赖于对方的一个量度。它可以分为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合及内容耦合等。
当一个模块直接修改或操作另一个模块的数据或者直接转入另一个模块时,就发生了内容耦合,所以本题的答案选D。

试题5答案
D

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

二.简答题,共4题。

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

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


  1. 数据流图上所有符号只限于四种基本图形元素
  2. 每个加工至少有一个输入数据流和一个输出数据流
  3. 子图必须与它上一层的一个加工对应,二者的输入数据流和输出数据流必须一致

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

12.你认为编码时要注意的问题有哪些?

  1. 变量命名规范 2) 编码格式规范 3) 多加注释 4) 少用或不用 goto语句 5) 使用C/C++时,申请了内存空间就要记得释放内存空间

三.综合题,共1题。

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

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

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

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

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

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

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

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

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


[问题1]根据说明中的描述, 给出图3-1中缺少的C1C5所对应的类名以及(1)(6)处所对应的多重度。
[问题2]试分析图3-1中空心和实心菱形分别含义及其区别。

参考答案:

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

问题2:

题目详细分析:
在本题中, 首先考查类图中的Customer、C2和Doctor这三个类。由说明可知, 在网上购药时, 顾客与医生之间不会直接发生交互, 而是通过顾客持有的"处方"而发生关联。由此可以确定C2对应的类应该是"处方"。
C2与C5之间是聚集关系, 其中C2表示整体类, C5表示部分类。由于已经确定了C2表示的是"处方"类, 那么C5表示就应该是处方所包含的内容。处方中包含的是药品, 所以C5对应的类应该是"处方上的药品"。
分析类图中的继承关系。继承关系表示类之间的"一般/特殊"关系。C1表示一般类, C3和C4是C1的两个具体类; 并且这三个类与Customer之间具有组装关系。

题目考察知识点:
本问题考查UML的类图。类图展现了一组对象、接口、协作和它们之间的关系。
类图用于对系统的静态设计视图建模。对系统的静态设计视图建模时, 通常使用方式:
(1)对系统的词汇建模
对系统的词汇建模涉及做出这样的决定: 哪些抽象是考虑中的系统的一部分, 哪些抽象处于系统边界之外。用类图详细描述这些抽象和它们的职责。
(2)对简单的协作建模
协作是一些共同工作的类、接口和其他元素的群体, 该群体提供的一些合作行为强于所有这些元素的行为之和。例如当对分布式系统的事务语义建模时, 不能仅仅盯着一个单独的类来推断要发生什么, 而要有相互协作的一组类来实现这些语义。用类图对这组类以及它们之间的关系进行可视化和详述。

附:
单选题部分来源:软考冲刺卷1~5
问答题部分来源:软件工程思考题
综合题来源:2010.12软考题,删去第二问

posted @ 2020-01-05 19:10  muddyway  阅读(569)  评论(0编辑  收藏  举报