Software Engineering Final Quiz

发表于 2021-11-27 20:12 3539 字 18 min read

cos avatar

cos

FE / ACG / 手工 / 深色模式强迫症 / INFP / 兴趣广泛养两只猫的老宅女 / remote

文章系统讲解了软件工程中的核心概念与过程模型,包括瀑布模型、增量模型、原型模型和敏捷开发(如XP和Scrum)的原理与实践要点,强调了需求明确性、迭代开发、团队协作、风险控制及良好编码原则的重要性,并纠正了教材中的常见错误。

This article has been machine-translated from Chinese. The translation may contain inaccuracies or awkward phrasing. If in doubt, please refer to the original Chinese version.

  • Postscript: Now I know why the correct answers weren’t given… they used the same questions on the final exam - -
  • Errata: Question 51 — the seven steps of requirements engineering should be: Inception, Elicitation, Elaboration, Negotiation, Specification, Validation, Management (Change Management), found on page 74 of the textbook (Chinese edition)

Bold text indicates answers (for reference only). If there are errors, please leave a comment, since the professor didn't provide correct answers. Analysis has been added, though these are all personal opinions.

I. Multiple Choice Questions

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

Why does software deteriorate rather than wear out?

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 change requests introduce errors in component interactions

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 software engineering process framework activities?

A communication, planning, modeling, construction, deployment

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

  • Communication: The purpose is to understand stakeholders’ project goals and gather requirements to define software features and functions.
  • Planning: Defines and describes the software engineering work, including technical tasks to be performed, possible risks, resource requirements, work products, and schedules.
  • Modeling: Uses models to better understand software requirements and complete a design that meets those requirements.
  • Construction: Includes coding and testing to discover errors in the code.
  • Deployment: Software (all or partial increments) 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 layered technology that includes the process layer, methods layer, and tool layer.

A Process

B Manufacturing — not included

C Methods

D Tools

4. Process models are described as agile because they

Why are process models described as agile?

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

About evolutionary software process models

They are inherently iterative, can easily adapt to changing product requirements, and generally do not produce throwaway systems.

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

  • Rapid prototype development begins with communication, where software developers communicate with stakeholders to define overall software goals, clarify known requirements, and roughly outline things to be further defined later. Then they quickly plan a prototyping iteration and build a model (rapid design). The rapid design focuses mainly on aspects visible to end users, producing a prototype. After deployment, stakeholders evaluate the prototype and provide feedback to further refine software requirements.
  • The spiral model uses rapid prototyping centered on evolutionary development, applying the waterfall model at each project stage. Each cycle includes requirements definition, risk analysis, engineering implementation, and review through iteration. With each iteration, software development advances one level. The spiral model emphasizes risk analysis, making developers and users aware of risks at each evolutionary level, and is thus suitable for large, complex, high-risk systems.

6. The linear sequential model of software development is

What is the linear sequential model of software development?

This is the waterfall model — best used when requirements are well 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

About the incremental model of software development

The incremental model combines the sequential characteristics of the waterfall model with the iterative characteristics of rapid prototyping. It treats software as a series of interconnected increments, completing one increment per iteration, and can deliver a partially working product to users in a relatively short 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

About the prototyping model of software development

As mentioned above, prototyping development quickly plans a prototyping iteration after clarifying initial requirements and performs modeling (rapid design), then gradually supplements requirements through continuous iteration. It is suitable for customers who cannot clearly define 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 traits need to exist among agile software team members?

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 in the XP process model?

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

  • Planning: Requirements analysis, but not just user requirements — it should cover all requirements encountered during development.
  • Design: Before coding, there must be a plan telling you what to do and how the structure looks. You must follow this; otherwise things may become chaotic.
  • Coding: It is recommended to develop a series of unit tests for each story before coding, then program based on these unit tests. Pair programming is also encouraged to improve efficiency.
  • Testing: Unit tests should be executed daily to discover 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 is not one of the key questions at each Daily Scrum?

Agile development process — Scrum

Development teams are self-organizing and use daily stand-ups to confirm they can still achieve Sprint goals. Each development team member needs to provide the following three points:

  • What I completed yesterday;
  • What I plan to complete today;
  • What is blocking my progress.

