KS3National Curriculum Y9.4 24 min read 10 question quiz 20 exam marks

App Development

How an app is designed before it is built: user interface, wireframes, the development cycle, and testing with real people.

Designing before building

The temptation is to start building immediately. Almost every failed project starts that way.

The development cycle

  1. Analysis. Who is this for, what problem does it solve, what must it do?
  2. Design. Plan the screens, the flow between them and the data it needs.
  3. Implementation. Build it.
  4. Testing. Check it works, including when things go wrong.
  5. Evaluation. Does it actually solve the original problem?
  6. Maintenance. Fix problems and add features.

This cycle repeats. Real apps go round it many times, which is why apps update constantly.

Requirements

Write down what the app must do, as specific testable statements:

  • The user can add a task with a title and a due date
  • The user can mark a task as complete
  • Completed tasks move to a separate list
  • Data is saved so it is still there when the app reopens

"Make it good" is not a requirement. "The user can add a task in two taps" is.

Wireframes

A wireframe is a rough sketch of a screen showing where things go, without colours or fonts. It is deliberately ugly, so that discussion stays on layout and flow rather than on whether the blue is right.

A navigation diagram shows how screens connect: which buttons lead where.

The six phase development cycleThe development cycle has six phases and it repeats. Analysis asks who the app is for and what it must do, written down as specific testable requirements, so "the user can add a task in two taps" rather than "make it good". Design plans the screens, the flow between them and the data needed, using wireframes that are deliberately ugly so discussion stays on layout rather than colour, and a navigation diagram showing which button leads where. Implementation is the actual building. Testing checks it works, including with boundary and erroneous data and when a field is left empty. Evaluation asks whether it solves the original problem, measured against the requirements written during analysis. Maintenance fixes problems and adds features, and then the cycle returns to analysis, which is why real apps update constantly.Why nobody starts by buildingand then round again, which is the whole point1. ANALYSISwho is it for, what must it do2. DESIGNscreens, flow and data3. IMPLEMENTATIONbuild it4. TESTINGincluding when things go wrong5. EVALUATIONdoes it solve the problem6. MAINTENANCEfix problems, add featuresWrite requirements as testable statements. "Make it good" is not one.1. ANALYSISwho is it for, what must it do2. DESIGNscreens, flow and data3. IMPLEMENTATIONbuild it4. TESTINGincluding when things go wrong5. EVALUATIONdoes it solve the problem6. MAINTENANCEfix problems, add featuresWireframes are deliberately ugly, so discussion stays on layout, not colour.1. ANALYSISwho is it for, what must it do2. DESIGNscreens, flow and data3. IMPLEMENTATIONbuild it4. TESTINGincluding when things go wrong5. EVALUATIONdoes it solve the problem6. MAINTENANCEfix problems, add featuresThe shortest phase in this list, and the only one most people plan for.1. ANALYSISwho is it for, what must it do2. DESIGNscreens, flow and data3. IMPLEMENTATIONbuild it4. TESTINGincluding when things go wrong5. EVALUATIONdoes it solve the problem6. MAINTENANCEfix problems, add featuresNormal, boundary and erroneous data. What happens when the field is empty?1. ANALYSISwho is it for, what must it do2. DESIGNscreens, flow and data3. IMPLEMENTATIONbuild it4. TESTINGincluding when things go wrong5. EVALUATIONdoes it solve the problem6. MAINTENANCEfix problems, add featuresChecked against the requirements you wrote in analysis, not against a hunch.1. ANALYSISwho is it for, what must it do2. DESIGNscreens, flow and data3. IMPLEMENTATIONbuild it4. TESTINGincluding when things go wrong5. EVALUATIONdoes it solve the problem6. MAINTENANCEfix problems, add featuresAnd then straight back to analysis, which is why your apps update every week.
Almost every failed project is one that started at phase three.

User interface design

An interface succeeds when the user does not have to think about it.

