4.13 Systematic approach to problem solving

Aspects of software development

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. Requirements of system must be established by interaction with the intended users of the system. The process of clarifying requirements may involve prototyping/agile approach.

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

Design

Content

Additional information

Be aware that before constructing a solution, the solution should be designed and specified, 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.

Be aware that design can be an iterative process involving a prototyping/agile approach.

 

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.

Be aware that the final solution may be arrived at using an iterative process employing prototyping/an agile approach with a focus on solving the critical path first.

 

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.

It should also undergo acceptance testing with the intended user(s) of the system to ensure that the intended solution meets its specification.

Students will only need to provide evidence of user feedback not details of the tests carried out by the end user.

Evaluation

Content

Additional information

Know the criteria for evaluating a computer system.