Skip to content
Key Point
Design considerationQuestions to ask
Problem definitionWhat exactly needs solving? Which features are essential?
Model usageHow will it be used in practice? Is it practical and accessible?
Target audienceWho will use it and what is their expertise level?
Relevance vs simplicityWhich details are essential, and which can be removed?
Worked Example
Library System Abstract Model

Real-world complexities we ignore:
• Physical layout of the library
• Colour of the carpet
• Temperature of the building
• Staff break schedules

Abstraction we keep:
pseudocode
record Book:
    string ISBN
    string title
    string author
    boolean isAvailable
end record

record User:
    string userID
    string name
    list borrowedBooks
end record

record Loan:
    string bookISBN
    string userID
    date borrowedDate
    date dueDate
end record
Key operationPurpose
borrowBook(userID, ISBN)Create a loan and mark a book unavailable
returnBook(userID, ISBN)Close loan and mark book available
searchBooks(query)Find books by title/author/ISBN
checkOverdueLoans()Identify late returns
This abstraction captures what matters for the system while ignoring irrelevant physical details.
Exam Tip
Exam Tips for Abstraction:
• Be able to explain why abstraction is necessary (simplification, efficiency, layered architecture, accessibility)
• Identify similarities and differences between real-world and abstract representations
• Explain the four types: representational, generalisation, data, and procedural abstraction
• Devise appropriate abstract models for given scenarios
• Understand how abstraction relates to OOP objects, data structures, and layered systems