Quiz - ZhihengZhou/Software_Engineering_Wiki GitHub Wiki

Question 1

“Software Engineering” as a concept is more than 50 years old. Why is “software engineering” such a big idea compared with “programming”? Choose the one BEST answer from the following list.

  • (a) Because engineers document programs.
  • (b) Because engineers consider organizational constraints.
  • (c) Because engineers know about scrum.
  • (d) Because engineers are diligent.

Answer: (b)
The idea that the wider aspects of a software system’s development, deployment and evolution CAN BE ENGINEERED is a big idea. This idea introduces many other aspects of knowledge, skills and organization beyond simply writing programs and it has led to the successful development of many of the important systems that run our economy today.

Question 2

The “Kanban board” is a graphical model that can be used in software engineering to ...

  • (a) validate requirements.
  • (b) satisfy tests.
  • (c) monitor implementation.
  • (d) specify design.

Answer: (c)
The Kanban board has tasks/user stories that are moved between different columns representing their status (such as waiting, under development, implemented, tested, released etc) by developers as those stories are progressively implemented. People can see at a glance what the status of a particular user story is.

Question 3

An author of a popular textbook on software engineering has stated that the following are all “essential attributes of good software”. Among following attributes, which ONE of these attributes is most likely to overlap with the nonfunctional requirement of “robustness”? Choose the best alternative.

  • (a) Acceptability (functionality, usability and compatability with other systems)
  • (b) Dependability (reliability, security and safety)
  • (c) Efficiency (responsiveness, processing time, memory utilisation etc..)
  • (d) Maintainability (can evolve to meet the changing needs of customers)

Answer: the best answer is (b), (a) is also acceptable.
“Dependability”. Robustness is how a system recovers from errors. If a system recovers well from errors then it will be perceived as being more reliable. A possible answer is also (a) because usability depends, in part, on how the system recovers from user errors. The other answers are not acceptable as being “most likely” to overlap with robustness.
⚠️ **GitHub.com Fallback** ⚠️