Design

This chapter explains the strategies used to meet the requirements identified in the analysis

Architecture

  • This section explains how the main components of the software are linked with each other
  • A high-level view of the various system components must be provided, for example by using components diagram
  • The chosen architecture must be described (for example, layered architecture)

Modelling

  • This section explains how the domain has been modelled
  • This section should contains some class diagrams
    • The application’s most relevant design aspects are highlighted, showcasing how they solve the problems described in the analysis
    • Diagrams do not show implementation aspects that are not relevant, such as private fields
  • This section describe how the tactical patterns and other aspects of DDD seen in class were applied

Interaction

  • This section explains the behavior of the system, for instance using sequence or activity diagrams

Behaviour

  • This section explains the possible states that the system can be in and the events that cause the transition from one state to another, for instance using UML state diagrams
  • This section explains all the details related to the data, for instance:
    • Data schema
    • Data persistence technologies (if used), for example: MySQL, MongoDB, …