Year 12 Software Design and Development

HSC Course - Programme

Prepared By: Bernie Carpenter, Karen Heap and Michael Carey

MuirfieldHigh School

  1. Social and ethical issues
  2. Case study (Application of software development approaches)
  3. Defining and understanding the problem
  4. Planning and designing of software solutions
  5. Implementation of software solutions
  6. Testing, evaluation and maintenance of software solutions
  7. Option 2—The software developer’s view of hardware (group project)

1

School Situation:

MuirfieldHigh School is an comprehensive high school with approximately 600 students. It is situated in the Hills District of Sydney, N.S.W. MHS provides a diverse curriculum that caters for the current and future needs of all students.

The Information Technology facilities are composed of three computer labs, Library and Curriculum kiosk rooms all workstations have internet access, as well as access to the school’s intranet, networked colour printer housed in the library, file space on the network server, email, productivity and curriculum based software

Software Design and Development Course Rationale

Synopsis
Software Design and Development is designed to provide students with the knowledge, understanding, skills and values needed to solve problems through the creation of software solutions. The program involves the students in classroom discussions, completion of individual and group tasks and a major programming project. In the Preliminary Course students were introduced to the software development cycle. The HSC Course builds on that knowledge, and takes the students to a deeper examination of the concepts involved. Students were also required to complete a software project and so have had exposure to implementing and maintaining projects. These skills will be further developed during the HSC Course. The major project is completed during terms 13. It is intended that the project skills identified in section 9.3 of the Syllabus be incorporated into the work completed throughout the year, and are therefore not outlined separately in the program.

Table of units:

  1. Social and ethical issues
  2. Case study (Application of software development approaches)
  3. Defining and understanding the problem
  4. Planning and designing of software solutions
  5. Implementation of software solutions
  6. Testing, evaluation and maintenance of software solutions
  7. Option 2—The software developer’s view of hardware (group project)

1

HSC SOFTWARE DESIGN & DEVELOPMENT

ASSESSMENT TIMETABLE 200X

MAIN OUTCOMES which relate to core and option

/

CORE AND OPTION

/ SYLLABUS WEIGHTINGS
% / TASK 1 / TASK 2 / TASK 3 / TASK 4 / TASK 5 / TASK 6 / TOTALS
T4 / T1 / T2 / T2 / T3 / T3

Syllabus components

/

Project

/

Project

/ Half Yearly / Project / Project / Trial HSC
H1.2; H2.2; H3.1; H4.2; H5.1; H5.2; H5.3; H6.1; H6.2 / 9.1 / 15% / 5% / 10% / 15%
H1.1; H1.2; H1.3; H2.2; H3.1; H3.2; H4.1; H4.2; H4.3; H5.1; H5.2; H5.3; H6.1; H6.2; H6.3; H6.4 / 9.2 / 40% / 10% / 10% / 10% / 10% / 40%
H1.1; H1.2; H1.3; H3.1; H3.2; H4.1; H4.2; H4.3; H5.1; H5.2; H5.3; H6.1; H6.2; H6.3; H6.4 / 9.3 / 25% / 5% / 10% / 10% / 25%

9.4

/ 20% / 10% / 10% / 20%
Task Value / 10% / 15% / 15% / 10% / 10% / 40% / 100%
Outcomes assessed by the task / H1.1; H1.2; H1.3; H2.2; H3.1; H3.2; H4.1; H4.2; H4.3; H5.1; H5.2; H5.3; H6.1; H6.2; H6.3; H6.4 / H1.1; H1.2; H1.3; H2.2; H3.1; H3.2; H4.1; H4.2; H4.3; H5.1; H5.2; H5.3; H6.1; H6.2; H6.3; H6.4 / H1.1; H1.2; H1.3; H2.2; H3.1; H3.2; H4.1; H4.2; H4.3; H5.1; H5.2; H5.3; H6.1; H6.2; H6.3; H6.4 / H1.1; H1.2; H1.3; H3.1; H3.2; H4.1; H4.2; H4.3; H5.1; H5.2; H5.3; H6.1; H6.2; H6.3; H6.4 / H1.1; H1.2; H1.3; H2.2; H3.1; H3.2; H4.1; H4.2; H4.3; H5.1; H5.2; H5.3; H6.1; H6.2; H6.3; H6.4;

This document g:\home\staff\comp\assessment\SDD2000-2001.doc

Social and ethical issuesTiming: Three weeks

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.
Resources: various software packages, reference manuals, computers, Internet, PC magazines, newspapers, textbooks and worksheets.
Students learn about: / Students learn to: / Outcome No. / Register / Strategies and activities / Text reference
Rights and responsibilities of software developers
  • authorship
  • reliability
  • quality
  • response to problems
  • code of conduct
  • viruses
/
  • identify the impact on consumers of inappropriately developed software
/ H2.2, H3.1 / Revision and expansion of work covered in the Preliminary Course.
Software piracy and copyright
  • concepts associated with piracy and copyright, including:
– intellectual property
– plagiarism
– shareware
– public domain
– ownership versus licensing
– copyright laws
– reverse/backwards engineering
– decompilation
– licence conditions
– network use
  • various national perspectives to software piracy and copyright laws
  • the relationship between copyright laws and software licence agreements
/
  • interpret copyright agreements and develop personal practices that reflect current laws
/ H2.2, H3.1 / Revision and expansion of work covered in the Preliminary Course.
The software market
  • maintaining market position
  • the effect on the marketplace
/
  • acknowledge all sources in recognition of the intellectual contribution of authors
/ H2.2, H3.1 / Revision and expansion of work covered in the Preliminary Course.
Significant social and ethical issues
  • national and international legal action resulting from software development
  • public issues, including:
– the year 2000 problem
– computer viruses
– reliance on software /
  • debate current issues relevant to software development
/ H2.2, H3.1 / Revision and expansion of work covered in the Preliminary Course.

Assessment

Students research and debate the issues covered throughout this unit. Students will be given class time to research and prepare for a formal debate to be held during class. Topic: ‘Copyright means that I have the right to copy anything’. Debate this with reference to the rights and responsibilities of software developers and end users. This assessment is worth 10% of the final mark for the course.

Case Study (Application of software development approaches)Timing: Five weeks (plus 4 weeks outside of class time)

Outcomes: A student
H1.2 differentiates between various methods used to construct software solutions
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
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
Resources: excursion, various software packages, reference manuals, computers, Internet, PC magazines, newspapers, textbooks and worksheets.
Students learn about: / Students learn to: / Outcome No. / Register / Strategies and activities / Text reference
Software development approaches
  • approaches used in commercial systems, including:
– the structured approach
– prototyping
– rapid applications development
– end user development
– combinations of any of the above
  • methods of implementation
– direct cut over
– parallel
– phased
– pilot
  • current trends in software development, for example:
– outsourcing
– popular approaches
– popular languages
– employment trends
– networked software
– customised off-the-shelf packages
  • use of CASE tools and their application in large systems development
– software versions
– data dictionary
– test data
– production of documentation /
  • compare and determine the most appropriate software development approach for a given scenario
  • communicate their understanding of a commercial system studied using a case study approach by:
– describing how the skills of the various personnel contribute to the overall development of a computer-based system
– critically evaluating the effectiveness of the response to the social and ethical issues raised by this system
  • make informed comment on current trends in software development
/ H1.2, H2.2, H3.1, H6.1, H6.2 / Explanation and discussion of approaches and trends in software development.
Excursion to AustralianTechnologyPark. Visit a variety of software developers.
Students to prepare and ask relevant questions during the excursion. These will be used by them to complete their case study.
In their own time, students are to research this topic using a variety of sources, e.g. the Internet, PC magazines.
Examination of the system development cycle.

Assessment

Case study presentation:students are to undertake a case study on a software developer of their choice. The results of this case study are to be presented to the class in a formal presentation of no less than 10 minutes duration. Students are to use a variety of visual aids in their presentation. Due: Term 1, week 9–10. The task is worth 10% of the final mark.

Defining and understanding the problemTiming: Five weeks

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 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
Resources: various software packages, reference manuals, computers, Internet, PC magazines, newspapers, textbooks and worksheets.
Students learn about: / Students learn to: / Outcome No. / Register / Strategies and activities / Text reference
Defining the problem
  • identifying the problem
– needs
– objectives
– boundaries
  • determining the feasibility of the solution
– is it worth solving?
– constraints
– budgetary
– operational
– technical
– scheduling
– possible alternatives
– social and ethical considerations /
  • develop and interpret design specifications from a user’s perspective, considering:
– screen design
– appropriate messages
– appropriate icons
– relevant data formats for display
– ergonomic issues
– relevance to the user’s environment and computer configuration
– social and ethical issues / H1.2, H3.1, H3.2, H4.1, H4.2, H5.3, H6.1 / Examine a variety of problems.
Students role play the parts of customer, programmer, consultant. They take turns in order to experience the perspectives of each.
Students examine a number of software solutions and identify what the original problem may have been.
Design specifications
  • the developer’s perspective in consideration of:
