How to solve "circular dependencies"?

From: Cheng Mo (mo.cheng_at_nospam.nospam)
Date: 11/30/04


Date: Tue, 30 Nov 2004 17:30:45 +0800

In big developement team, it is quite possible that the whole system is
devided into pieces of modules. Each module is assigned to small group.
Since dependencies always exist among modules. The problem arises about
how to solve "circular dependencies".

IMO, architect should have a overview control of all modules which
should be in a form of tree structure. That is, no loop of dependency is
allowed in the big picture.

Recently, I heared about that one big project organize modules in such a
way. Each module group publishes their API at early time of each
iteration. Modules depending on other modules is developed based on the
published API in one givne iteration. Later in one iteration, CM team
builds all module's API first, then build all modules. It seems that
this process works. At least building is not a problem. However, it
actually connives at "circular dependencies". It is quite possible that
the building is OK, but running ends into loop calling.

Any other solution to solve "circular dependencies"?



Relevant Pages

  • Re: How to solve "circular dependencies"?
    ... Each module group publishes their API at early time of each ... >published API in one givne iteration. ... There are tools like JDepend that will detect circular dependencies ...
    (comp.object)
  • Re: How to solve "circular dependencies"?
    ... Robert Klemme wrote: ... >>In big developement team, it is quite possible that the whole system is ... > I think you confuse endless recursive calls with circular dependencies. ...
    (comp.object)
  • Re: How to solve "circular dependencies"?
    ... > In big developement team, it is quite possible that the whole system is ... Cycle free or the way you describe below? ... I think you confuse endless recursive calls with circular dependencies. ...
    (comp.object)
  • Re: How to solve "circular dependencies"?
    ... >> In big developement team, it is quite possible that the whole system ... >> Since dependencies always exist among modules. ... Don't ever create circular module ... > by introducing an abstract base class. ...
    (comp.object)
  • Re: How to solve "circular dependencies"?
    ... > In big developement team, it is quite possible that the whole system is ... > Since dependencies always exist among modules. ... by introducing an abstract base class. ... Don't allow circular dependencies between classes either. ...
    (comp.object)