Design Document – Team X


This template is provided for your reference, along with the others on the projects page.  Note that it is written in markdown which is displayed differently here than it is on GitHub, so the formatting will look different once you have access to the repo — this is expected.

1 Introduction

The introduction provides context for the project.

  • Identify the software product(s) to be produced by name.
  • Explain what the software product(s) will, and, if necessary, will not do.

2 Design Considerations

Describe the issues that need to be addressed or resolved prior to or while completing the design, as well as issues that may influence the design process.

2.1 Assumptions

Describe any assumption, background, or dependencies of the software, its use, the operational environment, or significant project issues.

2.2 Constraints

Describe any constraints on the system that have a significant impact on the design of the system.

2.3 System Environment

Describe the hardware and software that the system must operate in and interact with.

3 Architectural Design

The architecture provides the high-level design view of a system and provides a basis for more detailed design work. These subsections describe the top-level components of the system you are building and their relationships.

3.1 Overview

This section provides a high level overview of the structural and functional decomposition of the system. The section should list the different components and concisely discuss the major responsibilities and roles such components must play.

3.2 Rationale

This section discusses why you are using the architecture you have chosen.

3.3 Conceptual (or Logical) View

This section should provide and describe a diagram that shows the various components and how they are connected. The conceptual view shows the logical/functional components of the system, where each component represents a cluster of related functionality.

4 Low Level Design

Describe the low-level design for each of the system components identified in the previous section. For your component, you should provide details in the following UML diagrams to show its internal structure.

4.1 Class Diagram

In the case of an OO design, the internal structure of a software component would typically be expressed as a UML class diagram that represents the static class structure for the component and their relationships (association, aggregation, generalization, etc.)

4.2 Sequence Diagram

This diagram shows details of how and in which order objects within a component interact with one another.

4.3 Component Diagram

This diagram shows the other components your software product interacts with. For each external component, you should list the interfaces that your software shares with it.

If needed, you can also show additional diagrams, such as activity and state diagrams.

5 User Interface Design

This section should provide the specific format/layout of the user interface of the syste.