''Create packages based on the BusinessModel and not the implementation '' *** http://www.javapractices.com/topic/TopicAction.do;jsessionid=F65E08B844D6213B5B147256246DFED6?Id=205 It'll help to avoid the BigSoupOfClasses. ''Features tend to interlace each other. For example, "print coupons" could be consider a feature, but it also overlaps with "promotion" features and bill creation. Then again, every known grouping aspect candidate has overlaps. That's the nature of the business domain.'' ---- Related: SeparationAndGroupingAreArchaicConcepts, VariationsTendTowardCartesianProduct