– data types
– algorithms
– variables
  • the user’s perspective
/
  • evaluate the extent to which a proposed system will meet user needs
/ H5.2 / Students generate design specifications for a variety of problems.
Examine a number of software packages and specify the design elements.
Modelling
  • representing a system using diagrams, including:
– Input Process Output (IPO) diagrams
– story boards
– data flow diagrams
– systems flowcharts
– screen designs
– consideration of use of a limited prototype /
  • differentiate between the different forms of systems documentation and the purposes for which each is intended
  • interpret a system presented in a diagrammatic form
  • create a diagrammatic representation for a system using an appropriate method
/ H5.3 / Students generate a number of diagrams, IPO, dataflow etc., for a variety of problems.
Communication issues, including:
  • the need to empower the user
  • the need to acknowledge the user’s perspective
  • enabling and accepting feedback
/
  • effectively communicate with users regarding a proposed software solution
/ H6.1, H6.2, H6.3, H6.4 / Students take turns at explaining a software solution of their choice. They are to pay attention to the needs of the user as well as identifying any constraints on the programmer.

Assessment

There is no formal assessment for this unit. Students will be working on their major software projects. Assessment will be ongoing observation and satisfactory completion of tasks in class.

Planning and designing of software solutionsTiming: Ten weeks

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 a collaborative approach during the software development cycle
Resources: various software packages, reference manuals, computers, Internet, PC magazines, newspapers, textbooks and worksheets.
Students learn about: / Students learn to: / Outcome No. / Register / Strategies and activities / Text reference
Standard algorithms for searching and sorting
  • standard logic used in software solutions, namely:
– finding maximum and minimum values in arrays
– processing strings (extracting, inserting, deleting)
– file processing, including sentinel value
– linear search
– binary search
– bubble sort
– insertion sort
– selection sort /
  • recognise the logic in a standard approach (such as a sort or search)
/ H1.1, H1.3, H3.1, H3.2, H4.1, H4.2, H4.3 / Revise algorithm work from preliminary course.
Worksheets relating to different types of searches and sorting mechanisms.
Practice in identifying and creating algorithms for the various types of sorts and searches.
Develop an understanding of the issues involved in the types of data stored and how that data may be presented.
Custom-designed logic used in software solutions
  • requirements to generate these include:
– identification of inputs, processes and outputs
– representation as an algorithm
– definition of required data structures
– use of data structures, including multi-dimensional arrays, arrays of records, files (sequential and relative/random)
– use of random numbers
– thorough testing /
  • apply standard approaches as part of the solution to complex problems
  • document the logic required to solve problems, including:
– file handling and management
– random number generators
– multi-dimensional arrays
– nesting of control structures
  • develop a suitable set of test data and desk check algorithms that include complex logic
  • select an appropriate data structure to solve a given problem
  • develop a standard module and document its use
  • correctly incorporate a standard module into a more complex solution, passing parameters effectively
/ H1.1, H1.3, H3.1, H3.2, H4.1, H4.2, H4.3 / Develop an understanding of the need for standards.
Revise the preliminary work on desk checking.
Run various sets of test data through a number of algorithms etc.
Standard modules (library routines) used in software solutions
  • requirements for generating or subsequent use include:
– identification of appropriate modules
– consideration of local and global variables
– appropriate use of parameters (arguments)
– appropriate testing using drivers
– thorough documentation / H1.1, H1.3, H3.1, H3.2, H4.1, H4.2, H4.3 / Examine the concept of modularisation, parameters and variables.
Customisation of existing software solutions
  • identification of relevant products
  • customisation
  • cost effectiveness
/
  • evaluate the effectiveness of using commercially developed software
/ H1.1, H1.3, H3.1, H3.2, H4.1, H4.2, H4.3, H5.1, H5.2 / Examine existing software and evaluate the efficiency of modifying it as opposed to creating a solution from scratch.
Documentation of the overall software solution
• tools for representing a complex software solution include:
– algorithm descriptions
– system flowcharts
– structure diagrams
– data flow diagrams
– data dictionary / • represent a software solution in diagrammatic form
• identify the parts of the system that require software to be custom designed and developed
• select and use appropriate CASE software to assist in the development of a software solution / H1.1, H1.3, H3.1, H3.2, H4.1, H4.2, H4.3, H5.1, H5.2 / Discuss the importance of thorough documentation.
Examine the documentation of existing packages.
Selection of language to be used
• event-driven software
– driven by the user
– program logic
• sequential approach
– defined by the programmer
• relevant language features
• hardware ramifications
• Graphical User Interface (GUI) / H1.1, H1.3, H3.1, H3.2, H4.1, H4.2, H4.3, H5.1, H5.2, H6.2, H6.3 / Discuss the merits of the various programming languages used today.
Examine the matching of needs to features etc.

