Maybe we're thinking differently on the definition of bi-directionality. I'm using the term as similar to circular logic. One of the fundamental principles of programming discipline is to remove cycles in the dependencies between objects. It's called the Acyclic <http://ifacethoughts.net/2006/03/24/design-principles/> Dependency Principle (ADP). Compilers work more efficiently. Components can be unit-tested in isolation.
When modeling a dynamic system, finite state <http://en.wikipedia.org/wiki/Finite_state_machine> transition diagrams are used. It is important to understand (1) why cycles are a bad thing; and (2) why they initially seem to make intuitive sense. First, cycles are bad because they cause paradoxes. When a paradox occurs (i.e. a cycle), it's almost always a result of using the wrong model, or not thinking hard enough about a problem. Cycles prevent formal causal analysis; i.e. scientific analysis. For example, "Which came first, the chicken or the egg?" This sounds like a paradox because we often use the wrong model; i.e. "chickens cause eggs, and eggs cause chickens." But the correct model is: "All chickens come from eggs. But not all eggs come from chickens." And this resolves the paradox. The egg came first! So when you see something like Figure 1 appear in a design, you can get rid of the long-term adverse affects in the system by restructuring it to Figure 2. Black arrows represent direct composition or "has a" relationships, where white arrows represent inheritance or "is a" relationships. In short, Figure 1 says A calls B directly and B calls A directly. Figure 2 says A calls the interface IB, and B calls the interface of IA. And A implements IA and B implements IB. There are no cycles in Figure B. Figure B works exactly like Figure A, but Figure A will cause more bug, have more errors, cost more, and take longer to evolve than Figure B-at least in software architecture. Robert Howard Phoenix, Arizona -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Marcus G. Daniels Sent: Sunday, June 03, 2007 9:13 PM To: The Friday Morning Applied Complexity Coffee Group Subject: Re: [FRIAM] Fwd: ABM Tom Johnson wrote: > It seems to me that there is usually (always?) bi-directionality > involved in a dynamic system i.e. http://en.wikipedia.org/wiki/Stigmergy ============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org
<<image002.jpg>>
============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org
