TK Study

Software Engineering › Past questions › 2022

Past questions: 2022

7 questions.

2022 3 marks Extended response Secure Software Architecture (Year 12) Social, ethical and legal responsibilities

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

Describe TWO responsibilities of software developers when developing new systems. | 3

Marking criteria

[Question 21] Criteria | Marks • Describes TWO responsibilities of software developers | 3 • Describes ONE responsibility of software developers OR | 2 • Outlines TWO responsibilities • Demonstrates some understanding of software developers’ responsibilities

Sample answer

Sample answer: Intellectual property – appropriate acknowledgement of intellectual property means that a developer cannot use copied code fragments without first contacting the author, asking their permission and acknowledging the authorship visibly in their product. Response to user issues – a developer should respond appropriately and promptly, possibly by amending code.

Question page · Practise and get marked

2022 6 marks Extended response The Software Engineering Project (Year 12) Maintenance

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

(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

[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

Sample answer

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.

Question page · Practise and get marked

2022 11 marks Extended response The Software Engineering Project (Year 12) Development approach, implementation, testing, quality of experience

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

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

[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

Sample answer

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.

Question page · Practise and get marked

2022 10 marks Extended response The Software Engineering Project (Year 12) Modelling and design (IPO, data structure, Gantt)

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

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

[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

Sample answer

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.

Question page · Practise and get marked

2022 6 marks Extended response The Software Engineering Project (Year 12) Desk check and debugging an algorithm

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

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

[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

Sample answer

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.

Question page · Practise and get marked

2022 3 marks Extended response The Software Engineering Project (Year 12) Data types

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

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

Marking criteria

[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

Sample answer

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.

Question page · Practise and get marked

2022 5 marks Extended response The Software Engineering Project (Year 12) Algorithm design (arrays)

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

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

[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

Sample answer

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

Question page · Practise and get marked