Purpose of partitioning/identify two types of partitioning.
The purpose of 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 partitioning that separate the software issues using two distinct
criteria: the client's functional requirements and the application of technology. Domain partitioning 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.