Principles

  • Consistency. The same action looks and behaves the same everywhere. The back button is always in the same place.
  • Feedback. Every action produces a visible response, so the user knows it worked.
  • Clarity. Buttons say what they do. "Save changes" beats "OK".
  • Forgiveness. Mistakes can be undone. Destructive actions ask for confirmation.
  • Simplicity. Fewer options is usually better. Every extra button is another decision for the user.

Accessibility

  • Large enough tap targets for people with limited dexterity
  • Strong colour contrast, and never colour alone to convey meaning
  • Text that works with the phone's larger font settings
  • Labels on every control so a screen reader can describe it
  • Works with the device turned either way

Knowing your audience

An app for young children needs large simple controls, few words and instant feedback. An app for professionals can assume expertise and prioritise speed and density of information. Designing one as if it were the other fails both.

The test of an interface

Give it to someone who has never seen it, say nothing, and watch. Wherever they hesitate is a design problem, not a user problem.

A quiz app screen with six interface design principles marked on itA phone showing a quiz app, with six design principles pointing at parts of the screen. Consistency: the back button is always in the top left. Accessibility: the answer buttons are big targets with strong contrast. Clarity: the button says Next question, which says what it does. Simplicity: there is one question at a time. Feedback: after the answer is tapped the screen says Correct, plus 10 points. Forgiveness: an Undo last answer link means mistakes can be undone.QuizWhat is 7 × 8?545658Correct! +10 pointsUndo last answerNext question1Consistencyback is always top left2Accessibilitybig targets, strong contrast3Claritybuttons say what they do4Simplicityone question at a time5Feedbackevery tap gets a response6Forgivenessmistakes can be undone
  1. Consistency: the same action looks and behaves the same everywhere.
  2. Accessibility: large tap targets and strong colour contrast.
  3. Clarity: buttons say what they do, so Next question beats OK.
  4. Simplicity: fewer options, one thing at a time.
  5. Feedback: every action gets a visible response.
  6. Forgiveness: mistakes can be undone.
An interface succeeds when the user does not have to think about it.

Testing and evaluation

What to test

  • Functionality. Does every feature do what the requirement said?
  • Usability. Can a real person complete the task without help?
  • Compatibility. Does it work on different screen sizes and devices?
  • Robustness. What happens with no internet, an empty list, or silly input?

Test data

  • Normal, a typical value that should be accepted
  • Boundary, right at the edge of what is allowed
  • Erroneous, the wrong type entirely, which should be rejected politely

A test plan

TestDataTypeExpected resultActual result
1Task title "Maths"NormalTask addedTask added
2Empty titleErroneousMessage asking for a titleApp crashed
3200 character titleBoundaryAccepted or truncated cleanlyText overflowed the box

Tests 2 and 3 are the useful ones. A test plan that only contains things you know will work is a waste of time.

Evaluating

Go back to your original requirements and check them one at a time. Then be honest:

  • Which requirements are fully met, partly met or not met?
  • What did users struggle with?
  • What would you do differently?
  • What would you add next?
Do not evaluate your own app by using it

You built it, so you know where everything is. Watch someone else use it and count the number of times they hesitate.

Normal, boundary and erroneous test dataTest data for a program that asks for an age from 13 to 19. A number line shows the valid range in green, from 13 to 19, and the invalid values in red either side. Normal data is a typical value inside the range, such as 16. Boundary data sits on the edge of what is allowed and just outside it: 13 and 19 are the two valid boundaries and 12 and 20 are the first invalid values either side. Erroneous data is the wrong type or not sensible at all, such as the text abc, a negative number or an empty entry. Beneath, a test plan lists each test with its data, type, expected result and actual result. The first three pass. The fourth, the text abc, was expected to make the program ask again but the program crashed, so it fails, and that points to a missing validation check.Test data for: enter an age from 13 to 1901213161920invalidvalidinvalidnormal: 16boundary: 12, 13boundary: 19, 20erroneous:"abc"-5emptythe wrong type, or not a sensible value123A test plan, with the result of each testTestDataTypeExpectedActualPass?116normalacceptedaccepted213boundaryacceptedaccepted312boundaryrejectedrejected4"abc"erroneousasks againcrashes4
  1. Test data for an age from 13 to 19, on a number line.
  2. Normal data is typical and should be accepted.
  3. Boundary data sits on and just outside each edge, because that is where mistakes hide.
  4. A test plan records expected against actual. A failed test shows what to fix.
