Architecture and Design - Software Methodology

Overview

The goal of this phase is to perform high-level and detailed design of your project. At the end of this phase, you will understand what architectural modifications you will be making, and have a detailed description of the objects that will be used to realize these architectural changes. Additionally, the relationships between these objects, such as inheritance, aggregation, and dependency will be recorded in a series of UML structure diagrams, while the dynamic behavior of the objects will be recorded as UML sequence diagrams.

Deliverables

Specific deliverables for this project phase include:

  1. Architecture Diagram. This is a modified version of the architecture diagram turned in during the reverse engineering phase. In this phase, correct the architecture diagram based on your improved understanding of the project you're modifying, and then add additional components reflecting the changes you are making to meet your requirements.
  2. UML Structure Diagrams. Each component in your architecture diagram contains one or more objects. In a series of UML structure diagrams, describe the attributes and operations of these objects, as well as interrelationships such as inheritance, aggregation, and dependency.
  3. UML Sequence Diagrams. Pick 10 functionally distinct scenarios from your scenarios document. For each of these scenarios, develop one or more UML sequence diagrams showing the sequence of calls among objects that implement the behavior in the scenario. Note that this will likely involve calls between pre-existing objects, and objects you are adding to the system. Make sure it's clear which scenarios you're modeling as sequence diagrams.
  4. Explanations. You need to provide text providing an overview of the diagrams, and design choices embedded in these diagrams. Ideally, a reader who has previously seen your requirements and scenarios documents should be able to understand your design documents, based on the descriptive text you provide, along with the architecture and design documents. For example, while you do not need to provide a textual description for every UML diagram, you should explain how you made your modularization decisions (how did you choose your objects), the organization of the diagrams (why did you order the diagrams in a particular way), and any unusual or noteworthy design decisions (why you think your 8-level deep inheritance hierarchy is the right choice).

For more information, see the template.

Last updated: 10/16/2002