Technological partitioning Technological partitioning identifies and separates the different software responsibilities for each domain partition. Each technological partition will typically address one type of software functionality, such as user interface design, application logic, transaction management, or data persistence and access. In turn, the nature of each type of technological functionality will usually call for a different type of programming and different technologies. For example, data access implies the ability to communicate with files or databases and the need to select an appropriate database. User interface design implies graphical interface elements and event management.