Skip to content

ASR AMOGUS

ASR

Summary of architectural decisions and design patters for AMOGUS

1. Tactics AMOGUS will practice

1.1 Quality attribute scenarios: Modifiability

Source Stimulus Artifact Environment Response Response measure
Developer Modify functionality Code Build time Make & test modification Extent to which this modification affects other functions or quality attributes
System administrator Deploy new version Code & Data Run time Deployment Downtime, effort

1.2 Tactics

  • Modularization → Split application in many modules to have clear boundaries.
  • Increase cohesion → Only store related functionalities in one module.
  • Reduce coupling → Communication between modules should be abstracted into interfaces and kept at a minimum to easily modify a single module.
  • Choice of technology → The chosen technologies should always reflect the architectural needs to enforce it more easily.

2. Architecture decisions and concrete design patterns AMOGUS will follow

2.1 Architecture decisions

  • AMOGUS will follow a service based architecture to enforce modularization and increase cohesion, hence making modifications more centralized and independent.
  • Coupling will be reduced by following the ABBA-Scheme and only allowing communication via well defined interfaces.
  • Backend and frontend will be completely seperated (only communicating through a REST-API) to further decouple the application.
  • Backend and frontend will be deployed in different docker containers therefore making deployment easier.

2.2 Design patterns

  • The backend will be using the MVC pattern to further encapsulate the behaviors (with the View being the REST-API layer).
  • The frontend will implement the MVVM pattern to ensure a responsive feel.

Last update: 2023-06-09