New
New
Lesson 3 of 9
  • Year 11
  • AQA

Software design principles

I can define and explain key software design principles.

Lesson 3 of 9
New
New
  • Year 11
  • AQA

Software design principles

I can define and explain key software design principles.

These resources will be removed by end of Summer Term 2025.

Switch to our new teaching resources now - designed by teachers and leading subject experts, and tested in classrooms.

These resources were created for remote use during the pandemic and are not designed for classroom teaching.

Lesson details

Key learning points

  1. Software design principles are guidelines that help developers write clean, efficient and maintainable code.
  2. Good design makes code easier to read, test and change.

Keywords

  • Modularity - breaking software into independent, self-contained units or modules

  • Abstraction - focusing on the important parts of a problem and ignoring irrelevant detail

  • Readability - how easily someone can understand your code

  • Maintainability - making software easy to change, fix or update later on

Common misconception

If you are developing code for a project on your own, you don't need to worry about software design principles.

Even if your code isn't used by others, it is a good idea to follow software design principles in case you have to revisit or develop your code later on.


To help you plan your year 11 computer science lesson on: Software design principles, download all teaching resources for free and adapt to suit your pupils' needs...

This lesson models some poor design in code samples provided, you may ask pupils to revisit their own coding projects and analyse if they could make any improvements to their own projects in terms of modularity, readability, maintainability and abstraction.
Teacher tip

Equipment

Licence

This content is © Oak National Academy Limited (2025), licensed on Open Government Licence version 3.0 except where otherwise stated. See Oak's terms & conditions (Collection 2).

Lesson video

Loading...

Prior knowledge starter quiz

Download quiz pdf

6 Questions

Q1.
What document outlines the goals, scope and requirements of a project?

Correct Answer: project brief

Q2.
What is the main purpose of a project brief?

Correct answer: to outline the goals and requirements of a project
to describe the colour scheme of the software
to list all possible programming errors
to provide technical documentation for developers

Q3.
When analysing a project brief, what are you trying to understand?

the programming language to use
Correct answer: the exact requirements and goals of the project
the hardware specifications
the cost of the project

Q4.
What does “outputs” mean in the context of a programming project?

the data entered into the program
the people working on the project
the hardware used
Correct answer: the results or information the program produces

Q5.
Arrange these steps in the correct order for analysing a project brief:

Correct Answer:client,the person or organisation that requests and funds the project

the person or organisation that requests and funds the project

Correct Answer:user-friendly,easy for people to use and understand

easy for people to use and understand

Correct Answer:functionality,the actions or tasks a program can perform

the actions or tasks a program can perform

Correct Answer:systems analyst,gathers and defines what the system must achieve

gathers and defines what the system must achieve

Correct Answer:programmer,writes and tests the code for the software

writes and tests the code for the software

Q6.
What should you do if a requirement in the project brief is unclear?

ignore it
make an assumption
Correct answer: ask for clarification
start coding anyway

Assessment exit quiz

Download quiz pdf

6 Questions

Q1.
Which of the following best describes the main purpose of software design principles?

to make code run faster
Correct answer: to write clean, efficient and maintainable code
to make all code look the same
to use many languages

Q2.
Why is modularity useful in software design?

It reduces the need for comments.
It makes code run faster.
Correct answer: It allows different parts of a program to be developed and tested separately.
It makes code longer.

Q3.
What is the term for focusing on only the most important features of a problem while ignoring unnecessary details?

Correct Answer: abstraction

Q4.
What word describes how easy it is for someone else to understand your code?

Correct Answer: readability

Q5.
Why should you use software design principles even if you are the only one writing the code?

They are only for team projects.
They help you write code faster.
They make your code look impressive.
Correct answer: You might need to update or reuse your code in the future.

Q6.
Match each scenario to the principle it best demonstrates:

Correct Answer:modularity,code is split into functions for each task

code is split into functions for each task

Correct Answer:readability,comments explain what each function does

comments explain what each function does

Correct Answer:abstraction,unnecessary details are hidden from the user

unnecessary details are hidden from the user

Correct Answer:maintainability,code can be easily updated for new requirements

code can be easily updated for new requirements