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

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

  1. 编程语言能力 
    作为一名软件工程师,应该能够熟练掌握编程语言,并且能够深入理解OOP、OOA、OOD等编程思想。精通一门编程语言能为以后的软件开发打下坚实的基础。
  2. 学习能力
    IT技术可谓是更新换代最快的了,从市面上的电脑和手机就可以看出来。所以,只依靠自己之前学到的知识,很快就会被这个时代所淘汰,软件工程师应具备的技能里很重要的一点就是学习能力。因为只有具备了学习能力,才能在离开学校之后仍然能够独立地学习最新的技术,同时能够自主的发现现在有什么新技术,市场上流行的技术元素与市场需求的变化。
  3. 设计能力
    一个优秀的软件工程师不仅仅具备扎实的专业知识与技能,而且还要具备一定的设计能力。因为只有这样,才能使一个软件或者应用更加完美,更加容易受到人们的欢迎,从而获得更广阔的市场。
  4. 团队协作能力
    软件开发并不是孤军奋战,很多时候一个软件需要几个人一起开发,这个时候就需要大家齐心协力,共同努力了。这时候,作为软件工程师就需要具备一定的团队协作能力了,来保证每个人都负责相应的方向,不能只为了突出自己而不顾整个团队。
    ----

软件工程知识技能水平的测评试题。

一,单项选择题

  1.可行性研究要进行一次_____需求分析。(C) 

  A.详细的  B.全面的 C.简化的、压缩的 D.彻底的

  [解析]软件的可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。其实质是要进行一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。因此答案为C。

  2.系统流程图用于可行性分析中的_____的描述。(A)  

  A.当前运行系统 B.当前逻辑模型 C.目标系统 D.新系统

  [解析]可行性研究首先要确定项目的规模和目标,然后就需要对当前运行的系统进行研究了,在考察系统的基础上,通过描绘现有系统的高层系统流程图,与有关人员一起审查该系统流程图是否正确。描述的对象是当前正在运行的系统,因此选择A。

  3.系统流程图是描述_____的工具。(B)   

  A.逻辑系统 B.程序系统 C.体系结构 D.物理系统

  [解析]系统流程图是用图形符号来表示系统中的各个元素,例如人工处理、数据库、设备等,流程图表达了系统中各个元素之间的信息流动情况。是描绘物理系统的传统工具。

  4.程序的三种基本控制结构是(B)  

  A.过程、子程序和分程序 B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移

  [解析]程序的三种基本控制结构是顺序、选择和循环(重复)。子程序只是程序设计一种方法,递归则是一种算法,都算不上是控制结构。

  5.汽车有一个发动机。汽车和发动机之间的关系是_____关系。(B) 

  A.一般具体  B.整体部分 C.分类关系  D.主从关系

  [解析]类有两种主要的结构关系,即一般——具体结构关系和整体——部分结构关系。前者称为分类结构,用来描述现实世界中的一般化的抽象关系。后者称为组装结构,用来描述现实世界中的类的组成的抽象关系。汽车和发动机的关系很明显,应该属于整体——部分关系。

  6.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫 (D)

  A.生存期 B.面向对象设计 C.面向对象程序设计 D.面向对象分析

  [解析]面向对象的分析的过程就是认识客观世界的过程,其目的就是建立对客观世界的精确、简洁、可理解的正确模型,也就是所谓的建模。因此本题答案为D。

  7.原型化方法是一种_______型的设计过程。 (A) 

  A.自外向内 B.自顶向下 C.自内向外 D.自底向上

  [解析]原型化方法的基本思想是根据用户给出的基本需求,通过快速实现构造出一个小型的、可执行的模型,用户在计算机上实际运行这个用户界面原型,在试用过程中提出意见或建议,然后开发者再对原型进行改进。如此周而复始,逐步弥补不足之处,从而提高了最终产品的质量。它是一种自外向内的设计过程。

  8.为了提高测试的效率,应该 (D)

  A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据

  C.在完成编码以后制定软件的测试计划 D.选择发现错误可能性大的数据作为测试数据

  [解析]软件测试是为了尽可能多的发现程序中的错误,尤其是发现至今尚未发现的错误。在选取测试用例时,不可能进行穷举测试,在每一个细节进行测试,也不能无目的地随机选取测试数据,为了提高测试的效率,测试用例应该选择发现错误可能性大的部分,这样的测试结果才符合软件测试的目的。

  9.使用白盒测试方法时,确定测试数据应根据_______和指定的覆盖标准。 (A)

  A.程序的内部逻辑 B.程序的复杂结构 C.使用说明书 D.程序的功能

  [解析]白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,由于白盒测试是一种结构测试,所以被测对象基本上是源程序,以程序的内部逻辑和指定的覆盖标准确定测试数据。

  1. 维护中,因误删除一个标识符而引起的错误是_________副作用。 (C) 

  A.文档 B.数据 C.编码 D.设计

  [解析]编码副作用指的是在使用程序设计语言修改源代码时可能引入错误,比如删除或修改一个子程序、一个标号、一个标识符,改变程序代码的时序关系,修改文件的打开或关闭等。因此本题答案为C。

  二,填空题

  11.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的( 信息流动 )情况。

    [解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。

  12.成本效益分析的目的是从( 经济 )角度评价开发一个项目是否可行。  

    [解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。

  13.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和( 宽度优先策略 ) 。

    [解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。

  14.详细设计的任务是确定每个模块的内部特性,即模块的算法、( 使用的数据 )。

    [解析]详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进行物理设计等。

  15.所有软件维护申请报告要按规定方式提出,该报告也称(  软件问题)报告。

    [解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。

三,名词解释

  16.经济可行性

   解:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。

  17.对应关系

   解:即有直接因果关系在程序中可以同时处理。

  18.结构冲突

   解:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。

  19.重构

   解:通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性

  20.多态

   解:指同一个实体同时具有多种形式,有不同的解释,产生不同的执行结果,是面向对象程序设计的重要特征

  四,简答题

  21.可行性研究报告的主要内容有哪些?

    解:一个可行性研究报告的主要内容如下:

    (1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。

    (2)可行性研究前提:说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。

    (3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。

    (4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。

    (5)所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。

    (6)社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。

    (7)其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。

    (8)结论意见:说明项目是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。

    [解析]做软件的可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发,其中的问题能否解决,报告共分为八个基本内容。

posted @ 2020-01-05 17:41  浅安时光~  阅读(448)  评论(0编辑  收藏  举报