TK Study

Past questions › sdd2023-q26

2023 9 marks Extended response The Software Engineering Project (Year 12) Code reading, maintainability and testing

NESA 2023 HSC Software Design and Development (OLD syllabus) - Section II Question 26, with NESA Marking Guidelines

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

[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

Sample answer

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.

Question page · Practise and get marked