3.3 Systematic approach to problem solving

3.3.1 Aspects of software development

3.3.1.1 Analysis

Content

Additional information

Be aware that before a problem can be solved, it must be defined, the requirements of the system that solves the problem must be established and a data model created.

Students should have experience of using abstraction to model aspects of the external world in a program.

3.3.1.2 Design

Content

Additional information

Be aware that before constructing a solution, the solution should be designed and specificed, for example planning data structures for the data model, designing algorithms, designing an appropriate modular structure for the solution and designing the human 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.

3.3.1.3 Implementation

Content

Additional information

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, arguing for their correctness and efficiency using logical reasoning, test data and user feedback.

3.3.1.4 Testing

Content

Additional information

Be aware that the implementation must be tested for the presence of errors, using selected test data covering normal (typical), boundary 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.

3.3.1.5 Evaluation

Content

Additional information

Know the criteria for evaluating a computer system.