NESA - Software - Engineering - 11 - 12 - 2022 (S6)
NESA - Software - Engineering - 11 - 12 - 2022 (S6)
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.
The documents on the NSW Education Standards Authority (NESA) website and the NSW
Curriculum website contain material prepared by NESA for and on behalf of the Crown in right of
the State of New South Wales. The material is protected by Crown copyright.
These websites hold the only official and up-to-date versions of the documents available on the
internet. Any other copies of these documents, or parts of these documents, that may be found
elsewhere on the internet might not be current and are not authorised. You cannot rely on copies
from any other source.
§ reproduced in Australia or in any other country by any process, electronic or otherwise, in any
material form
§ transmitted to any other person or stored electronically in any form without the written
permission of NESA except as permitted by the Copyright Act 1968 (Cth).
When you access the material, you agree:
§ to use the material for research or study, criticism or review, reporting news and parody or
satire
§ to use the material for information purposes only
§ not to modify the material or any part of the material without the written permission of NESA
§ to reproduce a single copy for personal bona fide study use only and not to reproduce any
major extract or the entire material without the permission of NESA
§ to include this copyright notice in any copy made
§ to acknowledge that NESA is the source of the material.
The documents may include third-party copyright material such as photos, diagrams, quotations,
cartoons and artworks. This material is protected by Australian and international copyright laws
and may not be reproduced or transmitted in any format without the copyright owner’s permission.
Unauthorised reproduction, transmission or commercial use of such copyright material may result
in prosecution.
NESA has made all reasonable attempts to locate the owners of third-party copyright material.
NESA invites anyone from whom permission has not been sought to contact the Copyright Officer.
Special arrangements applying to the NSW Curriculum Reform
As part of the NSW Curriculum Reform process, NESA grants a limited non-exclusive licence
to:
§ teachers employed in NSW government schools and registered non-government schools
§ representatives from peak school education bodies, such as the NSW Department of
Education, Catholic Schools NSW, the Association of Independent Schools of NSW and
TAFE NSW
§ parents of children registered for home schooling
to use, modify and adapt the NSW syllabuses for non-commercial educational use only.
The adaptation must not have the effect of bringing NESA into disrepute.
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: copyright@nesa.nsw.edu.au
Table of contents
Table of contents................................................................................................................................4
Programming fundamentals.......................................................................................................5
Programming mechatronics.....................................................................................................10
Software automation................................................................................................................18
2024, Term 1
§ describes methods used to plan, develop and engineer software solutions SE-11-01
§ explains how structural elements are used to develop programming code SE-11-02
§ describes how current hardware, software and emerging technologies influence the
development of software engineering solutions SE-11-03
§ applies safe and secure practices to collect, use and store data SE-11-04
§ applies tools and resources to design, develop, manage and evaluate software SE-11-06
§ implements safe and secure programming solutions SE-11-07
Content
Software development
§ Explore fundamental software development steps used by programmers when designing
software
Including:
§ requirements definition
§ determining specifications
§ design
§ development
§ integration
§ testing and debugging
§ installation
§ maintenance
§ Research and evaluate the prevalence and use of online code collaboration tools
Software Engineering 11–12 Page 5 of 22
Designing algorithms
§ Apply computational thinking and algorithmic design by defining the key features of standard
algorithms, including sequence, selection, iteration and identifying data that should be stored
§ Apply divide and conquer and backtracking as algorithmic design strategies
§ Develop structured algorithms using pseudocode and flowcharts, including the use of
subprograms
§ Use modelling tools including structure charts, abstraction and refinement diagrams to support
top-down and bottom-up design
§ Analyse the logic and structure of written algorithms
Including:
§ determining inputs and outputs
§ determining the purpose of the algorithm
§ desk checking and peer checking
§ determining connections of written algorithms to other subroutines or functions
Including:
§ char (character) and string
§ Boolean
§ real
§ single precision floating point
§ integer
§ date and time
§ Create data dictionaries as a tool to describe data and data types, structure data, and record
relationships
§ Use data structures of arrays, records, trees and sequential files
Including:
§ converting an algorithm into code
§ using control structures
§ using data structures
§ using standard modules
§ creating relevant subprograms that incorporate parameter passing
§ Compare the execution of the Waterfall and Agile project management models as applied to
software development
§ Test and evaluate solutions, considering key aspects including functionality, performance,
readability of code, quality of documentation
§ Use debugging tools
Including:
§ breakpoints
§ single line stepping
§ watches
§ interfaces between functions
§ debugging output statements
§ debugging software available in an integrated development environment (IDE)
Including:
§ boundary values
§ path coverage
§ faulty and abnormal data
§ Determine typical errors experienced when developing code, including syntax, logic and
runtime, and explain their likely causes
§ describes methods used to plan, develop and engineer software solutions SE-11-01
§ explains how structural elements are used to develop programming code SE-11-02
§ describes how current hardware, software and emerging technologies influence the
development of software engineering solutions SE-11-03
§ applies safe and secure practices to collect, use and store data SE-11-04
§ applies tools and resources to design, develop, manage and evaluate software SE-11-06
§ implements safe and secure programming solutions SE-11-07
§ applies language structures to refine code SE-11-08
§ manages and documents the development of a software project SE-11-09
Content
Understanding OOP
§ Apply the key features of an object-oriented programming (OOP) language
Including:
§ objects
§ classes
§ encapsulation
§ abstraction
§ inheritance
§ generalisation
§ polymorphism
Including:
§ task definition
§ top-down and bottom-up
§ facade pattern
§ agility
Programming in OOP
§ Design and implement computer programs involving branching, iteration and functions in an
OOP language for an identified need or opportunity
§ Implement and modify OOP programming code
Including:
§ clear and uncluttered mainline
§ one logical task per subroutine
§ use of stubs
§ use of control structures and data structures
§ ease of maintenance
§ version control
§ regular backup
Including:
§ unit, subsystem and system testing
§ black, white and grey box testing
§ quality assurance
§ describes methods used to plan, develop and engineer software solutions SE-11-01
§ explains how structural elements are used to develop programming code SE-11-02
§ describes how current hardware, software and emerging technologies influence the
development of software engineering solutions SE-11-03
§ applies safe and secure practices to collect, use and store data SE-11-04
§ describes the social, ethical and legal implications of software engineering on the individual,
society and the environment SE-11-05
§ applies tools and resources to design, develop, manage and evaluate software SE-11-06
§ implements safe and secure programming solutions SE-11-07
§ applies language structures to refine code SE-11-08
§ manages and documents the development of a software project SE-11-09
Content
Including:
§ assessing the relationship of microcontrollers and the central processing unit (CPU)
§ the influence of instruction set and opcodes
§ the use of address and data registers
§ Identify and describe a range of sensors, actuators and end effectors/manipulators within
existing mechatronic systems
Including:
§ motion sensors
§ light level sensors
§ hydraulic actuators
§ robotic grippers
§ Use different types of data and understand how it is obtained and processed in a mechatronic
system, including diagnostic data and data used for optimisation
§ Experiment with software to control interactions and dependencies within mechatronic systems
Including:
§ motion constraints
§ degrees of freedom
§ combination of subsystems
§ combination of sensors, actuators and end effectors to create viable subsystems
§ Determine power, battery and material requirements for components of a mechatronic system
§ Develop wiring diagrams for a mechatronic system, considering data and power supply
requirements
§ Determine specialist requirements that influence the design and functions of mechatronic
systems designed for people with disability
Including:
§ software control
§ mechanical engineering
§ electronics and mathematics
§ justifies methods used to plan, develop and engineer software solutions SE-12-01
§ applies structural elements to develop programming code SE-12-02
§ analyses how current hardware, software and emerging technologies influence the
development of software engineering solutions SE-12-03
§ evaluates practices to safely and securely collect, use and store data SE-12-04
§ explains the social, ethical and legal implications of software engineering on the individual,
society and the environment SE-12-05
§ justifies the selection and use of tools and resources to design, develop, manage and evaluate
software SE-12-06
§ designs, develops and implements safe and secure programming solutions SE-12-07
§ tests and evaluates language structures to refine code SE-12-08
Content
Designing software
§ Describe the benefits of developing secure software
Including:
§ data protection
§ minimising cyber attacks and vulnerabilities
§ Interpret and apply fundamental software development steps to develop secure code
Including:
§ requirements definition
§ determining specifications
§ design
§ development
§ integration
§ testing and debugging
§ installation
§ maintenance
§ Describe how the capabilities and experience of end users influence the secure design
features of software
§ Apply security features incorporated into software including data protection, security, privacy
and regulatory compliance
§ Use and explain the contribution of cryptography and sandboxing to the ‘security by design’
approach in the development of software solutions
§ Use and explain the ‘privacy by design’ approach in the development of software solutions
Including:
§ proactive not reactive approach
§ embed privacy into design
§ respect for user privacy
§ Test and evaluate the security and resilience of software by determining vulnerabilities,
hardening systems, handling breaches, maintaining business continuity and conducting
disaster recovery
§ Apply and evaluate strategies used by software developers to manage the security of
programming code
Including:
§ code review
§ static application security testing (SAST)
§ dynamic application security testing (DAST)
§ vulnerability assessment
§ penetration testing
§ Design, develop and implement code using defensive data input handling practices, including
input validation, sanitisation and error handling
§ Design, develop and implement a safe application programming interface (API) to minimise
software vulnerabilities
§ Design, develop and implement code considering efficient execution for the user
Including:
§ memory management
§ session management
§ exception management
§ Design, develop and implement secure code to minimise vulnerabilities in user action controls
Including:
§ broken authentication and session management
§ cross-site scripting (XSS) and cross-site request forgery (CSRF)
§ invalid forwarding and redirecting
§ race conditions
§ Design, develop and implement secure code to protect user file and hardware vulnerabilities
from file attacks and side channel attacks
Including:
§ considering various points of view
§ delegating tasks based on expertise
§ quality of the solution
§ Investigate and explain the benefits to an enterprise of the implementation of safe and secure
development practices
Including:
§ improved products or services
§ influence on future software development
§ improved work practices
§ productivity
§ business interactivity
§ Evaluate the social, ethical and legal issues and ramifications that affect people and
enterprises resulting from the development and implementation of safe and secure software
Including:
§ employment
§ data security
§ privacy
§ copyright
§ intellectual property
§ digital disruption
§ justifies methods used to plan, develop and engineer software solutions SE-12-01
§ applies structural elements to develop programming code SE-12-02
§ analyses how current hardware, software and emerging technologies influence the
development of software engineering solutions SE-12-03
§ evaluates practices to safely and securely collect, use and store data SE-12-04
§ explains the social, ethical and legal implications of software engineering on the individual,
society and the environment SE-12-05
§ justifies the selection and use of tools and resources to design, develop, manage and evaluate
software SE-12-06
§ designs, develops and implements safe and secure programming solutions SE-12-07
§ tests and evaluates language structures to refine code SE-12-08
§ applies methods to manage and document the development of a software project SE-12-09
Content
Including:
§ interactive website/webpages
§ e-commerce
§ progressive web apps (PWAs)
Including:
§ data packets
§ internet protocol (IP) addresses, including IPv4
§ domain name systems (DNS)
§ Investigate and describe the function of web protocols and their ports
Including:
§ HTTP, HTTPS
§ TCP/IP
§ DNS
§ FTP, SFTP
§ SSL, TLS
§ SMTP, POP 3, IMAP
Including:
§ data mining
§ metadata
§ streaming service management
Including:
§ Web Accessibility Initiative (WAI)
§ internationalisation
§ web security
§ privacy
§ machine-readable data
Including:
§ client-side (front-end) web programming
§ server-side (back-end) web programming
§ interfacing with databases that are based on Structured Query Language (SQL) or
non-SQL
§ Explore and explain the influence of a web browser on web development, including the use of
developer (dev) tools
§ Investigate cascading style sheets (CSS) and its impact on the design of a web application
Including:
§ consistency of appearance
§ flexibility with browsers or display devices
§ CSS maintenance tools
§ Investigate the reasons for version control and apply it when developing web application
§ Explore the types and significance of code libraries for front-end web development
Including:
§ frameworks that control complex web applications
§ template engines
§ predesigned CSS classes
§ Explain the use and development of open-source software in relation to web development
§ Investigate methods to support and manage the load times of web pages/applications
Software Engineering 11–12 Page 16 of 22
§ Research, experiment with and evaluate the prevalence and use of web content management
systems (CMS)
§ Assess the contribution of back-end web development to the success of a web application
§ Observe and describe the back-end process used to manage a web request
Including:
§ role of webserver software
§ web framework
§ objects
§ libraries
§ databases
§ Develop a web application using an appropriate scripting language with shell scripts to make
files and directories, and searching for text in a text file
§ Apply a web-based database and construct script that executes SQL
Including:
§ selecting fields
§ incorporating ‘group by’
§ common SQL queries
§ constraints using WHERE keyword
§ table joins
Including:
§ the application of design and user interface (UI) and user experience (UX) principles
of font, colour, audio, video and navigation
§ a UI that considers accessibility and inclusivity
§ justifies methods used to plan, develop and engineer software solutions SE-12-01
§ applies structural elements to develop programming code SE-12-02
§ analyses how current hardware, software and emerging technologies influence the
development of software engineering solutions SE-12-03
§ evaluates practices to safely and securely collect, use and store data SE-12-04
§ explains the social, ethical and legal implications of software engineering on the individual,
society and the environment SE-12-05
§ justifies the selection and use of tools and resources to design, develop, manage and evaluate
software SE-12-06
§ designs, develops and implements safe and secure programming solutions SE-12-07
§ tests and evaluates language structures to refine code SE-12-08
§ applies methods to manage and document the development of a software project SE-12-09
Content
Including:
§ supervised learning
§ unsupervised learning
§ semi-supervised learning
§ reinforcement learning
Including:
§ data analysis and forecasting
§ virtual personal assistants
§ image recognition
Including:
§ decision trees
§ neural networks
Including:
§ linear regression
§ polynomial regression
§ logistic regression
Including:
§ safety of workers
§ people with disability
§ the nature and skills required for employment
§ production efficiency, waste and the environment
§ the economy and distribution of wealth
Including:
§ psychological responses
§ patterns related to acute stress response
§ cultural protocols
§ belief systems
§ Investigate the effect of human and dataset source bias in the development of ML and AI
solutions
§ justifies methods used to plan, develop and engineer software solutions SE-12-01
§ applies structural elements to develop programming code SE-12-02
§ analyses how current hardware, software and emerging technologies influence the
development of software engineering solutions SE-12-03
§ evaluates practices to safely and securely collect, use and store data SE-12-04
§ explains the social, ethical and legal implications of software engineering on the individual,
society and the environment SE-12-05
§ justifies the selection and use of tools and resources to design, develop, manage and evaluate
software SE-12-06
§ designs, develops and implements safe and secure programming solutions SE-12-07
§ tests and evaluates language structures to refine code SE-12-08
§ applies methods to manage and document the development of a software project SE-12-09
Content
Including:
§ demonstrating need(s) or opportunities
§ assessing scheduling and financial feasibility
§ generating requirements including functionality and performance
§ defining data structures and data types
§ defining boundaries
Including:
§ brainstorming, mind-mapping and storyboards
§ data dictionaries, including selecting appropriate data types
§ algorithm design
§ code generation
§ testing and debugging
§ installation
§ maintenance
Including:
§ direct
§ phased
§ parallel
§ pilot
Including:
§ rate of developing a final solution
§ method tailoring
§ iteration workflow
§ scale and types of developments
Including:
§ understanding it is a hybrid model
§ analysis of the ‘when’ and ‘how’ intervention is applied during the development life
cycle
§ scale and types of developments
§ Apply project management to plan and conduct the development and implementation of a
project and software engineering solution
Including:
§ scheduling and tracking using a software tool, including Gantt charts
§ using collaboration tools
§ Explore social and ethical issues associated with project work, including working individually,
collaboratively and responding to stakeholders
§ Explore communication issues associated with project work
Including:
§ involving and empowering the client
§ enabling feedback
§ negotiating
Including:
§ defining criteria on which quality will be judged
§ ensuring requirements are met using a continual checking process
§ addressing compliance and legislative requirements
Including:
§ looking for a solution online
§ collaboration with peers
§ outsourcing
§ Propose an additional innovative solution using a prototype and user interface (UI) design
Including:
§ developing a report to synthesise feedback
§ developing a test plan
§ testing data used/generated based on path and boundary testing
§ comparing actual output with expected output