A discussion of component-based decomposition, tactical forking, and a step-by-step process for decomposing an application into components.
Code of Architecture Software Architecture: The Hard Parts
guest