• Interfaces and dependencies between implementation subsystems have been defined.
    • The workload for the Implementation Team is balanced; potential bottlenecks have been identified and work has been redistributed, and contingency plans have been created to allow critical work to be redistributed if the initial work allocation becomes imbalanced.
    • There are no instances of dependencies crossing more than one layer boundary.
    • Unnecessary dependencies on lower-layer subsystems have been eliminated.
    • The impact of necessary dependencies on lower layer subsystems has been reduced by letting subsystems in middle layers re-export interfaces from subsystems in lower layers.
    • The number of layers is no more than seven (plus or minus two), or there is a well-understood reason why more layers exist.
    • The ratio between the number of packages or subsystems and the number of implementation elements is consistent with the application size and complexity (for example, 5 packages or subsystems and 1,000 files is a sign that something is wrong).
    • The amount of source code is consistent with the expectation based on the number of design classes (for example, 100,000 lines of code for 10 design classes is a sign that the either the design or the implementation, or both, may be flawed).
    • The actual implementation effort is close to what was estimated, or if not, the basis for estimation has been examined and adjusted.


Rational Unified Process   2003.06.13