VCE Software Development study materials
VCE Software Development study resources

VCE Software Development practice questions

One question at a time. Build your VCE Software Development understanding.

First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.

Continue in the practice tool above to load more questions, 50 at a time.

Question 1Software design and development

Which software development life cycle model delivers working software in short, fixed-length iterations with a prioritized backlog?

  1. Spiral
  2. Waterfall
  3. Agile Scrum Correct answer.
  4. V-model

Explanation

Agile Scrum organizes work into short fixed-length sprints, each producing a potentially shippable increment drawn from a prioritized product backlog. Requirements are allowed to change between sprints, which distinguishes it from sequential models that freeze scope early.

Question 2Software design and development

In a use case diagram, which element represents an external entity that interacts with the system?

  1. Node
  2. Actor Correct answer.
  3. Class
  4. Package

Explanation

An actor models a role played by a person or another system that exchanges information with the system boundary. Classes, packages and nodes describe internal structure or deployment, not external interaction.

Question 3Software design and development

A team writes a test that checks whether a function returns the correct total for a list of prices before any other code is written. Which practice does this describe?

  1. Load testing
  2. Test-driven development Correct answer.
  3. Acceptance testing
  4. Regression testing

Explanation

Test-driven development writes a failing test first, then produces the minimum code to make it pass, then refactors. Writing the test before the implementation is the defining characteristic of the red-green-refactor cycle.

Question 4Software design and development

Which data structure follows a last-in, first-out order?

  1. Stack Correct answer.
  2. Queue
  3. Array
  4. Linked list

Explanation

A stack pushes and pops from the same end, so the most recently added item is the first removed. This LIFO behaviour is what makes stacks suitable for call management and undo histories.

Question 5Software design and development

Which document primarily records the functional and non-functional requirements agreed with a client before design begins?

  1. Deployment checklist
  2. Test plan
  3. Code style guide
  4. Software requirements specification Correct answer.

Explanation

A software requirements specification captures what the system must do and the quality constraints it must satisfy, forming the agreed baseline for design. Test plans, checklists and style guides are downstream artefacts that assume requirements already exist.

Question 6Software design and development

A programmer writes a comment explaining why a workaround is needed for a third-party library bug. Which purpose does the comment serve?

  1. Describing the parameter types
  2. Documenting the algorithm's time complexity
  3. Listing the test cases covered
  4. Recording design rationale Correct answer.

Explanation

Comments that explain why code is written a certain way capture design rationale, which helps future maintainers avoid removing a necessary workaround. They are distinct from comments that restate what the code does.

Question 7Software design and development

Which characteristic of well-designed software means that a module hides its internal workings and exposes only a defined interface?

  1. Encapsulation Correct answer.
  2. Polymorphism
  3. Cohesion
  4. Coupling

Explanation

Encapsulation bundles data with the operations on it and restricts direct access to internals, exposing only a public interface. This lets a module's implementation change without breaking the code that depends on it.

Question 8Software design and development

Which phase of the waterfall model immediately follows system design?

  1. Requirements analysis
  2. Maintenance
  3. Feasibility study
  4. Implementation Correct answer.

Explanation

Waterfall proceeds from requirements through design to implementation, then testing, deployment and maintenance. Implementation therefore follows design directly in the standard sequence.

Question 9Software design and development

A login form must reject passwords shorter than eight characters. Which type of requirement is this?

  1. Functional requirement Correct answer.
  2. Usability guideline
  3. Non-functional requirement
  4. Constraint on the development process

Explanation

A functional requirement specifies a behaviour the system must perform, such as validating input against a rule. It describes what the system does rather than how well or under what process constraints it does it.

Question 10Software design and development

A function is described as having O(n log n) time complexity. What does this indicate about its running time as input size grows?

  1. It grows slightly faster than linear because of a logarithmic factor Correct answer.
  2. It stays constant regardless of input size
  3. It grows proportionally to the input size
  4. It grows proportionally to the square of the input size

Explanation

Big-O notation describes the dominant growth rate of an algorithm's cost as input size increases. The n log n term grows faster than n alone but far slower than n squared, which is typical of efficient comparison sorts.

Question 11Software design and development

Which design approach best reduces coupling between a user interface class and a database access class?

  1. Introduce an interface the database class implements and have the interface depend on it Correct answer.
  2. Store database credentials inside the interface class
  3. Have the interface class build SQL statements directly
  4. Merge both classes into one larger class

Explanation

Depending on an abstraction rather than a concrete class lets either side change independently, which lowers coupling. The interface class then knows only the contract, not the storage details.

Question 12Software design and development

A class diagram shows a Customer with a one-to-many association to Order, marked with a filled diamond at the Order end. What does the filled diamond indicate?

  1. An interface realization by Order
  2. Composition, where orders cannot exist without the customer Correct answer.
  3. Inheritance from Customer to Order
  4. A dependency where Order uses Customer temporarily

Explanation

A filled diamond denotes composition, a strong whole-part relationship in which the part's lifetime is tied to the whole. If the customer is destroyed, the composed orders are destroyed with it.

Question 13Software design and development

A development team keeps a prioritized list of features and fixes that is refined continuously and drawn upon at each sprint planning session. What is this artefact called?

  1. Sprint retrospective
  2. Burndown chart
  3. Product backlog Correct answer.
  4. Definition of done

Explanation

The product backlog is the single ordered list of everything that might be built, owned by the product owner and refined over time. Sprint planning selects items from it to form the sprint backlog.

Question 14Software design and development

Which test level verifies that individual functions behave correctly in isolation from the rest of the system?

  1. System testing
  2. Unit testing Correct answer.
  3. Integration testing
  4. User acceptance testing

Explanation

Unit testing exercises the smallest testable pieces of code, often with dependencies replaced by stubs or mocks. It is performed before components are combined, which is when integration testing begins.

Question 15Software design and development

A recursive function lacks a correct base case. What is the most likely consequence when it is called?

  1. It automatically converts into an iterative loop
  2. It runs until the call stack overflows Correct answer.
  3. It compiles but skips the recursive calls
  4. It returns an incorrect but finite value

Explanation

Without a base case the recursion never terminates, so each call adds a frame to the call stack until memory for the stack is exhausted. The runtime then raises a stack overflow error.

Question 16Software design and development

Which version control practice creates an isolated line of development so a feature can be built without disturbing the main codebase?

  1. Merging a pull request
  2. Reverting a commit
  3. Creating a branch Correct answer.
  4. Tagging a release

Explanation

A branch diverges from an existing line of history so changes can be committed independently and integrated later. This isolates incomplete work from the mainline until it is ready.

Question 17Software design and development

A module contains functions for calculating tax, formatting invoices and sending marketing emails. Which design problem does this most clearly illustrate?

  1. Low coupling because the functions do not call each other
  2. Low cohesion because the responsibilities are unrelated Correct answer.
  3. High cohesion because all functions serve the business
  4. High coupling because the module is large

Explanation

Cohesion concerns how strongly related the responsibilities within a module are. Tax calculation, invoice formatting and marketing email serve unrelated purposes, so grouping them produces low cohesion and a module that is hard to reuse or maintain.

Question 18Software design and development

Which diagram type is most appropriate for showing the sequence of messages exchanged between objects to complete a single scenario?

  1. Sequence diagram Correct answer.
  2. Deployment diagram
  3. Class diagram
  4. State machine diagram

Explanation

A sequence diagram arranges participants horizontally and time vertically, showing the ordered messages that realise one scenario. It is the standard choice when message ordering over time matters.

Question 19Software design and development

A team adopts continuous integration. Which behaviour is most consistent with that practice?

  1. Assigning each developer a private copy of the whole repository for months
  2. Deploying to production without any automated checks
  3. Merging all feature branches only at the end of the release
  4. Running automated builds and tests whenever code is committed to the shared repository Correct answer.

Explanation

Continuous integration requires developers to integrate frequently and have each integration verified by an automated build and test run. Fast feedback on every commit keeps the shared mainline healthy.

Question 20Software design and development

Which statement best describes the role of a stub in testing?

  1. It generates random inputs to fuzz the system
  2. It replaces a dependency with a simplified version that returns controlled values Correct answer.
  3. It records calls made to a dependency for later assertions
  4. It measures the code coverage achieved by the test suite

Explanation

A stub stands in for a real dependency and supplies predetermined responses so the unit under test can be exercised in isolation. It does not usually verify interactions, which is the role of a mock.

Question 21Software design and development

A binary search is run on a sorted array of 1000 elements. Approximately how many comparisons are needed in the worst case?

  1. 1000
  2. 10 Correct answer.
  3. 100
  4. 500

Explanation

Binary search halves the remaining search space with each comparison, so the worst case is about log base 2 of n. Since 2 to the power of 10 is 1024, roughly ten comparisons suffice for 1000 elements.

Question 22Software design and development

Which situation most strongly justifies choosing an iterative and incremental approach over a strict waterfall process?

  1. The team is required by contract to deliver a single fixed-scope release
  2. The system is safety-critical and every phase must be formally signed off
  3. The client needs early feedback and requirements are expected to evolve Correct answer.
  4. The requirements are fully known and will not change

Explanation

Iterative approaches shine when uncertainty is high, because each increment produces feedback that informs the next. When requirements are stable and formal sign-off dominates, a plan-driven model can be more appropriate.

Question 23Software design and development

A designer applies the single responsibility principle. Which outcome should be expected?

  1. Each class exposes all of its fields publicly
  2. Each class inherits from exactly one superclass
  3. Each class has exactly one method
  4. Each class has one reason to change Correct answer.

Explanation

The principle states that a module should have one reason to change, meaning it should serve a single actor or concern. It constrains the number of responsibilities, not the number of methods or superclasses.

Question 24Software design and development

In a system, class Report depends directly on class PdfWriter, and the writer is instantiated inside Report. Which refactoring most directly improves the design?

  1. Make PdfWriter's methods static and call them from Report
  2. Move the writer instantiation into a global variable
  3. Copy the PDF code into Report to remove the dependency
  4. Introduce a Writer interface, inject it into Report, and let PdfWriter implement it Correct answer.

Explanation

Depending on an interface and supplying the implementation from outside inverts the dependency, so Report no longer needs to know which writer is used. This supports substitution, such as adding a HtmlWriter, without editing Report.

Question 25Software design and development

A team must choose a data structure for frequent insertions and deletions at arbitrary positions while iterating through the collection. Which choice best fits these requirements?

  1. A fixed-size array
  2. A singly linked list with a stored tail reference Correct answer.
  3. A stack
  4. A hash table keyed by insertion order

Explanation

A linked list inserts and removes nodes by relinking references, which is efficient once the position is known, and it supports sequential traversal. A stored tail reference additionally makes appending efficient.

Question 26Software design and development

Which software development life cycle model delivers a working product to the customer after each cycle and welcomes changing requirements between cycles?

  1. Big bang
  2. Waterfall
  3. V-model
  4. Agile Correct answer.

Explanation

Agile approaches plan work in short iterations and produce a usable increment at the end of each one, so requirements can be reprioritised between cycles. The other listed models assume requirements are largely settled before construction begins.

Question 27Software design and development

A team records each user story on a card with the sentence 'As a librarian, I want to reserve a book so that I can collect it later.' Which requirements artefact does this card represent?

  1. A test plan
  2. A non-functional requirement
  3. A functional requirement Correct answer.
  4. A design constraint

Explanation

A user story states behaviour the system must perform for an actor, which makes it a functional requirement. Non-functional requirements describe qualities such as performance or usability rather than a specific behaviour.

Question 28Software design and development

Which statement best describes the purpose of a data flow diagram?

  1. It shows the order in which objects exchange messages over time.
  2. It models how data moves between processes, stores and external entities. Correct answer.
  3. It lists the project tasks and their scheduled dates.
  4. It records the class hierarchy and inheritance relationships.

Explanation

A data flow diagram models the movement and transformation of data through processes, data stores, external entities and flows. It deliberately omits timing and control logic, which distinguishes it from behavioural diagrams.

Question 29Software design and development

A module is described as having high cohesion. What does this indicate about the module?

  1. It is the largest module in the system.
  2. Its elements all contribute to a single, well-defined purpose. Correct answer.
  3. It depends on many other modules.
  4. It exposes all of its internal variables to callers.

Explanation

Cohesion measures how strongly the responsibilities inside a module belong together. High cohesion means the module's parts work toward one clear purpose, which makes it easier to understand and maintain.

Question 30Software design and development

Which activity belongs to the requirements analysis stage of software development?

  1. Writing unit tests for individual functions
  2. Compiling the source code into an executable
  3. Installing the finished system on the client's servers
  4. Resolving conflicting needs stated by different stakeholders Correct answer.

Explanation

Requirements analysis gathers, clarifies and reconciles what stakeholders want, including resolving contradictions between them. Coding, unit testing and deployment occur in later stages once requirements are agreed.

Question 31Software design and development

A developer writes pseudocode before writing any program code. What is the main benefit of this step?

  1. It lets the algorithm be checked and refined without language syntax distractions. Correct answer.
  2. It removes the need for any testing later.
  3. It automatically generates the final source code.
  4. It executes faster than compiled code.

Explanation

Pseudocode expresses an algorithm in structured natural language so its logic can be reviewed before committing to a particular programming language. It is a design aid and does not execute or replace testing.

Question 32Software design and development

Which pair of terms describes the two standard ways of measuring module design quality?

  1. Inheritance and polymorphism
  2. Syntax and semantics
  3. Cohesion and coupling Correct answer.
  4. Iteration and recursion

Explanation

Design quality is commonly assessed by cohesion, how focused a module's responsibilities are, and coupling, how dependent modules are on each other. Good design aims for high cohesion and low coupling.

Question 33Software design and development

Which document typically records the agreed scope, requirements and acceptance criteria for a software project?

  1. A software requirements specification Correct answer.
  2. A code review checklist
  3. A version control log
  4. A user manual

Explanation

A software requirements specification captures what the system must do and the criteria by which it will be accepted. It acts as the reference for design, testing and client sign-off.

Question 34Software design and development

A client says the system must process any order within two seconds. Which requirement category does this belong to?

  1. Data requirement
  2. Functional requirement
  3. Business constraint
  4. Non-functional requirement Correct answer.

Explanation

A stated limit on response time is a quality attribute, which makes it a non-functional requirement. Functional requirements describe what the system does, while non-functional requirements describe how well it must do it.

Question 35Software design and development

A designer wants to reduce the impact of changing a database vendor on the rest of the system. Which technique best supports this goal?

  1. Copying the database access code into every class that needs data
  2. Defining an abstract data access interface that concrete database classes implement Correct answer.
  3. Hard-coding the vendor's connection string throughout the codebase
  4. Combining database access and business logic in one large class

Explanation

An abstract interface lets the rest of the system depend on an abstraction rather than a specific vendor class, so a new vendor is introduced by adding an implementation. This lowers coupling between business logic and storage technology.

Question 36Software design and development

A class diagram shows class Dog inheriting from class Animal. What does this relationship indicate?

  1. Dog acquires the attributes and operations of Animal and may add its own. Correct answer.
  2. Dog and Animal are the same class shown twice.
  3. Dog is used by Animal as a temporary local variable.
  4. Dog contains an instance of Animal as a field.

Explanation

Inheritance, shown by an open arrow with a hollow triangle pointing to the parent, means the subclass inherits the parent's features and can extend or override them. It expresses an is-a relationship rather than containment.

Question 37Software design and development

A team is building a system whose requirements are expected to change significantly during development. Which approach is most suitable?

  1. A single big bang release at the end of the project
  2. A strict waterfall process with frozen requirements
  3. An iterative and incremental process with regular client feedback Correct answer.
  4. A process that defers all testing until after release

Explanation

Iterative and incremental delivery allows requirements to be refined between cycles with client feedback, which suits volatile requirements. Freezing requirements or deferring all testing increases the risk of building the wrong product.

Question 38Software design and development

A program stores a collection of student records and frequently needs to look up a record by student ID. Which structure gives the fastest average lookup?

  1. A singly linked list traversed from the head
  2. A stack
  3. A hash table keyed on student ID Correct answer.
  4. An unsorted array searched linearly

Explanation

A hash table maps a key to a bucket, giving constant average time for lookup when hashing is well distributed. Linear search and linked-list traversal both require examining many elements.

Question 39Software design and development

A function takes an array of n integers and, for each element, performs a constant-time operation. Which time complexity class best describes it?

  1. O(log n)
  2. O(n squared)
  3. O(n) Correct answer.
  4. O(1)

Explanation

The work grows in direct proportion to the number of elements because each element is processed once with constant effort. Constant time would not depend on n, and quadratic time would require nested loops over the array.

Question 40Software design and development

During design, a team decides to hide a class's data fields and allow access only through public methods. Which principle is being applied?

  1. Encapsulation Correct answer.
  2. Abstraction of the user interface
  3. Modular decomposition
  4. Inheritance

Explanation

Encapsulation bundles data with the operations that act on it and restricts direct access, exposing a controlled interface instead. This protects internal state from inconsistent external modification.

Question 41Software design and development

A designer wants to document how a single use case interacts with external actors and the system boundary. Which UML diagram is most appropriate?

  1. A state machine diagram
  2. A use case diagram Correct answer.
  3. A deployment diagram
  4. A class diagram

Explanation

Use case diagrams show actors outside the system boundary and the use cases they participate in, which captures functional scope from a user perspective. Class, state and deployment diagrams focus on structure, object states and hardware respectively.

Question 42Software design and development

A team must choose between two designs. Design A has high cohesion and low coupling; Design B has low cohesion and high coupling. Which claim is best supported?

  1. Design A will generally be easier to maintain and modify. Correct answer.
  2. Design B will generally be easier to test in isolation.
  3. Design B will require fewer classes in total.
  4. Design A will always execute faster at run time.

Explanation

High cohesion and low coupling make modules easier to understand, test and change because responsibilities are focused and dependencies are limited. Run-time speed and class count are not determined by these quality measures.

Question 43Software design and development

Which statement best describes a functional decomposition of a software system?

  1. Breaking the system into modules based on the major tasks it performs Correct answer.
  2. Breaking the system into modules based on the teams that will build them
  3. Breaking the system into modules based on the order they will be coded
  4. Breaking the system into modules of equal line count

Explanation

Functional decomposition divides a system according to the functions or tasks it must carry out, producing modules that map to identifiable behaviour. Organisational, chronological or size-based splits do not reflect the system's responsibilities.

Question 44Software design and development

A developer applies the open-closed principle. Which outcome should be expected?

  1. Every class must be declared final so it cannot be extended.
  2. All classes are merged into a single module to reduce files.
  3. New behaviour can be added by extending the design without modifying existing tested code. Correct answer.
  4. Changes to requirements are refused once coding begins.

Explanation

The open-closed principle states that software entities should be open for extension but closed for modification, so new features are added through new code rather than edits to stable code. This limits the risk of breaking existing behaviour.

Question 45Software design and development

A designer is documenting a process that receives a customer order, validates it, checks stock and then issues a confirmation. Which modelling tool best captures this ordered flow of decisions and actions?

  1. An entity relationship diagram
  2. A flowchart Correct answer.
  3. A Gantt chart
  4. A class diagram

Explanation

A flowchart represents the sequence of steps, decisions and their branches in a process using standard symbols. Entity relationship diagrams model data, class diagrams model types, and Gantt charts schedule tasks.

Question 46Software design and development

A system has a module that reads sensor values, another that filters them and another that stores them. Which design property does this arrangement illustrate?

  1. Inheritance because the modules share an interface
  2. High coupling because the modules are separate
  3. Low cohesion because each module is small
  4. High cohesion because each module has one clear responsibility Correct answer.

Explanation

Each module concentrates on a single well-defined task, which is the definition of high cohesion. Separating responsibilities also tends to reduce coupling rather than increase it.

Question 47Software design and development

A class named OrderService both calculates shipping costs and persists orders to a database. Which design principle does this most clearly violate?

  1. The single responsibility principle Correct answer.
  2. The dependency inversion principle
  3. The principle of least astonishment
  4. The Liskov substitution principle

Explanation

The single responsibility principle holds that a class should have one reason to change. Combining pricing logic with persistence gives the class two unrelated reasons to change, so it should be split.

Question 48Software design and development

A team building an online booking system must guarantee that two customers cannot reserve the same seat at the same time. Which design concern does this requirement primarily raise?

  1. Source code formatting standards
  2. Concurrency control over shared state Correct answer.
  3. Choice of programming paradigm
  4. User interface styling consistency

Explanation

Simultaneous requests that modify the same seat record create a race condition, so the design needs concurrency control such as locking or transactions. Styling, formatting and paradigm choice do not prevent conflicting simultaneous updates.

Question 49Software design and development

A designer proposes introducing a dependency injection container so that a service receives its collaborators through its constructor rather than creating them internally. Which benefit is most directly achieved?

  1. The number of classes in the system is reduced.
  2. The program uses less memory at run time.
  3. The service no longer needs any interfaces.
  4. The service becomes easier to test because substitutes can be supplied. Correct answer.

Explanation

Passing collaborators in through the constructor lets tests supply substitutes such as stubs or mocks, which improves testability and lowers coupling to concrete implementations. It does not inherently reduce memory use or class count.

Question 50Software design and development

A team is designing a system that must remain available while individual servers fail. Which architectural choice best supports this requirement?

  1. Redundant service instances behind a load balancer Correct answer.
  2. A monolithic process with no health monitoring
  3. A single central server holding all state
  4. A design that stores state only in local memory

Explanation

Running redundant instances behind a load balancer allows traffic to be redirected when one instance fails, supporting availability. Centralised single points of failure and memory-only state increase the impact of any failure.