0
0
Software Engineeringknowledge~5 mins

Design for change and extensibility in Software Engineering - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What does 'Design for change' mean in software engineering?
It means creating software in a way that makes it easy to modify or update later without major rewrites.
Click to reveal answer
beginner
Why is extensibility important in software design?
Extensibility allows adding new features or capabilities to software without breaking existing parts.
Click to reveal answer
intermediate
Name a common design principle that supports change and extensibility.
The Open/Closed Principle: software entities should be open for extension but closed for modification.
Click to reveal answer
intermediate
How does modular design help with change and extensibility?
Modular design breaks software into independent parts, so changes in one part don’t affect others, making updates easier.
Click to reveal answer
beginner
Give a real-life example of designing for change.
Building a house with removable walls so rooms can be changed later without rebuilding the whole house.
Click to reveal answer
What does 'extensibility' allow in software?
AAdding new features without breaking existing code
BMaking software run faster
CRemoving old features permanently
DWriting code without comments
Which principle supports designing software that can change easily?
AOpen/Closed Principle
BDon't Repeat Yourself
CKISS (Keep It Simple, Stupid)
DYAGNI (You Aren't Gonna Need It)
Modular design helps with change because it:
ACombines all code into one file
BBreaks software into independent parts
CRemoves all comments
DMakes software run slower
Designing for change means:
AWriting code only once
BMaking software hard to update
CIgnoring future needs
DPlanning so software can be easily modified later
Which is a good example of extensibility?
ADeleting old files randomly
BHardcoding all values
CAdding a new button to an app without changing existing code
DIgnoring user feedback
Explain in your own words why designing for change is important in software development.
Think about how software needs to evolve over time.
You got /3 concepts.
    Describe how modular design supports extensibility and change.
    Consider how breaking a big problem into smaller pieces helps.
    You got /3 concepts.