Skip to content

Software architecture

diderikvw edited this page Mar 13, 2023 · 29 revisions

This software architecture section focuses on a selected range of topics. It only focuses on components/scenarios/topics/etc. that are most relevant, which makes the value of maintaining it outweigh the costs.

The intended audience is at the moment mostly the 121 Development Team itself, to enable the development process. But the content is definitely relevant to any party with a technical or conceptual interest in the 121-platform.

Understanding of UML diagrams and terminology is assumed.

Software architecture topics

  • Requirements: a categorized list of system requirements
  • Actors: a UML Use Case Diagram documenting the Actors for the system
  • Business Processes: a non-UML diagram giving a categorized overview of all business processes in scope for the system
  • Elementary Business Processes: a UML Use Case Diagram for each Elementary Business Process that is relevant and valuable to document in more detail than only having it in the Business Processes diagram
  • Use cases: a UML Activity Diagram for each Use Case from the Elementary Business Process Use Case Diagrams that is relevant and valuable to document in more detail
  • Person Affected Status: a UML State Machine Diagram documenting the statuses of a Person Affected
  • Entity Relationship Diagram: a page describing how to auto-generate an Entity Relationship Diagram from a live database of the system

"As is" 121 Service Data Model

/images/121-service-as-is-data-model.drawio.png

"As is" 121 Service Module Diagram

graph LR
  ProgramModule-->SmsModule
  ProgramModule-->VoiceModule
  ProgramModule-->FspModule
  ProgramModule-->LookupModule
  CronjobModule-->WhatsappModule
  WhatsappModule-->ImageCodeModule
  CronjobModule-->IntersolveVoucherModule
  IntersolveVoucherModule-->ImageCodeModule
  IntersolveVoucherModule-->TransactionsModule
  TransactionsModule-->MessageModule
  MessageModule-->WhatsappModule
  MessageModule-->SmsModule
  IntersolveVoucherModule-->WhatsappModule
  RegistrationsModule-->LookupModule
  RegistrationsModule-->ProgramModule
  RegistrationsModule-->FspModule
  RegistrationsModule-->MessageModule
  ExportMetricsModule-->ProgramModule
  ExportMetricsModule-->RegistrationsModule
  ExportMetricsModule-->PaymentsModule
  PaymentsModule-->FspModule
  PaymentsModule-->IntersolveVoucherModule
  PaymentsModule-->IntersolveVisaModule
  IntersolveVisaModule-->TransactionsModule
  PaymentsModule-->AfricasTalkingModule
  AfricasTalkingModule-->TransactionsModule
  PaymentsModule-->BelcashModule
  BelcashModule-->TransactionsModule
  PaymentsModule-->TransactionsModule
  PaymentsModule-->BobFinanceModule
  BobFinanceModule-->TransactionsModule
  PaymentsModule-->UkrPoshtaModule
  UkrPoshtaModule-->TransactionsModule
  PaymentsModule-->VodacashModule
  VodacashModule-->TransactionsModule
  PaymentsModule-->RegistrationsModule
  ExportMetricsModule-->TransactionsModule
  WhatsappIncomingModule-->ImageCodeModule
  WhatsappIncomingModule-->IntersolveVoucherModule
  WhatsappIncomingModule-->WhatsappModule
Loading

This graph will be automatically generated in development-mode in services/121-service/module-dependencies.md. The contents of that file should be saved above.

"As is" 121 Service API Diagram

/images/121-service-as-is-api-diagram.drawio.png

"To be" Diagram 121 Service

/images/121-service-to-be-class-diagram.drawio.png

Clone this wiki locally