
Silverston c04.tex V2 - 11/21/2008 3:02am Page 143
Level 1 Recursive Pattern 143
implies ownership, and if the ‘‘owning’’ object is destroyed, the ‘‘owned’’
objects or instances are also destroyed.
Some interesting i ssues crop up because of the structure seen in Figure 4-5.
The estimated hours attribute gets enumerated at all three levels. For ex-
ample, the PROJECT has estimated hours of ‘‘2300’’ hours, the total number of
PHASE estimated hours is ‘‘1410’’ hours (‘‘700’’+‘‘400’’+‘‘200’’+‘‘110’’), and
finally, the summation of all TASK estimated hours works out to be ‘‘1110’’
hours. This is a s trength and a weakness of this pattern. Each of the difgferent
estimates may be independent of each other. You can define the estimated
hours for a PROJECT to be different from the estimated hours for a PHASE. For
example, at the beginning of the project you may do the project estimate; then as
you progress through each phase, you may estimate the hours on a phase level
and so on. If you wanted to maintain hours only at the TASK level, you could
delete the estimated hours attributes from PHASE and PROJECT. In other
words, the Level 1 Recursive Pattern allows you to capture specific attributes at
any level in any hierarchy/aggregation. This means that you can support very
specific business rules about the hierarchy or aggregation. In our example, we
couldhaveincludedapercentage complete attribute at only the ...