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