Analysis Design - Quiz Explanation

The correct answers are indicated below, along with text that explains the correct answers.
 
1. What is the purpose of the architectural analysis phase?
Please select the best answer.
  A. To partition the problem into smaller more manageable pieces
  B. To partition the technology that will be used to support the requirements specified by the object design phase
  C. To partition the problem according to user functionality and technology
  D. To partition the use cases into logic groupings based on the technology best suited to support them
  The correct answer is C. The purpose of the architectural analysis phase is to partition the problem according to user functionality and technology. Each functional area might be supported by a different technology, client server vs. distributed computing, for example. A is incorrect because it is not specific enough about the criteria used for the partitioning decisions. B is incorrect because the object design phase comes after the architectural analysis phase, so it could not be the driving criteria for the partitioning. D is incorrect because the use cases should be partitioned based on cohesion and coupling of the user functionality, regardless of the technologies that might be used to support them.

2. What is the purpose of the object design phase?
Please select the best answer.
  A. To describe how each partition in the architecture will communicate
  B. To define how the use case partitions will communicate
  C. To describe the interactions between the software and the domain resources for each use case partition
  D. To define how each partition in the software architecture should work
  The correct answer is D. The purpose of the object design phase is to define how each partition in the software architecture should work. A is incorrect because communication between the partitions is only one part of the object design phase. B is incorrect because, again, this is only one aspect of the object design phase. C is incorrect because the software is designed to allow the users to interact with the domain resources. How the software manipulates the resources is one important aspect of the object design phase, but not the only one.

3. Why is it important to differentiate between architectural-level design and object-level design?
Please select the best answer.
  A. Architectural decisions will directly influence the object design.
  B. Architectural decisions are more important than object design decisions.
  C. Object design is performed by small teams who only work on one part of the overall architecture.
  D. Object design requires an entirely different skill set than architectural analysis.
  The correct answer is A. It is important to differentiate between architectural-level design and object-level design because architectural decisions will directly influence the object design. B is incorrect because architectural decisions are different, but not more important, than design decisions. C is incorrect because the same person, team, or teams may perform object design. Partitioning the work does aid in the allocation of resources and the management of the development, but this is not the primary reason for performing architectural analysis first. D is incorrect because the difference in the two skill sets does not justify the dependency.

4. What resources are used for functional partitioning during architectural analysis?
Please select the best answer.
  A. The object model and the sequence diagrams
  B. The use case model, object model, and sequence diagrams
  C. The use case model, object model, and interaction diagrams
  D. The use case model and the sequence diagrams
  The correct answer is C. The use case model, object model, and interaction diagrams are all used to perform functional partitioning. A is incorrect because the use case model is the primary definition of the functionality that the system must support. B is incorrect because the collaboration diagrams are often used in place of, or in addition to, the sequence diagrams. D is incorrect because the object model defines the resources used by the problem domain to support the functionality required by the use cases.

5. What is the relationship between the object design and implementation phases?
Please select the best answer.
  A. The object design phase dictates how the implementation must be performed.
  B. The object design phase suggests an approach that would expedite the implementation.
  C. The object design phase defines the desired solution, while the implementation defines what was actually created.
  D. The object design phase defines the language constructs and technologies that should be used to develop the implementation.
  The correct answer is C. The object design phase defines the desired solution while the implementation defines what was actually created. A is incorrect because the object design phase must cooperate with the implementation phase to cope with the constraints and characteristics of the implementation technologies. B is incorrect because the design is far more than a suggestion; it is the 'blueprint' for the implementation. D is incorrect because design typically leaves the language constructs and specific technologies to the implementation phase, since many languages and technologies may be applied to the same design.