Assessment

There is no formal assessment for this unit. Students will be working on their major software projects. Assessment will be ongoing observation and satisfactory completion of tasks in class.

Implementation of software solutionsTiming: Five weeks

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.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
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 a collaborative approach during the software development cycle
Resources: various software packages, reference manuals, computers, Internet, PC magazines, newspapers, textbooks and worksheets.
Students learn about: / Students learn to: / Outcome No. / Register / Strategies and activities / Text reference
Interface design in software solutions
  • the design of individual screens, including:
– identification of data required
– current popular approaches
– design of help screens
– audience identification
– consistency in approach /
  • select either a sequential or event-driven approach and an appropriate language to effectively solve the problem
  • design and evaluate effective screens for software solutions
/ H1.1, H1.2 H1.3, H6.2 / Students examine a number of software interfaces and discuss the advantages and disadvantages of each. They also examine the appropriateness of each.
Language syntax required for software solutions
  • use of BNF, EBNF and railroad diagrams to describe the syntax of new statements in the chosen language
  • commands incorporating the definition and use of:
– multi-dimensional arrays
– arrays of records
– files (sequential and relative/random)
– random number generators /
  • utilise the correct syntax for new commands using the metalanguage specification
  • produce syntactically correct statements
  • implement a solution utilising a complex algorithm
/ H1.3, H4.2 / Revision of preliminary work.
Students interpret and create BNF, EBNF and railroad diagrams for a variety of software solutions.
Students revise and expand on arrays from the preliminary course.
The role of the CPU in the operation of software
  • machine code and CPU operation
– instruction format
– use of registers and accumulators
– use of program counter and fetch– execute cycle
– addresses of called routines
– linking, including use of DLLs /
  • recognise and interpret machine code instructions
/ H1.3 / Students complete worksheets on the internal workings of the CPU and machine code.
Translation methods in software solutions
  • different methods include:
– compilation
– incremental compilation
– interpretation
  • the translation process
  • advantages and disadvantages of each method
/
  • choose the most appropriate translation method for a given situation
  • utilise the features of both a compiler and an interpreter in the implementation of a software solution
/ H1.3 / Students research the various translation methods.
Examine similarities and differences and advantages and disadvantages.
Match a number of problems to the most suitable translation process(es).
Program development techniques in software solutions
  • structured approach to a complex solution, including:
– one logical task per subroutine
– stubs
– flags
– isolation of errors
– debugging output statements
– elegance of solution
– writing for subsequent maintenance
  • the process of detecting and correcting errors, including:
– syntax errors
– logic errors
– peer checking
– desk checking
– use of expected output
– run-time errors, including:
- arithmetic overflow
- division by zero
- accessing inappropriate memory locations
  • the use of software debugging tools, including:
– use of breakpoints
– resetting variable contents
– program traces
– single line stepping /
  • justify the use of a clear modular structure with separate routines to ease the design and debugging process
  • use drivers to test specific modules, before the rest of the code is developed
  • differentiate between the different types of errors encountered during the testing phase
  • 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
/ H1.3, H4.3 / Students research the meaning of the term ‘debugging’.
Students test segments of code. Pay attention to the requirement of additional drivers etc.
Students write code incorporating stubs, flags etc. and examine their functions in the error detection/correction cycle.
Documentation of a software solution
  • forms of documentation, including:
– process diary
– user documentation
– self-documentation of the code
– technical documentation, including source code, algorithms, data dictionary and systems documentation
– documentation for subsequent maintenance of the code
  • use of application software to assist in the documentation process
– use of CASE tools /
  • produce user documentation (utilising screen dumps) that includes:
– 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
  • identify the personnel who would be likely to use the different types of documentation
/ H1.3, H5.2 / As for previous unit. Revision and expansion.
Hardware environment to enable implementation of the software solution
  • hardware requirements
– minimum configuration
– possible additional hardware
– appropriate drivers or extensions /
  • recognise the need for additional hardware
/ H1.1, H1.3 / Examine a number of software packages and identify the minimum hardware specifications.
Discuss the importance of the above.
Emerging technologies
  • hardware
  • software
  • their effect on:
– human environment
– development process /
  • assess the effect of an emerging technology on society
/ H2.2 / Students research current trends in computer-based technology, e.g.. ‘Plug-ins’ for Internet browsers.

Assessment