Designing reusable software components following the CSP distributed programming model | IEEE Conference Publication | IEEE Xplore