In @ARTICLE{lauesen:critique, AUTHOR = "Soren Lauesen", TITLE = "Real-Life Object-Oriented Systems", JOURNAL = ieee-software, YEAR = "1998", MONTH = "March/April", PAGES = "76-83" } http://www.cbs.dk/~slauesen/OOcaseStudies/ Lauesen is generally critical of oo. On page 81 he writes: It was like "reading a road map through a soda straw". He is quoting a GTE article in IEEE Software. He means that the soda straw is pointing to one class at a time and you have to figure out what the collaborations are. He continues: Another argument for separating high-level operations from the objects derives from GTE's experience with large OO systems. GTE did not succeed until it put control flow and business processes -- high-level operations -- outside class behavior. If built into the classes involved, it was impossible to get an overview of the control flow. It was like "reading a road map through a soda straw". ==================== My response: Yes, of course, OO works best if the control flow and business processes are taken out of the classes. Most of the control flow we put into traversal specifications (1992), now called strategies, and the business processes we put into propagation patterns (1992), adaptive methods (1997) and visitors (1995) and more recently into adjusters (1998). http://www.ccs.neu.edu/research/demeter/ There are other issues which cross-cut classes: synchronization, distribution etc. Follow the story of AOP (1996). http://www.ccs.neu.edu/home/lieber/AOP.html :-)