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


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

一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面?

(1)掌握常用的编程语言、熟悉语言的特性和使用:

软件人员的一个重要职责是把用户的需求功能用某种计算机语言予以实现。编码能力直接决定了项目开发的效率。这就要求软件工程师至少精通一门编程语言,比如当前国内企业常用的C/C++、VB和国际上最流行的Java语言,熟悉它的基本语法、技术特点和API(应用程序接口)。

(2)拥有扎实的计算机基础知识:

在解决实际问题时,常需要用到操作系统、计算机网络、计算机组成原理等方面的计算机基础知识,这些知识不仅是思维和理论层面的,更需要灵活运用于实际遇到的计算机问题。

(3)自觉的规范意识和团队精神:

随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。企业追求的不仅仅是软件工程师的专业技能,也对软件工程师的团队合作能力有着高的要求。

(4)良好的语言表达能力和沟通能力:

在软件开发过程中,不仅是程序员之间要进行交流合作,程序员也可能要与产品人员,测试人员,运维人员,销售人员等其他各个部门的人沟通交流。所以需要有好的语言组织和表达的能力。

 

试题

一、名词解释

1.原型(Prototype)

参考答案:一种部分开发的产品,用来让用户和开发者共同研究,提出意见,为最终产品定型

2.面向对象(Object Orientation)

参考答案:是一种软件开发方法,它将问题和方法组织成一系列独立的不连续的对象,数据结构

和动作都被包括在内。

3.软件可维护性(maintainability)

参考答案:是指在给定的使用条件(预定的时间间隔、维护程序、维护资源之下进行维护)下,维护活动能被执行的概率。

 

4.耦合(Coupling)

参考答案:软件模块之间的相互依赖性。

5.用例(Use case)

参考答案:通过建立用户、外部项、其他实体的对话模型,而对系统将要完成的功能进行

描述或刻画。

6.抽象(Abstraction)

参考答案:基于某种归纳水平的问题描述,他是我们将注意力集中在问题的的关键方面而非细节。

7.功能性需求(Functional Requirement)

参考答案:描述系统内部功能或系统与外部环境的交互作用。涉及系统输入应对,实体状态变化,输出结果,设计约束与过程约束等。

 

二、判断题

1. (    ) 软件测试只能证明程序有错误,不能证明程序没有错误。

2. (    ) 开发初始原型的目的是为了确定用户的基本需求。

3. (    ) 尽可能推迟程序的逻辑实现是按照瀑布模型开发软件的一条重要的指导思想。

4. (    ) 在软件开发的各个阶段进行过程中,增加人员肯定会对整个项目提前完成有好处。

5. (    ) 如果测试数据满足条件覆盖,则必然满足判定覆盖。

6. (    ) 一般来说,模块的内聚程度越高,他们之间的耦合程度也就越高。

7. (    )在程序调试时,改正该错误比找出错误的位置和性质更难。

8. (    ) 因为详细设计已经把模块的内部逻辑描述的相当清晰,所以编程时不必再采用统一的标准和约定。

9. (    ) 信息隐蔽原则禁止在模块外使用在模块接口说明的关于该模块的信息。

10.(    ) 开发人员和客户对软件质量因素的认可是完全一致的。

 参考答案:

1. √    2. x    3. x     4. x     5. x     6. x     7. x    8. x    9. x    10. x  

 

三、选择题

1. 下列选项不属于瀑布模型的优点的是 _________。

A.可迫使开发人员采用规范的方法

B.严格的规定了每个阶段必须提交的文档

C.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证

D.支持后期的变动

 

2. 在下列说法中,            是造成软件危机的主要原因。 

① 用户使用不当        ② 软件本身特点              ③ 硬件不可靠    

④ 对软件的错误认识    ⑤ 缺乏好的开发方法和手段    ⑥ 开发效率低

A:①③⑥          B:①②④         C:③⑤⑥     D:②⑤⑥

 

3.需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求,细化软件要处理的数据域。需求可以分为功能需求、非功能需求、设计约束三大类,其中________属于设计约束。

