《软件工程》试题举例-简答题

Please give out 3 pieces of recommendations regarding language-independent good programming practice. (6 marks) 良好的编程实践的建议

  1. 程序中的命名
  2. 良好的注释
  3. 使用参数
  4. 代码编排
  5. 尽量减少嵌套if语句的使用

 

Do you agree with the following statement? And why? Please explain or discuss. (9 marks) 实现

It is the code/program which is executable and used by the users finally. So, as long as we do a good job in implementation phase, we can guarantee the success of a software product.

(1)上述说法是错误的。

(2)尽管最终用户可以使用可执行的代码/程序,但开发人员应该通过一系列的步骤/阶段来实现,包括需求、分析、设计、实现和集成和维护阶段。每个步骤或阶段的输出将影响软件产品/项目的成功。需求阶段的目标是确定客户的需求。  分析阶段的目的是分析和细化需求,以实现对正确开发软件产品和维护它的必要性的详细理解。设计阶段是展示产品是如何做的,即,改进分析的工件,直到材料是可以由程序员实现的形式。实现是在所选择的实现语言中实现目标软件产品。一旦软件产品交付给用户并被用户接受,它需要维护直到退役。 这表明,任何一个阶段的成功都不能保证整个软件产品的成功。

代码/程序仅仅是实现阶段的产物,不能保证成功的开发。

 

Any useful product is almost certain to undergo maintenance during the maintenance phase. Please explain why maintenance is necessary. (6 marks) 维护的重要性

  1. 纠正故障、规范故障、设计故障、编码错误、文档故障或其他类型故障的第一个原因。这被称为纠正性维护。
  2. 大部分维护程序的时间都用于第二类维护,完善的维护。这里,对代码进行了更改,以提高产品的有效性。
  3. 改变产品的第三个原因是适应性维护,对产品做出的改变以反应产品运行环境中的变化。例如,如果一个产品被移植到一个新的编译器、操作系统或硬件上,几乎肯定要被修改。
  4. 总结:如上所述,维护解决了软件制品的故障问题、有效性问题和产品运行环境改变的问题。因此,维护是必不可少的。

 

How many types of maintenance are there, and what are they? Please explain for each type of maintenance. (9 marks) 维护

3种。完善性、纠错性、适应性。

纠错性维护:需要纠正错误,比如分析、设计、编码、文档等错误;

完善性维护:提高产品的有效性,比如客户对软件提出了新的功能性需求;

适应性维护:适应产品运行环境的变化,比如产品的硬件平台改变了。

 

Do you agree with the following statement? And why? Please explain or discuss. (9 marks) 测试

The objective of testing is to show the presence of bugs. So the highest level of testing is that no bug is discovered in the software product.

不同意。

  1. 测试贯穿于整个软件工程的始终,它对各个阶段的软件制品进行了测试;
  2. 测试分成验证和确认。验证是指确定某个工作流是否正确完成的过程,确认是指对产品进行细致的评定,以确定整个产品是否满足规格说明。
  3. 测试在方式上分为执行测试和非执行测试。
  4. 测试的目的在于尽可能多地发现软件制品的错误。
  5. 测试可以证明软件制品存在错误,但并不能证明软件是没有错误的。

 

Please list the advantages and disadvantages of top-down implementation. (6 marks) 自顶向下集成的优缺点

优点:错误隔离;主要设计错误发现早

缺点:潜在可重用制品测试不充分

 

Please list the advantages and of bottom-up implementation. (6 marks) 自底向上集成的优缺点

优点:错误隔离;潜在可重用制品测试充分

缺点:主要设计错误发现迟

 

What is Sandwich integration? And its strengths or weaknesses? (6 marks)

三明治集成:(1)自顶向下地并行地实现和集成逻辑制品;(2)自底向上地并行地实现和集成操作制品;(3)测试逻辑制品和操作制品之间的接口。

优点:(1)具有错误隔离手段;(2)主要设计错误发现早;(3)潜在可重用代码制品测试充分。

缺点:中间层在被集成前测试不充分

 

你可能感兴趣的:(竞赛,比赛,考试)