Domain Partitioning Process Divide the use cases into cohesive groups of one or more use cases that together describe a function of the system. Identify the objects that the use cases use and place the representative classes into the package/partition with the use cases. Identify the dependencies between the packages/partitions by evaluating the associations between the participating classes and the interactions that take place between the associated objects. Dividing the functionality of the system based on use cases is probably the most subjective part of the partitioning process. When you move on to the classes and interaction diagrams the partitions will become more clearly visible and may be tested for effectiveness.