Layered Application Architecture Design Principles

Layered Application Architecture (LAA) is based on core design principles

Having code in different layers makes it easy to have a separation between the different layers.

Model driven development

Development should be model driven, meaning that a developers design decision should be able to be described in the model if possible. This gives us the fact that the model also must be layered in order to fulfill the first principle about layers. To help developers change their code from the model we have introduced something we call code generation properties. By changing these properties in the model our developers can change the behavior of the generated code in the template.

Code generation

The source code that is store is not possible to deploy as it is, first the deployable code must be generated by our code generator. During code generation the generator gets information from the layered models and their code generation properties and also incorporates the different files in all the included layers.

Code template

To have the code generated from a template gives many advantages.

The template gives us recognizable code in such way as even if you developed code in one component of IFS Applications it will be easy to follow the code in another component in IFS Applications. This makes it easier to maintain, develop and debug code in IFS Applications.

Customizations extensions and localizations

Customizations, extensions and language/country specific changes should be done in a specific layer that can override or overtake the underlying code. This makes it much easier to see which changes has been done in these layers.