What is Software Engineering?

What is Software Engineering?#

Knowledge Check Questions#

  1. Software engineering emphasizes trade-offs between _______, _______, and _______ to ensure long-term sustainability.

  2. If the software is capable of responding to changes in dependencies, technology, or product requirements, it is said to be _______.

  3. True or False: Software engineering solely focuses on writing code/programming.

  4. True or False: Trade-offs in software engineering are essential for ensuring scalability and maintainability of software systems.

  5. Multiple Choice: What is a core focus of software engineering according to the chapter?

    • A) Writing the fastest code possible

    • B) Managing long-term complexity and maintainability

    • C) Prioritizing speed over quality

    • D) Using the latest programming languages

  6. Multiple Choice: What does Hyrum’s Law emphasize?

    • A) Developers only use documented features of a system.

    • B) System designs should never change after release.

    • C) Testing is unnecessary for mature systems.

    • D) Any observable system behavior will eventually be depended upon.

  7. Multiple Choice: What is a key challenge of managing software over time?

    • A) Ensuring code remains compatible with new dependencies

    • B) Developing code without external reviews

    • C) Completely replacing systems every two years

    • D) Preventing all changes to the system

  8. Name three of the five that was shown to affect the flexibility of a codebase? ______. ______, ______

  9. Beyonce’s rule states that “If you liked it, you should have put a _______________ on it.”

  10. True or False: Finding problems later in the developer workflow usually reduces costs.

  11. Multiple Choice: What does “cost” refer to in software engineering decisions.

    • A) Only financial expenses

    • B) Costs related to new hardware purchases

    • C) Effort including financial, resource, personnel, and opportunity costs

    • D) Just resource costs like CPU or RAM

  12. Select all that apply: A developer is considering spending two weeks to optimize a linked list, which will increase RAM usage but save CPU costs. What factors should the developer weigh?

    • A) The relative costs of RAM and CPU

    • B) personnel costs (two weeks of time)

    • C) opportunity costs (what else could be achieved in two weeks)

  13. Multiple Choice: A build system introduces efficiency gains but leads to resource overconsumption due to a lack of incentives for optimization. What principle does this situation exemplify?

    • A) Jevons Paradox

    • B) Beyonce Rule

    • C) Hyrum’s Law

    • D) Bootstrap Paradox

  14. Software engineering is concerned with managing code over time, while programming emphasizes solving ______ tasks at hand.

  15. Multiple Choice: When is it unnecessary to rely on integration tests and Continuous Deployment (CD)?

    • A) For a large-scale project involving hundreds of developers

    • B) For a project that lasts only a few days

    • C) When using semantic versioning

    • D) When managing dependencies in software engineering