3.8 Aspects of software development

The content in this section will be assessed through the non-exam assessment (NEA) element of the specification.

Content

Additional information

Design

Be aware that before constructing a solution, the solution should be designed, for example planning data structures for the data model, designing algorithms, designing an appropriate modular structure for the solution and designing the user interface.

Students should have sufficient experience of successfully structuring programs into modular parts with clear documented interfaces to enable them to design appropriate modular structures for solutions.

Students should have sufficient experience of successfully including authentication and data validation systems within their computer programs.

Implementation

Be aware that the models and algorithms need to be implemented in the form of data structures and code (instructions) that a computer can understand.

Students should have sufficient practice of writing, debugging and testing programs to enable them to develop the skills to articulate how programs work and argue using logical reasoning for the correctness of programs in solving specified problems.

Testing

Be aware that the implementation must be tested for the presence of errors, using selected test data covering normal (typical), boundary (extreme) and erroneous data.

Students should have practical experience of designing and applying test data, normal, boundary and erroneous to the testing of programs so that they are familiar with these test data types and the purpose of testing.

Evaluation/refining

Be aware that code created during implementation will often require refining as a result of testing.

Be aware of the importance of assessing how well the solution meets the requirements of the problem and how the solution could be improved if the problem were to be revisited.

Students should have practical experience of refining programs in response to testing outcomes.

Students should have practical experience of assessing how well their solutions meet the original requirements of the problem.

Students should have practical experience of explaining how a solution could be improved if the problem were to be revisited.