Software Engineering 11 12 Higher School Certificate Course Specifications
Software Engineering 11 12 Higher School Certificate Course Specifications
Software Engineering
NESA acknowledges Traditional Owners and Custodians of Country throughout NSW, and pays respect to Elders
past and present. NESA recognises Aboriginal Peoples’ continuing Cultures and Connections to lands, waters, skies
and Community.
Note: The above arrangements do not apply to private/home tutoring companies, professional learning service
providers, publishers, and other organisations.
For more information on the above or for commercial use or any other purpose, please contact the
Copyright Officer for permission.
Email: [email protected]
D2022/521381
Table of Contents
System and Data Modelling Tools ..................................................................................................5
Data flow diagrams ........................................................................................................................................ 5
Storyboard ..................................................................................................................................................... 9
Algorithms ......................................................................................................................................14
Pseudocode ................................................................................................................................................. 14
Flowcharts ................................................................................................................................................... 14
Selection ...................................................................................................................................................... 15
Nested IF ................................................................................................................................................ 16
Repetition..................................................................................................................................................... 17
Pre-test ................................................................................................................................................... 17
Post-test ................................................................................................................................................. 17
Subroutines ....................................................................................................................................19
Using a subroutine with one parameter ................................................................................................. 19
Execution cycle....................................................................................................................................... 29
An external entity can be any person, organisation or element that provides data to
the system or receives data from the system.
A labelled, curved arrow represents the flow of data between processes, data stores
and external entities.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 5 of 32
Level 0 data flow diagram
Level 0 data flow diagrams represent an overview of the entire system and do not show data stores or internal
processes. The following represents a Level 0 data flow diagram for the voting system.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 6 of 32
Structure charts
Structure charts represent a system by showing the separate subroutines that make up the system and their
relationship to each other.
Symbols
An empty circle is used to indicate data movement between subroutines (usually passed as
parameters).
A filled circle is used to indicate a flag or control variable that is passed between subroutines.
A decision (ie optional execution of a subroutine) is indicated by use of a small diamond at the
intersection of the connecting lines between subroutines that are called as the result of a binary or
multi-way selection. Alternatively, the diamond may appear on a single connecting line if calling
that subroutine is optional. In the diagram shown, a report may not necessarily be produced each
time a book is returned.
Repetition (execution of a particular subroutine or set of subroutines multiple times) is shown by a
curved arrow.
Further detail for each of the lower-level subroutines can be shown in a separate structure chart, using the
same name as the subroutine used in the main structure chart.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 7 of 32
Data dictionary
A data dictionary provides a comprehensive description of each variable stored or referred to in a system. This
commonly includes variable name, data type, format, size in bytes, number of characters to display the item
including number of decimal places (if applicable), the purpose of each variable and a relevant example. Any
validation rules applicable to the data item can also be included.
Variable Data type Format for Size in Size for Description Example Validation
display bytes display
Note: a date and time data type is always stored as 32 bits (4 bytes) and can be displayed using different
formats such as DD/MM/YYYY hh:mm:ss or YYYY/MM/DD
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 8 of 32
Class diagrams
Class diagrams provide a visual representation of systems that are implemented using the object-oriented
paradigm. They model classes, their attributes and methods, and the relationships between classes.
Symbols
Note: Both Student and Parent inherit from Person. There is a relationship between Student and Subject. A
student must study 1 or more subjects. A subject can have 0 or more students enrolled.
Storyboard
A storyboard shows the various interfaces (screens) as well as the links between them.
The following storyboard shows the relationship between three pages of information aimed at promoting a
school canteen on a website.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 9 of 32
Decision trees
A decision tree is a diagram that represents all possible combinations of decisions and their resulting actions.
Branches are shown to describe the eventual action depending on the condition at the time. Each decision path
will lead to either another decision or a final action.
The following decision tree shows the rules in controlling the temperature system within a ‘smart’ house.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 10 of 32
Project Management Tools
Gantt charts
A Gantt chart displays each of the component tasks in a proposed system development on an estimated
timeline. Tasks should be named with self-explanatory titles. The estimated time required for each task and its
dependent tasks should be clearly shown. The time scale should be clearly indicated with dates and important
milestones in the project clearly marked.
The following diagram shows the main elements of a Gantt chart. Other formats are acceptable.
Gantt charts can also be used to allocate resources, including team members, to specific tasks. The following
chart shows the percentage completion of tasks by each team member. Charts should be regularly updated
during development to reflect actual versus estimated times for tasks.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 11 of 32
Process diaries / log books
Process diaries / log books are used to document the progress of a project. Entries made by team members at
regular intervals should include:
date
person making the entry
progress since the last entry
tasks achieved
stumbling blocks or issues encountered and how they were managed
possible approaches for upcoming tasks
reflective comments
resources used.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 12 of 32
Programming Paradigms
Object-oriented paradigm
Students should know how to:
define classes, objects, attributes and methods
make use of inheritance, polymorphism and encapsulation
perform message passing
use control structures and variables.
Logic paradigm
Students should know how to:
define and edit facts
create, edit and remove rules
display the solution and the rules that the system used.
Imperative paradigm
Students should know how to:
use control structures and variables
use assignment statements
use expressions
use subroutines.
Functional paradigm
Students should know how to:
call functions and use recursion
use functions as first-class objects and collections
use abstraction, encapsulation, inheritance and polymorphism.
Note: Students should know how to use appropriate data structures for each of the paradigms.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 13 of 32
Algorithms
It is expected that students are able to develop and interpret algorithms represented as pseudocode and
flowcharts.
It is important to start complex algorithms with a clear, uncluttered mainline. The mainline should reference
required subroutines, the details of which are shown in separate algorithms.
Each subroutine should be concise and correctly make use of further subroutines for detailed logic.
Pseudocode
Pseudocode is a method of describing the logic in an algorithm. It makes use of capitalised keywords and
indentation to show control structures used.
In pseudocode:
Flowcharts
Flowcharts are diagrams that represent algorithms and are read from top to bottom and left to right.
Symbols
Flowcharts use the following symbols connected by lines with arrowheads to indicate the flow of data. It is
common practice to show arrowheads to avoid ambiguity.
Flowcharts using these symbols should be developed using only the standard control structures (as described
in the following section, Control Structures).
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 14 of 32
Control Structures
Algorithms are developed using the basic control structures of sequence, selection and repetition. Students are
expected to design algorithms and write code incorporating combinations of these control structures.
Sequence
Sequence refers to steps which are to be executed one after the other. The steps are executed in the same
order in which they are written.
Pseudocode Flowchart
process 1
process 2
process n
Selection
Binary selection
In binary selection, if the condition is met then one path is taken, otherwise the second possible path is
followed.
Pseudocode Flowchart
1. IF condition THEN
process 1
ENDIF
2. IF condition THEN
process 2
ELSE
process 1
ENDIF
Note: Arrows coming from a decision symbol should be labelled to remove ambiguity.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 15 of 32
Multi-way selection
In multi-way selection there can be a number of possible choices, or cases. The path taken is determined by
the evaluation of the expression. Once a relevant path has been determined and executed, execution of this
expression ceases. Only one process is executed as a result of the implementation of the multi-way selection.
Pseudocode Flowchart
CASEWHERE expression evaluates to
choice a: process a
choice b: process b
END CASE
Nested IF
A nested IF allows the testing of multiple conditions with only one process executed.
Pseudocode Flowchart
IF condition A THEN
process 1
process 2
process 3
ELSE
process 4
ENDIF
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 16 of 32
Repetition
Pre-test
The pre-test loop tests the condition at the start of the loop to determine whether the body of the loop is
executed. The body of the loop is executed repeatedly while the termination condition is true.
Pseudocode Flowchart
WHILE condition is true
process
ENDWHILE
Post-test
A post-test loop executes the body of the loop before testing the termination condition. The body of the loop is
repeatedly executed until the termination condition is true.
Pseudocode Flowchart
REPEAT
process
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 17 of 32
FOR / NEXT
FOR / NEXT loops (also known as counted loops) can be regarded as special cases of repetition and,
depending on the language, are implemented as either pre-test or post-test repetitions.
Pseudocode Flowchart
FOR variable = start TO finish STEP increment
statements
NEXT variable
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 18 of 32
Subroutines
The terms subroutine, module, subprogram and procedure can be used interchangeably to represent a
collection of statements that achieve a specific purpose.
A subroutine can do the same task at different points in an algorithm. It may operate on different data each time
it is called. One or more parameters are used to indicate the data to be processed.
The subroutine read uses a single parameter arrayname that can take different values.
The first time that this subroutine is called, the data is read and stored in the array called ‘name’. The second
time, the data is read and stored in the array called ‘address’.
Pseudocode Flowcharts
BEGIN
read (name)
read (address)
END
Get a character
ENDWHILE
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 19 of 32
Using a subroutine with multiple parameters
The following algorithms represent the logic required to display the sum of two consecutive integers, where the
smaller integer takes all possible values from 1 to 5. The subroutine Add uses three parameters, x, y and total.
Pseudocode Flowcharts
BEGIN AddNumbers
FOR i = 1 to 5
Display sum
NEXT i
END AddNumbers
total = x + y
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 20 of 32
Passing a value back from a function
A function generates a single value. The word RETURN is used to pass this single value back from the
function.
The algorithm Addnumbers uses the function Add to calculate the sum of two consecutive integers where the
smaller integer takes all possible values from 1 to 5. In this case the function requires two parameters.
Pseudocode Flowcharts
BEGIN Addnumbers
FOR i = 1 to 5
NEXT i
END Addnumbers
total = x + y
RETURN total
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 21 of 32
Relational Databases
SQL
Structured Query Language (SQL) is a language used to access and manipulate data in relational databases.
For the HSC Software Engineering course, the following syntax is used.
The keyword AS may be used within a SELECT statement to rename fields for display.
The search criteria may use relational operators, including the following.
CONTAINS
DOES NOT CONTAIN
EQUALS
NOT EQUAL TO
GREATER THAN
GREATER THAN OR EQUAL TO
LESS THAN
LESS THAN OR EQUAL TO
AND
OR
NOT
If the GROUP BY clause is used, it is useful to include in the SELECT statement details of the value to be
calculated. The following functions may be used.
SUM (attribute)
AVG (attribute)
COUNT (attribute)
MAX (attribute)
MIN (attribute)
If the ORDER BY clause is used, the field and method should be specified. The methods used are typically
identified by ASC (ascending: A – Z or 0 – 9) or DEC (descending: Z – A or 9 – 0).
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 22 of 32
Three tables from a relational database are shown.
The following query displays the name and release date of all games released from 1 March 2022 to 31 March
2023. The results will be displayed in ascending alphabetical order by game name.
The following query displays each developer, together with the total cost of games they have developed for the
publisher ‘Games Inc’, listed in descending order of developer name.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 23 of 32
Wiring diagrams for mechatronic systems
Mechatronic systems can range in complexity and can be represented using the following symbols.
Diode Lightbulb
Resistor Integrated
circuit
2-way Voltage
Switch source
On/off DC
Switch Voltage
Source
Speaker DC
Voltage
source
Motor Amplifier
If a wiring diagram requires other electrical components, the components must be clearly labelled for
identification.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 24 of 32
Programming for the Web
Front-end web development frameworks
There are numerous front-end web development frameworks which provide different features and benefits.
Students should understand why such frameworks are useful in front-end web development
Students are not expected to have knowledge of a specific framework nor are they expected to code using any
specific framework.
Cross-site scripting
Cross-site scripting (XSS) involves injecting malicious code into an otherwise safe website. It is usually done
through user input that is not sufficiently sanitised before being processed and stored on the server.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 25 of 32
Cascading Style Sheets (CSS)
Cascading style sheets (CSS) are used to describe the formatting of web pages. Students are expected to
interpret code fragments written in CSS and HTML. The following syntax is used.
/* Comment */
selector {
property: value;
}
Comments: can be specified anywhere in CSS and are enclosed in /* and */
Selector: targets a particular HTML element on the page to which the styling within the braces should be
applied
Property: a styling property, such as color
Value: the value of the styling property, such as red
<html>
<head><title>My Website</title></head>
<body>
<h1>Welcome!</h1>
<p id=”welcome”>Welcome to my website!</p>
<p class=”red‐text”>This text should be red</p>
<p>My website also has <span class=”red‐text”>red text</span> here</p>
</body>
</html>
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 26 of 32
Machine Learning
Machine learning automation through DevOps
MLOps is the automated process of designing, training and deploying machine learning models. It borrows
many of the same principles and practices used in DevOps, bringing together the teams involved in developing
machine learning models and the operational teams involved in deploying and supporting the models in
production.
Design:
defining the business problem to be solved
refactoring the business problem into a machine learning problem
defining success metrics
researching available data.
Model development:
data wrangling
feature engineering
model training
model testing and validation.
Operations:
model deployment
supporting operations/use
monitoring model performance.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 27 of 32
Regression algorithms
Linear regression and polynomial regression algorithms are used to predict values in a continuous range, such
as integers. These regression algorithms are used for machine learning.
Students should know how to design programs which use and apply these algorithms but are not expected to
implement (or code) these complex algorithms.
The following Python code represents linear regression using NumPy and Scikit-learn machine learning
frameworks.
# Import frameworks
import numpy
from sklearn.linear_model import LinearRegression
# Fit the model to the data (that is determine the line of best fit through the data)
model.fit(x, y)
# We can now use the model for predictions with existing or new data
# The model expects a value for x and will predict a value for y – so if we asked for a
prediction on 4 it would return 3 (as that is known data).
y_prediction = model.predict(4)
>> 3
# If we asked for a prediction of 4.5 it should return 3.5 (even though that is unknown
data we can tell what it should return, given there is a linear relationship)
y_prediction = model.predict(4.5)
>> 3.5
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 28 of 32
Neural Networks
Neural networks were designed to mimic the processing inside the human brain. They consist of a series of
interconnected nodes (artificial neurones). Each neurone can accept a binary input signal and potentially output
another signal to connected nodes.
Training cycle
Internal weightings and threshold values for each node are determined in the initial training cycle for each
neural network. The system is exposed to a series of inputs with known responses. Linear regression with
backward chaining is used to iteratively determine the set of unique values required for output. Regular
exposure to the training cycle results in improved accuracy and pattern matching.
Execution cycle
In the diagram, signal strength between nodes with the strongest weightings are thicker representing a higher
priority in determining the final output. The execution cycle follows the training cycle and utilises the internal
values developed during the training cycle to determine the output.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 29 of 32
Methods for Testing a System
Students are expected to know and understand the following methods for testing a software solution.
functional testing
acceptance testing
live data
simulated data
beta testing
volume testing.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 30 of 32
Character Representation
Characters can be represented with ASCII or Unicode. When a developer is working with text strings, they can
make use of how the text data is stored internally in its binary format to perform functions such as changing the
case of letters in the string, or performing a simple encryption.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 31 of 32
Programming with Python
Students are expected to be able to code using the Python programming language.
control structures
global and local variables
use of simple and structured data types
classes, objects, attributes and methods
functions
modules and libraries
file handling
Students are expected to design and implement programs incorporating combinations of these features.
Higher School Certificate Course Specifications – Software Engineering, updated March 2023 Page 32 of 32