banner
cos

cos

愿热情永存,愿热爱不灭,愿生活无憾
github
tg_channel
bilibili

Software Engineering Final Quiz

  • Postscript, I think I understand why the correct answers weren't provided... the final exam questions were original - -
  • Erratum: The seven steps of requirements engineering should be initiation, acquisition, refinement, negotiation, specification, confirmation, and management (change management), as stated on page 74 of the book (Chinese version).

Bolded answers are for reference only. If there are errors, please comment, after all, the teacher didn't provide the correct answers. Explanations have been written, but they are all personal opinions 0.0

I. Multiple Choice Questions#

1. Software deteriorates rather than wears out because ()?#

The reason software deteriorates rather than wears out is?

A Software suffers from exposure to hostile environments
B Defects are more likely to arise after software has been used often
C Multiple change requests introduce errors in component interactions

Correct answer: Continuous changes in requirements can cause errors between component interfaces.

D Software spare parts become harder to order

2. Which of these are the 5 generic software engineering framework activities?#

What are the 5 generic activities in the software engineering process framework?

A communication, planning, modeling, construction, deployment

Correct answer: Communication - Planning - Modeling - Construction - Deployment

  • Communication: The goal is to understand the project objectives of stakeholders and gather requirements to define the features and functions of the software.
  • Planning: Defines and describes the software engineering work, including technical tasks to be performed, potential risks, resource requirements, work products, and work schedules.
  • Modeling: Uses models to better understand software requirements and complete software design that meets those requirements.
  • Construction: Includes coding and testing to find errors in the code.
  • Deployment: Software (either fully or partially incremental) is delivered to users, who evaluate it and provide feedback.

B communication, risk management, measurement, production, reviewing

C analysis, designing, programming, debugging, maintenance

D analysis, planning, designing, programming, testing

3. Which of the items listed below is not one of the software engineering layers?#

Which of the following is not one of the software engineering layers?

Software engineering is a hierarchical technology that includes process layer, methods layer, and tools layer.

A Process

B Manufacturing does not include manufacturing

C Methods

D Tools

4. Process models are described as agile because they#

Process models are described as agile because they?

A eliminate the need for cumbersome documentation

B emphasize maneuverability and adaptability

C do not waste development time on planning activities

D make extensive use of prototype creation

5. Evolutionary software process models#

Evolutionary software process models

Are essentially iterative, easily adapting to changes in product requirements, and generally do not produce one-time systems.

Evolutionary models include two commonly used: Rapid Prototype development and Spiral Model

  • Rapid Prototype development begins with communication, where software developers communicate with other stakeholders to define the overall goals of the software, clarify known requirements, and roughly outline what will be further defined later, then quickly plan a prototype development iteration and modeling (rapid design). Rapid design focuses mainly on aspects that end-users can see, producing a prototype, which is deployed and evaluated by stakeholders. Based on stakeholder feedback, further refinement of software requirements occurs.
  • The Spiral Model centers on evolutionary development, using the waterfall model method at each project stage. Each cycle of this model includes four stages: requirement definition, risk analysis, engineering implementation, and review, iterating through these four stages. With each iteration of the software development process, the software development progresses one level. The Spiral Model emphasizes risk analysis, allowing developers and users to understand the risks associated with each evolutionary layer and respond accordingly, making it suitable for large, complex, and high-risk systems.

6. The linear sequential model of software development is#

The linear sequential model of software development is

It's the waterfall model, which is best used when requirements are clearly defined.

A A reasonable approach when requirements are well defined

B A good approach when a working program is required quickly.

C The best approach to use for projects with large development teams.

D An old-fashioned model that cannot be used in a modern context.

7. The incremental model of software development is#

The incremental model of software development is

The incremental model combines the sequential characteristics of the waterfall model with the iterative characteristics of rapid prototyping, viewing software as a series of interconnected increments. In each iteration of the development process, completing one of the increments allows for the submission of a product that can perform part of the work to users in a shorter time.