A:系统必须完成自动统计功能。     B:系统要采用国有自主知识产权的中间件系统。

C:每笔查询都必须在10秒内响应。  D:系统必须能够自动记录用户的操作过程。

 

4.某软件在应用初期运行在Windows XP环境中,现因某种原因,该软件需要在UNIX环境中运行,而且必须完成相同的功能。为适应这个要求,软件本身需要进行修改,而所需修改的工作量取决于该软件的___________。

供选择的答案:

A:可扩充性。        B:可靠性。        C:复用性。        D:可移植性。

 

5.软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是__________。

A.运行和维护阶段      B. 设计阶段     C.代码实现阶段        D. 测试阶段

 

6.系统测试是将软件系统与硬件、外设和网络等其他因素结合,对整个软件系统进行测试。__________不是系统测试的内容。

A:路径测试。    B:可靠性测试。    C:安装测试。    D:安全测试。

 

7.内聚是一种指标,表示一个模块__________。

供选择的答案:

A:代码优化的程度。          B:代码功能的集中程度。   

C:完成任务的及时程度。      D:为了与其他模块连接所要完成的工作量。

 

8.下列叙述中,与提高软件可移植性相关的是___________。

供选择的答案:

A:选择时间效率高的算法。

B:尽可能减少注释。

C:选择空间效率高的算法。

D:尽量用高级语言编写系统中对效率要求不高的部分。

 

9.在UML提供的图中,可以采用___ (1)_____对逻辑数据库模式建模;____(2)_____用于接口、类和协作的行为建模,并强调对象行为的时间顺序;____(3)_____用于系统的功能建模,并强调对象的控制流。

供选择的答案:

① A.用例图     B.构件图     C.活动图      D.类图       

② A.协作图     B.状态图     C.序列图      D.对象图       

③ A.状态图     B.用例图     C.活动图      D.类图       

填入答案( (1):                 (2):                 (3):              )

参考答案:1~5:DDBDA    6~8:ABD    9:DBC

 

四、简答题

1、软件开发与程序设计有何不同?

参考答案:软件开发将软件的开发过程分为若干阶段,包括需求分析、系统设计、程序设计、编码、测试等等,而程序设计仅是软件开发的一个组成部分,并且软件开发所指的软件不同于一般程序,而是指大型程序及文档。

 

2、列出类图中各个类之间的各种基本关系

参考答案:UML类图中之间关系的类型通常有5种:归纳、关联、依赖、聚集和组合、泛化。

 

3、请列举出用以衡量软件质量的三方面因素及其基本含义。

参考答案:软件产品的质量,软件过程的质量,软件的商业价值

 

4、简述获取需求时的三种类型。

参考答案:必须满足的用户需求,用户热切希望但不是必须的需求,技术上有可能实现但必须去掉的需求

 

5、列举几种常用的软件设计模式。

参考答案:策略模式、桥接模式、观察者模式、抽象工厂模式...

 

五、综合题

宠物商店PetStore是一个集客户购物、订单处理、销售统计等功能于一体的电子商务网站。以下是简要的功能需求:

客户分为匿名客户和注册客户,对于注册客户以会员方式管理,登记并管理其个人信息,根据其消费积分分为金牌会员、银牌会员、普通会员,以享受不同程度的优惠。

通过浏览器,匿名客户可以查询宠物;创建账户并登陆后才能够使用购物车、创建订单、提交订单、通过信用卡支付等购物活动。每个客户可以同时拥有多个订单,但只能有一个购物车,订单基于购物车内的商品创建。

宠物商店的工作人员能够接受或拒绝客户提交的订单、处理订单、发订单给供应商、接受供应商返回的配送结果;还能够统计销售情况。

注册客户可以随时查询其订单状态,当订单尚未处理时,可以取消订单;订单一旦开始处理,不允许客户取消。

(1) 使用UML用例图表达以上需求。   

(2) 使用UML类图描述此系统的对象模型。

参考答案:

(1)

 

 (2)

 

 

 

以上部分引用自2005~2009年山东大学软件工程期末试题

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM