Software Engineering › Past questions › 2024
Past questions: 2024
9 questions.
2024 6 marks Extended response The Software Engineering Project (Year 12) Teams and Gantt charts
NESA 2024 HSC Software Design and Development (OLD syllabus) - Section II Question 21, with NESA Marking Guidelines
An online application is required by the end of the school year to provide school students with information about travel opportunities. It will provide images and video clips, and will be produced by a team of developers. (a) | Outline TWO benefits of using a team of developers to develop this application. | 3 (b) | Describe how a Gantt chart could be used to manage the development of this | 3 application.
Marking criteria
[Question 21 (a)] Criteria | Marks • Outlines TWO benefits of using a team of developers | 3 • Identifies TWO benefits OR | 2 • Outlines ONE benefit • Identifies ONE benefit | 1 Criteria | Marks • Describes the use of a Gantt chart in the management of this project | 3 • Shows some understanding of the use of a Gantt chart | 2 • Provides some relevant information | 1
Sample answer
Sample answer: Since the resource will involve working with images, video and itineraries, a larger development team will ensure that people with appropriate skills can be utilised. As the resource is needed by the end of the school year, it can be assumed that a short development time is needed. A larger team may be able to meet time restraints.
[Question 21 (b)] Sample answer: A Gantt chart allows individual tasks to be scheduled (such as creation of video clips) and allocated to members of the development team with the required skills. It will enable the project manager to schedule the work required to complete all of the components by the required deadline. It allows the project manager to visually see the timeline and task dependencies and respond appropriately if there are delays.
2024 11 marks Extended response The Software Engineering Project (Year 12) Documentation, data dictionary, testing (shopkeeper website)
NESA 2024 HSC Software Design and Development (OLD syllabus) - Section II Question 22, with NESA Marking Guidelines
A shopkeeper employs a developer to create a website to enable customers to buy items online. (a) | Why is it important for the developer to consult the shopkeeper at the start of | 2 the development process? (b) | Distinguish between user documentation and technical documentation for this | 3 website. (c) | Complete the partial data dictionary for this website. | 3 Data item | Data type | Storage size | Description | Examples bits/bytes Surname | String | 40 bytes | Surname of | Faruga customer ItemName | 20 bytes | Name of item 2 L skim milk Quantity | Number of | 4 items Order | Details of | Dozen eggs | 1 $5.00 items in the | Flour 1 kg | 2 $2.00 order | 2 L skim milk 4 $3.50 TotalCost | 4 bytes | Total amount due Paid? | Has payment been made? (d) | Recommend TWO ways that the developer can test this website prior to | 3 implementation.
Marking criteria
[Question 22 (a)] Criteria | Marks • Provides reason(s) for consulting the shopkeeper | 2 • Provides some relevant information | 1 Criteria | Marks • Distinguishes between user and technical documentation for this system | 3 • Outlines aspects of both user and technical documentation | 2 • Shows some understanding of documentation | 1 Criteria | Marks • Provides a substantially correct data dictionary | 3 • Provides some correct entries | 2 • Provides some relevant information | 1 Criteria | Marks • Recommends TWO ways of testing this website | 3 • Outlines TWO relevant ways of testing OR | 2 • Recommends ONE relevant way of testing • Shows some understanding of testing | 1
Sample answer
Sample answer: The developer should interview the shopkeeper to determine the required time frame and budget. The developer could gather data about the nature of the business and products available, enabling them to create a system that will meet their needs.
[Question 22 (b)] Sample answer: User documentation is specifically designed to assist the customer in accessing the system and purchasing groceries and will be in the form of online documentation, accessed through a help function. Technical documentation is aimed at recording the software development process to assist both in development and in subsequent maintenance. This can include modelling tools, records of testing procedures and algorithms.
[Question 22 (c)] Sample answer: Data Item | Data type | Storage | Description | Examples size bits/bytes Surname | String | 40 bytes | Surname of | Faruga customer Item name | String | 20 bytes | Name of item | 2 L full cream milk Quantity | Integer | 2 bytes | Number of | 4 items Order | Array of records | Details of | Dozen eggs 1 $5.00 items in the | Flour 1 kg | 2 $2.00 order 2 L skim milk 4 $3.50 Total cost | Floating point | 4 bytes | Total amount | $45.20 due Paid? | Boolean | 1 byte | Has payment | T (or Y) been made
[Question 22 (d)] Sample answer: Once the website is hosted on a server, access should be tested using multiple devices with a variety of transactions. This would enable the ability of the website and the system to cope with the anticipated volume and variety of interactions without having to make it available to the broader public. It is important that the website produces correct totals for orders. This can be checked by entering carefully selected test data and comparing actual output with expected output.
2024 6 marks Extended response The Software Engineering Project (Year 12) Desk check and debugging an algorithm
NESA 2024 HSC Software Design and Development (OLD syllabus) - Section II Question 23, with NESA Marking Guidelines
The following algorithm was written to find the average mark and the maximum mark in a school assessment. The assessment marks are stored in a sequential file called MarksData. 10 | BEGIN Analysis 20 | Max = 100 30 | Num_Students = 0 40 | Open MarksData for input 50 | Read Mark from MarksData 60 | WHILE NOT EOF 70 | IF Mark > Max THEN 80 | Max = Mark 90 | ENDIF 100 | Add 1 to Num_Students 110 | Average = Mark/Num_Students 120 | Read Mark from MarksData 130 | END WHILE 140 | Display Max, Average 150 | Close MarksData 160 | END Analysis The algorithm does not produce the expected output. The file MarksData contains the values: (a) | Complete a desk check for this algorithm using the values stored in MarksData. | 3 (b) | Suggest how the algorithm can be modified so that it achieves the correct | 3 output. You may refer to line numbers in your response.
Marking criteria
[Question 23 (a)] Criteria | Marks • Completes a substantially correct desk check | 3 • Completes a partially correct desk check | 2 • Provides some relevant information | 1 Criteria | Marks • Provides the necessary modifications | 3 • Provides ONE correct modification OR | 2 • Identifies TWO errors • Provides some relevant information | 1
Sample answer
Sample answer: Max | Num_Students | Mark | Average | Output 4 | 10 | 100, 10
[Question 23 (b)] Sample answer: Line 20 should be Max = 0 Line 15 Sum = 0 Line 95 Sum = Sum + Mark Line 110 change to Average = Sum/Num_Students
2024 10 marks Extended response The Software Engineering Project (Year 12) Modelling (IPO, DFD); Secure Software Architecture / Social and ethical issues
NESA 2024 HSC Software Design and Development (OLD syllabus) - Section II Question 24, with NESA Marking Guidelines
In some areas, drivers need to use an app on their phone to pay for parking. This app allows the driver to: • create an account using their car registration number and banking details • start and end each parking session by pressing START and END buttons • pay for parking using the stored banking details. For each parking session, the app records the start and end times, calculates the cost of parking, accepts payment and stores the details remotely. The cost of parking is calculated using the hourly rate and the time spent. The hourly rate is determined by the location of the car. (a) | Construct an IPO diagram for the module that calculates the cost of parking. | 3 (b) | Construct a data flow diagram (DFD) to document the complete app as | 4 described. (c) | Describe how the developer might have addressed ONE inclusivity concern and | 3 ONE privacy concern associated with the use of this app.
Marking criteria
[Question 24 (a)] Criteria | Marks • Constructs a correct IPO diagram for this module | 3 • Constructs a partially correct IPO diagram | 2 • Provides some relevant information | 1 Criteria | Marks • Constructs a substantially correct data flow diagram that includes processes, data flows, storage and external entities • Constructs a data flow diagram that is relevant to the parking app and includes an external entity and most of the processes and data flows • Constructs a data flow diagram with some elements relevant to the parking app • Shows a basic understanding of data flow diagrams | 1 Criteria | Marks • Describes actions that address an inclusivity issue AND a privacy issue for this system • Outlines an action that addresses an inclusivity issue OR a privacy issue | 2 • Shows some understanding of inclusivity or privacy issues | 1
Sample answer
Sample answer: I | P | O Location | Determine rate | Rate Start_time | Cost = (End_time − Start_time)* Rate | Cost End_time Rate
[Question 24 (b)] Sample answer:
[Question 24 (c)] Sample answer: Drivers may use a range of devices. This is an inclusivity issue that the developer could have addressed by ensuring that this new system is available across all common platforms and screen sizes. A privacy concern arises if unauthorised people access the generated data about drivers’ movements. The developer could have implemented a security process that guards against external access to the stored banking details.
2024 4 marks Extended response The Software Engineering Project (Year 12) Documentation
NESA 2024 HSC Software Design and Development (OLD syllabus) - Section II Question 25, with NESA Marking Guidelines
A software company is developing a system that will require a large development | 4 team. They have decided to use their own developers, and hire additional contract programmers when necessary. Explain how various types of documentation can be used by the contract programmers to enable them to quickly contribute to the project.
Marking criteria
[Question 25] Criteria | Marks • Explains the use of various types of documentation by the contract programmer • Describes a number of relevant types of documentation OR | 3 • Explains the use of ONE type of documentation • Outlines some relevant types of documentation | 2 • Provides some relevant information | 1
Sample answer
Sample answer: By referring to technical documentation such as DFDs, algorithms and structure charts, the contract programmer can familiarise themselves with how their particular module fits into the overall project. They can read existing source code to see the purpose of various modules and lines of code. This allows them to make necessary changes to ensure the new code is compatible with the existing code. A Gantt chart can be used to see the expected timing for their allocated tasks so they can plan their workflow. A data dictionary can be referred to, to confirm the use of particular variables.
2024 6 marks Extended response The Software Engineering Project (Year 12) Context diagram; subroutines
NESA 2024 HSC Software Design and Development (OLD syllabus) - Section II Question 26, with NESA Marking Guidelines
Many software applications use a software generated test to deter automated spam attacks by confirming that data is being entered by a human. An example of such a test, named CheckIfHuman, is shown. Type the characters shown above: CONTINUE The user is required to type the displayed characters into the dialogue box. The system checks if there is a match, and generates a flag. (a) | Create a context diagram to model the CheckIfHuman test. | 2 (b) | In the following code, CheckIfHuman is called to confirm that the correct text | 4 characters have been entered before proceeding. BEGIN Main OK = TRUE REPEAT HumanDetected = CheckIfHuman IF HumanDetected THEN DisplayMessage (HumanDetected) DoMainProcessing OK = TRUE ELSE DisplayMessage (HumanDetected) OK = FALSE ENDIF UNTIL OK = TRUE END Main Explain why it is important that CheckIfHuman and DisplayMessage are implemented as subroutines for this application.
Marking criteria
[Question 26 (a)] Criteria | Marks • Creates a substantially correct context diagram | 2 • Creates a recognisable attempt at a context diagram | 1 Criteria | Marks • For BOTH subroutines, explains the importance of implementing the logic as subroutines • For ONE of the subroutines, explains the importance of implementing the logic as a subroutine • Outlines ONE advantage of using a subroutine | 2 • Demonstrates some understanding of subroutines | 1
Sample answer
Sample answer:
[Question 26 (b)] Sample answer: It is useful to define CheckIfHuman as a subroutine to allow for further developments in the relevant technology. It is a trivial matter to replace the current logic for the subroutine with code that utilises the new technology, while still providing the same output, ie a success flag. DisplayMessage appears to be a generic subroutine that appropriately formats and displays a relevant message. This makes it easy to change the overall format of the display if required, once only, in the updated subroutine. It is also easy to allow for the inclusion of a much larger range of messages in the future, simply by increasing the numbers of variables that are appropriately initialised and passed to the subroutine.
2024 3 marks Extended response The Software Engineering Project (Year 12) Reading and modifying an algorithm
NESA 2024 HSC Software Design and Development (OLD syllabus) - Section II Question 27, with NESA Marking Guidelines
A palindrome is a word that reads the same forward and backward, such as the words | 3 ‘refer’ and ‘noon’. The following code fragment checks whether a word is a palindrome. 1 | BEGIN PalindromeCheck(word, palindrome) 2 | palindrome = TRUE 3 | F=1 4 | N = number of letters in word 5 | L=N 6 | REPEAT th | th 7 | IF F letter of word is not equal to L letter of word THEN 8 | palindrome = FALSE 9 | END IF 10 | L = L–1 11 | F = F+1 12 | UNTIL F > N 13 | RETURN palindrome 14 | END PalindromeCheck There are no errors in the code fragment. Explain the effect of changing line 12 to the following code. 12 | UNTIL F > N/2 OR palindrome = FALSE
Marking criteria
[Question 27] Criteria | Marks • Provides correct explanations for BOTH modifications | 3 • Provides a correct explanation for ONE modification | 2 • Demonstrates some understanding of the algorithm | 1
Sample answer
Sample answer: UNTIL F>N/2 – once the process has reached halfway, the same checks would be repeated unnecessarily. Adding ‘OR palindrome = FALSE’ – there is no need to keep checking once a non-matching letter is found. In both cases, the loop can be exited early, improving efficiency.
2024 3 marks Extended response The Software Engineering Project (Year 12) Debugging output statements v breakpoints
NESA 2024 HSC Software Design and Development (OLD syllabus) - Section II Question 28, with NESA Marking Guidelines
Distinguish between the use of debugging output statements and breakpoints when | 3 developing a software solution.
Marking criteria
[Question 28] Criteria | Marks • Distinguishes between the use of breakpoints and debugging output statements • Describes the use of breakpoints OR debugging output statements OR • Outlines reasons for the use of breakpoints AND debugging output statements • Provides some relevant information | 1
Sample answer
Sample answer: A debugging output statement is added to the code by the developer and can be used to indicate that a certain section of code has been reached or to show the contents of a variable at any specific stage of execution. A debugging output statement does not interrupt execution. A breakpoint can be added by the developer to halt execution and to allow the programmer to then check the value of specific variables or to step through the program line by line from then on.
2024 7 marks Extended response The Software Engineering Project (Year 12) Algorithm design (random allocation); testing with stubs
NESA 2024 HSC Software Design and Development (OLD syllabus) - Section II Question 30, with NESA Marking Guidelines
For a particular concert, there are 10 000 tickets available, and 2000 customers wanting to buy tickets. Customers are allocated tickets randomly. Customers are required to indicate the number of tickets they would like to purchase, up to a limit of 8. Seats are not allocated until all ticket requests have been entered. Details of the 2000 customers are already stored, in no particular order, in an array of records called Customer_Array. Each customer record has the following structure: Cust_ID | : String Name | : String Num_Tickets : Integer Allocated | : Boolean (becomes TRUE when tickets have been allocated) For example: Cust_ID | Name | Num_Tickets | Allocated Wong4567 | Wong, F | 1 | FALSE Jones34 | Jones, Q | 3 | FALSE (a) | An algorithm called AllocateTickets is required to allocate ticket numbers to | 5 customers. Customers are selected at random to receive their requested tickets until all available tickets are allocated. The tickets allocated will always be sequentially numbered. The Cust_ID of the chosen customers are stored next to the relevant ticket number in a 10 000-element array of records called Ticket_Array. For example: TicketNumber | AllocatedCustomer 1 | Jones34 2 | Jones34 3 | Jones34 4 | Abu507 5 | Abu507 9998 | Wong4567 9999 | Rakash234 10000 | Rakash234 As the last tickets are allocated, a customer may not get all the tickets they have requested (as there may be no more tickets left). Some customers may not be allocated any tickets at all. In the example shown above, even if Rakash234 requested five tickets, there will only be two allocated because that is all that is left. Design an appropriate algorithm for AllocateTickets. You may use this function: • Rand (Min, Max) generates a random integer between Min and Max, inclusive (b) | The algorithm AllocateTickets, as described in part (a), is implemented as code. | 2 Explain why the function Rand(), as described in part (a), cannot be a stub during the testing of this code. 2024 HIGHER SCHOOL CERTIFICATE EXAMINATION Centre Number Software Design and Development | Student Number
Marking criteria
[Question 30 (a)] Criteria | Marks • Provides a substantially correct algorithm that includes the following features: – Randomly allocates customers one at a time from the customer array using a loop | 5 – Allocates the correct number of tickets – Updates array(s) correctly – Deals correctly with last few remaining tickets • Provides an algorithm that addresses most of the key aspects of the problem • Provides an algorithm that addresses some key aspects of the problem | 3 • Provides an algorithm that shows some understanding of the problem | 2 • Shows some understanding of the problem | 1 Criteria | Marks • Provides an explanation of the use of this stub in testing | 2 • Shows some understanding of a stub | 1
Sample answer
Sample answer: BEGIN AllocateTickets TixIndex = 1 WHILE TixIndex < 10000 Pos = Rand (1, 2000) IF (CustomerArray[Pos].Allocated = FALSE) THEN IF (TixIndex + CustomerArray[Pos].Num_Tickets > 10000) THEN NumToInsert = 10000 – TixIndex ELSE NumToInsert = CustomerArray[Pos].Num_Tickets ENDIF UserToInsert = CustomerArray[Pos].CustId Allocate(UserToInsert, NumToInsert, TixIndex) CustomerArray[Pos].Allocated = TRUE ENDIF ENDWHILE END AllocateTickets BEGIN Allocate(CustId, Num_Tickets, TixIndex) FOR i = 1 to Num_Tickets Ticket_Array[TixIndex].AllocatedCustomer = CustId Add 1 to TixIndex NEXT i END Allocate
[Question 30 (b)] Sample answer: For the function Rand(), it is critical that it returns relevant values (in this case a random number in the specified range). It is not possible to write a stub that can pass back the required values to fully test the main program logic without including the logic to generate the random numbers required by the calling program, to enable it to allocate tickets meaningfully.