Softwaredesign Syl
Softwaredesign Syl
Softwaredesign Syl
www.boardofstudies.nsw.edu.au
Syllabus
The Board of Studies owns the copyright on all syllabuses. Schools may reproduce
this syllabus in part or in full for bona fide study or classroom purposes only.
Acknowledgement of the Board of Studies copyright must be included on any
reproductions. Students may copy reasonable portions of the syllabus for the
purpose of research or study. Any other use of this syllabus must be referred to the
Copyright Officer, Board of Studies NSW. Ph: (02) 9367 8111; fax: (02) 9279 1482.
Published by
Board of Studies NSW
GPO Box 5300
Sydney NSW 2001
Australia
Internet: http://www.boardofstudies.nsw.edu.au
99278
Contents
1 The Higher School Certificate Program of Study .................................................5
2 Rationale for Software Design and Development in the Stage 6 Curriculum ......6
3 Continuum of Learning for Software Design and Development Stage 6 Students...7
4 Aim........................................................................................................................8
5 Objectives .............................................................................................................8
6 Course Structure...................................................................................................9
7 Objectives and Outcomes...................................................................................11
7.1 Table of Objectives and Outcomes ............................................................11
7.2 Key Competencies .....................................................................................13
8 Content: Software Design and Development Stage 6 Preliminary Course........14
8.1 Concepts and Issues in the Design and Development of Software ..........14
8.2 Introduction to Software Development.......................................................20
8.3 Developing Software Solutions ..................................................................29
9 Content: Software Design and Development Stage 6 HSC Course ..................31
9.1 Development and Impact of Software Solutions........................................31
9.2 Software Development Cycle.....................................................................35
9.3 Developing a Solution Package .................................................................49
9.4 Options .......................................................................................................52
10 Course Requirements.........................................................................................56
11 Post-school Opportunities...................................................................................57
12 Assessment and Reporting ................................................................................58
12.1 Requirements and Advice ..........................................................................58
12.2 Internal Assessment ...................................................................................59
12.3 External Examination .................................................................................59
12.4 Board Requirements for the Internal Assessment Mark in Board
Developed Courses....................................................................................60
12.5 Assessment Components, Weightings and Tasks .....................................61
12.6 HSC External Examination Specifications .................................................62
12.7 Summary of Internal and External Assessment.........................................63
12.8 Reporting Student Performance Against Standards ..................................64
13 Glossary..............................................................................................................65
Software Design and Development Stage 6 Syllabus
5
Software Design and Development Stage 6 Syllabus
For the purposes of the Software Design and Development Stage 6 Syllabus,
software design and development refers to the creativity, knowledge, values and
communication skills required to develop computer programs. The subject provides
students with a systematic approach to problem-solving, an opportunity to be
creative, excellent career prospects and interesting content. Software development
is a distinctive field within the Computing discipline. Stage 6 students who wish to
move into this field are at an advantage if they understand the field.
There are many different approaches that can be taken to develop software. An
understanding of these and the situations in which they are applied is essential in
software development. So too is an understanding of how hardware and software
are interrelated and need each other to function. In order to develop solutions that
meet the needs of those who will use them, communication, personal and team
skills are required by the developers. Together, these considerations provide the
basis for the course.
Computing is an area of rapid growth and change. While a variety of computer
applications are used in this subject, they are not the primary focus. The focus of
this subject is the development of computer-based solutions that require the design
of computer software.
Students interested in the fields of software development and computer science will
find this subject of value. The subject is not only for those who seek further study or
careers in this field, but also for those who wish to understand the underlying
principles of software design and development. Students with software development
skills wishing to acquire team and communication skills will find this subject useful.
The subject is intended for both genders. The computing field, particularly in the
area of software design and development, offers opportunities for creativity and
problem-solving and a collaborative work environment where working with people
and exploring issues is an integral part of the job. It is critical that students of both
genders have the knowledge, understanding and skills necessary to pursue the
many new, exciting and highly paid employment opportunities that exist in the field.
Software Design and Development promotes intellectual, social and ethical growth
in students. The subject has been developed from an area of identified student
interest. It provides them with the flexibility to be able to adapt in a field that is
constantly changing, yet vital to the Australian economy. On completion, the subject
provides students with options in the workforce, TAFE and university study. Study of
this subject will enable students to take part in debates on software development in
society. To this end, Software Design and Development contributes to the overall
purpose of the Stage 6 curriculum.
6
Software Design and Development Stage 6 Syllabus
Stages 1–3
Stages 4–5
Design and Technology (Mandatory)
(50 hours mandatory computing)
Stages 5
Computing
Studies
(Elective)
and/or and/or
Stage 6 Stage 6 Stage 6
Software Information VET:
Design and Processes Information
Development and Technology
Technology Curriculum
Framework
7
Software Design and Development Stage 6 Syllabus
4 Aim
5 Objectives
8
Software Design and Development Stage 6 Syllabus
6 Course Structure
The following table provides an overview of the arrangement and relationship between
components of the Preliminary course and the HSC course for Software Design and
Development Stage 6. The percentage values refer to indicative course time.
Options 20%
One of the following options:
1. Evolution of programming languages
OR
2. The Software Developer’s view of the
hardware
9
Software Design and Development Stage 6 Syllabus
Social and
Ethical Issues
Introduction to Software Development
Project(s)
Project(s) Options
One of the following options:
1. Evolution of Programming
Languages
OR
2. The Software Developers View
of the Hardware
10
Software Design and Development Stage 6 Syllabus
11
Software Design and Development Stage 6 Syllabus
5. skills in management P5.1 uses and justifies the H5.1 applies project
appropriate to the design need for appropriate management
and development of project management techniques to
software solutions techniques maximise the
productivity of the
software development
P5.2 uses and develops H5.2 creates and justifies
documentation to the need for the
communicate software various types of
solutions to others documentation
required for a
software solution
H5.3 selects and applies
appropriate software
to facilitate the design
and development of
software solutions
6. skills in teamwork and P6.1 describes the role of H6.1 assesses the
communication personnel involved in relationship between
associated with the software development the roles of people
design and development involved in the
of software solutions software development
cycle
P6.2 communicates with H6.2 communicates the
appropriate personnel processes involved in
throughout the a software solution to
software development an inexperienced user
process
P6.3 designs and H6.3 uses a collaborative
constructs software approach during the
solutions with software development
appropriate interfaces cycle
H6.4 develops effective
user interfaces, in
consultation with
appropriate people
12
Software Design and Development Stage 6 Syllabus
13
Software Design and Development Stage 6 Syllabus
14
Software Design and Development Stage 6 Syllabus
15
Software Design and Development Stage 6 Syllabus
16
Software Design and Development Stage 6 Syllabus
17
Software Design and Development Stage 6 Syllabus
18
Software Design and Development Stage 6 Syllabus
19
Software Design and Development Stage 6 Syllabus
All software development approaches include the phases of defining the problem,
planning, building, checking and modifying. There are variations in the time,
sequence and organisation of these phases in each of the four approaches
introduced in this course. Students may use more than one approach in this course.
The content for each of the phases is listed below and should be presented to
students in a cyclic fashion. Areas for investigation could include modelling and
simulation, hypermedia tools, publishing on the World Wide Web and customisation
of application packages through scripting or writing modules.
8.2.1 Defining the problem and planning software solutions
In planning a solution, students need to understand the problem to be solved and
how the solution will be used. In this topic, students will consider all aspects of the
solution before starting its implementation. The selection of data types and
structures used in the solution of a problem can have a huge impact on the
effectiveness of that solution. A variety of data types and structures are introduced
in this topic and appropriate algorithms should be developed and implemented that
make best use of these. As algorithms become more complex, there is a need for a
methodical top-down approach with progressive refinement of detail. It is important
that algorithms use the control structures as specified in Methods of Algorithm
Description (see page 56). Problems should be selected at a level of difficulty
commensurate with the ability level of students.
Outcomes
A student:
P1.2 describes and uses appropriate data types
P1.3 describes the interactions between the elements of a computer system
P2.2 explains the effects of historical developments on current practices
P3.1 identifies the issues relating to the use of software solutions
P4.2 investigates a structured approach in the design and implementation of a
software solution
P4.3 uses a variety of development approaches to generate software solutions and
distinguishes between these approaches
P5.2 uses and develops documentation to communicate software solutions to others.
20
Software Design and Development Stage 6 Syllabus
21
Software Design and Development Stage 6 Syllabus
22
Software Design and Development Stage 6 Syllabus
23
Software Design and Development Stage 6 Syllabus
24
Software Design and Development Stage 6 Syllabus
25
Software Design and Development Stage 6 Syllabus
26
Software Design and Development Stage 6 Syllabus
27
Software Design and Development Stage 6 Syllabus
28
Software Design and Development Stage 6 Syllabus
29
Software Design and Development Stage 6 Syllabus
– ergonomics
Students learn about:
• building Students learn to:
– implementation of the solution in an • design and implement a software
appropriate language solution to a selected problem using
– testing of the solution using test data project implementation steps
– documenting the solution, including
algorithms, tutorial, test data and • use Gantt charts and logbooks
expected output, data dictionary
• checking • devise a management plan and use it
– testing of the solution using test when undertaking a software
data development project
– evaluation of the completed
solutions • use appropriate application packages
• modifying in creating documentation to support
– changing the solution to meet the the development of a project
specifications
Project management techniques • prepare suitable documentation to
• identification of tasks accompany software solutions
• identification of techniques to assist
project management, including: • ensure relevant social and ethical
– Gantt charts issues have been addressed
– logbooks
– identification of sub-goals • evaluate the project in relation to the
• allocation of resources original understanding of the problem
• identification of major milestones and
stumbling blocks • evaluate the quality of the solution
• regular backup
• response to difficulties
• regular reporting
• evaluation
Project documentation
• relevant documentation may include
the use of:
– algorithms
– Gantt charts
– manuals
– systems documentation
– data dictionaries
– diaries
– CASE-tools
Social and ethical issues related to
project work
• relevant issues may include:
– ease of use
– gender bias
– accessibility of technical language
– copyright
30
Software Design and Development Stage 6 Syllabus
31
Software Design and Development Stage 6 Syllabus
32
Software Design and Development Stage 6 Syllabus
33
Software Design and Development Stage 6 Syllabus
34
Software Design and Development Stage 6 Syllabus
While many of the students who will study this course may have had some previous
experience in the development of software, few will have done so using the formal
methods that make up the software development cycle. This approach to software
development will empower students to undertake much more complex development
projects, knowing that the developed system will be in a standard maintainable
format. Students should draw on the skills of others to assist them in this process.
The topics that come together to form this cycle are the fundamentals of the HSC
course. These topics should not be studied in isolation or in a sequential fashion.
Students should be exposed to the content in a cyclic fashion. The project requires
that students follow and implement the cycle from beginning to end. Areas for
investigation here could include modelling and simulation, the production of games,
hypermedia tools, publishing on the World Wide Web and customisation of
application packages through scripting or writing modules.
9.2.1 Defining and understanding the problem
In order for students to be able to develop software to meet an identified need, they
first need to be able to understand the specifications of a problem so that they can
eventually translate these specifications into code. As well as having good technical
skills, it is also necessary for students to have good communication skills so that the
users’ requirements can be fully understood and implemented throughout the
development process. The modelling tools used should conform to those specified
in Software Specifications (see page 56) and should produce documentation able to
be interpreted by developers, maintainers and users as required. It is important at
this initial stage of the process that all relevant social and ethical issues are
considered as an integral part of the design and development of the solution.
Outcomes
A student:
H1.2 differentiates between various methods used to construct software solutions
H3.1 identifies and evaluates legal, social and ethical issues in a number of contexts
H3.2 constructs software solutions that address legal, social and ethical issues
H4.1 identifies needs to which software solutions are appropriate
H4.2 applies appropriate development methods to solve software problems
H4.3 applies a modular approach to implement well structured software solutions
and evaluates their effectiveness
H5.1 applies project management techniques to maximise the productivity of the
software development
H5.2 creates and justifies the need for the various types of documentation required
for a software solution
H5.3 selects and applies appropriate software to facilitate the design and
development of software solutions
35
Software Design and Development Stage 6 Syllabus
H6.1 assesses the relationship between the roles of people involved in the software
development cycle
H6.2 communicates the processes involved in a software solution to an
inexperienced user
H6.3 uses a collaborative approach during the software development cycle
H6.4 develops effective user interfaces, in consultation with appropriate people.
36
Software Design and Development Stage 6 Syllabus
37
Software Design and Development Stage 6 Syllabus
38
Software Design and Development Stage 6 Syllabus
39
Software Design and Development Stage 6 Syllabus
40
Software Design and Development Stage 6 Syllabus
41
Software Design and Development Stage 6 Syllabus
42
Software Design and Development Stage 6 Syllabus
43
Software Design and Development Stage 6 Syllabus
44
Software Design and Development Stage 6 Syllabus
45
Software Design and Development Stage 6 Syllabus
46
Software Design and Development Stage 6 Syllabus
47
Software Design and Development Stage 6 Syllabus
48
Software Design and Development Stage 6 Syllabus
The project(s) in the HSC course is intended to reinforce the content covered in the
other topics in the course. Students need to experience working as part of a team,
as this is common in the computing field beyond school. In order to be able to
develop software successfully, students need to be able communicate well with
others and to act in a social and ethical way. The project is one area in which
students may be given these opportunities. The project(s) will build students’
understanding of the content dealt with in the other topics in the course and should
be undertaken throughout the duration of this course.
Outcomes
A student:
H1.1 explains the interrelationship between hardware and software
H1.2 differentiates between various methods used to construct software solutions
H1.3 describes how the major components of a computer system store and
manipulate data
H3.1 identifies and evaluates legal, social and ethical issues in a number of contexts
H3.2 constructs software solutions that address legal, social and ethical issues
H4.1 identifies needs to which software solutions are appropriate
H4.2 applies appropriate development methods to solve software problems
H4.3 applies a modular approach to implement well structured software solutions
and evaluates their effectiveness
H5.1 applies project management techniques to maximise the productivity of the
software development
H5.2 creates and justifies the need for the various types of documentation required
for a software solution
H5.3 selects and applies appropriate software to facilitate the design and
development of software solutions
H6.1 assesses the relationship between the roles of people involved in the software
development cycle
H6.2 communicates the processes involved in a software solution to an
inexperienced user
H6.3 uses a collaborative approach during the software development cycle
H6.4 develops effective user interfaces, in consultation with appropriate people.
49
Software Design and Development Stage 6 Syllabus
50
Software Design and Development Stage 6 Syllabus
51
Software Design and Development Stage 6 Syllabus
9.4 Options
The option topic in this course extends students’ software development experiences
in one of two dimensions. Students selecting the Evolution of Programming
Languages option will broaden their understanding of the different types of
programming languages by looking at different approaches to programming
languages and the reasons for their development. Option 2 — The Software
Developer's View of the Hardware — extends students’ understanding of the layers
of software development by investigating the more detailed relationships between
hardware and software and how the hardware is used by the software to allow
specified instructions to be performed.
9.4.1 Option 1 — Evolution of Programming Languages
This topic offers students the opportunity to look at approaches utilised by the
different types of programming languages. Each of these was developed in an
attempt to improve programmer productivity. By focusing on each of the different
paradigms, students should gain an insight into how effective each approach has
been, together with an understanding of the specific areas where the use of a
particular paradigm could be particularly appropriate. This understanding will
broaden the students’ experience of different paradigms and will also offer them a
wider choice from which to select an appropriate approach to solve a specific
problem.
Outcomes
A student:
H1.2 differentiates between various methods used to construct software solutions
H2.1 describes the historical developments of different language types
H2.2 explains the relationship between emerging technologies and software
development
H3.1 identifies and evaluates legal, social and ethical issues in a number of contexts
H4.1 identifies needs to which software solutions are appropriate
H4.2 applies appropriate development methods to solve software problems
52
Software Design and Development Stage 6 Syllabus
53
Software Design and Development Stage 6 Syllabus
54
Software Design and Development Stage 6 Syllabus
55
Software Design and Development Stage 6 Syllabus
10 Course Requirements
56
Software Design and Development Stage 6 Syllabus
11 Post-school Opportunities
The study of Software Design and Development Stage 6 provides students with
knowledge, understanding and skills that form a valuable foundation for a range of
courses at university and other tertiary institutions.
In addition, the study of Software Design and Development Stage 6 assists students
to prepare for employment and full and active participation as citizens. In particular,
there are opportunities for students to gain recognition in vocational education and
training. Teachers and students should be aware of these opportunities.
57
Software Design and Development Stage 6 Syllabus
The information in this section of the syllabus relates to the Board of Studies’
requirements for assessing and reporting achievement in the Preliminary and HSC
courses for the Higher School Certificate.
Assessment is the process of gathering information and making judgements about
student achievement for a variety of purposes.
In the Preliminary and HSC courses, those purposes include:
• assisting student learning
• evaluating and improving teaching and learning programs
• providing evidence of satisfactory achievement and completion in the
Preliminary course
• providing the Higher School Certificate results.
Reporting refers to the Higher School Certificate documents received by students
that are used by the Board to report both the internal and external measures of
achievement.
NSW Higher School Certificate results will be based on:
• an assessment mark submitted by the school and produced in accordance
with the Board’s requirements for the internal assessment program
• an examination mark derived from the HSC external examinations.
Results will be reported using a course report containing a performance scale with
bands describing standards of achievement in the course.
The use of both internal assessment and external examinations of student
achievement allows measures and observations to be made at several points and in
different ways throughout the HSC course. Taken together, the external examinations
and internal assessment marks provide a valid and reliable assessment of the
achievement of the knowledge, understanding and skills described for each course.
Standards Referencing and the HSC Examination
The Board of Studies will adopt a standards-referenced approach to assessing and
reporting student achievement in the Higher School Certificate examination.
The standards in the HSC are:
• the knowledge, skills and understanding expected to be learned by students —
the syllabus standards
• the levels of achievement of the knowledge, skills and understanding — the
performance standards.
Both syllabus standards and performance standards are based on the aims,
objectives, outcomes and content of a course. Together they specify what is to be
learned and how well it is to be achieved.
58
Software Design and Development Stage 6 Syllabus
The internal assessment mark submitted by the school will provide a summation of
each student’s achievements measured at points throughout the course. It should
reflect the rank order of students and relative differences between students’
achievements.
Internal assessment provides a measure of a student’s achievement based on a
wider range of syllabus content and outcomes than may be covered by the external
examination alone.
The assessment components, weightings and task requirements to be applied to
internal assessment are identified on page 61. They ensure a common focus for
internal assessment in the course across schools, while allowing for flexibility in the
design of tasks. A variety of tasks should be used to give students the opportunity to
demonstrate outcomes in different ways and to improve the validity and reliability of
the assessment.
59
Software Design and Development Stage 6 Syllabus
For each course, the Board requires schools to submit an assessment mark for
each candidate.
The collection of information for the HSC internal assessment mark must not begin
prior to the completion of the Preliminary course.
The Board requires that the assessment tasks used to determine the internal
assessment mark must comply with the components, weightings and types of tasks
specified in the table on page 61.
Schools are required to develop an internal assessment program that:
• specifies the various assessment tasks and the weightings allocated to each
task
• provides a schedule of the tasks designed for the whole course.
The school must also develop and implement procedures to:
• inform students in writing of the assessment requirements for each course
before the commencement of the HSC course
• ensure that students are given adequate written notice of the nature and timing
of assessment tasks
• provide meaningful feedback on each student’s performance in all assessment
tasks
• maintain records of marks awarded to each student for all assessment tasks
• address issues relating to illness, misadventure and malpractice in assessment
tasks
• address issues relating to late submission and non-completion of assessment
tasks
• advise students in writing if they are not meeting the assessment requirements
in a course and indicate what is necessary to enable the students to satisfy the
requirements
• inform students about their entitlements to school reviews and appeals to the
Board
• conduct school reviews of assessments when requested by students
• ensure that students are aware that they can collect their Rank Order Advice at
the end of the external examinations at their school.
60
Software Design and Development Stage 6 Syllabus
HSC Course
The internal assessment mark for Software Design and Development Stage 6 is to
be based on the HSC course only. Final assessment should be based on a range
and balance of assessment tasks.
While the allocation of weightings to the various tasks set for the HSC course is left
to individual schools, the percentages allocated to each assessment component
must be maintained. One task may be used to assess several components. It is
suggested that 3–5 tasks are sufficient to assess the HSC course outcomes.
61
Software Design and Development Stage 6 Syllabus
62
Software Design and Development Stage 6 Syllabus
63
Software Design and Development Stage 6 Syllabus
64
Software Design and Development Stage 6 Syllabus
13 Glossary
Syllabus specific terms. These terms are provided to assist teachers to interpret the
syllabus but are in no way intended for examination purposes.
abstraction The hiding of detail by the presentation of a more general
instance. In the programming environment, an example of this is
the use of a subroutine, rather than the inclusion of detailed code
backwards/ The process of arriving at a conclusion from a stated set of
forwards chaining conditions. Backwards chaining assumes that a particular
solution is true and then ask questions to verify that the
necessary conditions are present. Forward chaining starts from
the beginning of the facts and rules and asks questions to
determine which path to follow next to arrive at a conclusion
benchmarking A method used to measure the performance of a system or
application by running it under closely controlled conditions
BNF Backus Naur Format — a metalanguage used to specify the
syntax of commands in a given language
breakpoints A method used in software debuggers to denote a point at
which the program is to temporarily halt execution. The
programmer can examine or change the contents of variables
at this point and then resume execution if appropriate
CASE tools Computer Aided Software Engineering — a range of software
that is used to assist the developer with a variety of tasks
required as part of the development process
class The definition of the common characteristics of a group of
objects, which can be used as a ‘template’ for these objects.
Objects of the same class have the same basic definition for
their processes and data
decompilation The process of taking executable machine code and
generating the equivalent assembler code, so that it is more
easily understood by a human. This process is often necessary
when the executable code needs to be modified and the
programmer does not have access to the source code
driver A specially written routine that generates appropriate test data
used to test a lower level module before the higher level
modules are completed
EBNF Extended Backus Naur Format — a more sophisticated
metalanguage used to specify the syntax of commands
available in a given language
encapsulation The isolation of an object from its environment, so that changes
to objects can be made without affecting other parts of the
system, as long as the interface to that object remains the same
65
Software Design and Development Stage 6 Syllabus
66