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.