Communication Refinement and Target Software Generation using SystemC