Design Recipe 1: Designing simple computational functions
(methods).
Phase |
Goal |
Activity |
Purpose and Header |
to name the function; to specify its classes of input data and its classes of output data; to describe its purpose; to formulate a header |
choose a name that fits the problem � study the problem for clues on how many unknown "givens" the function consumes � identify the type of data for each of the "givens" � describe what the method should produce using the chosen variables � determine the type of data the function (method) should produce � formulate the purpose and signature (header): /* to compute ... given par1, par2 ... */��������� result-type
name(par-type1 par1, ���������������� par-type2 par2, ...){ �� ... } |
Examples |
to characterize the input-output relationship via examples |
Design examples of invoking this function (method) |
Body |
to define the function |
� formulate how the function computes its result � develop a Java expression that uses Java's primitive operations, other functions, and the variables � translate the mathematical expressions in the problem statement, when available |
Test |
to discover mistakes ("typos" and logic) |
� apply the function to the inputs of the examples � check that the outputs are as predicted |