Professional Java Developer defines the problem into classes Appl program entry point (the main) an Entity class for each set of data being used in the Appl records read, records written, internal data sets (temp records), etc an Action class for each external data source/target these are where we put the SQL, so we have only 1 place the fix if the DB changes ------------------------------------------------------------ in addition for each Entity/Action class a Professional Java Developer writes Documentation and Tests