8.2.2 Implementing software solutions




The implementation phase could involve a range of activities from modifying existing code to the development of new code. In order to implement a solution, students need to understand the syntax of the chosen language. 
Careful consideration needs to be given to the language used to implement solutions. The chosen language should be one that best reinforces the concepts being taught, not simply one that is currently fashionable. In some cases, this may be a scripting language for an applications package. It is recognised that in a school environment, the choice of language may well be limited by the skills and resources available. It is important, however, that any language used meets the course requirements as specified in Course and Software Specifications.
Regardless of the language used, students should be familiar with using EBNF or railroad diagrams that specify the valid syntax of the commands used. For every set of algorithms that is implemented, appropriate user interfaces will need to be developed along with suitable documentation. Relevant social and ethical issues should be addressed, particularly with reference to appropriate interface design and issues related to using third party designs and code.

Outcomes
A student:
P1.2 describes and uses appropriate data types
P1.3 describes the interactions between the elements of a computer system
P3.1 identifies the issues relating to the use of software solutions
P4.2 investigates a structured approach in the design and implementation of a software solution
P4.3 uses a variety of development approaches to generate software solutions and distinguishes between these approaches 
P5.2 uses and develops documentation to communicate software solutions to others 
P6.1 describes the skills involved in software development
P6.2 communicates with appropriate personnel throughout the software development process
P6.3 designs and constructs software solutions with appropriate interfaces.

Students learn about:

Students learn to:

Coding in an approved programming language

•       meta-languages, including:

–      EBNF

–      railroad diagrams

•       language syntax

–      specified through meta-languages in manuals and help documentation

•       the syntax used to represent the control structures, including:

–      sequence

–      selection (binary, multiway)

–      repetition (pre-test, post-test, for…next loops)

–      use of subroutines or procedures

–      combinations of these

•       the syntax used to define and use a range of data types and data structures, including:

–      integer

–      string

–      floating point/real

–      boolean

–      one-dimensional array

–      records

 

Developing source code

–      converting algorithms into source code using syntactically correct statements

 

Error detection and correction techniques

•       types of coding errors, including:

–      syntax errors

–      runtime errors

–      logic errors

•       stubs

–      used to check the flow of execution

–      used to replace subroutines/modules during testing to check if that section of the code is the cause of an error

•       flags

–      used to check if a section of code has been executed

–      can be used as part of the logic of a solution or as an error detection process

•       debugging output statements

–      additional print statements in the code for use in the debugging process

–      used to identify which sections of the code have been executed

–      used to interrogate variable contents at a particular point in the execution of a program

 

•       verify the syntax of a command using meta-language statements

 

 

 

 

•       specify syntax using meta-language statements

 

•       use meta-language statements to develop syntactically correct code

 

 

 

•       generate appropriate source code by:

–    using appropriate data types and data structures in solutions

–    using a programming environment to generate and execute code

–    coding an algorithm into the chosen programming language

 

 

 

 

 

 

 

•       trace the output of a given code fragment and modify it appropriately

•       systematically eliminate syntax errors so that a program can be executed

•       run, correct and extend existing code

•       test a program with boundary values to detect possible runtime errors

•       detect and correct logic errors in program code by using a systematic error detection and correction process

 

 



Students learn about:

Students learn to:

Commonly executed sections of code

•       reusable code

–      standard logic, such as:

-        a login process

-        data validation

-        conversion between date formats

–      to replace multiple occurrences of the same code

•       combining code from different sources

–      copying and pasting into code

–      calling modules or subroutines

•       making the same data available to different modules

–      global variables

–      parameter passing

•       use of functions and procedures

 

 

 

 

 

User interface development

•       the need for consultation with users and/ or managers

•       use of storyboard

–    shows the general design of each interface

–    shows navigation between interfaces

•       effective user interfaces, including:

–      factors affecting readability

–      use of white space

–      effective prompts

–      judicious use of colour and graphics

–      grouping of information

–      unambiguous and non-threatening error messages

–      legibility of text, including:

-        justification

-        font type (serif vs sans serif)

-        font size

-        font style

-        text colour

–      navigation

–      recognition of relevant social and ethical issues

–      consistency

–      appropriate language for the intended audience

 

Documentation

•       types of documentation

–      documentation for developers

–      documentation for users

•       internal documentation

–      meaningful variable names (intrinsic)

–      readability of code

-        comments

-        white space

-        indentation

•       online help, such as:

–      context sensitive help

–      help files

 

 

•       develop standard modules or subroutines for reuse

 

•       create solutions to problems using existing code with minimal change or additions

•       develop code that makes use of common modules or subroutines

 

•       differentiate between the scope of local and global variables

 

•       develop code that makes appropriate use of global and local variables

 

•       develop code that calls common modules and passes parameters appropriately

 

•       incorporate functions into modules or subroutines

 

•       make use of procedures (see Course Specifications document)

 

•       develop solutions that include appropriate user interfaces

 

•       evaluate the effectiveness of interfaces used in commercially available software

 

•       develop an appropriate storyboard for a specified problem

 

•       design screens incorporating good design and ergonomic features

 

•       incorporate current relevant interface elements into software solutions

 

 

 

 

 

 

 

 

 

 

 

•       produce documentation for different audiences

•       produce source code which is well documented and therefore easy to read, understand and maintain

•       fully document a solution that has been developed in the classroom

•       create a data dictionary to define the data (including variables, arrays and records) used in a developed solution

•       use a range of application packages to develop the various types of documentation to fully document a solution

•       interpret code and documentation prepared by others

•       assess the effectiveness of online help available in software packages