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

前言

软件工程(software engineering),是软件开发领域里对工程方法的系统应用,
是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
总的来说,软件工程包括两种构面:软件开发技术和软件项目管理。

软件开发技术:软件开发方法学、软件工具和软件工程环境。

软件项目管理:软件度量、项目估算、进度控制、人员组织、配置管理、项目项目等。

软件工程领域中的核心知识包括:

  • 软件需求(Software requirements)
  • 软件设计(Software design)
  • 软件建构(Software construction)
  • 软件测试(Software test)
  • 软件维护与更新(Software maintenance)
  • 软件构型管理(Software Configuration Management, SCM)
  • 软件工程管理(Software Engineering Management)
  • 软件开发过程(Software Development Process)
  • 软件工程工具与方法(Software Engineering Tools and methods)
  • 软件质量(Software Quality)

因此,个人认为对软件工程知识技能水平的评测应该主要集中在上述的核心知识,
根据所学的课程内容而有所侧重。比如主要集中在软件的需求分析和设计、软件工程过程与项目管理等等。

试题

一、单项选择题
在每个小题的四个备选答案中选择一个正确的答案。

  1. 软件是( )。
    A. 处理对象和处理规则的描述 B. 程序
    C. 程序及其文档 D. 计算机系统
  2. 瀑布模型与演化模型的主要区别是( )。
    A. 活动不同 B. 项目的规模不同
    C. 项目管理方法不同 D. 活动组织的方法不同
  3. 软件生命周期一般包括三个时期:软件定义期、软件开发期和软件运行期。下述( )不是软件开发期所应包含的活动。
    A. 可行性分析 B. 需求获取和需求建模
    C. 软件体系结构设计和数据设计 D. 软件集成与系统测试
  4. 软件开发方法学应给出的主要内容是( )。
    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. 面向对象分析方法的基本思想之一是( )。
    A. 基于过程或函数来构造一个模块
    B. 基于事件及对事件的响应来构造一个模块
    C. 基于问题领域的成分来构造一个模块
    D. 基于数据结构来构造一个模块
  10. 程序的三种基本控制结构是( )。
    A. 过程、子程序和分程序 B. 顺序、选择和重复
    C. 递归、迭代和回溯 D. 调用、返回和转移
  11. 软件测试的目标是( )。
    A. 证明软件是正确的 B. 发现错误、降低错误带来的风险
    C. 排除软件中所有的错误 D. 与软件调试相同
  12. 按不同人员的工作内容来分类软件过程,支持过程包括( )。
    A. 维护过程、演化过程等 B. 质量保证过程、配置管理过程等
    C. 基础设施过程、改进过程等 D. 管理过程、培训过程等

二、判断题
判断下列每个叙述是否正确。如果正确,用“√”表示;否则用“×”表示。

  1. 开发软件就是编写程序。
  2. 算法就是计算方法。
  3. 软件工程就是求解软件的工程。
  4. 高级语言(例如C语言)是计算机语言的元语言。
  5. 软件开发模型是过程、活动和任务的结构框架。
  6. 瀑布模型是一种建立系统模型的方法。
  7. 结构化方法、面向对象方法是两种不同范型的软件开发方法学。
  8. 软件需求分析的任务是建立软件模块结构图。
  9. 软件需求规格说明的作用之一是表述用户和开发人员对软件要做什么的共同理解。
  10. 以结构化分析方法建立的系统模型就是数据流图。
  11. 结构化分析方法在建立系统模型时使用“一般/特殊”等结构来组织信息。
  12. 在UML中用对象图描述对象、对象的属性和操作,以及对象之间的关系,它作用于整个软件生存周期中
  13. 软件测试是要发现软件中的所有错误。
  14. 黑盒测试是基于程序的逻辑结构的测试。

三、简答题

  1. 简述常用的设计模式
  2. 简述代码的结构视图
  3. 简述软件测试要经过哪几个阶段,每个阶段与什么文档有关

四、建模题
在学校的教学管理系统中,学生查询成绩就是系统中的一次交互行为。问题陈述如下:
开始时终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。
在用户输入学号后,系统查对学生文件,核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消。若输入正确,出现“请输入课程名”。
一旦输入课程名,就开始查找课程文件:若输入的课程名不正确,则显示“输入的课程名不正确”,此次查询取消。若输入正确,则根据“学号”和“课程名”,查询选课文件。
若在选课文件中查询成功,显示查询到的成绩,当用户选择“继续查询”后回到“请输入学号”,当用户选择“结束查询”后回到首页,若查询失败。则显示“查询失败”后回到“请输入学号”。
要求:

  1. 请画出该系统的顺序图(时序图);
  2. 请画出该系统的状态图。

