TK Study

Software Engineering › Notes › Master model answers: The Software Engineering Project (written answers)

Master model answers: The Software Engineering Project (written answers)

Topics in this module

sdd2022-q30 (5 marks, short answer / extended)

Topic: Algorithm design (arrays). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

Results( ) is an array containing 200 records. | 5 The following table shows a sample of the array contents. Index | Name | Score 1 | Jones B | 23 2 | Ali B | 45 3 | Morris S | 8 4 | Nguyen T | 45 200 | Shankar R | 8 Write an algorithm that: • displays the highest score and the names of all people who have that score • displays the second highest score and the names of all people who have that score.

Marking criteria (NESA)

[Question 30] Criteria | Marks • Provides a substantially correct algorithm that addresses the following features: – Initialises highest score – Determines highest score by looping through the array – Displays the highest score – Loops through the whole array, printing names of all players with the highest score – Repeats the above for the second highest score • Provides a substantially correct algorithm that addresses most of the features • Provides an algorithm that attempts to address some of the features | 3 • Provides an algorithm that attempts to address a feature | 2 • Shows some understanding of the problem | 1

Model answer (NESA sample answer / MG)

Sample answer:
BEGIN
first = 0
second = 0
FOR i = 1 to 200
IF Results.Score(i) >= first THEN
first = Results.Score(i)
ELSE
IF Results.Score(i) > second THEN
second = Results.Score(i)
ENDIF
ENDIF
NEXT
print "Highest score was " first
FOR i = 1 to 200
IF Results.Score(i) = first THEN
print = Results.Name(i)
ENDIF
NEXT
print "Second highest score was " second
FOR i = 1 to 200
IF Results.Score(i) = second THEN
print = Results.Name(i)
ENDIF
NEXT
END

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2021-q26 (4 marks, short answer / extended)

Topic: Algorithm design (guessing game). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

In a game called Guess My Number, a player plays against the computer. | 4 • The computer generates a random integer, between 1 and 100 inclusive. • The player enters guesses until they are correct or have made 10 guesses. • The output for each guess will be ‘Too high’, ‘Too low’ or ‘Correct’. • After 10 unsuccessful guesses the number is displayed with the message ‘Sorry, too many guesses’. Design an algorithm for this game, using the function RandomNumber to generate a random integer between 1 and 100.

Marking criteria (NESA)

[Question 26] Criteria | Marks • Provides a substantially correct algorithm that includes the following features: – Generates a valid random integer – Enters guess – Checks guess and displays message – Loops correctly – Exits loop appropriately – Deals with 10 incorrect guesses appropriately • Provides an algorithm that addresses most of the features | 3 • Provides an algorithm that addresses some features | 2 • Shows some understanding of the problem | 1

Model answer (NESA sample answer / MG)

Sample answer:
BEGIN GuessMyNumber
NumGuesses = 0
Done = FALSE
Num = RandomNumber
WHILE Done = FALSE and NumGuesses < 10
Input YourGuess
NumGuesses = NumGuesses + 1
IF YourGuess = Num THEN
Display “Correct!”
Done = TRUE
ELSE
IF YourGuess > Num THEN
Display “Too High!”
ELSE
Display “Too Low!”
ENDIF
ENDIF
ENDWHILE
IF Done = FALSE THEN
Display Num , “Sorry, too many guesses”
ENDIF
END GuessMyNumber

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2023-q30 (3 marks, short answer / extended)

Topic: Algorithm design (menu). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

The following storyboard shows the navigation for a simple menu structure. | 3 MENU Screen 1 | Screen 1 | Screen 2 | Screen 2 Done | Done Screen 3 | Screen 4 Screen 3 | Screen 4 Quit Done | Done Quit A click on a button on the menu screen generates an appropriate number (from 1 to 4, or 9 if Quit is clicked) which is stored in the variable ButtonClick. A click anywhere else on the screen generates a 0. Write an algorithm for the menu screen that allows a user to access the other screens, exiting when the Quit button is clicked. Do NOT include the logic for any of the other screens.

Marking criteria (NESA)

[Question 30] Criteria | Marks • Provides a substantially correct algorithm that addresses the following features: – Display menu screen – Get a non-zero ButtonClick – Perform correct subroutine – Loop until Quit (9) is selected • Provides an algorithm that attempts to address some of the features | 2 • Demonstrates some understanding of the problem | 1

Model answer (NESA sample answer / MG)

