RationalDB 





System Object Design  «Prev  Next»
Lesson 3 The goal of partitioning
Objective Explain the goal of partitioning and describe the end product.

Goal of Partitioning

The goal of the partitioning process is to provide a matrix of unique problems for the object design phase. Each type of problem implies different design patterns and technologies. Isolating each unique type of programming problem makes it easier to identify the skills and resources that will be needed during the design and implementation of the solution.
Impact of partitioning
The number and types of responsibilities you assign to each partition directly impact the complexity of the partition. Each partition will become a unit of software. It might be a single program or a set of programs and other resources cooperating to fulfill a function. The decisions you make regarding the responsibilities to include in each partition will affect the quality of each unit’s cohesion as well as the coupling between units.

Making the partitions talk
After you break the system into partitions the new partitions still need to talk to one another as though they were not partitioned. Therefore, a communication layer has to be introduced everywhere you split the architecture. These communication layers become part of the design effort as well. For example, in a Web application the user interface and the client application must communicate. Likewise, a server application has to communicate with one or more databases. How will you ensure the quality of the communication? How will you design a solution that is not dependent upon one particular database vendor? How will you hide the interfaces of the partitions so they can be updated with minimum impact to other partitions?
Partitioning Conclusion
Partitioning identifies all of the design and programming issues that will make up the completed application. In addition, it provides a view that allows you to tackle each issue in isolation without losing sight of how everything all fits together.
Technological partitioning
Technological partitioning