HSC Software Engineering study materials
HSC Software Engineering study resources

HSC Software Engineering flashcards

HSC Software Engineering · Build recall with a focused review session.

32 cards. Read the term and the definition here. The deck at the top of this page is optional.

Software development life cycle
The structured stages a software product passes through, from requirements analysis and design to implementation, testing, deployment and maintenance, each producing documented outputs for the next stage.
Waterfall model
A sequential development model in which each phase is completed and signed off before the next begins, making late requirement changes expensive because earlier work must be redone.
Agile development
An iterative approach using short time-boxed cycles that deliver working increments, with requirements refined continuously through stakeholder feedback rather than fixed upfront.
Functional requirement
A statement describing what the system must do, such as calculating a total or authenticating a user, expressed as an observable behaviour the system must provide.
Non-functional requirement
A constraint on how the system performs its functions, covering qualities such as response time, security, usability, reliability and maintainability rather than specific behaviours.
Verification versus validation
Verification confirms the product was built correctly according to its specification; validation confirms the correct product was built to meet the user's actual need.
Pass by reference
A parameter-passing mechanism where the callee receives the address of the argument, so modifications affect the caller's original variable rather than a local copy.
Encapsulation
An object-oriented principle bundling data and the methods that operate on it, hiding internal state behind a public interface so implementation details can change safely.
Polymorphism
The ability of different classes to respond to the same method call in their own way, with the executed version selected by the object's runtime type.
Method overriding
A subclass providing its own implementation of an inherited method with an identical signature, replacing the parent behaviour when invoked on a subclass object.
Abstraction
Reducing complexity by exposing only essential behaviour through an interface or abstract class, hiding implementation detail from the code that uses it.
Linked list
A linear structure of nodes, each storing data and a reference to the next node, giving constant-time insertion or removal once the position is located but no random access.
Stack data structure
A last-in-first-out collection where insertion and removal occur only at one end, supporting push, pop and peek operations in constant time.
Hash table
A structure mapping keys to values through a hash function, giving average constant-time lookup and insertion, with collisions handled by chaining or open addressing.
Big-O notation
A notation describing the upper bound on how an algorithm's time or space grows as input size increases, discarding constants and lower-order terms.
Binary search
A search on sorted data that repeatedly halves the interval by comparing the target with the middle element, achieving logarithmic time complexity.
Recursion base case
The condition in a recursive method that returns a result without calling itself again, terminating the recursion and preventing infinite stack growth.
Data flow diagram
A modelling diagram showing external entities, processes, data stores and the directional flows of data between them, used to represent a system's information movement.
UML class diagram
A structural diagram depicting classes with their attributes and methods, plus relationships such as association, aggregation, composition and inheritance between those classes.
Use case diagram
A behavioural UML diagram showing actors outside the system boundary and the goals, or use cases, they achieve through interaction with the system.
Wireframe
A low-fidelity visual layout showing the placement of interface elements and content structure without detailed styling, used early to test layout decisions.
User-centred design
A design approach that identifies user needs and context of use, produces design solutions, evaluates them with real users, and iterates until requirements are met.
HTTP status codes
Three-digit numbers in server responses grouped by class: 2xx success, 3xx redirection, 4xx client error and 5xx server error, indicating the request's outcome.
SQL injection
An attack inserting malicious SQL through unvalidated input to alter database queries, prevented by parameterised queries and prepared statements rather than string concatenation.
Cross-site scripting
An attack injecting malicious scripts into pages viewed by other users, mitigated by output encoding, input validation and content security policy headers.
HTTPS with TLS
A protocol layering HTTP over TLS, providing confidentiality of traffic, integrity of messages and authentication of the server through its certificate.
Critical path
The longest chain of dependent tasks in a project network, whose length determines the minimum project duration and whose tasks have zero slack.
Work breakdown structure
A hierarchical decomposition of project deliverables into smaller manageable tasks, forming the basis for scheduling, effort estimation and responsibility assignment.
Unit versus integration testing
Unit testing verifies individual modules in isolation; integration testing verifies that modules interact correctly through their interfaces when combined.
Mechatronic control loop
A cycle where sensors measure a physical variable, a controller processes the data with an algorithm, and actuators act on the system, with feedback correcting error.
Copyright and software
Automatic legal protection of the expression of software, including source and object code, which does not extend to the underlying ideas or algorithms.
Copyleft licence
An open-source licence requiring derivative works to be distributed under the same terms, so modifications cannot be relicensed as proprietary software.