A A reasonable approach when requirements are well defined

B A good approach when a working core product is required quickly

C The best approach to use for projects with large development teams

D A revolutionary model that is not used for commercial products

8. The prototyping model of software development is#

The prototyping model of software development is

As mentioned above, prototype development quickly plans a prototype development iteration and modeling (rapid design) after clarifying initial requirements, and then gradually supplements requirements through continuous iterations, suitable for clients with unclear requirements.

A A reasonable approach when requirements are well defined

B A useful approach when a customer cannot define requirements clearly

C The best approach to use for projects with large development teams

D A risky model that rarely produces a meaningful product

9. Which of the following traits need to exist among the members of an agile software team?#

Which of the following traits need to exist among the members of an agile software team?

A Competence

B Decision-making ability

C Mutual trust and respect

D All of the above

10. What are the four framework activities found in the Extreme Programming (XP) process model?#

What are the four framework activities found in the Extreme Programming (XP) process model?

Extreme Programming (XP) is one of the most important software development frameworks in agile models. It includes rules and practices for the four framework activities: planning, design, coding, and testing.

  • Planning: This is requirement analysis, but not just user requirements; it should encompass all requirements encountered during development.
  • Design: Before coding, there must be a plan that tells you what to do, how the structure is, etc. You must follow this; otherwise, it may become a mess.
  • Coding: It is recommended to develop a series of unit tests for each story before starting coding, and to program based on these unit tests. Meanwhile, pair programming is encouraged to improve efficiency.
  • Testing: Unit tests should be executed daily to detect problems early.

A analysis, design, coding, testing

B planning, analysis, design, coding

C planning, analysis, coding, testing

D planning, design, coding, testing

11. Which is not one of the key questions that is answered by each team member at each daily Scrum meeting?#

Which of the following is not one of the key questions answered by each team member at the daily Scrum meeting?

Agile development process of Scrum

The development team is self-organizing and confirms that they can still achieve the Sprint goals through daily stand-ups. Each development team member needs to provide the following three points of information:

  • What did I accomplish yesterday?
  • What do I plan to accomplish today?
  • What obstacles are hindering my progress?

Daily Scrum usually lasts no more than 15 minutes.
There may be brief clarifications and answers during the daily Scrum, but no topic discussions should occur.
The daily Scrum is neither a report to management nor to the product owner or ScrumMaster. It is an internal communication meeting for the development team to ensure they have a consistent understanding of the current situation.

A What did you do since the last meeting?

B What obstacles are you encountering?

C What is the cause of the problems you are encountering? (×, not a question for the daily stand-up)

D What do you plan to accomplish at the next team meeting?

12. Which of the following is not necessary to apply agility to a software process?#

Which of the following is not necessary to apply agility to a software process?

A Eliminate the use of project planning and testing

B Only essential work products are produced

C Process allows team to streamline tasks

D Uses incremental product delivery strategy

13. How do you create agile processes to manage unpredictability?#

How do you create agile processes to manage unpredictability?

A Risk analysis must be conducted before planning takes place

B Software increments must be delivered in short time periods

C Software processes must adapt to changes incrementally

D both B and C

14. Which of the following is not one of the principles of good coding?#

Which of the following is not one of the principles of good coding?

A Create unit tests before you begin coding

B Create a visual layout that aids understanding

C Keep variable names short so that code is compact

D Write self-documenting code, not program documentation

15. Which of the following is not one of Hooker’s core principles of software engineering practice?#

Which of the following is not one of Hooker’s core principles of software engineering practice?

A All design should be as simple as possible, but no simpler

B A software system exists only to provide value to its users

C Pareto principle (20% of any product requires 80% of the effort)

D Remember that you produce others will consume

16. Software engineers collaborate with customers to define which of the following?#

Software engineers collaborate with customers to define which of the following?

A customer visible usage scenarios

B Important software features

C System inputs and outputs

D All of the above

17. What role(s) do user stories play in agile planning?#