答案

一、 单向选择题(每小题1分,共15分)
在每个小题的四个备选答案中选择一个正确的答案。

  1. 软件是( C )。 程序及其文档
  2. 或瀑布模型与演化模型的主要区别是( D )。 活动组织的方法不同
  3. 软件生存周期一般包括三个时期:软件定义期、软件开发期和软件运行期。下述( A )不是软件开发期所应包含的活动。 可行性分析
  4. 软件开发方法学应给出的主要内容是( D )。 概念与表示、过程与工具
  5. 采用结构化分析方法所建立的系统模型主要捕获了( D )。
    数据源点和终点、加工、数据流、数据存储以及加工输入、输出之间的逻辑关系
  6. 软件需求规格说明的内容不应包括( B )。 算法的详细描述
  7. 软件设计的主要任务是( A )。 给出软件解决方案
  8. 软件模块的内部实现和外部可访问性分离,这是指软件的( D )。 抽象性
  9. 面向对象分析方法的基本思想之一是( C )。 基于问题领域的成分来构造一个模块
  10. 面向对象的静态模型(对象模型)主要捕获了( D )。 对象(类)及其连接
  11. 在具有多重继承的类层次结构中,类层次结构是( B )。 网络型
  12. 程序的三种基本控制结构是( B )。 顺序、选择和重复
  13. 软件测试的目标是( B )。 发现错误、降低错误带来的风险
  14. 软件质量保证是面向( C )的活动。 消费者
  15. 按不同人员的工作内容来分类软件过程,支持过程包括( B )。质量保证过程、配置管理过程等

二、 判断题(每小题1分,共20分)
判断下列每个叙述是否正确。如果正确,用“√”表示;否则用“×”表示。
( × )1、开发软件就是编写程序。
( × )2、算法就是计算方法。
( √ )3、软件工程就是求解软件的工程。
( × )4、高级语言(例如C语言)是计算机语言的元语言。
( √ )5、软件开发模型是过程、活动和任务的结构框架。
( × )6、瀑布模型是一种建立系统模型的方法。
( √ )7、结构化方法、面向对象方法是两种不同范型的软件开发方法学。
( × )8、软件需求分析的任务是建立软件模块结构图。
( √ )9、软件需求规格说明的作用之一是表述用户和开发人员对软件要做什么的共同理解。
( × )10、以结构化分析方法建立的系统模型就是数据流图。
( × )11、结构化分析方法在建立系统模型时使用“一般/特殊”等结构来组织信息。
( √ )12、在面向对象方法中,类是客观存在的实体。
( × )13、在面向对象方法中,接口是抽象类的一种形式。
( √ )14、在面向对象方法中,引入“多重性”、“限定词”等概念是为了进一步说明相关模型的语义。
( × )15、在UML中用对象图描述对象、对象的属性和操作,以及对象之间的关系,它作用于整个软件生存周期中。
( √ )16、Rational统一开发过程(RUP)是以测试驱动的、软件体系结构为中心的、迭代和增量的过程。
( × )17、软件测试是要发现软件中的所有错误。
( × )18、黑盒测试是基于程序的逻辑结构的测试。
( × )19、软件维护时因为重新定义局部或全局变量、重新定义记录或文件格式而导致软件错误。这种维护的副作用属于代码修改的副作用。
( × )20、组织过程包括质量保证过程、问题解决过程等。
三、 简答题(每小题5分,共25分)

  1. 设计模式有哪些?
    见上课课件
  2. 代码的结构视图有哪些?
    见上课课件
  3. 简述软件测试要经过哪几个阶段,每个阶段与什么文档有关。
    测试过程按 4 个步骤进行,即单元测试、集成测试、确认测试和系统测试。
    单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。
    集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。与其相关的文档是集成测试计划和软件概要设计说明书。
    确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。与其相关的文档是确认测试计划和软件需求说明书。
    系统测试把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。与其相关的文档是系统测试计划、系统规格说明书和用户手册、安装手册等。

四、建模题

(1)时序图

(2)状态图

原文地址:https://www.cnblogs.com/ASE265/p/12155724.html