The partitioning process is guided by user interaction, and is driven by physical implementation factors such as technology, packaging, I/O capability and other information about the proposed device which is developed based on experience with similar devices.