The purpose of system partitioning is to separate the different types of problems that you will need to address in order to create a successful software system.
In this course you will learn two very different types of system partitioning that separate the software issues using two distinct criteria:
- the client's functional requirements and
- the application of technology.
identifies the features that the users expect the system to provide.
Technological partitioning divides the system according to the technologies that will best support the implementation of the software.
To partition the domain means to identify the different types of functions that the system must support. Functions should be grouped using the principles of cohesion and coupling so that related functions appear together. These functions are defined in the use case model.
The resulting groups should each provide all of the data resources from the class and interaction diagrams that the users will need to successfully complete a reasonable unit of work. You can probably tell from this description that the process is somewhat subjective. However, as you learn the process, you will also learn techniques to measure the quality of the groupings more objectively.
Technological partitioning identifies and separates the different software responsibilities.
Each partition will typically address one type of technological functionality, such as
- user interface design,
- application logic,
- transaction management, and
- data access.
In turn, the nature of each type of technological functionality will usually imply a different type of programming and the use of different technologies.
For example, data access implies the ability to communicate with files or databases. User interface design implies graphical interface elements and event management.