Designing Natural problems/tasks

I have a few questions regarding designing of any real life RFP/problem for Natural code.

  • What are the multiple design options available to design a solution for problem/task in Natural for mainframe application?
  • Are there any software pattern/tools to use for design?
  • Is there a design methodology that also takes care of re-usability in Natural code?


Natural is a structured programming language, so any design to solve a problem requires the programmer/analyst to be skilled at understanding the requirements and formulating a logical implementation.

Workflow / process flow software may aid in the design phase, and use of tools such as Natural Engineer can help understand the existing workflow / process flow for existing code. Best would be if someone documented the system and its objects in a meta-data repository so that the components can be represented in a BPM tool but that would be quite an undertaking not likely part of your project.

Typically, you need people familiar with all the objects and common routines to best ensure reusability of Natural code.

I would say that Software AG’s recommendations for application and program design are built into their Natural Construct product. Use the object models that are provided and you get a well-structured program/application. I don’t know whether the product documentation would suffice as a design methodology document.


in the net it is very diffecult to find information about designing Natural applications. You should have a look at LISTSERV - SAG-L Archives - LISTSERV.UARK.EDU

You can also visit the Natural II course by the SAG.

I’m also searching for a good Natural desgin. I want to use the buisness logic (BL) from a terminal and as a webservice.

So here is my first desgin:


  • Subprogram
  • PDA
  • LDA with varviable form the MAP
  • MAP

Dataaccess Layer:

  • Subprogram

  • PDA

  • View

  • BL:

  • Subpogram

  • PDA

Terminal Controller:

  • Subprogram
  • PDA
  • PDAs from Terminal-Display, Dataaccess Layer, BL

SOA Controller:

  • Subprogram
  • PDA
  • PDAs from Dataaccess Layer, BL

Both controllers handle the connectivity between Display, Dataaccess and BL.

This are the units for one Dialog.


  • Program
  • PDAs from one or more Terminal Controllers

It is mixtuer of a Multitier architecture and the MVC-Pattern.

This is the best desgin I thought of, maybe someone else will post their Natural design?

If you are intressend I draw it in UML with a little extra information, but beware I haven’t implmentet it yet. It is more a vision.

Markus Wessjohann