OutSystems standards and guidelines at Synobsys

Logo

Standards, best practices and how-tos for developing OutSystems applications

Module naming conventions

Core Layer Module Naming

Reusable services around business concepts, exporting entities, business rules and web-blocks

Layer SubLayer Suffix Description Example
Core Modules API _API Wrapper that expose an API for External consumers (REST/SOAP) to the OutSystems platform, supporting multiple versions. Pricing_API
    _OAPI Wrapper that exposes an API for internal consumers(Service Actions) (OutSystem API) to Internal Consumers, keeping core services system agnostic and supporting multiple versions of the API Pricing_OAPI
  Core Widgets _CW,_MCW Isolated Core Widgets (Blocks), to manage complexity, composition or to have its own lifecycle Customer_CW
  Composite logic _BL, MBL Isolated Business Logic (Actions) to manage complexity, composition or to have its own lifecycle Pricing_BL
    _Eng A BL becomes a Calculation Engine if it performs complex calculations, (e.g. an invoice calculation engine or an insurance simulator). Engines are usually subject to versions Pricing_Eng
    _Sync Logic to Synchronize data in CSs with an external system. Isolating this logic makes the CS completely system agnostic and it’s easier to decouple or replace the external system Field_Sync
  Core Services _CS,_MCS Reusable Core Services with public entities, actions and web blocks Customer_CS, Field_CS, SupplierAudit_CS, StoreAudit_CS

Note: An “M” indicates a Mobile only module, like _MCS, _MBL or _MCW

Foundation Layer Module Naming

Non Functional requirements or integration modules, reusable in any business context

Sub-layer Prefix Description Example
Style guide _Pat,_MPat Reusable UI Patterns for layout and display only - no Business logic UserExtension_Pat, Backoffice_Pat
  _Th Theme, look & feel elements, menu, … Internal_Th, Supplier_Th, Backoffice_Th
  Template_ Theme templates Template_Backoffice, Template_Internal
Foundation Services _IS Integration Services - technical wrapper to consume and normalize an external service SoccerField_IS
  _FS Foundations Services to support NFR’s (e.g. Audit trailing)  
  _Drv Driver module - to have several integration services with different systems, performing the same type of operation (e.g. printers) you can create several drivers exposing the same API, with specialized implementations (like the transparency services pattern)  
  _Lib A generic module of type Library CipherUtils_Lib

An “M” indicates a Mobile only module, like _MPat,


Soccer Fields naming example

Type Name Acronym
Domain Soccer Fields SF
Application SF Soccer Fields App SF
Application SF Field Core Services FLC
Application SF Soccer Fields Core SFC
Module SoccerFields  
Module SF_Th  
Module SFC_Booking_CS  
Module SFC_Player_CS  
Module FLC_Field_CS  
Module FLC_Field_IS  
Module FLC_Field_Sync  

Reference

Review the following OutSystems documentation on module types: