Two Tier Architecture - Quiz Explanation

The answers you selected are indicated below, along with text that explains the correct answers.
 
1. The goal of architectural partitioning is to:
Please select the best answer.
  A. Separate the responsibilities of the system according to units of functionality defined by the use cases
  B. Separate the responsibilities of the system according to technologies best suited to handle each of the requirements of the system
  C. Split the resources of the system so that the computing power is more evenly distributed
  D. Divide the system into cohesive units that together address all of the functionality in the spectrum of responsibilities for each domain partition
 

The correct answer is D.

The goal of architectural partitioning is to divide the system into cohesive units that together address all of the functionality in the spectrum of responsibilities for each domain partition. A is incorrect because the use cases are used for domain partitioning, not architectural partitioning. B is incorrect because the technologies should be selected to support the partitioning, not the other way around. C is incorrect because distribution of computing is not sufficient criteria. In fact, arbitrary distribution of computing power can be counterproductive for some types of systems.

2. What is meant by a “two-tier” architecture?
Please select the best answer.
  A. The system is divided into one domain partition and one architectural partition so that functional and technological issues can be isolated and managed separately.
  B. The system has two primary components, the database and the transaction processing, that are accessed by dumb terminals.
  C. The system is partitioned into two parts, the client applications and the central legacy system.
  D. The system is divided into two domain partitions that together handle of the responsibilities of the system.
 

The correct answer is C.

A two-tier architecture is one in which the system is partitioned into two parts, the client applications and the central legacy system. The client applications provide the user interface and the central system provides transaction management and data access. A is incorrect because domain and architectural partitions are two different views of the system. The two are not mutually exclusive. Each domain partition is partitioned architecturally. B is incorrect because the two components are typically client applications and a central system that handles the data access. D is incorrect because two-tier and other architectures are applied to domain partitions. An architecture is not divided into domain partitions.

3. Why is it important to perform architectural partitioning before object design?
Please select the best answer.
  A. The architects work at a higher level and don't know the detailed design process.
  B. The architecture establishes many of the design requirements.
  C. Architectural partitioning is part of the analysis process and analysis is always performed before design.
  D. The architecture defines the programming languages and the technologies that have to be used during object design.
 

The correct answer is B.

Architectural partitioning should be performed before object design because the architecture establishes many of the design requirements. A is incorrect because the skills of the participants should not dictate the precedence of the project phases. C is incorrect because, even though architectural partitioning takes place during a phase called Architectural analysis, it is a process of mapping requirements to design-level solutions, such as architectures. D is incorrect because the architecture does not necessarily dictate technologies or languages. It establishes the criteria for selecting technologies and languages. However, technologies often do make specific architectures possible.

4. How does the principle of high cohesion effect architectural partitioning?
Please select the best answer.
  A. High cohesion helps reduce partition complexity by assigning only one very focused responsibility to each partition.
  B. High cohesion reduces the amount of communication between partitions.
  C. High cohesion helps reduce the complexity of the system by hiding the internal design of each partition.
  D. High cohesion defines the glue or connectivity between architectural partitions after they have been split apart.
 

The correct answer is A.

High cohesion helps reduce partition complexity by assigning only one very focused responsibility to each partition. B is incorrect because the degree of dependency, coupling, determines the amount of communication far more than cohesion. C is incorrect because it describes encapsulation, not cohesion. D is incorrect because cohesion has nothing to do with creating the interface partitions other than help provide a clear definition for the scope of their responsibility, just as it does for all other types of partitions.

5. How does the principle of loose coupling affect architectural partitioning?
Please select the best answer.
  A. Loose coupling helps reduce partition complexity by assigning only one very focused responsibility to each partition.
  B. Loose coupling reduces the amount of communication between partitions.
  C. Loose coupling helps reduce the complexity of the system by hiding the internal design of each partition.
  D. Loose coupling defines the glue or connectivity between architectural partitions after they have been split apart.
 

The correct answer is B.

Loose coupling reduces the amount of communication between partitions by reducing the degree of dependency between partitions. A is incorrect because it describes high cohesion, not loose coupling. C is incorrect because it describes encapsulation, not loose coupling.
D is incorrect because loose coupling does not define the interfaces between partitions. However, it does help improve the design of those interfaces.