What role(s) do user stories play in agile planning?

User stories are designed to help both business and technical personnel understand requirements. The refinement of user stories in agile development provides executable standards for development.

A Define useful software features and functions delivered to end-users

B Provide a substitute to performing detailed scheduling of activities

C Used to estimate the effort required to build the current increment

D both A and C

18. The system requirement specification describes the#

The system requirement specification describes the

A Function, performance and constraints of a computer-based system

B implementation of each allocated system

C element software architecture

D time required for system simulation

19. During project inception the intent of the tasks are to determine#

During project inception, the intent of the tasks is to determine

A basic problem understanding

B nature of the solution needed

C people who want a solution

D All of the above

20. Which of the following is not one of the requirement classifications used in Quality Function Deployment(QFD)?#

Which of the following is not one of the requirement classifications used in Quality Function Deployment(QFD)?

Quality Function Deployment (QFD) is a technique that translates customer requirements into software technical requirements. It identifies three categories of requirements to maximize customer satisfaction from software engineering: normal requirements, expected requirements, and exciting requirements.

A exciting

B expected

C mandatory

D normal

21. Which of the following is not one of the context-free questions that would be used during project inception?#

Which of the following is not one of the context-free questions that would be used during project inception?

A What will be the economic benefit from a good solution?

B Who is against this project?

C Who will pay for the work?

D Who will use the solution?

22. In collaborative requirements gathering, the facilitator#

In collaborative requirements gathering, the facilitator

A cannot be a member of the software team

B cannot be a customer

C controls and facilitates the process

D must be an outsider

23. Which of the following is not a UML diagram used in creating a system analysis model?#

Which of the following is not a UML diagram used in creating a system analysis model?

A activity diagram

B class diagram

C dataflow diagram

D state diagram

24. UML activity diagrams are useful in representing which analysis model elements?#

UML activity diagrams are useful in representing which analysis model elements?

A Behavioral elements

B Class-based elements

C Flow-based elements

D Scenario-based elements

25. Which of the following is not an objective for building an analysis model?#

Which of the following is not an objective for building an analysis model?

The three main objectives that an analysis model must achieve are: to describe what the customer needs; to lay the foundation for software design; and to define a set of requirements that can be validated after the software is completed.

A define set of software requirements that can be validated

B describe customer requirements

C develop an abbreviated solution for the problem

D establish basis for software design

26. Which of the following items does not appear on a CRC card?#

Which of the following items does not appear on a CRC card?

A class collaborators

B class name

C class reliability

D class responsibilities

II. True or False#

27. Most software development projects are initiated to try to meet some business need.#

Most software development projects are initiated to try to meet some business need.

True

28. Change cannot be easily accommodated in most software systems, unless the system was designed with change in mind.#

Change cannot be easily accommodated in most software systems, unless the system was designed with change in mind.

True

29 Same as 28

30. Software is a product and can be manufactured using the same technologies used for other engineering artifacts.#

Software is a product and can be manufactured using the same technologies used for other engineering artifacts.

True

31. Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.#

Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.

True

32. It is generally accepted that one cannot have weak software processes and create high quality end products.#

It is generally accepted that one cannot have weak software processes and create high quality end products.

True

33. Software engineering umbrella activities are only applied during the initial phases of software development projects.#

Software engineering umbrella activities are only applied during the initial phases of software development projects.

False, umbrella activities apply throughout the entire software process.

34. Process technology tools allow software organizations to compress schedules by skipping unimportant activities.#

Process technology tools allow software organizations to compress schedules by skipping unimportant activities.

True

35. It is not possible to build software that meets the customers’ needs today and exhibits the quality characteristics that will enable it to be extended tomorrow.#

It is not possible to build software that meets the customers’ needs today and exhibits the quality characteristics that will enable it to be extended tomorrow.

True

36. In agile software processes the highest priority is to satisfy the customer through early and continuous delivery of valuable software.#