Daily Scrum usually doesn’t exceed 15 minutes. Brief clarification questions may occur but no topic discussions should take place. Daily Scrum is neither a report to management nor to the Product Owner or ScrumMaster. It is a communication meeting within the development team to ensure a shared 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? (This is NOT one of the daily stand-up questions)

D What do you plan to accomplish at the next team meeting? (i.e., What do you want to complete today)

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

Which is unnecessary for applying agility to a software process?

A Eliminate the use of project planning and testing (Absolutely unnecessary!)

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 to 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 is NOT a principle 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 (This is wrong! Variable names should be self-descriptive)

D Write self-documenting code, not program documentation (Code with strong readability is easy to understand without relying on external documentation)

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

Which is NOT one of Hooker’s core principles?

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 roles do user stories play in agile planning?

User stories are designed to help both business people and technical people understand requirements. In agile development, the refinement of user stories 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 build the current increment

D both A and C

18. The system requirement specification describes the

What does the system requirement specification describe?

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 of the tasks are to determine

During project inception, the purpose of 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 is NOT a requirement classification used in QFD?

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

A exciting

B expected

C mandatory — not one of the three

D normal

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

Which is NOT a context-free question 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 following is not a UML diagram used creating a system analysis model?

Which is NOT a UML diagram used for 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 is NOT an objective for building an analysis model?

The three main objectives an analysis model must achieve: describe what customers need; establish a basis for software design; define a set of requirements that can be validated after software completion.

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 item does NOT appear on a CRC card?

A CRC card is a standard index card collection where each card represents a class. The class name is at the top, class responsibilities are on the left, and class collaborations are on the right.

A class collaborators

B class name

C class reliability — not on the card

D class responsibilities

II. True/False Questions

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 is the 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 from pre-existing software patterns to best meet the needs of a software project.

True (standing on the shoulders of giants)

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

It is generally accepted that weak software processes cannot 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. lt 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 today’s customer needs while exhibiting quality characteristics that 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 abandoning prototypes.

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 stake in the software project — someone affected by the system or who influences system development.

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

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

False. Actors 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. lt 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 their 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 procedures 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 as new errors are discovered and corrected, to adapt to changes in the computing environment. Often, customers request adding new features to existing products or adapting to changes in the business environment. Sometimes, older systems need to be redesigned to provide benefits to users in modern environments. 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 in a modern context?

The incremental model means developing main functional modules first during software development, then developing secondary functional modules, gradually improving until a software product meeting requirements is developed. Modern software tends to be small but comprehensive. During development, user requirements become more complex, requiring a method that provides incremental evolution and accommodates more uncertainty.

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

Describe the phases of the prototyping model for software development.

Please add image description

First, communication is needed — identifying requirements and goals from meetings between customers and developers. Next comes the rapid design phase, focusing on more representative features and presenting a tangible design prototype to the customer. After a prototype appears, it is iteratively refined through customer-developer feedback until a complete new system is built.

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 uncertain factors, the risk of software development failure objectively exists. At each iteration, risk analysis must be performed, evaluating both technical and management aspects to see whether required functionality, time, and cost are acceptable.

51. What are the seven steps for requirements engineering?

What are the seven steps for requirements engineering?

Errata: The seven steps of requirements engineering should be:

  1. Inception: Defining the scope and nature of the problem to be solved

  2. Elicitation: Helping stakeholders define what they need

  3. Elaboration: Precisely defining and refining basic requirements

  4. Negotiation: Mediating conflicts, negotiating how to define priorities — what is essential? When is it needed?

  5. Specification: Can be a written document, a set of graphical models, a formal mathematical model, etc.

  6. Validation: Quality assessment of requirements engineering work products to ensure they provide a complete, unambiguous description of all systems

  7. Management: Managing requirement changes, evaluating each proposed change

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

What are the weaknesses of use-cases in the requirements engineering process?

  1. Not object-oriented, lacking active application roles

  2. Relationships between two use-cases are not strictly defined

  3. Do not show any flow or dependencies in the system, and do not 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 where the internal workings of the product are known. It examines whether the internal flow and logical structure of the system execute correctly, determining if the actual running state matches the expected state.

Black box testing is testing where the internal workings of the product are unknown. It examines whether the program’s functions conform to its functional specification.

喜欢的话,留下你的评论吧~

© 2020 - 2026 cos @cosine
Powered by theme astro-koharu · Inspired by Shoka