HSC Software Engineering key terms
HSC Software Engineering · Get comfortable with the vocabulary.
- Software Development Life Cycle (SDLC)
- Related: Waterfall Model, Agile Development, Requirements Specification
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.
- Waterfall Model
- Related: Software Development Life Cycle (SDLC), Prototyping
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.
- Agile Development
- Related: Sprint, Software Development Life Cycle (SDLC), Version Control
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.
- Sprint
- Related: Agile Development, Product Backlog
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.
- Product Backlog
- Related: Sprint, Requirements Specification
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.
- Requirements Specification
- Related: Functional Requirement, Non-functional Requirement, Use Case
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.
- Functional Requirement
- Related: Requirements Specification, Non-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.
- Non-functional Requirement
- Related: Functional Requirement, Requirements Specification
A constraint on how well the system performs its functions, covering qualities such as response time, security, usability, reliability, portability or maximum load.
- Prototyping
- Related: Wireframe, Waterfall Model
Building a simplified or partial version of a system to clarify requirements, test design ideas or gather user feedback before committing to full development.
- Use Case
- Related: Requirements Specification, Actor
A description of how an actor interacts with a system to achieve a goal, typically listing preconditions, main flow and alternate flows of events.
- Actor
- Related: Use Case, Unified Modeling Language (UML)
A person, role or external system that interacts with the software being designed, drawn outside the system boundary in use case diagrams.
- Class
- Related: Object, Encapsulation, Inheritance
A programmer-defined blueprint that groups related data attributes and the methods that operate on them, from which individual objects are created.
- Object
- Related: Class, Instantiation
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.
- Encapsulation
- Related: Class, Polymorphism
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.
- Inheritance
- Related: Class, Polymorphism, Method Overriding
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.
- Polymorphism
- Related: Method Overriding, Inheritance
The ability for different classes to respond to the same method call in their own way, so calling code can treat related objects uniformly.
- Method Overriding
- Related: Polymorphism, Inheritance
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.
- Instantiation
- Related: Object, Class
The act of creating a concrete object from a class, typically by calling a constructor that sets the object's initial attribute values.
- Recursion
- Related: Call Stack, Algorithm Complexity
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.
- Call Stack
- Related: Recursion, 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.
- Stack
- Related: Queue, Call 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.
- Queue
- Related: Stack
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.
- Linked List
- Related: Array, Pointer
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.
- Array
- Related: Linked List, Index
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.
- Hash Table
- Related: Hash Function, Collision
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.
- Hash Function
- Related: Hash Table, Collision
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.
- Collision
- Related: Hash Table, Hash Function
The situation where two different keys produce the same hash index, resolved by techniques such as chaining or open addressing.
- Binary Search
- Related: Algorithm Complexity, Sorting Algorithm
A search that repeatedly halves a sorted collection by comparing the target with the middle element, running in logarithmic time.
- Sorting Algorithm
- Related: Algorithm Complexity, Binary Search
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.
- Algorithm Complexity
- Related: Big-O Notation, Binary Search
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).
- Big-O Notation
- Related: Algorithm Complexity
A mathematical notation describing an upper bound on an algorithm's growth rate, ignoring constants and lower-order terms to show its dominant cost.
- Unified Modeling Language (UML)
- Related: Class Diagram, Use Case, Actor
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.
- Class Diagram
- Related: Unified Modeling Language (UML), Class
A structural UML diagram showing classes, their attributes and methods, and the relationships between them such as association, inheritance and composition.
- Wireframe
- Related: Prototyping, User-centred Design
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.
- User-centred Design
- Related: Wireframe, Usability Testing
A design approach that places the needs, abilities and context of real users at the centre, using research, testing and iteration to improve usability.
- Usability Testing
- Related: User-centred Design, Prototyping
Observing representative users attempting realistic tasks with a product to find where they struggle and to guide design improvements.
- Hypertext Transfer Protocol Secure (HTTPS)
- Related: Encryption, Session Token
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.
- Encryption
- Related: Hash Function, HTTPS
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.
- Session Token
- Related: Authentication, HTTPS
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.
- Authentication
- Related: Authorisation, Session Token
The process of verifying that a user or system is who it claims to be, commonly through passwords, tokens or multi-factor checks.
- Authorisation
- Related: Authentication
Deciding what an already identified user is permitted to do or access, enforced by the server rather than trusted to the client.
- SQL Injection
- Related: Input Validation, Authentication
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.
- Input Validation
- Related: SQL Injection
Checking and rejecting or sanitising data supplied by users before it is processed, to prevent malformed data, crashes and injection attacks.
- Version Control
- Related: Branch, Merge Conflict, Agile Development
A system that records changes to files over time, allowing developers to review history, revert mistakes and merge work from multiple contributors safely.
- Branch
- Related: Version Control, Merge Conflict
An independent line of development within a version control repository, letting work proceed without disturbing the main code until it is ready to integrate.
- Merge Conflict
- Related: Branch, Version Control
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.
- Gantt Chart
- Related: Critical Path, Milestone
A horizontal bar chart showing project tasks against a calendar, making durations, overlaps, dependencies and progress easy to see at a glance.
- Critical Path
- Related: Gantt Chart, Milestone
The longest sequence of dependent tasks through a project schedule, which determines the earliest possible completion date and must be monitored closely.
- Milestone
- Related: Gantt Chart, Critical Path
A significant checkpoint in a project with no duration, marking the completion of a major deliverable or phase and used to track progress.
- Actuator
- Related: Sensor, Feedback Loop
A physical output device such as a motor, servo or solenoid that converts an electrical control signal into movement or another real-world action.
- Sensor
- Related: Actuator, Feedback Loop
A device that measures a physical quantity such as temperature, distance or light and converts it into an electrical signal a program can read.
- Feedback Loop
- Related: Sensor, Actuator
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.
- Intellectual Property
- Related: Copyright, Open Source Licence
Legally recognised rights over creations of the mind, such as code, designs and inventions, protected by mechanisms including copyright, patents and trade secrets.
- Copyright
- Related: Intellectual Property, Open Source Licence
Automatic legal protection giving the creator of an original work, including software source code, rights over copying, adaptation and distribution for a set period.
- Open Source Licence
- Related: Copyright, Intellectual Property
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.
- Privacy
- Related: Accessibility, Authentication
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.
- Accessibility
- Related: User-centred Design, Privacy
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.