Always test at the boundaries, on both sides of each one.

Key terms you must be able to define

Requirement
A specific, testable statement of something the app must do.
Wireframe
A rough sketch of a screen layout without colours or styling.
Navigation diagram
A diagram showing how the screens of an app connect to each other.
User interface
The part of the app the user sees and interacts with.
Usability
How easily a real user can achieve what they came to do.
Accessibility
Designing so the app can be used by everyone, including people with disabilities.
Iterative development
Repeatedly designing, building, testing and improving.
Test plan
A table of planned tests with test data, its type, and the expected result.
Evaluation
Judging honestly whether the finished product meets its original requirements.

Flashcards

Say the definition out loud before you flip the card. Retrieving it from memory is what builds recall, reading it again is not.

DefineRequirement
AnswerA specific, testable statement of something the app must do.
DefineWireframe
AnswerA rough sketch of a screen layout without colours or styling.
DefineNavigation diagram
AnswerA diagram showing how the screens of an app connect to each other.
DefineUser interface
AnswerThe part of the app the user sees and interacts with.
DefineUsability
AnswerHow easily a real user can achieve what they came to do.
DefineAccessibility
AnswerDesigning so the app can be used by everyone, including people with disabilities.
DefineIterative development
AnswerRepeatedly designing, building, testing and improving.
DefineTest plan
AnswerA table of planned tests with test data, its type, and the expected result.

Reach the top grade on this topic

The top level here is about evidence and honesty.

Write testable requirements. A requirement you cannot tick off is not a requirement. "The user can add a task in two taps" can be tested. "It is easy to use" cannot.

Test the failure cases. A test plan full of things that work proves nothing. The value is in the tests that break it.

Evaluate honestly. An evaluation that says everything went perfectly scores badly, because it shows you have not looked hard. Saying "three of my five testers could not find the delete button, so I would move it into the task itself" shows real understanding.

Justify design choices against the audience. Large buttons because the users are young children, not because you like large buttons.

  • Write five specific testable requirements for an app
  • Draw wireframes for three screens and a navigation diagram linking them
  • Produce a test plan including boundary and erroneous data with expected results
  • Write an honest evaluation against your original requirements

Mistakes that cost marks here

Avoid these
  • Starting to build before writing down what the app has to do.
  • Writing requirements that cannot be tested.
  • Only testing things that work.
  • Evaluating by saying everything went well.
  • Designing the interface for yourself rather than for the actual audience.
Fun fact

The average app is deleted within three days of being installed. Almost always the reason is not a bug, it is that the user could not work out what to do in the first thirty seconds.

Knowledge check

0 of 10 answered
1What is a wireframe?
2Which is a good requirement?
3What does a navigation diagram show?
4Which test data would be most useful for a task title field with a 100 character limit?
5Why should you watch someone else use your app?
6What is meant by consistency in interface design?
7Which is an accessibility consideration?
8What happens after evaluation in the development cycle?
9What is erroneous test data?
10Why should destructive actions ask for confirmation?
Score 0 / 10

Exam-style questions

Five written questions in the style of the real paper. Write a full answer, then let the marker check it against the mark scheme.

20 marks
1State what a wireframe is and explain why one is produced before building an app.3 marks
State

Mark scheme0 / 3
  • LA rough sketch of a screen layout without styling
  • LIt allows the layout and flow to be planned and discussed early
  • LChanges are far quicker and cheaper to make on a sketch than in finished code
Model answer

A wireframe is a rough sketch of a screen showing where each element will go, drawn deliberately without colours, fonts or images. It is produced before building so that the layout and the flow between screens can be planned and discussed while everything is still easy to change. Redrawing a sketch takes a minute, whereas rebuilding a finished screen can take hours, so problems with the design are far cheaper to find at this stage. Keeping wireframes plain also helps discussion stay on whether the screen works, rather than on whether the colours are right.