In agile software processes the highest priority is to satisfy the customer through early and continuous delivery of valuable software.

True

37. Agility is nothing more than the ability of a project team to respond rapidly to change.#

Agility is nothing more than the ability of a project team to respond rapidly to change.

False, it is more than that.

38?

39. Teams using agile software practices never create models.#

Teams using agile software practices never create models.

False, agile development does not mean that prototypes are not designed.

40. Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.#

Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.

True

41. Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.#

Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.

True

42. A stakeholder is anyone who will purchase the completed software system under development.#

A stakeholder is anyone who will purchase the completed software system under development.

False, a stakeholder is anyone who has a vested interest in the software project, affected by or influencing the system's development.

43. Use-case actors are always people, never system devices.#

Use-case actors are always people, never system devices.

False, they can also be systems, time, etc.

44. In many cases there is no need to create a graphical representation of a usage scenario.#

In many cases there is no need to create a graphical representation of a usage scenario.

True

45. It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.#

It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.

True

46. Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.#

Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.

True

III. Short Answer Questions#

47. Explain what is wrong with the notion that computer software does not need to evolve over time.#

Explain what is wrong with the notion that computer software does not need to evolve over time.

Over time, software must be updated to adapt to changes in the computing environment as new errors are discovered and corrected. Additionally, customers often request new features to be added to existing products or adaptations to changes in the business environment. Sometimes, an older system will need to be redesigned to provide benefits to users in a modern environment. Software that does not evolve will eventually become unusable.

48. Why are incremental process models considered by many to be the best approach to software development in a modern context?#

Why are incremental process models considered by many to be the best approach to software development in a modern context?

Incremental models refer to the process of developing major functional modules first, followed by minor functional modules, gradually perfecting the software product to meet requirements. Modern software has become smaller and more comprehensive, with user needs becoming more complex during the development process, necessitating a way to provide incremental evolution that accommodates more uncertainty.

49. Describe the phases of the prototyping model for software development?#

Describe the phases of the prototyping model for software development?

First, communication is needed to identify the needs and goals of the customer and developer during meetings. Next is the rapid design phase, focusing on more representative features, providing a tangible design prototype to the customer. Once a prototype appears, it is iteratively improved by the customer and developer until a complete new system is established.

50. Describe the role of risk analysis in evolutionary process models like the spiral model.#

Describe the role of risk analysis in evolutionary process models like the spiral model.

The Spiral Model emphasizes risk analysis. Due to many uncertainties, the risk of software development failure is objectively present. Risk analysis must be performed at each iteration to assess whether the required functions, time, and costs are acceptable from both technical and management perspectives.

51. What are the seven steps for requirements engineering?#

What are the seven steps for requirements engineering?

Erratum: The seven steps of requirements engineering should be:

① Initiation: Define the scope and nature of the problem to be solved.

② Acquisition: Help stakeholders define what they need.

③ Refinement: Precisely define and modify the basic requirements.

④ Negotiation: Mediate conflicts and negotiate how to prioritize? What is essential? When is it needed?

⑤ Specification: This can be a written document/a set of graphical models/a formal mathematical model, etc.

⑥ Confirmation: Quality assessment of the work products of requirements engineering to ensure they comprehensively and unambiguously describe all systems.

⑦ Management: Management of requirement changes, assessing each proposed change.

52. Describe the weaknesses of use-cases as part of the requirements engineering process.#

Describe the weaknesses of use-cases as part of the requirements engineering process.

① Not object-oriented, lacking proactive application.

② The relationships between two use cases are not strictly defined.

③ Does not display any flows or dependencies in the system, nor does it represent the order of operations.

53. Describe white box testing and black box testing techniques.#

Describe white box testing and black box testing techniques.

White box testing is testing with knowledge of the internal workings of the product, checking whether the internal processes and logical structures of the system are functioning correctly, and determining whether the actual operating state of the program matches the expected state.

Black box testing is testing without knowledge of the internal workings of the product, checking whether the program's functions meet its functional specifications.

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.