Sample answer: BEGIN Menu REPEAT Display MenuScreen REPEAT Get ButtonClick UNTIL ButtonClick <> 0 CASEWHERE ButtonClick is 1 | : Screen1 2 | : Screen2 3 | : Screen3 4 | : Screen4 Otherwise : | Quit ENDCASE UNTIL ButtonClick = 9 END Menu

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2024-q30 (7 marks, short answer / extended)

Topic: Algorithm design (random allocation); testing with stubs. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

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 (NESA)

[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

Model answer (NESA sample answer / MG)

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.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2021-q30 (4 marks, short answer / extended)

Topic: Algorithm design (string matching). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

A subroutine IsMatch(string, BigString) is needed to check if a string is found in a bigger | 4 string. The following library routines are available: • length(string) which returns the number of characters in the string • extract(string, start, length) which extracts length characters from string beginning at character start. If text = ‘software’, then extract(text, 2, 4) will return ‘oftw’. Design the algorithm for IsMatch(string, BigString).

Marking criteria (NESA)

[Question 30] Criteria | Marks • Provides a substantially correct algorithm that includes the following features: – Looks for a match in the description | 4 – Checks the required number of characters – Uses the library routines appropriately • Provides an algorithm that addresses most of the features | 3 • Provides an algorithm that attempts to address some features | 2 • Shows some understanding of the problem | 1

Model answer (NESA sample answer / MG)

Sample answer:
BEGIN IsMatch (string, BigString )
Located = FALSE
NumToCheck = length (BigString) – length (string) + 1
FOR j = 1 to NumToCheck
Check = extract (BigString, j, length (string))
IF Check = string THEN
Located = TRUE
ENDIF
NEXT j
RETURN Located
END IsMatch

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2023-q26 (9 marks, extended)

Topic: Code reading, maintainability and testing. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

Consider the following module. 1 | BEGIN CustomerOrders 2 | REPEAT 3 | Tries = Tries + 1 4 | Get UserId, Password 5 | CheckPasswordCorrect (UserId, Password, OK) 6 | UNTIL Tries > 3 OR OK = “Y” 7 | IF OK = “Y” THEN 8 | Open TodaysOrders for Input 9 | Read the next record from TodaysOrders into Order_Rec 10 | WHILE NOT EOF 11 | IF Order_Rec.CustId = UserId THEN 12 | PrintDetailsofOrder (Order_Rec) 13 | ENDIF 14 | Read the next record from TodaysOrders into Order_Rec 15 | ENDWHILE 16 | Close TodaysOrders 17 | ELSE 18 | InvalidUser (UserId) 19 | ENDIF 20 | END CustomerOrders (a) | Why is the Read statement needed in both line 9 and line 14? | 2 (b) | Give TWO reasons why the code in the CustomerOrders module is easy to | 3 maintain. Support your answer with examples from the module. (c) | The logic in the CustomerOrders module has been successfully tested with small | 4 files of test data, and using stubs in lines 5, 12 and 18. The module is to be included in a larger system, with the stubs replaced with existing subroutines that are known to work. Explain why both module and system testing are now required.

Marking criteria (NESA)

[Question 26 (a)] Criteria | Marks • Demonstrates a sound understanding of why both Read statements are needed • Demonstrates some understanding of a read statement | 1 Criteria | Marks • Provides TWO reasons why the code is easy to maintain • Includes examples from the code • Provides ONE reason why the code is easy to maintain, using an example from the code OR • Provides TWO reasons why the code is easy to maintain • Demonstrates some understanding of code maintenance | 1 Criteria | Marks • Provides a thorough explanation of the need for both module and system testing in this scenario • Demonstrates a sound understanding of the need for module and system testing • Demonstrates some understanding of module and/or system testing | 2 • Demonstrates some understanding of testing | 1

Model answer (NESA sample answer / MG)

Sample answer: Line 9 provides a priming read from the file and thus enables the EOF condition in line 10 to be tested, allowing for an empty file. Line 14 provides subsequent records for processing and provides the terminating condition when there are no more records.

[Question 26 (b)] Sample answer: The use of meaningful variable and module names, such as UserID and CheckPasswordCorrect, assists maintenance programmers to quickly understand the purpose of the code. Including calls to subroutines in lines 5 and 12 enables maintenance programmers to easily locate the detailed logic that may need to change.

[Question 26 (c)] Sample answer: Module testing will confirm that the module works, including the logic of the called modules with parameters being passed appropriately, for example when calling CheckPasswordCorrect with its three parameters. During system testing, live data will provide expected volumes of data which may show potential issues with performance and response times when accessing both files. Live data also ensures that unexpected combinations of data are well handled compared to the minimal conditions when using selected test data. It also tests for missing files or inappropriate file types or record formats.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sample-q4 (1 marks, multi-select)

Topic: Collaboration. Source: NESA Sample Exam marking guidelines.

Question

Which of the following are benefits of collaborating with others when developing software solutions? (More than one may be selected.) Privacy is improved / Security of data is increased / Intellectual property is protected / Different points of view can be considered / Tasks can be delegated to those with expertise

Marking criteria (NESA)

1: Correctly identifies the benefits.

Model answer (NESA sample answer / MG)

Different points of view can be considered. Tasks can be delegated to those with expertise.

sdd2023-q22 (3 marks, short answer / extended)

Topic: Communication with clients; development cycle. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

Explain why it is important for developers to communicate with their clients. Refer to | 3 specific stages of the software development cycle in your answer.

Marking criteria (NESA)

[Question 22] Criteria | Marks • Explains the importance of communication over different stages in the software development cycle • Provides ONE benefit of communication, with reference to a stage in the software development cycle OR • Provides some benefits of communication • Demonstrates some understanding of the need for communication in software development

Model answer (NESA sample answer / MG)

Sample answer: Without a clear understanding of client needs and without ongoing communication during the defining and planning stages, there is a risk that the final product does not meet their needs or that it becomes increasingly expensive to make necessary changes. Communication with the client during the testing stage is important in the development of relevant test data and for thorough evaluation of the software.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2024-q26 (6 marks, short answer / extended)

Topic: Context diagram; subroutines. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

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 (NESA)

[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

Model answer (NESA sample answer / MG)

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.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2022-q29 (3 marks, short answer / extended)

Topic: Data types. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

Using an example, explain why programmers need to use different data types in their | 3 code.

Marking criteria (NESA)

[Question 29] Criteria | Marks • Explains why programmers need to use different data types, and provides an example • Provides a basic explanation of different data types | 2 • Demonstrates some understanding of data types | 1

Model answer (NESA sample answer / MG)

Sample answer: Different data types are stored and used in different ways. By defining a variable as a particular data type, the programmer can make use of the data in an appropriate way. For example, text data types can have characters appended to them or extracted from them, and are stored in ASCII format with one byte per character, but cannot be used in arithmetic calculations.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2021-q28 (5 marks, short answer / extended)

Topic: Debugging an algorithm (binary search). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

A student, attempting to perform a binary search on an array called List with 7 elements, wrote the following algorithm. The algorithm contains errors. 1 | BEGIN Search 2 | low = 1 3 | high = 7 4 | found = FALSE 5 | input SearchItem 6 | WHILE found = FALSE AND high > low 7 | index = integer part of (low + high)/2 8 | IF SearchItem = List(index) THEN 9 | found = TRUE 10 | ELSE 11 | IF SearchItem < List(index) THEN 12 | high = index 13 | ELSE 14 | low = index 15 | ENDIF 16 | ENDIF 17 | ENDWHILE 18 | IF found = TRUE THEN 19 | print “Found at ”, index 20 | ELSE 21 | print “Not found” 22 | ENDIF 23 | END Search (a) | The contents of List are shown. | 3 index | 1 | 2 | 3 | 4 | 5 | 6 | 7 List | 33 | 38 | 40 | 44 | 50 | 60 | 75 Perform a desk check of the algorithm using the value 42 for SearchItem. (b) | The logic is not correct in lines 12 and 14 of the algorithm. | 2 Modify these lines so that the logic is correct.

Marking criteria (NESA)

[Question 28 (a)] Criteria | Marks • Provides a substantially correct desk check, indicating a never-ending loop • Provides a partially correct desk check | 2 • Shows some understanding of desk checking | 1 Criteria | Marks • Correctly modifies both lines | 2 • Demonstrates some understanding of the problem | 1

Model answer (NESA sample answer / MG)

Sample answer: Low | High | Found | SearchItem | Index | List(index) | Output 1 | 7 | FALSE | 42 | 4 | 44 Does not end

[Question 28 (b)] Sample answer: Line 12 | high = index –1 Line 14 | low = index +1

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2024-q28 (3 marks, short answer / extended)

Topic: Debugging output statements v breakpoints. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

Distinguish between the use of debugging output statements and breakpoints when | 3 developing a software solution.

Marking criteria (NESA)

[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

Model answer (NESA sample answer / MG)

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.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2023-q28 (6 marks, short answer / extended)

Topic: Desk check and debugging (validation). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

In a retail business, all product codes must start with an uppercase letter and then be followed by one or more lowercase letters. The algorithm below is designed to validate a product code. It contains errors. Note that Extract(string, start, N) returns N characters from a string, starting from position start. Eg Extract(“Names”, 3, 2) returns “me”. Line numbers have been provided for reference. 10 | BEGIN validate 20 | OK = “F” 30 | Get ProductCode 40 | Len = Number of characters in ProductCode 50 | WHILE OK = “F” AND ProductCode < > “Q” 60 | OK = “T” 70 | IF Extract(ProductCode, 1, 1) is not an uppercase letter THEN 80 | OK = “F” 90 | Display “Not uppercase” 100 | ENDIF 110 | FOR Count = 1 to Len 120 | IF Extract(ProductCode, Count, 1) is not a lowercase letter THEN 130 | OK = “F” 140 | Display “Not all lowercase” 150 | ENDIF 160 | NEXT Count 170 | IF OK = “F” THEN 180 | Display “Invalid code” 190 | Get ProductCode 200 | ENDIF 210 | ENDWHILE 220 | END validate (a) | Perform a desk check of the algorithm using the test data “p3”, “Pad”, “Q”, “X”. | 3 OK | ProductCode | Len | Extracted | Count | Display character (b) | The algorithm contains errors. | 3 Identify TWO errors and suggest how they can be corrected. Refer to line numbers in your answer.

Marking criteria (NESA)

[Question 28 (a)] Criteria | Marks • Provides a substantially correct desk check | 3 • Provides a partially correct desk check | 2 • Demonstrates some understanding of the algorithm | 1 Criteria | Marks • Identifies TWO errors and suggests ways to correct them | 3 • Identifies ONE error and suggests a way to correct it OR | 2 • Identifies TWO errors • Identifies an error | 1

Model answer (NESA sample answer / MG)

Sample answer: OK | ProductCode | Len | Extracted | Count | Display character F | p3 | 2 T | p F | Not uppercase p | 1 F | 3 | 2 | Not all lowercase Invalid code F | Pad | P T | P | 1 | Not all lowercase F | a | 2 Invalid code T | Q Note: X is not considered

[Question 28 (b)] Sample answer: At line 110 the FOR/NEXT loop counter should start at 2. The value of Len is not being updated for the next ProductCode. Move line 40 to line 55.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2022-q28 (6 marks, short answer / extended)

Topic: Desk check and debugging an algorithm. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

An algorithm was designed to remove repeating consecutive characters in a phrase, replacing them with a single character. The algorithm: • allows input of a phrase • removes repeated characters • displays the shortened phrase. For example, if the input is ‘aaaabbbaa’ the output will be ‘aba’. Note: The function right (m, n) gets the last n characters of m. There are errors in the algorithm. 1 BEGIN Shorten 2 | input phrase 3 | phrase = phrase + “X” | ‘Adds an X to the end of phrase 4 | Len = number of characters in phrase 5 | NewPhrase = “ ” 6 | REPEAT 7 | done = FALSE 8 | NewPhrase = NewPhrase + 1st character of phrase 9 | REPEAT 10 | IF 1st character of phrase does not equal 2nd character of phrase THEN 11 | done = TRUE 12 | ENDIF 13 | Len = Len - 1 14 | phrase = right (phrase, Len) 15 | UNTIL done = TRUE 16 | UNTIL Len < 1 17 | output phrase 18 | phrase = NewPhrase 19 END Shorten (a) | Perform a desk check of the algorithm using dddg as input. | 3 (b) | Identify and correct any logic errors in the algorithm. You may refer to line | 3 numbers in your response.

Marking criteria (NESA)

[Question 28 (a)] Criteria | Marks • Completes a substantially correct desk check | 3 • Completes a partially correct desk check | 2 • Shows some understanding of desk checking this algorithm | 1 Criteria | Marks • Correctly identifies two errors and changes the code | 3 • Identifies two errors or corrects one error | 2 • Show some understanding of the algorithm | 1

Model answer (NESA sample answer / MG)

Sample answer: phrase | Len | NewPhrase | done | output dddg dddgX | 5 | "" | F d ddgX | 3 dgX | T gX | F dg T X | F dgX Error message? At this point the algorithm is trying to compare X with a character that doesn’t exist.

[Question 28 (b)] Sample answer: Line 16 becomes UNTIL Len < = 1. Swap lines 17 and 18.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2024-q23 (6 marks, short answer / extended)

Topic: Desk check and debugging an algorithm. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

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 (NESA)

[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

Model answer (NESA sample answer / MG)

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

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2022-q25 (11 marks, extended)

Topic: Development approach, implementation, testing, quality of experience. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

A developer has been employed by a local high school to design and develop a study app to track students’ HSC revision routines. The app must be ready as soon as possible. The app will: • provide links to resources for all subjects that the school offers • track the number of hours students are logged in to the site • track the number of past examination papers accessed • allow students to input questions for teachers • send reminders to students who have not used the app. (a) | Recommend and justify a suitable development approach for this HSC revision | 3 app. (b) | Describe ONE benefit of the use of a pilot installation for this HSC revision app. | 2 (c) | Outline TWO reasons why system testing is necessary in the development of | 3 this HSC revision app. (d) | Explain TWO factors outside the developer’s control which can affect the | 3 quality of a user’s experience with this HSC revision app.

Marking criteria (NESA)

[Question 25 (a)] Criteria | Marks • Recommends a suitable development approach for this study app with appropriate justification • Outlines a development approach for the study app with some justification | 2 • Outlines a development approach | 1 Criteria | Marks • Describes ONE benefit of the pilot method of installation for this app | 2 • Shows some understanding of the pilot method of installation | 1 Criteria | Marks • Outlines TWO reasons for system testing of this app | 3 • Identifies TWO reasons for system testing OR | 2 • Outlines ONE reason • Shows some understanding of system testing | 1 Criteria | Marks • Provides an explanation of two factors outside the developers’ control which can affect a user’s experience with this app • Explains ONE factor that can affect a user’s experience OR identifies TWO factors • Demonstrates some understanding of a user’s experience | 1

Model answer (NESA sample answer / MG)

Sample answer: An agile approach will allow improved versions of the app to be available to students in a short time frame. Agile allows for quick delivery of updates of the app, based on feedback from students.

[Question 25 (b)] Sample answer: The software developer could select a small group of students to use the study app and test its functionality and identify any problems, minimising the chance of the released product having errors.

[Question 25 (c)] Sample answer: System testing will enable the study app to be tested in a range of operating systems and user hardware likely to be used by students. It can also be tested more fully by using load testing, with a high transaction rate.

[Question 25 (d)] Sample answer: The quality of a user’s experience could be affected by potential problems with the display on different devices, such as screen size, which could lead to poor legibility or excessive scrolling on small screens. Incompatibility with other software installed on the user’s device could affect the quality of a user’s experience, eg the HSC app may crash.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2024-q25 (4 marks, short answer / extended)

Topic: Documentation. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

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 (NESA)

[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

Model answer (NESA sample answer / MG)

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.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2021-q24 (3 marks, short answer / extended)

Topic: Documentation (log book). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

Outline TWO ways in which a log book may be used to assist in the development of | 3 a software solution.

Marking criteria (NESA)

[Question 24] Criteria | Marks • Outlines TWO ways in which a log book can assist development | 3 • Outlines ONE way in which a log book can assist development | 2 • Identifies a feature of a log book | 1

Model answer (NESA sample answer / MG)

Sample answer: A log book details what a programmer is up, allowing others to take over if that programmer leaves the project. The log book can be used to allow current or future developers to look back on the progress of the development, allowing them to see reasons for various actions that were taken.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2024-q22 (11 marks, extended)

Topic: Documentation, data dictionary, testing (shopkeeper website). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

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 (NESA)

[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

Model answer (NESA sample answer / MG)

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.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2022-q22 (6 marks, short answer / extended)

Topic: Maintenance. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

(a) | Explain the need for maintenance in the software development cycle. | 3 (b) | One way of making future maintenance easier is by using explanatory comments | 3 in the code. Explain TWO other ways in which programmers can write code that makes maintenance of a software system easier.

Marking criteria (NESA)

[Question 22 (a)] Criteria | Marks • Explains the need for maintenance in the software development cycle | 3 • Describes the need for maintenance in the software development cycle | 2 • Provides some relevant information | 1 Criteria | Marks • Explains TWO other ways of writing easily maintainable code | 3 • Explains ONE other way of writing easily maintainable code OR | 2 • Outlines TWO other ways • Demonstrates some understanding of maintenance | 1

Model answer (NESA sample answer / MG)

Sample answer: Maintenance is needed if user requirements change, requiring new functionality in the code. Poor interface design will require relevant modules to be updated. Changes to the data may require extra fields to be defined and used in the code.

[Question 22 (b)] Sample answer: By using one logical task in a single module, it is easier to identify the module that needs to be updated. By inserting blank lines between modules, the source code becomes easier to read and understand.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2024-q24 (10 marks, extended)

Topic: Social and ethical issues. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

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 (NESA)

[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

Model answer (NESA sample answer / MG)

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.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2022-q27 (10 marks, extended)

Topic: Modelling and design (IPO, data structure, Gantt). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

A fast-food ordering system is being developed for a restaurant. Authorised customers will be able to select available food items. The system will: • authenticate the customer • allow the customer to input their food choices • calculate and display the total cost of the food items • determine if the customer qualifies for a 10% discount on their order. This occurs when their total purchases to date exceed $100 • electronically transfer the amount due from the customer’s account to the restaurant’s account • add the total cost of this order to the customer’s total purchases to date. (a) | Create an IPO diagram to represent the required processing in this system. | 4 (b) | Design an appropriate data structure to store customer details for this fast-food | 3 ordering system. Do NOT include food choices in this data structure. (c) | Before the start of the development of this fast-food ordering system, the project | 3 manager was provided with information about the project team, including how many members are available and their skills. Describe how the project manager can use Gantt charts effectively throughout the development of this system.

Marking criteria (NESA)

[Question 27 (a)] Criteria | Marks • Creates a substantially correct IPO diagram, with details for all processes (authentication, purchase, EFT) • Creates a partially correct IPO diagram, with details for most processes | 3 • Demonstrates reasonable understanding of an IPO diagram with at least one process addressed • Demonstrates some understanding of an IPO diagram | 1 Criteria | Marks • Provides an appropriate data structure, with fields, data types and sizes required to complete the specified processing • Provides a substantially correct data structure | 2 • Demonstrates some understanding of an appropriate data structure | 1 Criteria | Marks • Describes the project manager’s use of a Gantt chart throughout the development of this system, with reference to time and skills • Shows some understanding of how a project manager can use a Gantt chart • Provides some relevant information | 1

Model answer (NESA sample answer / MG)

Sample answer:
Input | Process | Output
CustomerId | Use CustomerId to retrieve Customer Record | “No such Customer”
Password | Check entered password matches stored | “Incorrect Password”
Customer File | password
ItemNumber | For each item
Quantity | Use ItemNumber to retrieve Item record from | Display Item.Name,
Item File | Item File | Item.Cost
Cost = Item.Cost * Quantity
TotalCost = TotalCost + Cost
IF TotalCost + Customer.PurchasesToDate >
100 THEN TotalCost = TotalCost ´ 0.9
Add TotalCost to Customer.PurchasesToDate
Rewrite Customer Record | Updated customer file
Display TotalCost
TotalCost | Transfer TotalCost from customer account to | Updated accounts
restaurant account

[Question 27 (b)]
Sample answer:
A record to be stored in the Customer File with at least the following fields:
Customer Id | Text | 6 characters
Password | Text | 20 characters
Total Purchases to date | Real | 4 bytes
BSB | Text | 6 characters
AccountNum | Text | 9 characters

[Question 27 (c)]
Sample answer:
Using a Gantt chart, the project manager needs to identify each required task (such as
authentication, customer input of food choice), allocate a time frame for each and identify the
order and linkages / dependencies between the tasks. The project manager allocates team
members to tasks that meet their skills, while not allocating overlapping tasks to the same
team member.
The project manager can use the Gantt charts to monitor progress, extending individual task
time frames and reallocating team members as required.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2023-q21 (2 marks, short answer / extended)

Topic: Prototypes. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

Outline how a prototype can be used in the development of a software application. | 2

Marking criteria (NESA)

[Question 21] Criteria | Marks • Demonstrates a sound understanding of the use of prototyping | 2 • Demonstrates some understanding of prototyping | 1

Model answer (NESA sample answer / MG)

Sample answer: A prototype can be used to show screen design and navigation, to clarify understanding of the system and get client feedback.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2024-q27 (3 marks, short answer / extended)

Topic: Reading and modifying an algorithm. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

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 (NESA)

[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

Model answer (NESA sample answer / MG)

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.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2024-q21 (6 marks, short answer / extended)

Topic: Teams and Gantt charts. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

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 (NESA)

[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

Model answer (NESA sample answer / MG)

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.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2023-q32 (8 marks, short answer / extended)

Topic: Test data and algorithm design (date validation). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

An algorithm is required to convert a date in DD/MM/YYYY format into its equivalent long date such as 29 October 2023. The entered date will always be 10 characters and in the format DD/MM/YYYY. The date is validated as follows: • the month must be a valid month (from 1 to 12) • the day value must be valid for that month (for example, no more than 28 for February – ignore leap years). (a) | Complete the table with THREE items of test data that test different aspects of | 3 the logic of the algorithm. Test data | Reason for inclusion (b) | Design an algorithm to validate a date in the form DD/MM/YYYY and output the | 5 equivalent long date, eg 29 October 2023. Include all meaningful error messages to assist the user to understand why their entered date is not valid. You may use the following two library routines in your pseudocode: • Extract(string, start, N) eg Extract(“Names”, 3, 2) returns “me” • Value(string) converts a string to its numerical value eg Value(“42”) returns 42. You may use the following two arrays (indexed from 1) in your pseudocode. MonthName | DaysinMonth January | 31 February | 28 March | 31 April | 30 May | 31 June | 30 July | 31 August | 31 September | 30 October | 31 November | 30 December | 31 2023 HIGHER SCHOOL CERTIFICATE EXAMINATION Centre Number Software Design and Development Student Number

Marking criteria (NESA)

[Question 32 (a)] Criteria | Marks • Provides THREE items of test data for different aspects of the algorithm, with corresponding reasons for inclusion • Provides TWO items of test data for different aspects of the algorithm, with some justification • Demonstrates some understanding of test data relevant to this algorithm | 1 Criteria | Marks • Provides a substantially correct algorithm that addresses the following features: – Validates the inputted date – Uses appropriate data structures and library routines – Outputs the correct long date – Provides meaningful error messages • Provides a substantially correct algorithm that addresses most of the features • Provides an algorithm that addresses some of the features | 3 • Provides an algorithm that attempts to address one of the features | 2 • Demonstrates some understanding of the problem | 1

Model answer (NESA sample answer / MG)

Sample answer:
Test data | Reason for inclusion
01/15/2022 | Check that the month is valid (1−12)
31/06/2023 | Check correct number of days in month
19/04/2022 | Verify that correct long date is produced

[Question 32 (b)]
Sample answer:
BEGIN date_conversion
Get InDate
MM = Extract(InDate, 4, 2)
Month = Value (MM)
DD = Extract(InDate, 1, 2)
Days = Value (DD)
YYYY = Extract(InDate, 7, 4)
validmonth = CheckMonth(Month)
IF validmonth THEN
validday = CheckDays(Month, Days)
IF validday THEN
Display DD + “ ” + MonthName(Month) + “ ” + YYYY
ELSE
Display “Your days” + DD “are not valid for your entered month”; MM
ENDIF
ELSE
Display “Your entered month must be a valid number between 1 and 12”
ENDIF
END date_conversion
BEGIN CheckMonth(MM)
flag = 1
IF MM < 1 OR MM > 12 THEN
flag = 0
ENDIF
RETURN flag
END CheckMonth
BEGIN CheckDays(Month, Days)
flag = 1
IF Days > DaysinMonth(Month) OR Days < 1 THEN
flag = 0
END IF
RETURN flag
END CheckDays

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2021-q22 (3 marks, short answer / extended)

Topic: Testing (live test data). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

A large company is developing a system to automatically generate appropriate | 3 responses to common customer queries. Explain why live test data is useful in testing this system.

Marking criteria (NESA)

[Question 22] Criteria | Marks • Explains why live test data is useful in testing this system | 3 • Shows some understanding of live testing | 2 • Identifies a feature of testing | 1

Model answer (NESA sample answer / MG)

Sample answer: Live testing gives confidence that the new system will perform as expected when used in the company’s environment. Specifically, it tests using a large number of typical queries, possible keywords and customers, by making use of real queries. Because live testing also involves volume testing, it will ensure the system can cope with the anticipated number and transaction mix of customer query topics in an appropriate response time.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

hsc2025-q15b (3 marks, short answer)

Topic: Testing and debugging. Source: NESA 2025 HSC exam marking guidelines.

Question (NESA did not publish the exact wording; this is reconstructed from the marking guideline)

[Exact question wording is not published as a paper (online exam). Task as shown by the NESA marking guidelines/mapping grid: outline TWO software debugging tools (criteria wording: 'Outlines TWO relevant software debugging tools')]

Marking criteria (NESA)

3: Outlines TWO relevant software debugging tools. 2: Outlines ONE tool, OR identifies TWO tools. 1: Some relevant information.

Model answer (NESA sample answer / MG)

Breakpoints can be added to specific lines of code to halt program execution, allowing the programmer to check the value of specific variables or to step through the program line by line. Debugging output statements can be added to the code to indicate that a certain section of code has been reached or to show the contents of a variable.

Note: Marker feedback: identify two debugging tools used for LOGIC errors; distinguish logic from syntax errors; distinguish manual testing from software debugging tools.

sdd2021-q29 (3 marks, short answer / extended)

Topic: Tracing an algorithm (linear search). Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

Consider the following linear search algorithm. | 3 BEGIN ‘REM N = number of elements in the array Items Get String Found = FALSE Count = 1 WHILE Count <= N AND Found = FALSE IF Items(Count) = String THEN Display String, “ is in the array” Found = TRUE ENDIF Count = Count + 1 ENDWHILE IF Found = FALSE THEN Display String, “ is not in the array” ENDIF END Identify the variable that is used as a flag and explain how using a flag helps the efficiency of this algorithm.

Marking criteria (NESA)

[Question 29] Criteria | Marks • Identifies the flag and explains how using it helps the efficiency of the algorithm • Identifies the flag and shows some understanding of its effect on the algorithm • Shows some understanding of flags OR the logic of the algorithm | 1

Model answer (NESA sample answer / MG)

Sample answer:
The variable Found is used as the flag. This is set to False until the String is located. The
efficiency is improved by allowing the WHILE loop to be exited as soon as String is located,
thus not requiring any further searching, reducing processing time.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).

sdd2023-q27 (10 marks, extended)

Topic: User interface, structure chart, quality assurance. Source: NESA old SDD HSC marking guidelines (OLD SYLLABUS). OLD SYLLABUS item: use for the technique, not the content.

Question

A parking station requires a software application which allows customers to make an online booking for a parking space. (a) | When making a booking online, customers will input: | 3 • | date • | time of entry • | time of exit • | car number plate eg SDD223 • | large or small vehicle. Design a user interface for capturing these booking details, using appropriate screen design elements. Customers will be charged at an hourly rate, based on their actual entry and exit times. When a customer arrives at the parking station, the car number plate will be scanned. The system uses this to retrieve their booking record, and update it with the current time. The boom gate then opens to allow entry. On leaving the car park, the car number plate is scanned. The system retrieves the booking record and calculates the cost using the hourly rate. The customer swipes their credit card, their account is debited and the boom gates open. (b) | Construct a structure chart to represent this system. | 4 (c) | Describe how this system can be evaluated with reference to TWO quality | 3 assurance criteria.

Marking criteria (NESA)

[Question 27 (a)] Criteria | Marks • Produces a well-designed interface which uses appropriate screen design elements • Produces an interface with some appropriate elements | 2 • Provides a diagram that demonstrates some understanding of the system Criteria | Marks • Produces a substantially correct structure chart that represents the system • Produces a structure chart that represents most components of the system • Produces a chart with some relevant components | 2 • Provides a diagram that demonstrates some understanding of the system Criteria | Marks • Describes how the system can be evaluated with reference to TWO appropriate quality assurance criteria • Shows some understanding of quality assurance | 2 • Provides some relevant information | 1

Model answer (NESA sample answer / MG)

Sample answer:

[Question 27 (b)] Sample answer:

[Question 27 (c)] Sample answer: The functionality of the system could be evaluated by viewing samples of transactions and checking that the correct fees were charged, based on the recorded entry and exit times. The ease of use of the system could be evaluated by presenting a sample of users with a survey requiring them to comment on their experiences of the process and analysing the responses.

Note: Old-syllabus question. Diagrams, tables and flowcharts in the paper and MG are images and were lost in text extraction, so some parts are incomplete. Use for practice on the overlapping skill only. The new Software Engineering exam does not use the old SDD terms (e.g. CASE tools, system flowcharts, EBNF, assembly).