The marker looks for key phrases. If you said it another way and it is still right, give yourself the mark.
2Write three testable requirements for an app that helps students keep track of homework.3 marks
Write

Mark scheme0 / 3
  • LFirst requirement about adding homework with details
  • LSecond requirement about viewing or sorting tasks
  • LThird requirement about marking complete or saving data
Model answer

First, the user can add a homework task by entering a subject, a description and a due date. Second, the app displays all outstanding homework sorted by due date, with the nearest deadline first. Third, the user can mark a task as complete, after which it is removed from the main list, and all data is saved so that it is still present when the app is closed and reopened. Each of these is specific enough that you can test it and say clearly whether it has been achieved.

The marker looks for key phrases. If you said it another way and it is still right, give yourself the mark.
3Explain two principles of good user interface design.4 marks
Explain

Mark scheme0 / 4
  • LConsistency, so the same action works the same way throughout
  • LWhich means the user only has to learn the app once
  • LFeedback, so every action produces a visible response
  • LSo the user knows their action worked and does not repeat it
Model answer

The first principle is consistency. The same action should look and behave the same way everywhere in the app, so a back button always appears in the same position and a save button always looks the same. This means the user only has to learn the interface once rather than working out each screen from scratch, and they can predict what will happen before they tap. The second principle is feedback. Every action the user takes should produce a visible response, whether that is a button changing appearance when pressed, a confirmation message after saving, or a loading indicator during a delay. Without feedback the user cannot tell whether their tap registered, so they tap again, which often causes duplicate entries or leaves them stuck and frustrated.

The marker looks for key phrases. If you said it another way and it is still right, give yourself the mark.
4Describe how you would test an app that stores a list of tasks, including the types of test data you would use.6 marks
Describe

Mark scheme0 / 6
  • LTest with normal data such as a typical task title
  • LTest with boundary data at the limits of what is allowed
  • LTest with erroneous data such as an empty entry or wrong type
  • LState an expected result for each test
  • LTest usability by watching a real user complete a task
  • LTest robustness, such as behaviour with an empty list or no internet
Model answer

I would begin with functional testing against each requirement, using three kinds of test data. Normal data would be a typical task such as the title Maths homework with a due date next week, and the expected result is that it is added and appears in the list. Boundary data would test the edges of what is allowed, for example a title of exactly the maximum length and one character longer, where the expected result is that the first is accepted cleanly and the second is either rejected with a message or truncated without breaking the layout. Erroneous data would be an empty title or letters typed into the date field, where the expected result is a clear message asking the user to correct it rather than the app crashing. Every test needs its expected result recorded in advance, because without that there is nothing to compare the actual behaviour against. Beyond functionality, I would test robustness by trying the app with an empty task list, with a very large number of tasks and with no internet connection, since these are situations that break real apps. Finally I would test usability by giving the app to someone who has never seen it, asking them to add and complete a task, and watching without helping. Every point where they hesitate is a design fault, and this is something the developer can never find on their own because they already know where everything is.

The marker looks for key phrases. If you said it another way and it is still right, give yourself the mark.
5Explain why an app aimed at young children should be designed differently from one aimed at adult professionals.4 marks
Explain

Mark scheme0 / 4
  • LYoung children need large, simple controls
  • LBecause they have less developed reading and fine motor skills
  • LProfessionals can be given denser information and more options
  • LBecause they are experienced and value speed and efficiency
Model answer

An app for young children needs large tap targets, very few controls on each screen and instant obvious feedback, because young children have less developed fine motor control and may struggle to hit small buttons accurately. They may also read slowly or not at all, so meaning has to be carried by pictures, colour and sound rather than by text, and there should be very little that can go wrong because they will not read an error message. An app for adult professionals is the opposite. Those users will use it every day, so they value speed and efficiency far more than simplicity, and they can be given dense information, many options at once, keyboard shortcuts and advanced settings that would overwhelm a child. Designing either one as if it were the other fails both audiences: children get lost in an interface built for experts, and professionals get frustrated by an interface that takes five taps to do something that should take one.

The marker looks for key phrases. If you said it another way and it is still right, give yourself the mark.
Machine mark 0 / 20