
hen building complex desktop applications, different individuals or groups of developers often need to collaborate. On some projects, you can separate the layers of the system and assign different individuals to develop each layer. For example, programmer A builds the user interface, programmer B and C build the business logic layer, and programmer D is responsible for the database. In the real world however, work is more often split along functional lines where a single developer is responsible for the user interface, usiness logic, and database layer of a specific application module. Under these conditions, different programmers cooperate to develop components in each layer concurrently. Their components are then integrated during the build process.