You are currently viewing Building a Model Driven App Part 1-Design

Building a Model Driven App Part 1-Design


The Why

Model Driven Apps (MDA) while simple in interface, allow for quick builds and built in components that would take hours to replicate in a Canvas app.

This guide will be the first part in a series of how to build a MDA. Throughout this guide we will be simulating an organization that needs to track purchase requests and approvals. The scenario will have a user submit a request that a supervisor has to evaluate. Then based upon the request amount have it go down one of three (small, medium, large) paths. All the while it will be going through the stage gates of finance, budget, and management.

The How

As with all good projects planning is the most important part. While it is tempting to go and just start delivering, it is vital to first create an ERD (Entity Relationship Diagram), a DFD (Data Flow Diagram), and map out security roles. These three documents allow will center and guide the project and mitigate (hopefully) rework.

I create these documents within Viso. It is has all of the blocks/languages needed for this endeavor built in.

Model Driven App Template

However even before building these documents a discovery session needs to occur, this is where you the developer will get all the necessary requirements written down to later be deciphered into the formal documents. I prefer to use Whiteboard as a means of capturing everything quickly.

Process Whiteboard

Draw the data

ERD

For ERD diagrams I prefer to use the Crows foot Notation. I know that others may be more “scholarly” in their approach, but it works for me when building a MDA.

For this scenario we will be build a custom table with lookups to standard table. Using standard tables minimizes the amount of data entry required.

DFD

As with the ERD I use Visio to build out the DFD. I like to use BPMN 2.0 as the language. It is language managed by OMG and provides more than enough detail for MDA.

Security

Security is broken down into two parts Row Level Security (RLS) and Column Level Security (CLS).

In the same Visio Document I like to create three tables. RLS, CLS, and roles to user mapping. This way when it comes time to create the roles I can just copy and paste.

Leave a Reply