HSC Software Engineering study materials
HSC Software Engineering study resources

HSC Software Engineering key terms

HSC Software Engineering · Get comfortable with the vocabulary.

Software Development Life Cycle (SDLC)

An organised sequence of stages, from gathering requirements through design, implementation, testing, deployment and maintenance, used to plan and control how a software product is built and improved.

Related: Waterfall Model, Agile Development, Requirements Specification
Waterfall Model

A linear development approach where each phase finishes before the next begins and changes are costly once a phase is signed off, suited to stable, well-understood requirements.

Related: Software Development Life Cycle (SDLC), Prototyping
Agile Development

An iterative approach that delivers working software in short increments, welcomes changing requirements and relies on close collaboration with stakeholders and frequent reflection on process.

Related: Sprint, Software Development Life Cycle (SDLC), Version Control
Sprint

A fixed, short development period, commonly one to four weeks, in which a team commits to completing a selected set of backlog items and produces a potentially shippable increment.

Related: Agile Development, Product Backlog
Product Backlog

A prioritised list of features, fixes and improvements that the team may build, kept up to date by the product owner and drawn on when planning each development cycle.

Related: Sprint, Requirements Specification
Requirements Specification

A document or set of records describing what a system must do, its constraints and quality expectations, forming the agreed basis for design, testing and acceptance.

Related: Functional Requirement, Non-functional Requirement, Use Case
Functional Requirement

A statement of a specific behaviour or service the system must provide, such as calculating a total or allowing a user to reset a password.

Related: Requirements Specification, Non-functional Requirement
Non-functional Requirement

A constraint on how well the system performs its functions, covering qualities such as response time, security, usability, reliability, portability or maximum load.

Related: Functional Requirement, Requirements Specification
Prototyping

Building a simplified or partial version of a system to clarify requirements, test design ideas or gather user feedback before committing to full development.

Related: Wireframe, Waterfall Model
Use Case

A description of how an actor interacts with a system to achieve a goal, typically listing preconditions, main flow and alternate flows of events.

Related: Requirements Specification, Actor
Actor

A person, role or external system that interacts with the software being designed, drawn outside the system boundary in use case diagrams.

Related: Use Case, Unified Modeling Language (UML)
Class

A programmer-defined blueprint that groups related data attributes and the methods that operate on them, from which individual objects are created.

Related: Object, Encapsulation, Inheritance
Object

A single instance created from a class, holding its own values for the class attributes and able to invoke the methods defined by that class.

Related: Class, Instantiation
Encapsulation

The practice of bundling data with the methods that use it and restricting direct outside access, usually through private attributes and public accessor or mutator methods.

Related: Class, Polymorphism
Inheritance

A mechanism where a new class reuses and extends the attributes and methods of an existing class, promoting code reuse and a general-to-specific hierarchy.

Related: Class, Polymorphism, Method Overriding
Polymorphism

The ability for different classes to respond to the same method call in their own way, so calling code can treat related objects uniformly.

Related: Method Overriding, Inheritance
Method Overriding

Redefining an inherited method in a subclass with the same name and signature so that calls on subclass objects run the new behaviour instead of the parent version.

Related: Polymorphism, Inheritance
Instantiation

The act of creating a concrete object from a class, typically by calling a constructor that sets the object's initial attribute values.

Related: Object, Class
Recursion

A technique where a function solves a problem by calling itself on a smaller version of the same problem, requiring a base case to stop the calls.

Related: Call Stack, Algorithm Complexity
Call Stack

A structure used by a running program to record active function calls and their local data, growing with each call and shrinking as each returns.

Related: Recursion, Stack
Stack

A last-in-first-out data structure where items are added and removed only at one end, as in undo histories or expression evaluation.

Related: Queue, Call Stack
Queue

A first-in-first-out data structure where items are added at one end and removed from the other, as in task scheduling or print spooling.

Related: Stack
Linked List

A linear structure of nodes, each holding a value and a reference to the next node, allowing cheap insertion and removal but requiring sequential access.

Related: Array, Pointer
Array

A fixed-size collection of elements of the same type stored in consecutive memory positions, giving fast access by index but costly insertion in the middle.

Related: Linked List, Index
Hash Table

A structure that maps keys to values by converting each key into an index with a hash function, giving average constant-time lookup when collisions are handled well.

Related: Hash Function, Collision
Hash Function

A calculation that turns a key of any size into a numeric index within a fixed range, used to decide where a value is stored in a hash table.

Related: Hash Table, Collision
Collision

The situation where two different keys produce the same hash index, resolved by techniques such as chaining or open addressing.

Related: Hash Table, Hash Function
Binary Search

A search that repeatedly halves a sorted collection by comparing the target with the middle element, running in logarithmic time.

Related: Algorithm Complexity, Sorting Algorithm
Sorting Algorithm

