Software Design Development

Development methodologies

Describe and compare the development methodologies:

  •  iterative development process
  •  agile methodologies

Analysis

  • Identify the:
  • purpose
  •  scope
  • boundaries
  •  functional requirements

of a problem that relates to the design and implementation at this level, in terms of:

  •  inputs
  •  processes
  •  outputs

Design

Identify the data types and structures required for a problem that relates to the implementation at this level.

Read and understand designs of solutions to problems at this level, using the following design techniques:

  •  structure diagrams
  • pseudocode

Illustrate and implement efficient design solutions to a problem, using a recognised design technique showing:

  • top level design
  • the data flow
  • refinements

Describe, illustrate, and implement user-interface design, in terms of input and output, using a wireframe.

Implementation

Data types and Structures

Describe, illustrate and implement appropriately the following structures:

  • parallel 1D arrays
  • records
  • arrays of records

Computational Constructs

Describe, illustrate, and implement the appropriate constructs in a procedural high-level (textual) language:

  • parameter passing (formal and actual)
  • the scope of local and global variables
  • sub-programs/routines, defined by their name and arguments (inputs and outputs):
    • functions
    • procedures
  • pre-defined functions (with parameters) to:
    • create substrings
    • convert from character to ASCII and vice versa
    • modulus
    • convert floating-point numbers to integers
  •  file handling
    • sequential CSV and txt files (open, create, read, write, close)

Standard Algorithm 

Describe, illustrate, and implement standard algorithms using 1D arrays or arrays of records:

  • linear search
  • find minimum and maximum
  • count occurrences

Testing

Describe, illustrate and implement a comprehensive final test plan to show that the functional requirements are met.

Identify syntax, execution, and logic errors at this level. Describe and illustrate de-bugging techniques:

Evaluation

  • dry runs
  • trace tables/tools
  •  breakpoints
  • watchpoints

Describe, identify, and illustrate the evaluation of a solution in terms of:

  • fitness for purpose
  • efficient use of coding constructs
  • usability
  • maintainability
  • robustness