On Thu, 9 Sep 2010, Blaise Gassend wrote: >> - The previous remarks are all about the separation of the "4Cs" (which is >>   my pet software design guideline): to try to separate the Computation, the >>   Communication, the Configuration and the Coordination that take place in >>   components. (BTW, this is something that ROS is rather bad at... I can >>   show you dozens of "horror stories" in (core) ROS packages where all 4Cs >>   are coupled in horrible ways.) > > Is there a particular reference you would recommend for becoming more > familiar with this design guideline? > The original reference is @InCollection{ RadestockEisenbach1996, author = {Radestock, Matthias and Eisenbach, Susan}, title = {Coordination in evolving systems}, booktitle = {Trends in Distributed Systems.\ {CORBA} and Beyond}, publisher = {Springer-Verlag}, pages = {162--176}, year = {1996} } A very seldom cited article, very "hidden", but worth looking for. I can send you an electronic copy, off-line. These authors have also a more recent article, a bit more focused on middleware: @Article{ RadestockEisenbach2003, author = {Radestock, Matthias and Eisenbach, Susan}, title = {Coordinating components in middleware systems}, journal = {Concurrency and Computation: Practice and Experience}, volume = {15}, number = {13}, pages = {1205--1231}, year = {2003} } I am preparing an article on the topic, but I do not find enough time to finish it. You can expect more of these guidelines coming out of the BRICS project ("Best Practices in Robotics") in the coming year. Herman