Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

Architecture Basics

Why are Architectures Important?

A good architecture allows you to


● Manage application complexity
● Enhance visibility on the overall solution
● Better plan future developments

A good architecture will


● Facilitate change
● Reduce risk
● Speed up development

How do you achieve a good architecture? With Modular Programming


What is Modular Programming?

It is a software design technique


Module 4

● Separates functionality of a
program into independent, Module 2
potentially replaceable modules
Module 3
● Each module contains everything
necessary to execute one aspect
of functionality
Module 1
Benefits of Modular Programming

Abstraction & Encapsulation


● Solve one functionality aspect at a time
● Expose only features that are needed by other modules
Hide away specific internal items (variables, actions, etc.)
● Some modules are not actual applications, they are only a way to provide
sharable features to other applications

Compilation and Deployment optimization


● Changes to a single module will not affect other modules

Teamwork improvement
● Separating work between different developers is made easier
Modular Programming in OutSystems

Applications are sets of related


modules

Modules can share elements with


other modules. These elements are
called Public

Modules that share features are called


Producers

Modules using features from another


are Consumers
Modular Programming in OutSystems (cont.)

What can be made public in a module?


● Data
○ Entities
○ Structures
● Logic
○ Actions
○ Roles
● Interface
○ Web blocks
○ Web Screens (uncommon)
● Processes
○ (Business) Processes
Modular Programming in OutSystems (cont.)

To display available public features


access the Manage Dependencies
window

You will be presented with a list of all


modules that provide public features

To consume a public element check


the corresponding checkbox

This feature will become available in


your module, like any other feature
that is part of it
Modular Programming in OutSystems (cont.)

Publishing a producer requires all consumers to be updated


to have access to the new code

Open each consumer, open the Manage Dependencies


window, hit the producer’s Refresh icon and republish it

This means you should never have circular dependencies!


Common Modularization Patterns

Application Screen Grouping


● Group screens that fulfill one or more related business processes

Integration abstraction
● An integration with an external system is encapsulated within a single module,
facilitating future replacement and change

Business concepts encapsulation


● All data and logic pertaining to closely related concepts is grouped together

Highly reusable concepts


● Small, usually technical, features that are highly reusable across many different
applications
Further Reading

● Wikipedia: Modular Programming


https://en.wikipedia.org/wiki/Modular_programming

● Creating an Application Using a Template


http://www.outsystems.com/help/servicestudio/9.1/#t=Web_User_Interface%2FCre
ating_an_Application_Using_a_Template.htm

● The OutSystems modularization framework: 4 Layer Canvas


https://success.outsystems.com/Support/Enterprise_Customers/Maintenance_and_
Operations/Designing_the_architecture_of_your_OutSystems_applications/01_The_4
_Layer_Canvas
Architecture Basics

You might also like