What is Software Engineering?#
Knowledge Check Questions#
Software engineering emphasizes trade-offs between _______, _______, and _______ to ensure long-term sustainability.
If the software is capable of responding to changes in dependencies, technology, or product requirements, it is said to be _______.
True or False: Software engineering solely focuses on writing code/programming.
True or False: Trade-offs in software engineering are essential for ensuring scalability and maintainability of software systems.
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
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.
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
Name three of the five that was shown to affect the flexibility of a codebase? ______. ______, ______
Beyonce’s rule states that “If you liked it, you should have put a _______________ on it.”
True or False: Finding problems later in the developer workflow usually reduces costs.
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
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)
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
Software engineering is concerned with managing code over time, while programming emphasizes solving ______ tasks at hand.
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