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