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

通过本学期对高级软件工程课程的学习,我认为一个软件工程师的软件工程知识技能水平高低主要体现在如下方面:

  1. 能够熟练的掌握程序员必备的工具:VSCode、Vim、git、正则表达式。
  2. 熟悉编程规范。
  3. 掌握单元测试的方法。
  4. 熟悉Linux环境下编程。
  5. 能够对业务进行需求分析。
  6. 掌握策略模式、桥接模式、观察者模式、抽象工厂模式等设计模式。
  7. 了解软件工程过程和项目管理。

期末考试试题:

一、选择题(10*3分)

1. 下列工具中属于需求分析常用工具的是(  D  )。

A.PAD  B.PFD  C.N-S   D.DFD

2. 在数据流图(DFD)中,带有名字的箭头表示(  C  )。

A.控制程序的执行顺序

B.模块之间的调用关系

C.数据的流向

D.程序的组成成分

3.下面不属于软件设计原则的是(  C  )。

A. 抽象  B. 模块化  C. 自底向上  D. 信息隐蔽 

4.原型化方法是一种动态定义需求的方法,(  D)不具有原型化方法的特征。

A. 简化项目管理

B. 尽快建立初步需求

C. 加强用户参与和决策

D. 提供严格定义的文档

5.下列的(D )不是分析建模的目的。

A. 定义可验证的软件需求

B. 描述客户需求

C. 开发一个简单的问题解决方案

D. 建立软件设计的基础

6.软件测试的目标是( A)。

A. 证明软件是正确的            B. 发现错误、降低错误带来的风险

C. 排除软件中所有的错误   D. 与软件调试相同

7.下列黑盒测试技术的说法错误的是:(D)。

A. 划分等价类属于黑盒测试技术

B. 边界值分析属于黑盒测试技术

C. 错误推测法属于黑盒测试技术

D. 逻辑覆盖法属于黑盒测试技术

8.数据流图包含的成分有 (  B)

A.关系、实体和属性 

B.数据流、加工和数据存储

C.数据流、数据源和数据实体 

D.数据流、属性、数据存储和加工

9. 如果用户对系统的目标不是很清楚,需求难以定义,这时最好使用  ( A)进行系统开发。

A. 原型           B. 瀑布模型

C. V-模型  D. 螺旋模型

10. 数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,(B)是常采用的。

  ①自顶向下  ②自底向上  ③分层绘制  ④初步求精

A.全是    B.①③和④    C.②③和④    D.①和③

二、判断题(5*2分)

(1) 用户本身的技能,个性上的差异,行为方式的不同,不会对人机界面使用造成影响。(×)

(2)螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(√)

(3)测试就是调试,都是在计算机上运行程序的。(×)

(4)PDL语言写出的程序不可以在计算机上运行 (√)

(5)按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。(×)

三、简答题(6*5分)

1. 软件工程的7条原则

答:1.抽象

  2.信息隐藏

  3.模块化

  4.局部化

  5.一致性

  6.完全性

  7.可验证性

2. UML中有哪几类个视图?
答:1.用例视图(Use-Case view)
    2.逻辑视图(Logical view)
  3.组件视图(Component view)
  4.并发视图(Concurrency View)
  5.配置视图(Deployment View)

3. 什么是黑盒测试和白盒测试?

答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

  白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

4. 什么是软件的生命周期,包含哪些阶段?

答:是软件产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段

5. 试从软件的特点出发分析软件危机产生的原因。

答:(1)软件是一种逻辑实体,具有抽象性,无法看到软件本身的形态,必须通过观察,分析,思考和判断才能了解他的功能和性能

  (2)软件对硬件和环境有着不同程度的依赖性,导致了软件升级和移植的问题。计算机硬件和支撑环境不断升级,为了适应运行环境的变化,软件也需要不断维护,并且维护的成本通常比开发成本高很多。

  (3)软件生产至今尚未摆脱手工方式,软件开发的手工行为造就了一个致命的问题,就是为应用量身定做软件,长期以来,软件给人的感觉是修改几条指令很简单,客户总是强调软件要适应自己的业务需求,因此,软件产品大多数为客户订做,通用性差。

  (4)软件设计人类社会的各行各业,常常涉及一些行业知识,对软件工程师提出了很高的要求。

6. 活动图与状态图的区别。

答:(1)描述重点不同:活动图描述的是从活动到活动的控制流;状态图描述的是对象的状态及状态之间的转移。

  (2)使用场合不同:在分析用例、理解涉及多个用例的工作流、处理多线程应用等情况下,一般使用活动图;在显示一个对象在其生命周期内的行为时,一般使用状态图。

四、综合分析(2*15分)

1. 下图是某系学籍管理的一部分A和B分别是同一模块A的两个不同的设计方案,你认为哪一个设计方案较好?请陈述理由。

答:我认为(b)方案较好。要评价一个软件结构设计,主要看模块的独立性,要从软件结构的耦合性和内聚性两个方面来衡量。对于(a)方案,模块A 与模块B 之间形成了控制耦合,因此独立性不高,而在B 模块内部,有两个不同的功能被放在一起,形成的是逻辑内聚,内聚性不高。对于(b)方案,模块A 与B1 和B2 之间是数据耦合,独立性较强,在B1 和B2 内部,只完成单一的功能,是功能内聚,因此内聚性高,可维护性好,因此相比而言(b)方案比(a)方案更好些。

2. . 比较黑盒测试和白盒测试的优缺点。

黑盒测试的优点:适应于阶段测试,从产品功能角度测试,容易入手生成测试数据

缺点:某些代码得不到测试,如果规格说明有误,可能无法发现,不易进行充分性测试。

白盒测试的优点:可构成测试数据使特定程序部分得到测试,有一定的充分性度量手段,可生成较多工具支持。

缺点:不易生成测试数据,无法对未实现规格说明的部分进行测试,作量大通常只用于单元测试有应用局限

猜你喜欢

转载自www.cnblogs.com/songfeixiang1997/p/12152447.html