Students often have trouble deciding when to stop refining a design.
The confusion can arise because a function or procedure can be used to effectively hide a decision. For example, a procedure may hide the algorithm used to sort a list of numbers. This kind of simple information hiding is not the focus of the design phase, however. You can apply a very simple litmus test to candidate modules in your design to see how well they qualify as modules. To get an example of what your modules should look like, think about the examples you have seen in class.