A procedure that arranges items in a defined order, with common examples including bubble, insertion, merge and quick sort, each differing in speed and memory use.

Related: Algorithm Complexity, Binary Search
Algorithm Complexity

A measure of how the time or memory an algorithm needs grows as input size increases, usually expressed with big-O notation such as O(n) or O(log n).

Related: Big-O Notation, Binary Search
Big-O Notation

A mathematical notation describing an upper bound on an algorithm's growth rate, ignoring constants and lower-order terms to show its dominant cost.

Related: Algorithm Complexity
Unified Modeling Language (UML)

A standard family of diagram notations, including class, use case, sequence and activity diagrams, used to describe and communicate software structure and behaviour before coding.

Related: Class Diagram, Use Case, Actor
Class Diagram

A structural UML diagram showing classes, their attributes and methods, and the relationships between them such as association, inheritance and composition.

Related: Unified Modeling Language (UML), Class
Wireframe

A low-fidelity sketch of a screen's layout that shows the placement of content and controls without visual styling, used to agree on structure early.

Related: Prototyping, User-centred Design
User-centred Design

A design approach that places the needs, abilities and context of real users at the centre, using research, testing and iteration to improve usability.

Related: Wireframe, Usability Testing
Usability Testing

Observing representative users attempting realistic tasks with a product to find where they struggle and to guide design improvements.

Related: User-centred Design, Prototyping
Hypertext Transfer Protocol Secure (HTTPS)

The encrypted version of the web's request-response protocol, using TLS so that data between browser and server cannot be easily read or altered in transit.

Related: Encryption, Session Token
Encryption

Converting readable data into an unreadable form using an algorithm and key, so that only parties holding the correct key can recover the original content.

Related: Hash Function, HTTPS
Session Token

A value issued after login and sent with later requests to identify the authenticated user, which must be unpredictable, protected and expired when no longer needed.

Related: Authentication, HTTPS
Authentication

The process of verifying that a user or system is who it claims to be, commonly through passwords, tokens or multi-factor checks.

Related: Authorisation, Session Token
Authorisation

Deciding what an already identified user is permitted to do or access, enforced by the server rather than trusted to the client.

Related: Authentication
SQL Injection

An attack where untrusted input is inserted into a database query so it changes the query's meaning, prevented by parameterised queries and input validation.

Related: Input Validation, Authentication
Input Validation

Checking and rejecting or sanitising data supplied by users before it is processed, to prevent malformed data, crashes and injection attacks.

Related: SQL Injection
Version Control

A system that records changes to files over time, allowing developers to review history, revert mistakes and merge work from multiple contributors safely.

Related: Branch, Merge Conflict, Agile Development
Branch

An independent line of development within a version control repository, letting work proceed without disturbing the main code until it is ready to integrate.

Related: Version Control, Merge Conflict
Merge Conflict

A clash that occurs when two branches change the same part of a file and the version control system cannot combine them automatically, requiring a person to resolve it.

Related: Branch, Version Control
Gantt Chart

A horizontal bar chart showing project tasks against a calendar, making durations, overlaps, dependencies and progress easy to see at a glance.

Related: Critical Path, Milestone
Critical Path

The longest sequence of dependent tasks through a project schedule, which determines the earliest possible completion date and must be monitored closely.

Related: Gantt Chart, Milestone
Milestone

A significant checkpoint in a project with no duration, marking the completion of a major deliverable or phase and used to track progress.

Related: Gantt Chart, Critical Path
Actuator

A physical output device such as a motor, servo or solenoid that converts an electrical control signal into movement or another real-world action.

Related: Sensor, Feedback Loop
Sensor

A device that measures a physical quantity such as temperature, distance or light and converts it into an electrical signal a program can read.

Related: Actuator, Feedback Loop
Feedback Loop

A control arrangement where a sensor measures the system's actual output and the controller adjusts its action based on the difference from the desired value.

Related: Sensor, Actuator
Intellectual Property

Legally recognised rights over creations of the mind, such as code, designs and inventions, protected by mechanisms including copyright, patents and trade secrets.

Related: Copyright, Open Source Licence
Copyright

Automatic legal protection giving the creator of an original work, including software source code, rights over copying, adaptation and distribution for a set period.

Related: Intellectual Property, Open Source Licence
Open Source Licence

A licence granting permission to use, study, modify and redistribute software, usually subject to conditions such as keeping attribution or sharing modifications under the same terms.

Related: Copyright, Intellectual Property
Privacy

A person's ability to control what personal data is collected about them, how it is used and who can see it, protected in software through consent, minimisation and security.

Related: Accessibility, Authentication
Accessibility

Designing software so people with diverse abilities, including visual, motor or cognitive impairments, can perceive and operate it, for example through keyboard navigation and alt text.

Related: User-centred Design, Privacy