45
TUGGERAH LAKES SECONDARY COLLEGE THE ENTRANCE CAMPUS HSC Software Design and Development STUDENT HANDBOOK 2018

HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

Embed Size (px)

Citation preview

Page 1: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

TUGGERAH LAKES SECONDARY COLLEGE

THE ENTRANCE CAMPUS

HSC Software Design and

Development

STUDENT HANDBOOK 2018

Page 2: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

Contents Notification Sheet ................................................................................................................................................ 3

Course Description ............................................................................................................................................. 4

Assessment Schedule and Weightings…………………………………………………………………………………5

HSC YEARLY PLANNER 2016/2017 ................................................................................................................ 6

Software Design and Development Performance Band descriptions ...................................................................... 7

Content: Software Design and Development Stage 6 HSC Course......................................................................... 9

9.1 Development and Impact of Software Solutions ..................................................................................... 9

9.1.1 Social and ethical issues ................................................................................................................. 9

9.1.2 Application of software development approaches ........................................................................ 12

9.2 Software Development Cycle ............................................................................................................... 14

9.2.1 Defining and understanding the problem ..................................................................................... 14

9.2.2 Planning and designing software solutions ................................................................................... 17

9.2.3 Implementation of software solution ........................................................................................... 21

9.2.4 Testing and evaluating of software solutions ................................................................................ 25

9.2.5 Maintaining software solutions .................................................................................................... 27

9.3 Developing a Solution Package ............................................................................................................ 28

9.4 Options ............................................................................................................................................... 31

9.4.1 Option 1 Programming Paradigms ................................................................................................ 31

TASK : 1 .......................................................................................................................................................... 34

Task: Major Project........................................................................................................................................ 37

Page 3: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

Notification Sheet

FACULTY: TAS COURSE: SDD

TASK: Course Handbook

(May include course description, scope and sequence, assessment schedule, band descriptors, syllabus, glossary of key words, standards packages and assessment tasks) TEACHER: Toland CLASS: Date Handed Out:

Student Name Sign Date

I have Received the Course Handbook from my Teacher

Page 4: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

Course Description: Software Design and Development

Course No: 15360

2 units for each of Preliminary and HSC

Board Developed Course

Exclusions: Computing Applications CEC

Course Description

The Preliminary course introduces students to the basic concepts of computer software design and

development. It does this by looking at the different ways in which software can be developed, the tools that

can be used to assist in this process and by considering the interaction between software and the other

components of the computer system.

The HSC course builds on the Preliminary course and involves the development and documentation of

software using a variety of data structures and language facilities. Students learn to solve a number of

interesting and relevant software problems.

HSC Course

• Development and Impact of Software Solutions (15%)

o Social and ethical issues

o Application of software development approaches

• Software Development Cycle (40%)

o Defining and understanding the problem

o Planning and design of software solutions

o Implementing software solutions

o Testing and evaluating software solutions

o Maintaining software solutions

• Developing a Solution Package (25%)

• Options (20%)

Study one of the following options:

o Programming paradigms

or

o The interrelationship between software and hardware

Particular Course Requirements

There is no prerequisite study for the Preliminary course. Completion of the Preliminary course is a

prerequisite for the HSC course.

It is a mandatory requirement that students spend a minimum of 20% of Preliminary course time and 25% of

HSC course time on practical activities using the computer.

Page 5: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

Tuggerah Lakes Secondary College _The Entrance Campus

Assessment Schedule and Weightings HSC Course Year : 2017-2018

Subject : Software Design and Development

Task Number 1 2 3 4

Type of Task Practical Half Yearly Exam Major Project Trial HSC

Timing of Task Term 4, 2018

Week 9

Term 1, 2018

Weeks 9,10

Term 3, 2018

Week 2

Term 3, 2018

Weeks 5,6

Topic or Component Weighting

Knowledge and understanding

about development and impact

of software solutions and the

software development cycle

20% 5% 5% 5% 5%

Design and development of

software solutions 35% 2.5% 5% 15% 12.5%

Project management

techniques, including

documentation, teamwork and

communication

20% 2.5% 5% 10% 2.5%

Project(s) 25% 0% 5% 15% 5%

Task Value 10% 20% 45% 25%

Outcomes to be

assessed by the

task

H 1.2 H 3.2

H 4.2

H 4.3

H 5.3

H 1.1 H 2.2

H 1.3

H 3.1

H 3.2 H 5.2

H 4.1 H 4.2

H 5.1

H 5.3

H 6.2

H 2.1

H 2.2

H 3.2

H 5.2 H 6.1

Page 6: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

Course: Software Design and Development Teacher: R Toland

THE ENTRANCE CAMPUS

HSC YEARLY PLANNER 2017/2018

Term 4

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 Review of

case studies

Social &

Ethical

issues

Rights &

responsibilities

Copyright

Piracy

Hacking

Approaches

used in

commercial

systems

Methods of

implementation

Current

trends in

software

development

Case tools in

large system

development

Defining the

problem

Design

specs

Communication

issues

(Task 1 due)

Modelling N/A

Term 1

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 DFDs

SDs

System

Flowcharts

IPO

Data

Dictionary

Screen

Design

Storyboards Algorithms

Searches &

sorts

Custom

Design

Logic

Language

selection

Data

structures

and files

Custom

design

Algorithms

Syntax

BNF

Translation

methods

(Implementation

Documentation

(1/2 Yearly

exam)

of

N/A

Term 2

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 N/A Software Solutions

Hardware

Environment

)

Levels of

testing

Benchmarks

Quality

Assurance

Case tools

Reporting on

the testing

process

Modification

of code

(Task 3)

Documentation

of changes

Implementation

of Solution

Maintenance

of code

(Maintenance

(Testing & Evaluation of software solutions)(Developing a solution

Term 3

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 Week 12 Developing a

Software

Solution

( core

revision)

Representation

of data

* (Major

project Due

Week 2

Term 3

Generation

1-5

Logic

Paradigm

Functional

Lisp

APL

Expert

system

shells

(HSC Trials)

(HSC Trials) revision N/A

N/A

of Software solutions ) (programming paradigms )

package ) (Option Topic) could be revised for a different topic (Revision to HSC)

Page 7: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

7

Software Design and Development Performance Band descriptions

The typical performance in this band:

Band 6

• demonstrates a thorough understanding of the phases of the software development cycle in producing a

solution relevant to client needs and concerns

• uses appropriate development methodologies and project management techniques to analyse a problem

and design a complete software solution

• develops well-constructed algorithms for a variety of unfamiliar problems using appropriate control

structures and data structures

• effectively uses appropriate resources, tools and documentation to manage the development and to

communicate the essential features of software solutions

• designs an effective software solution to a problem reflecting a sophisticated understanding of the

interrelationships between hardware and software

• critically evaluates the social and ethical issues related to the development of software solutions and the

impact on society of the use of computer-based solutions

• analyses the effects of historical developments on current and emerging technologies and practices, and

the development process

Band 5

• demonstrates an understanding of the phases of the software development cycle in producing a solution

recognising client needs and concerns

• uses development methodologies and project management techniques to analyse a problem and design a

relevant software solution

• develops algorithms for a variety of problems using appropriate control structures and data structures

• uses a variety of resources, tools and documentation to manage the development and to communicate

the essential features of software solutions

• designs a software solution to a problem reflecting an understanding of the interrelationships between

hardware and software

• makes informed judgement about the social and ethical issues related to the development of software

solutions and the impact on society of the use of computer-based solutions

• relates knowledge and understanding of historical developments to current and emerging technologies

and practices, and the development process

Band 4

• outlines the phases of the software development cycle required to produce a solution to a specified

problem

• uses development methodologies and project management techniques to design a software solution

• develops an algorithm for a specified problem showing some understanding of control structures and

data structures

• uses a limited number of resources, tools and documentation to develop and communicate some features

of software solutions

• modifies a software solution to a problem reflecting knowledge of the interrelationships between

hardware and software

• gives a clear explanation of the impact on society of the use of computer-based solutions

• demonstrates knowledge and understanding of historical developments and current and emerging

technologies

Band 3

Page 8: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

8

• demonstrates a basic understanding of the phases of the software development cycle

• designs a partial software solution recognising the need for project management techniques

• reads, interprets and modifies simple algorithms that use a variety of data structures

• recognises and describes some resources, tools and documentation used to develop and communicate

software solutions

• demonstrates a basic knowledge of the interrelationships between hardware and software

• describes some issues related to the impact on society of the use of computer-based solutions

• shows some knowledge

Band 2

• identifies the phases of the software development cycle

• recognises some development methodologies and project management techniques

• reads and interprets simple algorithms that use simple data types

• recognises some resources, tools and documentation used in software development

• distinguishes between hardware and software components

• identifies some issues related to the impact on society of computer-based solutions

• identifies examples of current technologies

Band 1

Page 9: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

9

Content: Software Design and Development Stage 6 HSC Course

9.1 Development and Impact of Software Solutions

9.1.1 Social and ethical issues

Students undertaking the HSC course should be aware of the broader social and ethical issues associated with

the development and use of software.

This topic builds on the concepts covered in the Preliminary course and looks specifically at the rights and

responsibilities of developers from a number of perspectives. Both past and current problems arising from the

use of software are investigated to illustrate the effects on society of these and similar problems.

Outcomes

A student:

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.

Page 10: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

10

Students learn about: Students learn to:

The impact of software

• inappropriate data structures, for example the year

2000 problem

• computer malware such as viruses

• reliance on software

• social networking

• cyber safety

• huge amounts of information (which may be

unsupported, unverifiable, misleading or incorrect)

available through the internet

Rights and responsibilities of software developers

• acknowledging the intellectual property of others

• recognition by others of the developer’s

intellectual property

• producing quality software solutions

• appropriately responding to user-identified

problems

• adhering to code of conduct

• neither generating nor transmitting malware

• addressing ergonomic issues in software design

• ensuring software addresses inclusivity issues

• ensuring individuals’ privacy is not compromised

Software piracy and copyright

• concepts associated with piracy and copyright,

including:

– intellectual property

– plagiarism

– copyright laws

– licensing issues

– licence conditions

– shareware

– public domain

– open source

– ownership versus licensing

– collaboratively developed software

– reverse engineering

– decompilation

• current and emerging technologies used to combat

software piracy (see Course Specifications

document)

• recognise the effects of software solutions on

society

• identify the impact of inappropriately

developed software on users

• identify the effect of the inappropriate use of

software on society and individuals

• apply a relevant code of conduct to their own

software development

• interpret licence agreements and develop

personal practices that reflect current laws

• identify the relationship between copyright

laws and software license agreements

• acknowledge all sources in recognition of the

intellectual contribution of authors

• identify a range of techniques designed to

combat software piracy

Page 11: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

11

Students learn about: Students learn to:

Use of networks

• by the developer when developing software

– access to resources

– ease of communication

– productivity

• by the user when using network based software

– response times

– interface design

– privacy and security issues

The software market

• maintaining market position

• the effect of dominant developers of software

• the impact of new developers of software and new

products

Legal implications

• national and international legal action resulting

from software development (see Course

Specifications document)

• evaluate the usefulness of networks in the

development environment

• identify the impact of dominant developers of

software on software development

• discuss the reasons for, and consequences of,

significant legal actions pertaining to the

development of software

Page 12: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

12

9.1.2 Application of software development approaches

Students should be aware of the appropriateness of each of the different software development approaches for a

given situation. In this topic, students complete a case study of a software solution. In so doing, students will

engage in a real-world investigation of a significant software solution.

Outcomes

A student:

H1.2 differentiates between various methods used to construct software solutions

H2.2 explains the interrelationship between emerging technologies and software development

H3.1 identifies and evaluates legal, social and ethical issues in a number of contexts

H4.2 applies appropriate development methods to solve software problems

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 skills required in the software development cycle

H6.2 communicates the processes involved in a software solution to an inexperienced user.

Page 13: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

13

Students learn about: Students learn to:

Software development approaches

• approaches used in commercial systems, including:

– Structured approach

– Agile approach

– Prototyping

– RAD

– End user approach

– combinations of any of the above

• use of Computer Aided Software Engineering

(CASE) tools and their application in large systems

development, including:

– software version control

– test data generation

– production of documentation

– production of code

• methods of installation of new or updated systems

– direct cut over

– parallel

– phased

– pilot

• employment trends in software development, for

example:

– outsourcing

– contract programmers

• trends in software development

– changing nature of the environment in which

developers work while creating software

solutions

– changing nature of applications

(see Course Descriptions documents)

• compare and determine the most appropriate

software development approach for a given

scenario

• communicate understanding of a commercial

system studied using a case study approach by:

– identifying the approaches used

– discussing the appropriateness of the

approaches used

– describing how the various personnel

contribute to the overall development

– critically evaluating how social and ethical

issues were addressed

– evaluating how effectively the new system

met the needs of the user

• make informed comment on current trends in

software development

Page 14: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

14

9.2 Software Development Cycle

The formal methods that comprise the structured approach to software development empower students to

undertake complex projects, knowing that the developed system will be robust and easily maintained.

The stages described in this topic should not be studied in isolation or in a sequential fashion. Students should

be exposed to the content in a cyclic fashion and should recognise each stage during the development of their

project(s). It is important that students are able to apply each of the stages in their project(s).

Areas for investigation in their project(s) could include writing scripts or code for modelling and simulation,

games, scripted hypermedia products and applications.

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 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 the Software and Course Specifications document

and should provide documentation that can be interpreted by developers and maintainers. Students should

develop and refine skills as an integrated part of developing their software solutions. 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

H6.1 assesses the skills required in the software development cycle

H6.2 communicates the processes involved in a software solution to an inexperienced user

H6.3 uses and describes a collaborative approach during the software development cycle

H6.4 develops and evaluates effective user interfaces, in consultation with appropriate people.

Page 15: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

15

Students learn about: Students learn to:

Defining the problem

• identifying the problem

– needs of the client

- functionality requirements

- compatibility issues

- performance issues

– boundaries of the problem

Issues relevant to a proposed solution

• determining if an existing solution can be used

– social and ethical considerations

– consideration of existing software products

– customisation of existing software

solutions

– cost effectiveness

– licensing considerations

• selecting an appropriate development approach

if there is no appropriate existing solution

Design specifications

• specifications of the proposed system

• developer’s perspective in consideration of:

– data types

– data structures

– algorithms

• user’s perspective

– interface design

– social and ethical issues

– relevance to the user’s environment and

computer configuration

System documentation

• representing a system using systems modeling

tools, including:

– IPO diagrams

– context diagrams

– data flow diagrams (DFDs)

– storyboards

– structure charts

– system flowcharts

– data dictionaries

• algorithms used to document the logic in

modules and subroutines

• test data and expected output

Communication issues between client and

developer

• the need to consult with the client

• the need to incorporate the client’s

perspective

• the need for the developer to enable and

consider feedback

• the need to involve and empower the client

during the development process

• evaluate the extent to which a proposed system

will meet user needs

• evaluate the effectiveness of using existing

software

• identify the parts of the proposed system that

require software to be designed and developed

• identify a relevant approach for a given problem

• develop and interpret design specifications from a

user’s perspective

• recognise the difference between the user’s and

developer’s perspectives and the communication

issues that may arise

• differentiate between forms of systems

documentation and the purposes for which each is

used

• describe a system by interpreting its diagrammatic

representation

• create a diagrammatic representation for a system

using appropriate modeling tools

• effectively communicate with users regarding a

proposed software solution

Page 16: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

16

Students learn about: Students learn to:

Quality assurance

• the need to explicitly define the criteria on

which the quality of the product will be judged

• putting in place management processes to

ensure that quality criteria will be met

• an ongoing process throughout development to

ensure the quality criteria will be met

• identify a range of criteria on which the quality of

the product will be judged

• identify relevant processes for a given criterion

that will result in a quality product

Page 17: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

17

9.2.2 Planning and designing software solutions

To solve complex problems, students need to develop a strategy. They need to be able to identify inputs and

outputs, to select, describe and use relevant data structures, to explain the procedures required for the solution

and explain how each of these will interact. Well-structured algorithms should be developed. Desk checking of

algorithms and documentation of the proposed solution are also important.

The development of structured algorithms to document the logical solution of problems is a fundamental

principle of this course. These must be developed independently of any coding language. Students should

appreciate that the real skill is in the development of the algorithm, not the implementation of the logic in a

particular language. Not every algorithm developed in this section of the course need be implemented.

Problems must be chosen with an appropriate level of difficulty that reflects the ability level of students. The

level of difficulty should be greater than in the Preliminary course. Relevant problems could include the

development of games such as hangman, quizzes, mastermind, draughts and search-a-word. These problems

should include use of data structures such as arrays of records and multidimensional arrays. Students should

experience the storing, retrieving and updating of data in files.

Outcomes

A student:

H1.1 explains the interrelationship between hardware and software

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.2 communicates the processes involved in a software solution to an inexperienced user

H6.3 uses and describes a collaborative approach during the software development cycle

H6.4 develops and evaluates effective user interfaces, in consultation with appropriate people.

Page 18: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

18

Students learn about: Students learn to:

Standard algorithms

• standard logic used in software solutions, namely:

– finding maximum and minimum values in

arrays

– processing strings (extracting, inserting,

deleting)

– generating a set of unique random numbers

– processing of sequential files, including:

- sentinel value

- priming read

- open for input, output or append

- close

- appending records

– processing of relative files, including:

- open for relative access

- defining a key field for a relative file

- retrieving, writing and updating a record in

a relative file

– linear search

– binary search

– bubble sort

– insertion sort

– selection sort

(see Course Specifications document)

Custom-designed logic used in software solutions

• requirements to generate these include:

– identification of inputs, processes and outputs

– representation as an algorithm

– testing of the logic in the algorithm

– identification and definition of required data

structures

– use of data structures, including

multidimensional arrays, arrays of records, files

(sequential and relative)

(see Course Specifications document)

• customised off-the-shelf packages

– identifying an appropriate package

– identifying the changes that need to be made

– identifying how the changes are to be made

Standard modules (library routines) used in

software solutions

• reasons for the development and use of standard

modules

• requirements for generating a module or subroutine

for re-use, including:

– identification of appropriate modules or

subroutine

– appropriate testing using drivers

– thorough documentation of the routine:

- author

- date

- purpose

- order and nature of parameters to be passed

• issues associated with reusable modules or

subroutines, including:

– identifying appropriate modules or subroutines

• recognise the logic in a standard approach,

such as a sort or search

• apply standard approaches as part of the

solution to complex problems

• read, interpret and modify algorithms

developed by others

• document the logic required to solve

problems, including:

– nesting of control structures

– record structure

– the use of files (sequential and relative)

– random number generators

– arrays of records

– multidimensional arrays

• develop a suitable set of test data

• desk check algorithms and source code that

include complex logic

• select an appropriate data structure to solve a

given problem

• develop and appropriately document a

module for use by others

• correctly incorporate a standard module into

a more complex solution, passing parameters

effectively

Page 19: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

19

Students learn about: Students learn to:

– considering local and global variables

– appropriately using parameters (arguments)

Documentation of the overall software solution

• tools for representing a complex software solution,

including:

– algorithms

– refined system modeling tools, including:

- IPO diagrams

- context diagrams

- data flow diagrams (DFDs)

- storyboards

- structure charts

- system flowcharts

- data dictionaries

Interface design in software solutions

• the design of individual screens in consultation

with the client, including:

– consideration of the intended audience

– identification of screen size

– identification of data fields and screen elements

required and their appropriate on-screen

placement

– online help

– consistency in approach

– recognition of relevant social and ethical issues

– current common practice in interface design

(see Course Specifications document)

Factors to be considered when selecting the

programming language to be used

• sequential or event-driven software

– driven by the programmer or user

• features required, and features available in the

language

• commands within the language to interface with the

required hardware

• ability to run under different operating systems

Factors to be considered when selecting the

technology to be used

• performance requirements

• benchmarking

• represent a software solution in

diagrammatic form

• interpret and modify existing system

modeling diagrams

• select and use appropriate software to assist

in the documentation of a software solution

• recognise the relevance of CASE tools in the

planning and design of a software solution

• design and evaluate effective interfaces for

software solutions

• use a RAD environment to produce user

interfaces

• recognise that the choice of programming

language to be used depends on the problem

to be solved

• interpret a benchmark report to select the

most suitable technology for a specified task

Page 20: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

20

Students learn about: Students learn to:

• produce a benchmark report for a simple

iterative process running under two different

environments or conditions

Page 21: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

21

9.2.3 Implementation of software solution

In the implementation phase of the software development cycle, previously developed algorithms are converted

to a form that can be processed by a computer. Students will need to learn the syntax of the language, macro or

script being used to successfully implement their solutions. Knowledge of a metalanguage such as EBNF or

railroad diagram(s) is essential in understanding both the syntax of a language and how a translator can detect

syntax errors in source code. The need for a translation process should be recognized. In the case of code,

students should be aware of the relevance of the different translation methods available. Students will need to

recognise the approach being used (that is, sequential or event-driven) and will need to make appropriate

decisions about the design of interfaces and the documentation produced. Relevant social and ethical issues

should be considered during this implementation process.

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

H2.1 explains the implications of the development of different languages

H2.2 explains the interrelationship between emerging technologies and software development

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.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.2 communicates the processes involved in a software solution to an inexperienced user

H6.3 uses and describes a collaborative approach during the software development cycle

H6.4 develops and evaluates effective user interfaces, in consultation with appropriate people.

Page 22: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

22

Students learn about: Students learn to:

Implementation of the design using an appropriate

language

• the different programming languages and the

appropriateness of their use in solving different

types of problems

• construction of syntactically correct code that

implements the logic described in the algorithm

Language syntax required for software solutions

• use of EBNF and railroad diagrams to describe the

syntax of statements in the selected language

The need for translational to machine code from

source code

• translation methods in software solutions including:

– compilation

– interpretation

• advantages and disadvantages of each method

• steps in the translation process

– lexical analysis including token generation

– syntactical analysis including parsing

– code generation

• identify an appropriate language to solve a

particular problem

• recognise the appropriateness of either a

sequential or event-driven approach to solve a

particular problem

• develop syntactically correct code to solve a

problem in a given language

• interpret metalanguage definitions for

commands in a selected language

• produce syntactically correct statements using

the metalanguage definitions

• produce a generic metalanguage definition for

a set of syntactically correct statements that

use the same command

• implement a solution from a complex

algorithm using syntactically correct

statements

• explain the use of tokens and the role of the

parsing process during the translation of

source code to machine code

• recognise that machine code is the only code

able to be executed by a computer

• identify the most appropriate translation

method for a given situation

• use the features of both a compiler and an

interpreter in the implementation of a

software solution

Page 23: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

23

The role of machine code in the execution of a

program

• machine code and CPU operation

– instruction format

– use of registers and accumulators

– the fetch–execute cycle

– use of a program counter and instruction register

• execution of called routines

• linking, including use of DLLs

Techniques used in developing well-written code

• the use of good programming practice, including:

– a clear and uncluttered mainline

– one logical task per subroutine

– use of stubs

– appropriate use of control structures and data

structures

– writing for subsequent maintenance

– version control

– regular backup

– recognition of relevant social and ethical issues

• the process of detecting and correcting errors,

including:

– types of error

- syntax errors

- logic errors

- runtime errors, including:

- arithmetic overflow

- division by zero

- accessing inappropriate memory

locations

– methods of error detection and correction

- use of flags

- methodical approach to the isolation of

logic errors

- use of debugging output statements

- peer checking

- desk checking

- structured walkthrough

- comparison of actual with expected output

• the use of software debugging tools, including:

– use of breakpoints

– resetting variable contents

– program traces

– single line stepping

Documentation of a software solution

• forms of documentation, including:

– log book

– user documentation, including:

- user manual

- reference manual

- installation guide

- tutorial

- online help

• recognise, interpret and write machine code

instructions for a problem fragment

• employ good programming practice when

developing code

• justify the use of a clear modular structure

with separate routines to ease the design and

debugging process

• differentiate between types of errors

• recognise the cause of a specific error and

determine how to correct it

• effectively use a variety of appropriate error

correction techniques to locate the cause of a

logic error and then correct it

Page 24: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

24

Students learn about: Students learn to:

• produce user documentation (incorporating

screen dumps) that includes:

– a user manual

– a tutorial

– online help

– technical documentation, including:

- systems documentation

- algorithms

- source code

• use of application software including CASE tools to

assist in the documentation process

• recognition of relevant social and ethical issues

Hardware environment to enable implementation of

the software solution

• hardware requirements

– minimum configuration

– possible additional hardware

– appropriate device drivers or extensions

Emerging technologies

• the effect of emerging hardware and software

technologies on the development process (see

Course Specifications document)

• differentiate between types of user

documentation

• identify the personnel who would be likely to

use the different types of documentation

• produce technical documentation for an

implemented software solution

• recognise the need for additional hardware

• identify potential compatibility issues for a

newly developed software solution

• recognise the implications of emerging

technologies for the developer in terms of the

code written to make use of these

technologies

• recognise the implications of emerging

technologies for the code development

process

Page 25: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

25

9.2.4 Testing and evaluating of software solutions

Students should verify their solutions using test data both at program and system level. Live testing of programs

should take place so that potential problems can be identified and addressed. Students should also check that

original requirements are met and that there are no logic errors. All user interfaces should also be evaluated at

this stage.

These steps are critical in ensuring that the developed product meets the user’s needs in terms of relevance,

reliability and quality.

Outcomes

A student:

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.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 skills required in the software development cycle

H6.2 communicates the processes involved in a software solution to an inexperienced user

H6.3 uses and describes a collaborative approach during the software development cycle

H6.4 develops and evaluates effective user interfaces, in consultation with appropriate people.

Page 26: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

26

Students learn about: Students learn to:

Testing the software solution

• comparison of the solution with the design

specifications

• generating relevant test data for complex solutions

• comparison of actual with expected output

• levels of testing

– module

- test that each module and subroutine

functions correctly

- use of drivers

– program

- test that the overall program (including

incorporated modules and subroutines)

functions correctly

– system

- test that the overall system (including all

programs in the suite) functions correctly,

including the interfaces between programs

- acceptance testing

• the use of live test data to ensure that the testing

environment accurately reflects the expected

environment in which the new system will operate

– large file sizes

– mix of transaction types

– response times

– volume of data (load testing)

– effect of the new system on the existing

systems in the environment into which it will

be installed

Reporting on the testing process

• documentation of the test data and output

produced (see Course Specifications document)

– use of CASE tools

• communication with those for whom the solution

has been developed, including:

– test results

– comparison with the original design

specifications

Evaluating the software solution

• verifying the requirements have been met

appropriately

• quality assurance

• differentiate between systems and program test

data

• test their solution with the test data created at

the design stage, comparing actual with

expected output

• use drivers and/or stubs to test specific modules

and subroutines before the rest of the code is

developed

• recognise the importance of module testing

before the module or subroutine is incorporated

into the larger solution

• recognise that while an individual program or

module may have been successfully tested,

when it is incorporated into a larger system,

problems may become apparent

• demonstrate the features of a new system to the

client

• assess the new software solution to ensure that

it meets the specified quality assurance criteria

• assess the performance of the new software

solution against the criteria specified by the

benchmark

Post implementation review

• facilitation of open discussion and evaluation with

the client

• client sign off process

Page 27: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

27

9.2.5 Maintaining software solutions

Modifications to source code are often required. Often these are not made by the original developers. Under

these circumstances, original documentation is of importance, as is the readability of the source code. As a

minimum, all modified or new code should adhere to the standards of the original code.

Students should be given opportunities to modify and document their own code and experience modifying and

documenting the code of others. Documentation is an integral part of this process.

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.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 skills required in the software development cycle

H6.2 communicates the processes involved in a software solution to an inexperienced user

H6.3 uses and describes a collaborative approach during the software development cycle

H6.4 develops and evaluates effective user interfaces, in consultation with appropriate people

Students learn about: Students learn to:

Modifying code to meet changed requirements

• identifying reasons for change in source code

• locating of sections to be altered

• determining changes to be made

• implementing and testing solution

Documenting changes

• including relevant comments in the source code to

highlight the modification

• updating associated hard copy documentation and

online help

• using CASE tools to monitor changes and versions

(see Course Specifications document)

• read and interpret source code created by other

developers

• design, implement and test modifications

• recognise the cyclical approach to maintenance

• document modifications with dates and

reasons for change

Page 28: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

28

9.3 Developing a Solution Package

Project work in the HSC course is intended to reinforce the content covered in the other topics in the course.

Students need to experience working collaboratively with their peers and others, 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. Project work gives students these opportunities.

The development of project(s) will build students’ understanding of the content dealt with elsewhere in the

course and should be integrated 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 skills required in the software development cycle

H6.2 communicates the processes involved in a software solution to an inexperienced user

H6.3 uses and describes a collaborative approach during the software development cycle

H6.4 develops and evaluates effective user interfaces, in consultation with appropriate people

Page 29: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

29

Students learn about: Students learn to:

Designing and developing a software solution to a

complex problem

• defining and understanding the problem

– identification of the problem

– generation of ideas

– communication with others involved in the

proposed system

– draft interface design

– representing the system using diagrams

– selection of appropriate data structures

– applying project management techniques

– consideration of all social and ethical issues

• planning and designing

– algorithm design

– refined systems modeling, such as:

- IPO diagrams

- context diagrams

- data flow diagrams (DFDs)

- storyboards

- structure charts

- system flowcharts

- data dictionaries

– additional resources

- Gantt charts

- logbooks

- algorithms

- prototypes

– selecting software environment

– identifying appropriate hardware

– selecting appropriate data structures

– defining files

- purpose

- contents

- organisation

– defining records

– defining required validation processes

– identifying relevant standard or common

modules or subroutines

– using software to document design

– identifying appropriate test data

– enabling and incorporating feedback from

users at regular intervals

– considering all social and ethical issues

– communicating with others involved in the

proposed system

– applying project management techniques

• implementing

– converting the solution into code

– systematic removal of errors

– refining the data dictionary

– including standard or common modules or

subroutines

– using software to refine documentation

– creating online help

– reporting on the status of the system at regular

intervals

– applying project management techniques

• testing and evaluating

• define the problem and investigate alternative

approaches to a software solution

• evaluate the ideas for practical implementation

• select an appropriate solution

• produce an initial Gantt chart

• use a logbook to document the progress of their

project (see Course Specifications document)

• document the software solution

• generate a fully documented design for their

project after communication with other

potential users

• use and modify a Gantt chart as appropriate

• implement a fully tested and documented

software solution in a methodical manner

• use project management techniques to ensure

that the software solution is implemented in an

appropriate time frame

• ensure that relevant ethical and social issues are

addressed appropriately

Page 30: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

30

Students learn about: Students learn to:

– completing thorough program and system

testing

– completing all user documentation for the

project

• maintaining

– modifying the project to ensure:

- an improved, more elegant solution

- all needs have been met

- the software solution operates under

changed environments or requirements

– updating the software specifications and

documentation to reflect the changes

Whole project issues

• project management techniques

• social and ethical issues

• feedback from users at regular intervals

• evaluate the project in relation to the original

understanding of the problem

• review and evaluate the quality of the solution

making the necessary changes

• manage the project effectively

• communicate effectively with potential users

Page 31: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

31

9.4 Options

The option topics in this course extend students’ software development experiences in one of two dimensions.

Option 1 Programming Paradigms broadens students’ understanding of different types of programming

languages by looking at two different types and the reasons for their development.

Option 2 The Interrelationship Between Software and Hardware extends students’ understanding 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 Programming Paradigms

This topic offers students the opportunity to look at 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 language to solve a specific problem.

Students are expected to implement solutions to a number of small relevant problems using an appropriate

language. A range of problems should be selected. Some problems will require the use of the logic paradigm,

while other problems will require the use of the object oriented paradigm.

Outcomes

A student:

H1.2 differentiates between various methods used to construct software solutions

H2.1 explains the implications of the development of different languages

H2.2 explains the interrelationship between emerging technologies and software development

H4.1 identifies needs to which software solutions are appropriate

H4.2 applies appropriate development methods to solve software problems

H5.3 selects and applies appropriate software to facilitate the design and development of software solutions.

Page 32: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

32

Students learn about: Students learn to:

Development of the different paradigms

• limitations of the imperative paradigm

– difficulty with solving certain types of problems

– the need to specify code for every individual

process

– difficulty of coding for variability

• emerging technologies

• simplifying the development and testing of some

larger software projects

• strengths of different paradigms

Logic paradigm

• concepts

– variables

– rules

– facts

– heuristics

– goals

– inference engine

– backward/forward chaining

• language syntax

– variables

– rules

– facts

• appropriate use, such as:

– pattern matching

– AI

– expert systems

Object oriented paradigm

• concepts

– classes

– objects

– attributes

– methods/operations

– variables and control structures

– abstraction

– instantiation

– inheritance

– polymorphism

– encapsulation

• language syntax

– classes

– objects

– attributes

– methods/operations

– variables and control structures

• appropriate use, such as

– computer games

– web-based database applications

• identify the needs that led to the development

of different paradigms

• recognise the issues associated with using an

imperative approach to solve some problems

such as Artificial Intelligence (AI) and

computer gaming

• recognise representative fragments of code

written using the logic paradigm (see Course

Specifications document)

• recognise the use of the logic paradigm

concepts in code

• interpret a fragment of code written using the

logic paradigm, and identify and correct logic

errors

• modify fragments of code written using the

logic paradigm to incorporate changed

requirements

• code and test appropriate solutions in a

language using the logic paradigm

• assess the appropriateness of a software

solution written using the logic paradigm

against a solution written using an imperative

approach

• recognise representative fragments of code

written using the object oriented paradigm

(see Course Specifications document)

• recognise the use of the object oriented

concepts in code

• interpret a fragment of code written using the

object oriented paradigm, and identify and

correct logic errors

• modify fragments of code written using the

object oriented paradigm to incorporate

changed requirements

• code and test appropriate solutions in a

language using the object oriented paradigm

• assess the appropriateness of a software

solution written using the object oriented

paradigm against a solution written using the

imperative approach

Page 33: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

33

Students learn about: Students learn to:

Issues with the selection of an appropriate paradigm

• nature of the problem

• available resources

• efficiency of solution once coded

• programmer productivity

– learning curve (training required)

– use of reusable modules

– speed of code generation

– approach to testing

• describe the strengths of the imperative, logic

and object oriented paradigms

• identify an appropriate paradigm relevant for

a given situation

• evaluate the effectiveness of using a particular

paradigm to solve a simple problem

Page 34: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

34

Tuggerah Lakes Secondary College

The Entrance Campus

HSC COURSE FACULTY Maths/ computing

COURSE NAME: Software Design and Development

MODULE / UNIT: Development and Impact of Software Solutions TIMING: Term 4 Week 10

TASK : 1: Practical Programming Task in class WEIGHTING: 10%

OUTCOMES: A student: H1.2 differentiates between various methods used to construct software solutions H3.2 constructs software solutions that address legal, social and ethical issues 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.3 selects and applies appropriate software to facilitate the design and development of software solutions

TASK: This will be an in class practical task using visual basic to construct a software solution. You will be provided with guidelines to follow for this task with defined objectives to follow and achieve in building the software solution. This task will take place over 2 periods in week 9 and you will need to make sure that you are able to log into and use visual basic using virtual pc. You will need to have verified this beforehand with the teacher to avoid any problems occurring during the allotted time for the task.

ADDITIONAL NOTES: * The Campus Assessment Policy and procedures MUST be followed * Tasks must be completed or handed in on the due date during the regular class * Tasks that are handed in late may receive ZERO (0) marks and an N Warning letter issued * Students should refer to the Policy sections on submission of work, plagiarism, illness and/or misadventure appeals, and the assessment task appeals process

Page 35: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

35

Notification Sheet

FACULTY: TAS COURSE: SDD

TASK: 1

TEACHER: Toland CLASS: Date Handed Out:

Student

Name

Task Recieved

Sign Date

Marks Recieved

Sign Date

I have Received the Major project from my Teacher

Page 36: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

36

Notification Sheet

FACULTY: TAS COURSE: SDD

TASK: 2 Mid year exam

TEACHER: Toland CLASS: Date Handed Out:

Student Name Sign Date

I have Received results from my Teacher

Page 37: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

37

Tuggerah Lakes Secondary College The Entrance Campus

HSC COURSE

FACULTY Computing / Maths COURSE NAME: Software Design and Development

Task: Major Project

TIMING: Term 1-3 DATE : Term 3 2pm Friday Week 2 2018 TASK NUMBER: 3 WEIGHTING: 50%

OUTCOMES: A student:

H4.1 identifies needs to which software solutions are appropriate

H4.2 applies appropriate development methods to solve software problems

H5.1 applies project management techniques to maximise the productivity of the software

development

H5.3 selects and applies appropriate software to facilitate the design and development of

software solution

H6.2 communicates the processes involved in a software solution to an inexperienced

user

TASK: Students are required to complete a relevant individual project, incorporating the design and development of a substantial piece of software. Throughout the project, students will develop skills in communication and project management, as well as skills more specifically required for the design and development of computer software. Students learn to develop software that is influenced by the feedback from their peers, for a range of potential users. Students are encouraged to both offer and accept feedback from their peers and the teacher. Your attention is drawn to Board of Studies rules regarding plagiarism. Projects need to be well planned. You are going to be evaluated on how you plan and manage, as well as the product you produce. Students need to be working on the following throughout the project:

Log book System documentation – Storyboard, Structure Chart, Data flow diagram, Gantt chart, Data

Dictionary, Algorithm design. Source Code Interface Design Online Help Tutorial for using the software you have produced Installation guide Project Management techniques

Each of the above mentioned items will be checked at regular intervals as outlined in the Campus Assessment Procedures.

ADDITIONAL NOTES: * The Campus Assessment Policy and procedures MUST be followed * Tasks must be completed or handed in on the due date during the regular class * Tasks that are handed in late may receive ZERO (0) marks and an N Warning letter issued * Students should refer to the Policy sections on submission of work, plagiarism, illness and/or misadventure appeals, and the assessment task appeals process

Page 38: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

38

Project Ideas:

Board Game simulations: Snakes and Ladders, Monopoly Wheel of fortune Scrabble Battleships Draughts Patience Bingo Memory Mastermind Data Oriented Applications: Diary Video store management system Address book Payroll system Multiple Choice tester Library system Sale of the century Sporting events system Collection of information – CDs Wedding planner Stamps Football tipping competition Digital photo Album, appointment system, hotel bookings Lotto Draw Educational: Children’s ABC teacher Computer tutor Student times table teacher Calculator to be used for pre-schoolers Math quiz Search a word Student notes organiser Children’s story book

Project selection

• Keep it simple and realistic – remember your skill level and the time factor involved for completion.

• Select a project topic you are interested in or can relate to

• Consider if the program code is achievable

• Project must not be started without teacher approval Steps in Project Management: The following stages of the project management cycle need to be followed:

Defining the problem Understanding the problem Planning the design Implementation Testing and evaluating Maintenance

Page 39: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

HSC Software Design & Development

39

LOGBOOKS: Students are required to keep a logbook, diary or some form of journal. The log book will be checked at regular intervals to facilitate the activities undertaken when planning, designing and implementing projects. An example of how students may approach the logbook is through the use of a scaffold. This scaffold, which identifies the main headings that students may focus their entries on, may be presented as text or in table format. The headings could include:

• Date

• The task that was attempted

• How the task was achieved

• The end result of the task

• Follow-up required and resulting action

• Signature of teacher to confirm entry

• Reasons for changes made (if applicable) SUBMIT: Students are to hand in the completed project including:

Story board Structure chart or data flow diagram Gantt chart Log book Algorithms Data Dictionary Source code Online Help A tutorial for using your software An installation guide for the software

All documentation may be submitted in folio format in discussion with the teacher. GENERAL ASSESSMENT CRITERIA You will be assessed on your ability to: Identify the need to which solutions are appropriate. Apply appropriate development methods to solve software problems. Apply a modular approach to implement well-structured solutions and evaluate their effectiveness. Apply project management techniques to maximise the productivity of the software development. Select and apply appropriate software to facilitate the design and development of software solution. Communicate the processes involved in a software solution to an inexperienced user. Use a collaborative approach during the software development cycle. Develops effective user interfaces, in consultation with appropriate people.

Page 40: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

HSC Software Design & Development

40

Areas for Assessment

Software System documentation

Follows Software Development Cycle

Selection of appropriate documentation tools

Appropriate use of documentation tools

Productive use of CASE tool (eg MacFlow/Visio for flowcharts on computer)

Algorithms

Use of appropriate control and data structures and data types

Methodical testing and modification to improve design

Inclusion of standard routines (library of code)

Evaluation

Does the project meet the defined need(s) as defined in the proposal?

Is an appropriate solution selected from the alternative approaches investigated?

Are social and ethical issues addressed?

Elegance of the solution – cumbersome or clean?

Robustness – does it work under all conditions?

Project management

Evidence of good planning

Use of appropriate management techniques and resources

User documentation

Clear, simple language and easy to follow

Uses screen shots

Communication

Regular and appropriate communication with those involved in the project

Students should: • Define a problem which can be solved with a software solution

• Research possible approaches to the solution and report on them

• Plan their approach to solution by determining appropriate algorithms, control and data

structures, and data types necessary for their solution

• Identify available resources (hardware and software) for their project, including library

routines

• Determine an appropriate back up strategy for their solution

• Build the solution, using appropriate source code, developed by themselves, and

incorporating modules from other sources if available (acknowledging these sources)

• Check the solution using a methodical and thorough testing approach, with relevant test data

• Modify the solution to reflect improved design

• Keep a diary or logbook, documenting milestones, stumbling blocks, and successes on at

least a weekly basis but, preferably on each occasion work is done on the project

• Document their solution, incorporating screen shots in user documentation, and using

appropriate software (CASE tools and applications) where relevant

• Document social and ethical issues reflected in the solution and during its development

• Evaluate the project and the quality of the solution, in relation to the original understanding of

the problem and the defined need.

Page 41: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

HSC Software Design & Development

41

Marking Scheme Student name:

Area of Assessment The best answers : Mark available Due Date

Software Development Cycle

Defining the problem

– Identification of the problem (Problem statement & Requirements report)

– Communication to establish requirements eg. Interviews, observation and questionnaires

– Idea generation (alternative solutions)

– Investigate alternative approaches to a software solution (feasibility study)

– Develop project plan (development approach used & Gantt chart)

Clearly and succinctly identifiy the problem stating the 1. needs 2. objectives 3. boundaries 4. constraints 5. Social & ethical standards

Relevant and preliminary investigation of possible alternative approaches with recommendations for course of action

Project Plan developed to outline tasks

/10

Term 1 Wk 4 2018

Understanding User Requirements

– Design specifications 1. appropriate data types selected 2. selection of appropriate data structures

– Representation of the system using diagrams 1. interface design (initial ideas - storyboard) 2. Data modeling 3. limited prototype development

– Consider all Social & ethical issues that apply

Select the appropriate data types & structures

Provide a full representation of the system using diagrams:

1. interface design (initial ideas - storyboard)

2. IPO chart 3. Context and DFD diagrams 4. Initial structure diagram

/15

Term 1 Wk 8 2018

Planning and design

– interface design (consistent, accessible, user-friendly design)

– selection of software environment (OS and programming language)

– identification of appropriate hardware – selection of appropriate data structures and data

types – production of data dictionary (initial) – definition of required validation processes – definition of files — record layout and creation – algorithm design:

* uses modular structure with appropriate control structures

* inclusion of standard or common routines – identification of appropriate test data – – enabling and incorporating feedback from users

at regular intervals – use of software application to document design

(CASE tools)

Show the Interface design of individual screens, including:

1. identification of data required, 2. current popular approaches, 3. design of help screens, 4. audience identification, 5. consistency in design

Implement a solution using a complex algorithm:

1. using syntactically correct statements, 2. standard routines and 3. complete validation where needed

– will be Valid with the relevant use of control structures, data structures and data types

Algorithms display clear, modular structure with separate routines to ease the design and debugging process

Show the creation of appropriate test data and data dictionary

/20

Term 2 Wk 4 2018

Implementation

– production and maintenance of data dictionary – inclusion of standard or common routines – translating the solution into code – program testing (methodical, relevant) – reporting on the status of the system at regular

intervals – enabling and incorporating feedback from users at

regular intervals – completing full program and systems testing – completing all user documentation for the project – use of software to document design (CASE tools) – creating online help

Develop a uncluttered main program, use appropriate subroutines with correct parameter passing. Easily be a maintained solution. Appropriately modularised code Well documented, easily read and maintainable source code Make use of appropriate sophisticated language features and produce desired output

/20

Term 2 Wk 8 2018

Maintenance

Modifying the project to ensure an improved solution

Evaluation of program

Show an obvious effort to improve the solution as the project progresses. Provide an ease of maintenance solution

/2 Term 2 Wk 9

2018

Page 42: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

HSC Software Design & Development

42

General Comment:

…………………………………………………………………………………………………………

…………………………………………………………………………………………………………

…………………………………………………………………………………………………………

…………………………………………………………………………………………………………

…………………………………………………………………………………………………………

Area of Assessment Best answers will: Mark available Date Due

Project Management Techniques

Documentation – completing all user documentation for the project – chooses appropriate forms of documentation – Process diary (logbook) – User documentation (manuals, tutorial, online help,

etc) – Self-documentation of the code (internal) – – Technical documentation includes:

1. source code, 2. algorithms, 3. data dictionary 4. systems documentation

– documentation for subsequent maintenance of the code

Be clear and have appropriate User documentation (utilizing screen dumps) that include: – a user manual (topics presented in order of

difficulty) – a reference manual (all commands in

alphabetic order) – an installation guide – a tutorial to introduce new users to the

software

Provide technical documentation that is clear, appropriate and professionally presented Have source code documentation that enables an easy understanding of code and maintenance

/8

Ongoing throughout project and included in

Final project documentation

Project Management

– – applying project management techniques: Use of 1. Gantt charts, 2. Logbook, 3. Project management plan, 4. Backup procedures and

5. Regular reporting procedures

Show all relevant components are completed and documented 6. Be fully documented project design produced using software tools (eg. MacFlow/Visio for flowcharts, etc). 7. Show all diagrams as substantially correct

/10 Ongoing

throughout project

Ethical and Social Issues

– ensure that relevant ethical and social issues are addressed appropriately

Provide a full recognition of all relevant ethical and social issues, together with an appropriate response (including ease of use, appropriate security, acknowledgement of sources, inclusivity, interface designs, etc)

/10 Ongoing

throughout project

Communication

– – communication with others (client, team members, project manager) involved in the proposed system during all stages of the project to ensure that their needs are being met

– Document regular, effective communication with others involved in the proposed system during all stages of the project and meets defined needs

/2 Ongoing

throughout project

Presentation of Documentation

– use of appropriate formatting procedures in report style documents: 1. system report, 2. manuals (user, technical and installation)

3. other documentation

Be a professional looking report incorporating page numbers, relevant headers and footers, table of contents, index, footnotes where appropriate, illustrations and screen shots embedded within the document, suitable consistent headings and subheadings, with appropriate use of white space and an appendix

Contains all relevant information, easy to follow, appropriate use of inclusive language

/3 Final project

documentation

TOTAL MARK /100

Page 43: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

HSC Software Design & Development

43

Student attends ‘Tuesday Afternoon

Tutorials’

Term 4 Week 1: Assembly to outline and detail planning and monitoring procedures

Initial plan and proposal discussed with class teacher

Class teacher notifies via Welfare

Review Weeks 5 and 9

Targets achieved

No Yes

Targets Achieved

Work Continues

Plan and targets amended

Yes No

Submitted Work Completed

Term 1 Week 4: Plan and work reviewed by class teacher - Teacher consent check – 25%

complete

Term 1 Week 8: Plan and work reviewed by class teacher – 50% complete

Term 2 Week 4: Plan and work reviewed by class teacher – 75% complete

Term 2 Week 8: Plan and work reviewed by class teacher– 100% complete

Term 3 Week 2: Work handed in Friday by 2pm – 100% complete

1st CT records and notifies HT on Sentral, Contacts Parents

2nd HT records and notifies DP on Sentral, Contacts parents – 1st “N” warning

3rd DP records and notifies on Sentral, Contacts parents – 2nd “N” warning

4th P records and notifies on Sentral, Contacts parents – 3rd “N” warning

S

D

D

S

U

B

M

I

T

T

E

D

W

O

R

K

S

Student is enrolled in course with a practical submission component

Page 44: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

HSC Software Design & Development

44

Notification Sheet

FACULTY: TAS COURSE: SDD

TASK: 3 Major Project

(May include course description, scope and sequence, assessment schedule, band descriptors, syllabus, glossary of key words, standards packages and assessment tasks) TEACHER: Toland CLASS: Date Handed Out:

Student

Name

Task Recieved

Sign Date

Marks Recieved

Sign Date

I have Received the Major project from my Teacher

Page 45: HSC Software Design and Development STUDENT …€¦ · Course Description: Software Design and Development Course No: 15360 2 units for each of Preliminary and HSC Board Developed

HSC Software Design & Development

45

Notification Sheet

FACULTY: TAS COURSE: SDD

TASK: 4 Trial Exams

(May include course description, scope and sequence, assessment schedule, band descriptors, syllabus, glossary of key words, standards packages and assessment tasks) TEACHER: Toland CLASS: Date Handed Out:

Student Name Sign Date

I have Received Trial Exam results from my Teacher