Object Design Quiz - Explanation

The correct answers are indicated below, along with text that explains the correct answers.
 
1. What should you do if the implementation architecture is already decided for your project?
Please select the best answer.
  A. Skip the architectural analysis phase and move forward with object design.
  B. Review the current architecture description with the users to make certain it is what they want.
  C. Proceed with architectural analysis so that you can either confirm or improve the current architecture.
  D. Document the current architecture, then proceed with object design.
  The correct answer is C.
Proceed with architectural analysis so that you can either confirm or improve the current architecture. A is incorrect because you should never skip the architectural analysis phase. B is incorrect because what the users want and what will work for the system they ask for may not be the same. D is incorrect because this assumes that you will use the current architecture whether or not it meets requirements.

2. When should you evaluate response time requirements and data distribution?
Please select the best answer.
  A. During the architectural analysis phase
  B. During the object design phase
  C. During the project initiation phase
  D. During the implementation phase
  The correct answer is A.
Response time requirements and data distribution should be evaluated during the architectural analysis phase. B is incorrect because the design should support the performance requirements defined earlier. C is incorrect because project initiation defines the users’ expectation for the solution. Performance requirements may be stated, but the evaluation must come when there is opportunity to address them via the architecture. D is incorrect because by the time you are making implementation choices, the performance criteria should already be addressed by the architecture and the design.

3. When should architectural analysis and object design be performed if they are supported by different functional areas within your organization?
Please select the best answer.
  A. They may be performed in parallel and integrated upon completion.
  B. They may be performed in parallel, and the work products may be merged when you are ready for implementation.
  C. They should be performed in sequence and iteratively refined through comparison and contrast.
  D. They should be performed in strict sequential order; that is, once architectural analysis is complete, then and only then proceed with object design.
  The correct answer is C.
If architectural analysis and object design are supported by different functional areas within your organization, then they should be performed in sequence and iteratively refined through comparison and contrast. A is incorrect because the architecture you choose may dictate or eliminate some of your design options. It is not uncommon to proceed with an assumed design solution only to find that your architecture will not be able to support it. Wasted time is rarely a desired component of any project. B is incorrect because, as in A, the choices made during architectural analysis influence the object design options. The work products should be reconciled throughout their development, not after their completion. D is incorrect because you will rarely be able to create a complete architectural analysis without pursuing object design and reconciling the knowledge gained from both activities.

4. When is the best time to perform architecture analysis?
Please select the best answer.
  A. As soon as the problem statement has been fully defined, that is, parallel with project initiation
  B. As soon as the constraints of the problem statement have been fully specified, that is, midway through project initiation
  C. Once the implementation technology has been selected, that is, at the beginning of implementation
  D. As soon as the requirements of the problem domain are understood, that is, after problem analysis
  The correct answer is D.
Architectural analysis should be started as soon as the problem domain is understood. The problem analysis phase is responsible for defining the problem domain. Until the problem has been at least partially defined, you have no criteria on which to base the architectural choices. A is incorrect because project initiation defines the users’ expectations, not the problem domain that defines the criteria for architectural choices. B is incorrect because constraints define only one important set of requirements for the architecture. C is incorrect because implementation is too late. The architectural choices must be made even before object design. Implementation should support the architectural and design choices.

5. What does the object design phase add to the problem domain objects?
Please select the best answer.
  A. The data and behaviors that support the interfaces defined in problem analysis
  B. The interfaces to the problem domain objects
  C. The implementation architecture needed to support the objects defined during problem analysis
  D. The implementation of the constraints defined in project initiation
  The correct answer is A.
The object design phase adds the data and behavior behind the interfaces that are defined during problem analysis. B is incorrect because the interfaces were already defined when the problem domain objects were identified in problem analysis. C is incorrect because architecture choices are made just before object design. Object design supports the architecture. D is incorrect because constraints form only one of many kinds of requirements for the object design phase.

6. What is the difference between the object design phase and the implementation phase?
Please select the best answer.
  A. Object design sets the architecture, whereas implementation decides how to support the architecture.
  B. Object design defines the data requirements for problem domain objects, whereas implementation defines the behaviors that maintain the data.
  C. Object design adds the software specific classes that support the problem domain, whereas implementation applies technology to the design.
  D. Object design and implementation are two terms for the same process, that is, applying a programming language to build the software to support the problem domain.
  The correct answer is C.
During object design, you decide on design patterns, class stereotypes, and other techniques that provide the means to satisfy the requirements of the application. This is why design patterns arose. Many problem domains share similar solutions to similar problems. Although the implementations may differ, the design is the same. A is incorrect because object design does not establish the architecture. This is done in architectural analysis. B is incorrect because object design defines both the data and the behaviors of each problem domain resource, as well as the complete definition of the new software specific objects. D is incorrect because the two phases are distinct.

7. What is the best way to apply the development phases?
Please select the best answer.
  A. Perform two passes through each phase before moving to the next phase to ensure that you have completed the work products.
  B. Split the entire process into two larger phases, problem analysis and implementation.
  C. Complete each phase before moving on to the next phase.
  D. Perform repeated passes through the phases comparing and contrasting work products from different phases.
  The correct answer is D.
The best way to apply the development phases is to perform repeated passes through the phases, comparing and contrasting work products from different phases. Iterative development is the key to successful modeling. Each review, each refinement or addition, each comparison of contrasting models reveals a new perspective on the problem and a new opportunity to improve the model. A is incorrect because there is no fixed number of passes that will ensure completeness. B is incorrect because grouping the phases does not define how to apply the phases or their work products. C is incorrect because it is unlikely that you will be able to complete any one phase in isolation. This used to be referred to as the waterfall method, an approach that has a very poor success rate.